一种视频传输方法及系统与流程

文档序号:22506555发布日期:2020-10-13 09:44阅读:131来源:国知局
一种视频传输方法及系统与流程

本发明属于视频通信技术领域,尤其涉及一种视频传输方法及系统。



背景技术:

目前,解决视频码流自适应传输的一种相对成熟的方案是可伸缩视频编码(svc,scalablevideocoding),但该方案的主要问题在于,为了满足svc的需要,必须升级视频通信系统以及所使用的网络设备,从而导致svc可伸缩视频编码的实际兼容性差,不能在大多数设备上使用。

针对以上问题,专利申请号为“200710123626.1”的中国专利公开了一种视频容错控制系统及方法,其通过在发送端对视频序列的单帧图像进行拆分编码,形成子序列视频码流,子序列视频图像组的总数目与网络状态匹配,在接收端对各子序列视频码流解码,得到子序列视频解码视频帧,继而进行空间插值恢复原图像,实现了网络丢包情况下的高流畅性视频通信。然而,上述专利拆分后的各个子序列视频码流所携带的信息中,有部分是重复的,同时传输该重复的信息耗费更大的带宽,导致在有限的带宽下难以获得完整的原视频。



技术实现要素:

本发明为克服上述现有技术所述的至少一种缺陷,提供一种视频传输方法及系统,具体技术方案如下:

第一方面,本发明提供一种视频传输方法,包括以下步骤:

获取原始视频,所述原始视频包括多帧原始视频图像帧;

将所述原始视频拆分为n个交织的独立的子序列视频,其中n≥2;

对各所述子序列视频独立编码为码流,得到n个子序列视频码流;其中的m个所述子序列视频仅进行y分量编码,其中1≤m≤n-1;

将所述n个子序列视频码流上传到服务器;

所述服务器根据其与接收端之间的网络质量,传输k个子序列视频码流,所述k个子序列视频码流中,至少包含1个是对yuv分量都有进行编码的子序列视频码流,其中1≤k≤n;

对所述k个子序列视频码流进行解码,得到k个解码后的子序列视频;

基于有yuv分量的解码后的子序列视频的uv分量,根据预设的uv分量算法,计算并填充仅有y分量的解码后的子序列视频的uv分量;此时,有k个含有yuv分量的接收到的子序列视频;

根据原始拆分的位置关系将所述k个含有yuv分量的接收到的子序列视频恢复成原始视频;若在原始视频恢复的过程中,当待恢复的原始视频的子图像帧不全时,通过插值计算恢复出原始图像帧。

进一步,所述步骤将所述原始视频拆分为n个交织的独立的子序列视频的过程中,以隔行或隔列的方式将原始视频拆分为2个交织的独立的子序列视频。

进一步,所述步骤将所述原始视频拆分为n个交织的独立的子序列视频的过程中,以隔行隔列的方式将原始视频拆分为4个交织的独立的子序列视频。

第二方面,本发明提供一种视频传输系统,包括:发送端、服务器及至少一个接收端;

所述发送端包括:拆分模块和编码模块;

所述接收端包括:解码模块和恢复模块;

所述拆分模块用于将原始视频拆分为n个交织的独立的子序列视频,其中所述原始视频包括多帧原始视频图像帧,n≥2;

所述编码模块用于对各所述子序列视频独立编码为码流,得到n个子序列视频码流;所述n个子序列视频中的m个子序列视频仅进行y分量编码,其中1≤m≤n-1;

所述服务器用于获得所述n个子序列视频码流,并根据其与接收端之间的网络质量,传输k个子序列视频码流至接收端,所述k个子序列视频码流中,至少包含1个是对yuv分量都有进行编码的子序列视频码流,其中1≤k≤n;

所述解码模块用于对所述k个子序列视频码流进行解码,得到k个解码后的子序列视频;

所述恢复模块用于基于有yuv分量的解码后的子序列视频的uv分量,根据预设的uv分量算法,计算并填充仅有y分量的解码后的子序列视频的uv分量,得到k个含有yuv分量的接收到的子序列视频;根据原始拆分的位置关系将所述k个含有yuv分量的接收到的子序列视频恢复成原始视频;若在原始视频恢复的过程中,当待恢复的原始视频的子图像帧不全时,通过插值计算恢复出原始图像帧。

进一步,所述拆分单元以隔行或隔列的方式将原始视频拆分为2个交织的独立的子序列视频。

进一步,所述拆分单元以隔行隔列的方式将原始视频拆分为4个交织的独立的子序列视频。

进一步,所述发送端还包括:传送模块,所述接收端还包括:接收模块;

