一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种视频数据的传输方法、装置、介质及设备与流程

2022-07-31 03:37:04 来源:中国专利 TAG:


1.本公开的实施方式涉及信息技术领域,更具体地,本公开的实施方式涉及一种视频数据的传输方法、装置、介质及设备。


背景技术:

2.在通过网络传输视频数据的场景下,发送端设备可以将视频数据的图像帧序列编码成便于传输的参考帧序列,将参考帧序列通过网络传输给接收端设备,接收端设备对接收到的参考帧序列进行解码后,得到视频数据的图像帧序列。
3.参考帧序列的第一个参考帧通常为关键帧(由图像帧序列中的首帧图像编码得到),关键帧通常为帧内参考帧(简称i帧),该参考帧序列的第一个参考帧之后的多个参考帧可以是非关键帧,非关键帧通常为帧间前向参考帧(简称p帧)或者帧间双向参考帧(简称b帧)。
4.在视频数据的传输过程中,有时涉及视频分辨率的切换,这就需要发送端设备基于新分辨率的图像帧重新编码参考帧序列并传输给接收端设备,为此,需要一种可以降低传输过程中丢包概率的技术方案。


技术实现要素:

5.在本上下文中,本公开的实施方式期望提供一种视频数据传输方法、装置、介质及设备,以便在视频传输过程中出现视频分辨率切换的情况下,降低数据丢包的概率。
6.在本公开实施方式的第一方面中,提供一种视频数据发送方法,应用于发送端设备,所述方法包括:
7.响应于视频数据传输过程中分辨率由第一分辨率切换至第二分辨率,获取待发送的视频帧序列,将所述视频帧序列中的原始首帧图像的分辨率调整为原第一分辨率以获得对应的目标首帧图像,并将该原始首帧图像与该目标首帧图像送入所述发送端设备的第一编码器中进行编码,以得到对应于该原始首帧图像的关键帧码流与对应于该目标首帧图像的非关键帧码流;
8.根据该关键帧码流,将所述视频帧序列中的每个非首帧图像送入发送端设备的第一编码器中进行编码,以得到对应于每个非首帧图像的非关键帧码流,并将对应于该目标首帧图像的非关键帧码流与对应于每个非首帧图像的非关键帧码流发送给接收端设备。
9.在一些实施例中,其中,所述视频数据的图像格式为yuv图像格式。
10.在一些实施例中,其中,对应于该目标首帧图像的非关键帧码流为p帧码流,对应于任一非首帧图像的非关键帧码流为p帧码流或b帧码流。
11.在一些实施例中,在将对应于该目标首帧图像的非关键帧码流传输给接收端设备之前,所述方法还包括:
12.将第二分辨率信息写入对应于该目标首帧图像的非关键帧码流的媒体增强补充信息sei中。
13.在一些实施例中,在将对应于该目标首帧图像的非关键帧码流传输给接收端设备之前,所述方法还包括:
14.将该原始首帧图像的帧序号写入对应于该目标首帧图像的非关键帧码流的媒体增强补充信息sei中。
15.在本公开实施方式的第二方面中,提供一种视频数据接收方法,应用于接收端设备,所述方法包括:
16.从发送端设备接收对应于目标首帧图像的非关键帧码流,并从所述发送端设备接收对应于每个非首帧图像的非关键帧码流;
17.根据视频数据由第一分辨率切换至第二分辨率之前所接收到的关键帧码流,将对应于所述目标首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到该目标首帧图像;
18.将该目标首帧图像的分辨率调整为第二分辨率以获得该原始首帧图像;将该原始首帧图像送入所述接收端设备的第二编码器中进行编码,以得到对应于该原始首帧图像的关键帧码流;根据该原始首帧图像的关键帧码流,将对应于每个非首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到每个非首帧图像。
19.在一些实施例中,在将该目标首帧图像的分辨率调整为第二分辨率之前,所述方法还包括:
20.从对应于该目标首帧图像的非关键帧码流的sei中提取第二分辨率信息。
21.在一些实施例中,从发送端设备接收对应于目标首帧图像的非关键帧码流,并从所述发送端设备接收对应于每个非首帧图像的非关键帧码流,包括:
22.从发送端设备接收非关键帧码流序列;
23.将sei中包含原始首帧图像的帧序号的非关键帧码流,确定为对应于目标首帧图像的非关键帧码流;将所述非关键帧码流序列中的其他非关键帧码流,确定为对应于每个非首帧图像的非关键帧码流。
24.在本公开实施方式的第三方面中,提供一种视频数据传输方法,包括:
25.发送端设备响应于视频数据传输过程中分辨率由第一分辨率切换至第二分辨率,获取待发送的视频帧序列,将所述视频帧序列中的原始首帧图像的分辨率调整为原第一分辨率以获得对应的目标首帧图像,并将该原始首帧图像与该目标首帧图像送入所述发送端设备的第一编码器中进行编码,以得到对应于该原始首帧图像的关键帧码流与对应于该目标首帧图像的非关键帧码流;
26.所述发送端设备根据该关键帧码流,将所述视频帧序列中的每个非首帧图像送入发送端设备的第一编码器中进行编码,以得到对应于每个非首帧图像的非关键帧码流,并将对应于该目标首帧图像的非关键帧码流与对应于每个非首帧图像的非关键帧码流发送给接收端设备;
27.所述接收端设备根据视频数据由第一分辨率切换至第二分辨率之前所接收到的关键帧码流,将对应于所述目标首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到该目标首帧图像;
28.所述接收端设备将该目标首帧图像的分辨率调整为第二分辨率以获得该原始首帧图像;将该原始首帧图像送入所述接收端设备的第二编码器中进行编码,以得到对应于
该原始首帧图像的关键帧码流;根据该原始首帧图像的关键帧码流,将对应于每个非首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到每个非首帧图像。
29.在本公开实施方式的第四方面中,提供一种视频数据发送装置,应用于发送端设备,其特征在于,所述装置包括:
30.视频帧序列获取模块,响应于视频数据传输过程中分辨率由第一分辨率切换至第二分辨率,获取待发送的视频帧序列;
31.分辨率调整模块,将所述视频帧序列中的原始首帧图像的分辨率调整为原第一分辨率以获得对应的目标首帧图像;
32.编码模块,将该原始首帧图像与该目标首帧图像送入所述发送端设备的第一编码器中进行编码,以得到对应于该原始首帧图像的关键帧码流与对应于该目标首帧图像的非关键帧码流;根据该关键帧码流,将所述视频帧序列中的每个非首帧图像送入发送端设备的第一编码器中进行编码,以得到对应于每个非首帧图像的非关键帧码流;
33.码流发送模块,将对应于该目标首帧图像的非关键帧码流与对应于每个非首帧图像的非关键帧码流发送给接收端设备。
34.在本公开实施方式的第五方面中,一种视频数据接收装置,应用于接收端设备,所述装置包括:
35.码流接收模块,从发送端设备接收对应于目标首帧图像的非关键帧码流,并从所述发送端设备接收对应于每个非首帧图像的非关键帧码流;
36.解码模块,根据视频数据由第一分辨率切换至第二分辨率之前所接收到的关键帧码流,将对应于所述目标首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到该目标首帧图像;根据编码模块输出的原始首帧图像的关键帧码流,将对应于每个非首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到每个非首帧图像;
37.分辨率调整模块,将该目标首帧图像的分辨率调整为第二分辨率以获得原始首帧图像;
38.编码模块,将该原始首帧图像送入所述接收端设备的第二编码器中进行编码,以得到对应于原始首帧图像的关键帧码流。
39.在本公开实施方式的第六方面中,提供一种视频数据传输系统,包括发送端设备与接收端设备;
40.所述发送端设备,响应于视频数据传输过程中分辨率由第一分辨率切换至第二分辨率,获取待发送的视频帧序列,将所述视频帧序列中的原始首帧图像的分辨率调整为原第一分辨率以获得对应的目标首帧图像,并将该原始首帧图像与该目标首帧图像送入所述发送端设备的第一编码器中进行编码,以得到对应于该原始首帧图像的关键帧码流与对应于该目标首帧图像的非关键帧码流;根据该关键帧码流,将所述视频帧序列中的每个非首帧图像送入发送端设备的第一编码器中进行编码,以得到对应于每个非首帧图像的非关键帧码流,并将对应于该目标首帧图像的非关键帧码流与对应于每个非首帧图像的非关键帧码流发送给接收端设备;
41.所述接收端设备,根据视频数据由第一分辨率切换至第二分辨率之前所接收到的关键帧码流,将对应于所述目标首帧图像的非关键帧码流送入所述接收端设备的解码器中
进行解码,以得到该目标首帧图像;将该目标首帧图像的分辨率调整为第二分辨率以获得该原始首帧图像;将该原始首帧图像送入所述接收端设备的第二编码器中进行编码,以得到对应于该原始首帧图像的关键帧码流;根据该原始首帧图像的关键帧码流,将对应于每个非首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到每个非首帧图像。
42.在本公开实施方式的第七方面中,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现发送端设备或接收端设备的功能。
43.在本公开实施方式的第八方面中,提供一种计算设备,包括存储器、处理器;所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现发送端设备或接收端设备的功能。
44.通过上述技术方案,在视频传输过程中,如果出现视频数据分辨率切换的情况,则发送端设备需要基于新分辨率(即第二分辨率)的视频数据重新编码成参考帧序列进行传输。发送端设备可以将分辨率切换后的待发送的视频帧序列中的原始首帧图像的分辨率调整为旧分辨率(即第一分辨率),以得到目标首帧图像,并将该旧分辨率下的目标首帧图像编码成非关键帧码流(而不是按照相关技术的做法编码成关键帧)。而待发送的视频帧序列中新分辨率下的非原始首帧图像,都需要基于新分辨率下的原始首帧图像对应的关键帧进行编码,以得到对应于各个非原始首帧图像的非关键帧码流。
45.发送端设备通过上述编码方式,将视频分辨率切换后待发送的视频帧序列编码成参考帧序列,在该参考帧序列中不包含关键帧。
46.相应的,接收端设备接收到上述的参考帧序列之后,需要先将对应于目标首帧图像的非关键帧码流解码成目标首帧图像,由于该目标首帧图像仍处于旧分辨率状态下,因此,需要利用接收端设备在分辨率切换之前所接收到的关键帧(基于旧分辨率的一帧图像编码而成的关键帧),对基于目标首帧图像编码得到的非关键帧码流进行解码,以得到目标首帧图像。然后,接收端设备需要对解码获得的目标首帧图像进行分辨率切换,以得到新分辨率下的原始首帧图像,并由接收端重新将新分辨率的原始首帧图像编码成关键帧码流。接收端设备在得到对应于原始首帧图像的关键帧码流之后,就可以基于该关键帧码流,对参考帧序列中对应于新分辨率的各个非首帧图像的非关键帧码流进行解码,以得到新分辨率的各个非首帧图像。至此,接收端设备即获得了新分辨率的原始首帧图像以及新分辨率的各个非首帧图像。
47.关键帧码流相较于非关键帧码流而言,具有较大的数据量,而在本公开所揭示的一种视频数据传输方法中,不仅成功地完成了分辨率切换之后的视频帧序列的传输,并且在此视频数据传输过程中不涉及关键帧码流数据的传输,从而大大降低了视频传输过程中的数据量,节省了网络带宽资源。由于数据量相对较大的关键帧码流在传输过程中更加容易出现数据丢包的情况,故本公开所揭示的一种视频数据传输方法尝试避免对关键帧码流进行传输,而采用由接收端设备重新编码来还原得到对应的关键帧码流,从而降低了视频数据的丢包概率。
附图说明
48.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目
的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
49.图1示例性提供一种视频数据传输方法的流程示意图;
50.图2示例性提供发送端设备上发生的数据处理过程示意图;
51.图3示例性提供发接收设备上发生的数据处理过程示意图;
52.图4示例性提供一种视频数据发送装置的结构示意图;
53.图5示例性提供一种视频数据接收装置的结构示意图;
54.图6是本公开提供的一种计算机可读存储介质的示意图;
55.图7示例性提供一种计算设备的结构示意图。
56.在附图中,相同或对应的标号表示相同或对应的部分。附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
具体实施方式
57.下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
58.本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
59.根据本公开的实施方式,提出了一种视频数据的传输方法、装置、介质及设备。
60.视频数据可以理解为视频帧序列,每个视频帧即是一帧图像。在通过网络传输视频数据的场景下(具体例如网络视频会议的场景),为了降低需要传输的视频数据量,发送端设备通常需要对视频帧序列进行编码之后得到参考帧序列,将参考帧序列传输给接收端设备,接收端设备对参考帧序列进行解码之后,恢复出视频帧序列。
61.通常,参考帧序列包含的各个参考帧与视频帧序列包含的各个视频帧一一对应,一个视频帧可以被编码成一个参考帧,一个参考帧本质上属于一段码流形式的数据,而非一帧图像。参考帧有关键参考帧(本文简称为关键帧)与非关键参考帧(本文简称为非关键帧)之分。关键帧可以被称为帧内参考帧(i帧),可以将一个视频帧(即一帧图像)独立编码成i帧,在将视频帧编码成i帧的过程中,不需要参考该视频帧之前已经编码过的其他视频帧的参考帧;对一个i帧进行解码也不需要参考参考帧序列中除了该i帧之外的其他参考帧。
62.非关键帧可以是帧间前向参考帧(p帧),也可以是帧间双向参考帧(b帧)。如果需要将一个视频帧编码成非关键帧,则在将视频帧编码成非关键帧的过程中,需要参考该视频帧之前已经编码过的其他视频帧的参考帧;对一个非关键帧进行解码也需要参考参考帧序列中除该非关键帧之外的其他参考帧。
63.在视频数据传输过程中,发送端设备通常需要将视频帧序列的首帧图像编码成关键帧(因为首帧图像的编码和解码无法参考其他图像的参考帧),而对之后的非首帧图像,则可以根据需要灵活选择将该非首帧图像编码成关键帧还是非关键帧(非首帧图像的编码
和解码可以参考首帧图像的关键帧),形成参考帧序列并发送给接收端设备。接收端设备可以独立解码关键帧,并根据关键帧解码参考帧序列中的非关键帧。
64.理论上,发送端设备可以将视频帧序列的首帧图像以及尽可能少的其他非首帧图像编码成关键帧(可以仅将首帧图像编码成关键帧),而将剩余的非首帧图像都编码成非关键帧,形成参考帧序列(参考帧序列中首个参考帧为关键帧,参考帧序列中非首个参考帧为非关键帧),接收端设备依然可以解码这样的参考帧序列。由于关键帧的数据量很大,在网络传输时容易出现数据丢包的情况,因此,参考帧序列中的关键帧越少,数据丢包情况出现的概率也就越小。
65.然而在实际应用中,如果视频传输过程中出现分辨率切换的情况,则意味着视频数据的视频帧序列被截断为分辨率不同的前后两部分,即旧分辨率的视频帧序列与新分辨率的视频帧序列。基于现有的编解码协议,不同分辨率的视频帧的参考帧之间是无法兼容的,即无法做到“根据旧分辨率的视频帧对应的关键帧,对新分辨率的视频帧对应的非关键帧进行解码”,即便一定要这么做,也会严重影响视频画质。
66.为此,如果视频传输过程中出现分辨率切换的情况,则通常需要对分辨率切换之后的新分辨率的视频帧序列,重新进行编码得到新分辨率的参考帧序列,而在现有的编解码协议下,这意味着至少需要将该视频帧序列的首帧图像编码成关键帧,这也就意味着还是需要通过网络对关键帧进行传输,从而仍然有可能导致数据丢包的情况发生。
67.而本公开提供了一种在视频传输过程中出现分辨率切换的情况下,避免传输关键帧的技术方案,具体如下:
68.在视频传输过程中,如果出现视频数据分辨率切换的情况,则发送端设备需要基于新分辨率(即第二分辨率)的视频数据重新编码成参考帧序列进行传输。发送端设备可以将分辨率切换后的待发送的视频帧序列中的原始首帧图像的分辨率调整为旧分辨率(即第一分辨率),以得到目标首帧图像,并将该旧分辨率下的目标首帧图像编码成非关键帧码流(而不是按照相关技术的做法编码成关键帧)。而待发送的视频帧序列中新分辨率下的非原始首帧图像,都需要基于新分辨率下的原始首帧图像对应的关键帧进行编码,以得到对应于各个非原始首帧图像的非关键帧码流。
69.发送端设备通过上述编码方式,将视频分辨率切换后待发送的视频帧序列编码成参考帧序列,在该参考帧序列中不包含关键帧。
70.相应的,接收端设备接收到上述的参考帧序列之后,需要先将对应于目标首帧图像的非关键帧码流解码成目标首帧图像,由于该目标首帧图像仍处于旧分辨率状态下,因此,需要利用接收端设备在分辨率切换之前所接收到的关键帧(基于旧分辨率的一帧图像编码而成的关键帧),对基于目标首帧图像编码得到的非关键帧码流进行解码,以得到目标首帧图像。然后,接收端设备需要对解码获得的目标首帧图像进行分辨率切换,以得到新分辨率下的原始首帧图像,并由接收端重新将新分辨率的原始首帧图像编码成关键帧码流。接收端设备在得到对应于原始首帧图像的关键帧码流之后,就可以基于该关键帧码流,对参考帧序列中对应于新分辨率的各个非首帧图像的非关键帧码流进行解码,以得到新分辨率的各个非首帧图像。至此,接收端设备即获得了新分辨率的原始首帧图像以及新分辨率的各个非首帧图像。
71.上述的技术方案中,发送端设备不需要向接收端设备传输视频帧序列的原始首帧
图像的关键帧码流,而是传输目标首帧图像的非关键帧码流。接收端设备需要将目标首帧图像的非关键帧码流进行解码之后得到目标首帧图像,然后将目标首帧图像再调整为新分辨率下的原始首帧图像,在接收端设备本地将原始首帧图像编码成关键帧码流。如此,相当于实现了发送端设备在无需发送原始首帧图像的关键帧码流的前提下,使得接收端设备获得原始首帧图像的关键帧码流。
72.关键帧码流相较于非关键帧码流而言,具有较大的数据量,而在本公开所揭示的一种视频数据传输方法中,不仅成功地完成了分辨率切换之后的视频帧序列的传输,并且在此视频数据传输过程中不涉及关键帧码流数据的传输,从而大大降低了视频传输过程中的数据量,节省了网络带宽资源。由于数据量相对较大的关键帧码流在传输过程中更加容易出现数据丢包的情况,故本公开所揭示的一种视频数据传输方法尝试避免对关键帧码流进行传输,而采用由接收端设备重新编码来还原得到对应的关键帧码流,从而降低了视频数据的丢包概率。
73.此外,本公开的技术方案中可以应用于现有的任何编解码协议(如h264协议、h265协议等),本公开技术方案无需对现有的编解码协议进行改变,也无需对现有的编解码软件(如编码器、解码器)进行改变,更不会对现有的编解码硬件(如显卡)进行改变。因此,本公开的技术方案可以兼容各种编解码协议、编解码软件、编解码硬件,适用范围广、实现成本低。
74.下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
75.图1示例性提供一种视频数据传输方法的流程示意图,包括以下步骤:
76.s100:发送端设备响应于视频数据传输过程中分辨率由第一分辨率切换至第二分辨率,获取待发送的视频帧序列。
77.在实际应用中,视频传输过程中出现分辨率切换的原因有多种可能。例如,在接收端设备需要实时播放视频的场景下,发送端设备与接收端设备之间的网络出现波动,导致网络带宽变得不足,这种情况下,发送端设备需要降低视频数据的分辨率以降低视频数据整体的数据量,导致需要传输的参考帧序列的数据量减少的情况发生,这样的话,在有限的网络带宽下需要由发送端设备传输给接收端设备的数据量减少,提升了视频传输速率,保障了接收端设备可以流畅播放视频。
78.又如,接收端设备侧的用户可以选择多种不同分辨率的视频播放模式,如果用户在观看视频过程中选择了新分辨率的视频播放模式,则发送端设备就需要对传输的视频数据进行分辨率切换。
79.在一些实施例中,发送端设备与接收端设备是不同用户的设备。图1所示方法流程中的发送端设备所执行的步骤可以具体是发送端设备上安装的视频应用执行的,接收端设备所执行的步骤可以接收端设备上安装的视频应用执行的。发送端设备上的视频应用与接收端设备上的视频应用可以是同一个视频服务方开发的。例如,上述的视频应用可以网络视频会议应用,不同用户可以通过网络进行视频会议。
80.在一些实施例中,发送端设备可以是服务器,接收端设备可以是终端设备。图1所示方法流程中的发送端设备所执行的步骤可以具体是服务器上部署的服务系统执行的,接收端设备所执行的步骤可以终端设备上安装的浏览器或客户端执行的。例如,用户可以通过自己的终端设备上的浏览器或者客户端,从视频服务方的服务器获取视频资源进行播
放,服务器需要网络传输视频数据给终端设备。
81.本公开将视频传输过程中出现的分辨率切换定义为由第一分辨率切换为第二分辨率,容易理解,第一分辨率是旧分辨率,第二分辨率为新分辨率。步骤s100中待发送的视频帧序列,即是分辨率切换之后需要传输的新分辨的视频数据,容易理解,该视频帧序列中的每个视频帧(即每帧图像)都是新分辨率的,即首帧图像是第二分辨率的,各个非首帧图像也是第二分辨率的。
82.s102:发送端设备将所述视频帧序列中的原始首帧图像的分辨率调整为原第一分辨率以获得对应的目标首帧图像。
83.本公开为了描述的方便,将该视频帧序列中的第二分辨率的首帧图像称为原始首帧图像,将由原始首帧图像切换至第一分辨率的图像称为目标首帧图像。
84.s104:发送端设备将该原始首帧图像与该目标首帧图像送入所述发送端设备的第一编码器中进行编码。
85.通过步骤s104,可以得到对应于该原始首帧图像的关键帧码流与对应于该目标首帧图像的非关键帧码流。
86.s106:发送端设备根据该关键帧码流,将所述视频帧序列中的每个非首帧图像送入发送端设备的第一编码器中进行编码。
87.通过步骤s106,可以得到对应于每个非首帧图像的非关键帧码流。
88.s108:发送端设备将对应于该目标首帧图像的非关键帧码流与对应于每个非首帧图像的非关键帧码流发送给接收端设备。
89.s110:接收端设备根据在视频数据由第一分辨率切换至第二分辨率之前接收过的关键帧码流,将对应于该目标首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到目标首帧图像。
90.s112:接收端设备将该目标首帧图像的分辨率调整为第二分辨率以获得该原始首帧图像。
91.s114:接收端设备将该原始首帧图像送入所述接收端设备的第二编码器中进行编码。
92.通过步骤s114,可以得到对应于该原始首帧图像的关键帧码流。
93.s116:接收端设备根据该关键帧码流,将对应于每个非首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到每个非首帧图像。
94.发送端设备不仅需要对该视频帧序列的首帧图像进行编码,还需要对该视频帧序列中的各个非首帧图像进行编码(并且编码成非关键帧),如此才能得到该视频帧序列对应的参考帧序列进行发送。因此可以理解,发送端设备将原始首帧图像编码成关键帧码流的目的是,为该视频帧序列中的各个非首帧图像提供编码参考。
95.而发送端设备将目标首帧图像编码成非关键帧码流的目的是,以非关键码流的形式将首帧图像传输给接收端设备(从而避免传输首帧图像对应的关键帧)。而之所以将第一分辨率的目标首帧图像编码成非关键帧码流进行发送(而不是将第二分辨率的原始首帧图像编码成非关键帧码流进行发送),是为了方便接收端设备能够实现:基于分辨率切换之前所接收到的关键帧码流(旧分辨率的视频帧对应的关键帧码流),对在分辨率切换之后接收到的非关键帧码流进行解码。如果将新分辨率的原始首帧图像编码成非关键帧码流进行发
送,那么接收端设备将无法对该非关键帧码流进行解码,因为缺乏新分辨率下的图像帧的关键帧码流作为参考。
96.接收端设备可以对接收到的目标首帧图像的非关键帧码流进行解码,以恢复出旧分辨率下的目标首帧图像,进而对目标首帧图像进行分辨率调整,以恢复出新分辨率下的原始首帧图像。
97.此处需要进行说明,对基于某个分辨率的视频帧编码得到的非关键帧码流进行解码,需要依赖于基于相同分辨率的其他视频帧编码得到的关键帧。而倘若为了避免传输首帧图像对应的关键帧,将新分辨率的原始帧图像编码成的非关键帧码流发送给接收端设备,那么接收端设备事实上无法对该非关键帧码流进行解码,因为接收端设备缺乏解码参考(这里的解码参考是指,基于新分辨率的其他视频帧编码得到的新分辨率下的关键帧),显然,分辨率切换之后的图像的关键帧并没有传输给接收端设备,因此,接收端设备不可能获取过新分辨率下的关键帧)。
98.而在视频数据进行分辨率切换之前,接收端设备必然已经接收过基于旧分辨率的其他视频帧编码得到的关键帧,因此,可以将新分辨率的原始首帧图像切换为旧分辨率的目标首帧图像,将目标首帧图像对应的非关键帧码流发送给解码端设备,解码端设备可以根据视频数据由第一分辨率切换至第二分辨率之前所接收到的关键帧码流(旧分辨率的关键帧),实现对目标首帧图像的非关键帧码流(旧分辨率的非关键帧)进行解码,得到目标首帧图像,进而将目标首帧图像再切换成新分辨率的原始首帧图像,再将原始首帧图像编码成关键帧。这样的话,解码端设备就可以在发送端设备无需发送关键帧的情况下,利用解码端设备自己编码得到的原始首帧图像的关键帧,从而继续对接收到的新分辨率的非首帧图像的非关键帧进行解码。
99.图2示例性提供发送端设备上发生的数据处理过程示意图。如图2所示,实心填充的长矩形条代表旧分辨率的视频帧,斜杠填充的长矩形条代表新分辨率的视频帧。实心填充的短矩形条代表基于旧分辨率的视频帧编码成的参考帧,斜杠填充的短矩形条代表基于新分辨率的视频帧编码成的参考帧。可以看出,发送端设备对于分辨率切换之后的首帧图像(即新分辨率的原始首帧图像)切换至旧分辨率,然后对旧分辨率的目标首帧图像进行编码,得到相应的p帧。同时,发送端设备将新分辨率的原始首帧图像编码成i帧(但是不归入参考帧序列进行发送,仅仅留在发送端设备本地使用),将原始首帧图像之后的新分辨率的非首帧图像都编码成p帧。于是,发送端设备可以将在分辨率切换之后形成的参考帧序列(包含3个p帧,不包含i帧)发送给接收端设备。
100.图3示例性提供发接收设备上发生的数据处理过程示意图。如图3所示,实心填充的长矩形条代表旧分辨率的视频帧,斜杠填充的长矩形条代表新分辨率的视频帧。实心填充的短矩形条代表基于旧分辨率的视频帧编码成的参考帧,斜杠填充的短矩形条代表基于新分辨率的视频帧编码成的参考帧。可以看出,解码端设备对于分辨率切换之后首帧图像对应的参考帧(基于旧分辨率的目标首帧图像编码得到的p帧),利用历史上的i帧进行解码,得到目标首帧图像,然后进行分辨率调整,得到新分辨率的原始首帧图像,对新分辨率的原始首帧图像再进行编码,得到新生成的i帧,然后基于该新生成的i帧,对之后的p帧进行解码。
101.此外,本公开中所述的视频数据的图像格式可以为yuv图像格式或者rgb图像格
式。其中,yuv图像格式是更有利于进行压缩(即编码),因此是更适于进行视频传输的图像格式。
102.需要说明的是,由于目标首帧图像是分辨率切换之后的原始首帧对象切换得到的,目标首帧图像本身是旧分辨率的,其对应的非关键帧码流如果是b帧的话,该b帧在解码时可能会(也可能不会)依赖于原始首帧图像之后的非首帧图像对应的参考帧,而原始首帧图像之后的非首帧图像是新分辨率的,这些非首帧图像的参考帧并不能作为旧分辨率的目标首帧图像对应的非关键帧码流的解码参考。
103.因此,为了避免目标首帧图像对应的非关键帧码流不能成功解码的情况出现,在一些实施例中,对应于目标首帧图像的非关键帧码流可以为p帧码流,对应于任一非首帧图像的非关键帧码流为p帧码流或b帧码流。也就是说,视频数据进行分辨率切换之后的首帧图像可以被编码成p帧码流(而不是b帧码流),p帧码流的解码仅依赖于之前其他参考帧,而不是像b帧码流那样还可以依赖于之后的其他参考帧。
104.在一些实施例中,解码端设备可以基于用户输入,获得第二分辨率信息。
105.在一些实施例中,发送端设备在将对应于该目标首帧图像的非关键帧码流传输给接收端设备之前,可以将第二分辨率信息写入对应于该目标首帧图像的非关键帧码流的媒体增强补充信息sei中,以便解码端设备对对应于该目标首帧图像的非关键帧码流进行处理时,从对应于该目标首帧图像的非关键帧码流的sei中提取第二分辨率信息。
106.媒体补充增强信息(supplemental enhancement information,sei)是码流范畴里面的概念,提供了向视频码流中加入信息的办法,是现有的视频编解码协议的特性之一。sei有一些基本的性质,主要包括:并不是解码过程的必须项;有可能对解码过程(容错、纠错)有帮助;集成在视频码流中。
107.在一些实施例中,接收端设备可以基于用户输入获得分辨率切换之后的原始首帧图像的帧序号。
108.在一些实施例中,发送端设备在将对应于该目标首帧图像的非关键帧码流传输给接收端设备之前,可以将该原始首帧图像的帧序号写入对应于该目标首帧图像的非关键帧码流的媒体增强补充信息sei中。
109.这样一来,接收端设备从发送端设备接收非关键帧码流序列(参考帧序列)之后,可以在已确定分辨率切换后的原始首帧图像的帧序号的前提下,将包含原始首帧图像的帧序号的非关键帧码流,确定为对应于目标首帧图像的非关键帧码流,将所述非关键帧码流序列中的其他非关键帧码流,确定为对应于每个非首帧图像的非关键帧码流。
110.图4示例性提供一种视频数据发送装置的结构示意图,应用于发送端设备,所述装置包括:
111.视频帧序列获取模块401,响应于视频数据传输过程中分辨率由第一分辨率切换至第二分辨率,获取待发送的视频帧序列;
112.分辨率调整模块402,将所述视频帧序列中的原始首帧图像的分辨率调整为原第一分辨率以获得对应的目标首帧图像;
113.编码模块403,将该原始首帧图像与该目标首帧图像送入所述发送端设备的第一编码器中进行编码,以得到对应于该原始首帧图像的关键帧码流与对应于该目标首帧图像的非关键帧码流;根据该关键帧码流,将所述视频帧序列中的每个非首帧图像送入发送端
设备的第一编码器中进行编码,以得到对应于每个非首帧图像的非关键帧码流;
114.码流发送模块404,将对应于该目标首帧图像的非关键帧码流与对应于每个非首帧图像的非关键帧码流发送给接收端设备。
115.在一些实施例中,其中,所述视频数据的图像格式为yuv图像格式。
116.在一些实施例中,其中,对应于该目标首帧图像的非关键帧码流为p帧码流,对应于任一非首帧图像的非关键帧码流为p帧码流或b帧码流。
117.在一些实施例中,所述码流发送模块404,在将对应于该目标首帧图像的非关键帧码流传输给接收端设备之前,将第二分辨率信息写入对应于该目标首帧图像的非关键帧码流的媒体增强补充信息sei中。
118.在一些实施例中,其特征在于,所述码流发送模块404,在将对应于该目标首帧图像的非关键帧码流传输给接收端设备之前,将该原始首帧图像的帧序号写入对应于该目标首帧图像的非关键帧码流的媒体增强补充信息sei中。
119.图5示例性提供一种视频数据接收装置的结构示意图,应用于接收端设备,所述装置包括:
120.码流接收模块501,从发送端设备接收对应于目标首帧图像的非关键帧码流,并从所述发送端设备接收对应于每个非首帧图像的非关键帧码流;
121.解码模块502,根据视频数据由第一分辨率切换至第二分辨率之前所接收到的关键帧码流,将对应于所述目标首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到该目标首帧图像;根据编码模块输出的原始首帧图像的关键帧码流,将对应于每个非首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到每个非首帧图像;
122.分辨率调整模块,将该目标首帧图像的分辨率调整为第二分辨率以获得原始首帧图像;
123.编码模块503,将该原始首帧图像送入所述接收端设备的第二编码器中进行编码,以得到对应于原始首帧图像的关键帧码流。
124.在一些实施例中,所述码流接收模块501,在所述分辨率调整模块将该目标首帧图像的分辨率调整为第二分辨率之前,从对应于该目标首帧图像的非关键帧码流的sei中提取第二分辨率信息。
125.在一些实施例中,所述码流接收模块501,从发送端设备接收非关键帧码流序列;将sei中包含原始首帧图像的帧序号的非关键帧码流,确定为对应于目标首帧图像的非关键帧码流;将所述非关键帧码流序列中的其他非关键帧码流,确定为对应于每个非首帧图像的非关键帧码流。
126.本公开还提供一种视频数据传输系统,包括发送端设备与接收端设备;
127.所述发送端设备,响应于视频数据传输过程中分辨率由第一分辨率切换至第二分辨率,获取待发送的视频帧序列,将所述视频帧序列中的原始首帧图像的分辨率调整为原第一分辨率以获得对应的目标首帧图像,并将该原始首帧图像与该目标首帧图像送入所述发送端设备的第一编码器中进行编码,以得到对应于该原始首帧图像的关键帧码流与对应于该目标首帧图像的非关键帧码流;根据该关键帧码流,将所述视频帧序列中的每个非首帧图像送入发送端设备的第一编码器中进行编码,以得到对应于每个非首帧图像的非关键
帧码流,并将对应于该目标首帧图像的非关键帧码流与对应于每个非首帧图像的非关键帧码流发送给接收端设备;
128.所述接收端设备,根据视频数据由第一分辨率切换至第二分辨率之前所接收到的关键帧码流,将对应于所述目标首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到该目标首帧图像;将该目标首帧图像的分辨率调整为第二分辨率以获得该原始首帧图像;将该原始首帧图像送入所述接收端设备的第二编码器中进行编码,以得到对应于该原始首帧图像的关键帧码流;根据该原始首帧图像的关键帧码流,将对应于每个非首帧图像的非关键帧码流送入所述接收端设备的解码器中进行解码,以得到每个非首帧图像。
129.其中,所述视频数据的图像格式为yuv图像格式。
130.其中,对应于该目标首帧图像的非关键帧码流为p帧码流,对应于任一非首帧图像的非关键帧码流为p帧码流或b帧码流。
131.所述发送端设备,在将对应于该目标首帧图像的非关键帧码流传输给接收端设备之前,将第二分辨率信息写入对应于该目标首帧图像的非关键帧码流的媒体增强补充信息sei中。
132.所述接收端设备,从发送端设备接收非关键帧码流序列;将sei中包含原始首帧图像的帧序号的非关键帧码流,确定为对应于目标首帧图像的非关键帧码流;将所述非关键帧码流序列中的其他非关键帧码流,确定为对应于每个非首帧图像的非关键帧码流。
133.所述发送端设备,在将对应于该目标首帧图像的非关键帧码流传输给接收端设备之前,将该原始首帧图像的帧序号写入对应于该目标首帧图像的非关键帧码流的媒体增强补充信息sei中。
134.所述接收端设备,在将该目标首帧图像的分辨率调整为第二分辨率之前,从对应于该目标首帧图像的非关键帧码流的sei中提取第二分辨率信息。
135.图6是本公开提供的一种计算机可读存储介质的示意图,该介质140上存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例的方法。
136.本公开还提供了一种计算设备,包括存储器、处理器;所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本公开任一实施例的方法。
137.图7是本公开提供的一种计算设备的结构示意图,该计算设备15可以包括但不限于:处理器151、存储器152、连接不同系统组件(包括存储器152和处理器151)的总线153。
138.其中,存储器152存储有计算机指令,该计算机指令可以被处理器151执行,使得处理器151能够执行本公开任一实施例的方法。存储器152可以包括随机存取存储单元ram1521、高速缓存存储单元1522和/或只读存储单元rom1523。该存储器152还可以包括:具有一组程序模块1524的程序工具1525,该程序模块1524包括但不限于:操作系统、一个或多个应用程序、其他程序模块和程序数据,这些程序模块一种或多种组合可以包含网络环境的实现。
139.总线153例如可以包括数据总线、地址总线和控制总线等。该计算设备15还可以通过i/o接口154与外部设备155通信,该外部设备155例如可以是键盘、蓝牙设备等。该计算设备150还可以通过网络适配器156与一个或多个网络通信,例如,该网络可以是局域网、广域
网、公共网络等。如图所示,该网络适配器156还可以通过总线153与计算设备15的其他模块进行通信。
140.此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
141.虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献