所述传送模块用于将所述n个子序列视频码流上传至所述服务器;所述接收模块用于接收所述服务器传送的所述k个子序列视频码流。

第三方面,本发明提供一种视频编码方法,包括步骤:获取原始视频,所述原始视频包括多帧原始视频图像帧;

将所述原始视频拆分为n个交织的独立的子序列视频,其中n≥2;

对各所述子序列视频独立编码为码流;

其特征在于,在所述对各所述子序列视频独立编码为码流步骤中,对其中的m个所述子序列视频仅进行y分量编码,其中1≤m≤n-1。

进一步,所述步骤将所述原始视频拆分为n个交织的独立的子序列视频的过程中,以隔行或隔列的方式将原始视频拆分为2个交织的独立的子序列视频,或以隔行隔列的方式将原始视频拆分为4个交织的独立的子序列视频。

与现有技术相比,有益效果是:

1.只由部分子序列视频携带色度分量信息,适应更低的带宽或其他比较差的网络质量,避免了网络丢包,保持了视频通信的流畅性。

2.只由部分子序列视频携带色度分量信息,降低了带宽的消耗。

3.避免了拆分后的各个子序列视频的色度分量信息在编解码的过程中由于误差导致数据不一致而造成的混乱。

4.本发明能够适应用于普通的编解码器,普遍适用性高。

附图说明

图1是本发明实施例一的整体流程示意图。

图2是本发明中采用隔行方式拆分的子序列视频码流示意图。

图3是发明中采用隔行隔列方式拆分的示意图。

图4是本发明实施例二的整体示意图。

图5是本发明实施例三的整体流程示意图

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

如图1所示,本发明公开了一种视频传输方法,包括以下步骤:

s1.获取原始视频,所述原始视频包括多帧原始视频图像帧。

其中,原始视频图像帧是构成视频的单位,原始视频包括多帧原始视频图像帧,图像帧是视频中的画面,一帧即一个画面,一帧包括视频数据及其对应的音频数据。即该原始视频包括多帧原始视频图像帧。原始视频图像可以是视频数据的各帧视频帧,视频可以是存储于终端或服务器内的离线视频文件,也可以是终端从服务器获取的在线视频文件。

s2.将所述原始视频拆分为n个交织的独立的子序列视频,其中n≥2。

如图2所示,假设图2中的原始视频有3帧。需要指出的是,图2只是一个示例性的说明,实际上的原始视频可以是任意数量的帧。图2是以隔行的方式将原始视频拆分为2个交织的独立的子序列视频。在图2中,对每帧原始视频图像帧进行拆分,即对第1-3帧都进行拆分,每帧原始视频图像帧都以隔行的方式拆分,分别得到第1-3帧的奇行图像帧和偶行图像帧。然后以原始视频图像帧的顺序对得到的奇行图像帧进行排序,得到奇行子序列视频,然后以相同的方式得到偶行子序列视频。此时,原始视频被拆分为2个交织的独立的子序列视频。

在一种实施方式中,也可以采用如图3所示的以隔行隔列的方式进行拆分。此时,拆分后的图像帧以原始视频图像帧的顺序对数字编号相同的图像帧进行排序,得到4个交织的独立的子序列视频。

s3.对各所述子序列视频独立编码为码流,得到n个子序列视频码流;其中的m个所述子序列视频仅进行y分量编码,其中1≤m≤n-1。

继续图2的例子,分别对图2中的奇行子序列视频和偶行子序列视频独立编码,得到奇行子序列视频码流和偶行子序列视频码流。但是,对于奇行子序列视频,对yuv(“y”表示明亮度,也就是灰阶值,“u”和“v”表示的则是色度)分量都进行编码,而对于偶行子序列视频,仅仅进行y分量编码,即对于图2的例子,此时n=2,m=1。

由于目前视频普遍采用yuv420的格式,4个像素共用一个uv分量,所以对于偶行子序列视频码流,其所采用的uv分量可以通过奇行子序列视频码流得到,即可以通过预设的uv分量填充规则,基于奇行子序列视频码流的uv分量去填充偶行子序列视频码流的uv分量。另外,由于肉眼对于色度的敏感程度低,所以仅携带亮度信息就可以满足肉眼的需要,观感上不会有太大的差别。因此,对于偶行子序列视频,仅仅需要进行y分量编码。由于偶行子序列视频码流仅含有y分量信息,其大小要比含有yuv分量信息时要小,所以能够更好地节省带宽。

当然,本领域技术人员也可以根据实际情况,选择奇行子序列视频码流仅含有y分量信息,偶行子序列视频码流包含yuv分量信息。另外,当采用隔列的拆分方式,其所采用的方法也类似,奇偶列中的其中一列对yuv分量都进行编码,另一列仅对y分量进行编码。

在一种实施方式中,如果是通过如图3所示的隔行隔列的方式进行拆分,可以选择其中的1-3个子序列视频,对其仅进行y分量编码。

需要说明的是,至少需要保证有一个子序列视频码流包含yuv分量信息才能够保证之后能实施步骤s7,所以m≤n-1。

s4.将所述n个子序列视频码流上传到服务器。

将所有n个子序列视频码流上传到服务器。如果采用如图2所示的隔行方式拆分,则上传2个子序列视频码流至服务器,其中的偶行子序列视频码流仅含有y分量信息。相应地,如果采用如图3所示的隔行隔列的方式进行拆分,则需要上传4个子序列视频码流至服务器,该4个子序列视频码流中有1-3个仅含有y分量信息。

s5.所述服务器根据其与接收端之间的网络质量,传输k个子序列视频码流,所述k个子序列视频码流中,至少包含1个是对yuv分量都有进行编码的子序列视频码流,其中1≤k≤n。

如果采用如图2所示的隔行方式拆分,此时服务器上有2个子序列视频码流,分别是奇行子序列视频码流和偶行子序列视频码流。服务器根据其与接收端的网络质量,选择传输子序列视频码流的数量。这里必须指出的是,网络质量一般包括:带宽、丢包率、抖动和网络延时。为了方便解释,本实施例以带宽作为例子详细阐述。如果带宽足够,则所有2个子序列视频码流都传输,如果带宽不足够,则仅传输奇行子序列视频码流。这是由于奇行子序列视频码流中包含了yuv分量的信息,所以在带宽不足时要传输奇行子序列视频码流,倘若仅传输偶行子序列视频码流,则接收端无法得知色度分量的信息,从而仅得到黑白的视频。

这里必须指出的是,一个服务器是连接一个或多个接收端的,服务器与每个接收端之间的带宽都是不相同的。服务器是根据其与各个接收端之间的带宽,因地制宜地选择传输子序列视频码流的个数,即如果服务器与接收端一之间的带宽足够,服务器传输奇偶两个子序列视频码流,但服务器与接收端二之间的带宽不足够,服务器仅传输奇行子序列视频码流。另外,即使是对于同一个接收端,在不同的时刻,带宽也会产生变化,所以传输的数量也要相应地作出调整,即此刻仍是传输奇偶两个子序列视频码流,但下一刻带宽减小了,变成了仅传输奇行子序列视频码流,待到带宽足够时,又继续传输奇偶两个子序列视频码流。

如果采用如图3所示的隔行隔列的拆分方式,服务器可以根据其与接收端的带宽,选择传输子序列视频码流的数量,但要保证,至少1个子序列视频码流是对yuv分量都有进行编码的子序列视频码流。另外,此时可以根据带宽等需要,合理搭配含有yuv分量的子序列视频码流和仅含有y分量的子序列视频码流的数量。

s6.对所述k个子序列视频码流进行解码,得到k个解码后的子序列视频。

接收端接收到k个子序列视频码流后,对码流进行解码,得到k个解码后的子序列视频。这些解码后的子序列视频有的是含有yuv分量的彩色的子序列视频,有的是仅含有y分量的黑白的子序列视频。

s7.基于有yuv分量的解码后的子序列视频的uv分量,根据预设的uv分量算法,计算并填充仅有y分量的解码后的子序列视频的uv分量;此时,有k个含有yuv分量的接收到的子序列视频。

如果采用如图2所示的隔行方式拆分,当带宽足够时,接收并解码得到了奇行子序列视频和偶行子序列视频,但此时的偶行子序列视频是没有uv分量的信息的,此时可以基于有yuv分量的奇行子序列视频,根据预设的uv分量算法去计算出偶行子序列视频的uv分量,并将得到的uv分量填充到偶行子序列视频中,从而得到含有yuv分量的偶行子序列视频。通过以上操作,将黑白的偶行子序列视频填充为彩色的偶行子序列视频。

这里必须指出的是这里预设的uv分量算法是多种多样的,既包括直接采用奇行子序列视频的uv分量,也包括通过其他函数关系得出的uv分量。本领域技术人员可以对具体的设备进行测试,通过试验得出适合于设备的算法。

对于采用yuv420格式的原视频,由于奇偶行共用一个uv分量,如果对奇行子序列视频和偶行子序列视频都分别进行编码解码的话,在分别编码解码的过程中,数据难免会出现一定的偏差,这些偏差可能会导致奇偶子序列视频最终得出的uv分量不相同,当恢复还原后的视频需要继续采用yuv420格式时,奇偶行共用的uv分量的选择上就可能会出现混乱的问题。但若采用本发明的传输方式,就能够有效防止上述混乱的问题。

如果采用如图3所示的隔行隔列的方式拆分,就可以基于一个或多个有yuv分量的子序列视频的uv分量,根据预设的uv分量算法,计算并填充仅有y分量的子序列视频的uv分量。此时有可能含有多个uv分量,也可以基于多个uv分量的数据,根据不同的算法,去得出仅有y分量的子序列视频的uv分量。

s8.根据原始拆分的位置关系将所述k个含有yuv分量的接收到的子序列视频恢复成原始视频;若在原始视频恢复的过程中,当待恢复的原始视频的子图像帧不全时,通过插值计算恢复出原始图像帧。

如果采用如图2所示的隔行方式拆分,当带宽足够时,通过步骤s6、s7的操作,得到了都含有yuv分量的彩色的奇偶行子序列视频,此时根据原始拆分的位置关系,即按照奇偶行的位置,将两个子序列视频合并恢复成原始视频。当带宽不足够,仅接收到一个含有yuv分量的彩色的奇行子序列视频时,通过空间插值计算偶行子序列视频,从而得到完整的恢复后的原始视频。

相类似地,采用如图3所示的隔行隔列的方式拆分的,也用相同的方法恢复,从而获得了完整的恢复后的原始视频。

本发明实施例一中的方法能够适应用于普通的编解码器,不需要像svc那样采用专门的设备,普遍适用性高。另外,只由部分子序列视频携带uv分量信息,能够适应更低的带宽,避免了网络丢包,保持了视频通信的流畅性,同时也降低了带宽的消耗。最后,避免了拆分后的各个子序列视频的uv分量信息在编解码的过程中由于误差导致数据不一致而造成的混乱。

实施例二

相应于上述的方法实施例,本发明实施例二提供了一种视频传输系统,如图4所示,所述视频传输系统包括:发送端1、服务器2及至少一个接收端3;

所述发送端1包括:拆分模块11和编码模块12;

所述接收端3包括:解码模块32和恢复模块33;

所述拆分模块11用于将原始视频拆分为n个交织的独立的子序列视频,其中所述原始视频包括多帧原始视频图像帧,n≥2;

所述编码模块12用于对各所述子序列视频独立编码为码流,得到n个子序列视频码流;所述n个子序列视频中的m个子序列视频仅进行y分量编码,其中1≤m≤n-1;

所述服务器2用于获得所述n个子序列视频码流,并根据其与接收端3之间的网络质量,传输k个子序列视频码流至接收端3,所述k个子序列视频码流中,至少包含1个是对yuv分量都有进行编码的子序列视频码流,其中1≤k≤n;

所述解码模块32用于对所述k个子序列视频码流进行解码,得到k个解码后的子序列视频;

所述恢复模块33用于基于有yuv分量的解码后的子序列视频的uv分量,根据预设的uv分量算法,计算并填充仅有y分量的解码后的子序列视频的uv分量,得到k个含有yuv分量的接收到的子序列视频;根据原始拆分的位置关系将所述k个含有yuv分量的接收到的子序列视频恢复成原始视频;若在原始视频恢复的过程中,当待恢复的原始视频的子图像帧不全时,通过插值计算恢复出原始图像帧。

在一个实施方式中,所述拆分单元以隔行或隔列的方式将原始视频拆分为2个交织的独立的子序列视频。

在一个实施方式中,所述拆分单元以隔行隔列的方式将原始视频拆分为4个交织的独立的子序列视频。

在一个实施方式中,所述发送端1还包括:传送模块13,所述接收端3还包括接收模块31;所述传送模块13用于将所述n个子序列视频码流上传至所述服务器;所述接收模块31用于接收所述服务器传送的所述k个子序列视频码流。

实施例三

相应于上述实施例一的方法,如图5所示,本发明实施例三提供了一种视频编码方法,包括以下步骤:

s301.获取原始视频,所述原始视频包括多帧原始视频图像帧;

s302.将所述原始视频拆分为n个交织的独立的子序列视频,其中n≥2;

s303.对各所述子序列视频独立编码为码流,其中的m个所述子序列视频仅进行y分量编码,其中1≤m≤n-1。

在一个实施方式中,所述步骤s2中以隔行或隔列的方式将原始视频拆分为2个交织的独立的子序列视频,或以隔行隔列的方式将原始视频拆分为4个交织的独立的子序列视频。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1