一种多视视频码流的网络传输码率平滑方法转让专利

申请号 : CN201110285926.6

文献号 : CN102355577B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周军顾锋王凌杰孙洪仲

申请人 : 上海交通大学

摘要 :

本发明公开一种多视视频码流的网络传输码率平滑方法,方法为:对要传送的多视复用码流进行解析,获取各个视点码流的视频参数信息,分离各个视点数据。为每个视点码流开辟两级缓冲区,为第二发送缓冲区设置阈值。将分离后的各视点数据缓存到各自的第一发送缓冲区中。第一发送缓冲区确定自身的发送控制信息,控制当前的数据发送速度向下级第二发送缓冲区发送数据包。第二发送缓冲区周期性检测自身空间使用值,根据使用值处于的阈值区间自适应调整向外发送数据包的速度。为每个视点码流开辟独立的实时传输流,采用多线程技术异步同时发送各自第二发送缓冲区送出的数据包。本发明能在根本上解决码流突发传输时剧烈的码率抖动现象。

权利要求 :

1.一种多视视频码流的网络传输码率平滑方法,其特征在于包括以下步骤:

第一步:解析要传输的多视复用码流,获取每个视点码流的参数信息,分离各个视点数据;所述的码流解析指对复用的多视TS传输流进行解析,基于TS包扩展参数与视点编号的对应关系区分不同视点的码流;

第二步:为每个视点码流开辟两级发送缓冲区,分别称为第一发送缓冲区和第二发送缓冲区,为第二发送缓冲区设置阈值,将分离的各视点数据分别缓存到各自的第一发送缓冲区中,供第三步,第四步使用实现;

第三步:每个视点码流的第一发送缓冲区根据缓存到其中的数据的大小与各自的帧率确定当前的发送控制信息,根据控制发送信息向第二发送缓冲区中发送数据包,平滑因各视点码流分离引入的码率抖动;

第四步:每个视点码流的第二发送缓冲区根据自身空间使用率自适应调整向外部发送数据包的速度,向外发送数据包,平滑各个视点码流自身固有的码率抖动;

第二发送缓冲区根据自身空间使用值周期性调整发送数据包的速率,平滑各视角码流自身固有的码率抖动,以主码流第二发送缓冲区解释缓冲区2的自适应调整功能:为缓冲区2设置三个阈值,分别为阈值1,阈值2,阈值3,其中阈值1最小,阈值3最大;设置阈值

1为主码流中3个B类型帧的大小之和,设置阈值2为主码流中一个P类型帧与2个B类型帧大小之和,设置阈值3为主码流中一个I类型帧与2个B类型帧大小之和;缓冲区2周期性检测自身空间使用值,再确定使用值处于的阈值区间,根据阈值区间确定下一个检测周期前的缓冲区2发送数据的速度;缓冲区2的检测周期由帧率确定,设主视角码流的帧率为25帧每秒,那么检测周期就为40毫秒;缓冲区2的自适应调整功能为:(1)阈值1<使用空间值<阈值2,发送速度=(阈值1*帧率)/3;(2)阈值2<使用空间值<阈值3,发送速度=(阈值2*帧率)/3;(3)使用空间值>阈值3,发送速度=(阈值3*帧率)/3;

第五步:为每个视点码流开辟独立的实时传输流,采用多线程技术异步同时发送各自第二发送缓冲区送来的数据。

2.根据权利要求1所述的多视视频码流的网络传输码率平滑方法,其特征是,第二步中,所述的两级缓冲区是指开辟两个缓冲区,分为两级,第一缓冲区为第一级,第二缓冲区为第二级,缓冲区阈值是缓冲区空间的标尺,用来为第四步服务。

3.根据权利要求1所述的多视视频码流的网络传输码率平滑方法,其特征是,第三步中,所述的发送控制信息是一个控制数值,该数值确定第一发送缓冲区当前的数据发送速度;发送控制信息由每个视角码流的帧率与每帧大小确定,控制第一发送缓冲区向外发送数据包。

说明书 :

一种多视视频码流的网络传输码率平滑方法

技术领域

[0001] 本发明涉及一种图像通信领域的方法,具体是一种用于在多视视频码流的网络传输中稳定传输码率的方法。

背景技术

[0002] 网络立体电视系统除涉及到立体电视相关的节目制作、立体电视视频格式、立体视频压缩编码及码流的系统复用、立体电视视频码流的解码、立体电视显示等多个环节外,由于立体视频比传统的平面二维视频具有更多视角的视频需要编码、传输,在与网络电视传输技术结合时,立体视频势必需要占用更多的网络带宽。在多视编码的立体电视进行网络分发过程,要求能够针对不同的接收终端的显示能力需要,推送不同视角数据的视频码流数据,这一过程可通过多视视频码流的可分离方法进行网络传输。针对多视视频码流的可分离网络传输,为了更好地适应复杂的网络带宽状况,就需要特别的考虑多视角立体视频信号的网络可信传输与码率控制。
[0003] 基于向下兼容性的考虑,即多视立体视频不仅要能满足自由视立体显示终端的要求,同时也要满足戴眼镜的双视立体显示终端或传统平面电视终端的要求,同时考虑接入网络传输带宽的利用效率,多视立体视频码流传输时必须做到传输带宽与各类异构终端的自匹配,即要求各个视角编码后的视频码流能够分离并独立进行网络传输,终端可以选择性地接收单个视角、其中两个视角或者全部视角的视频码流。许冠宇等人于2009年在《中国图像图形学报》第14卷第10期上发表的“同步多视角码流的视角可分级传输”一文中研究了具体实现技术。多视立体视频传输方法将各个视点的码流分离后通过不同的实时传输流发送,这时就会存在各个视点的码流分离后单视角码流码率抖动过大的问题。
[0004] 多视立体视频传输方法将各个视点的码流分离后通过不同的实时传输流发送。但是由于多视角视频码流中不同视角码流的数据包是按照视角不同循环出现的,在传输某个视角视频码流数据包时,只会根据视角信息选择发送或不发送,按其在原码流中顺序所发送的某一视角的视频码流仅为多视立体视频码流中的一部分。所以各个视点的码流分离后码率会因突发传送呈现方块现象,出现巨大的码率抖动,其所需的瞬时带宽将会是其实际所需带宽的数倍,多视立体视频的视角越多则所需瞬时带宽越高。在网络传输过程中,突发的码率抖动会对网络节点与接收终端造成冲击。更加容易因网络拥塞而造成视频数据包的丢失影响视频质量。因此,多视角独立传输系统需要一套码率平滑机制来降低各个视点的码流分离后引起的码率抖动。
[0005] 经对现有技术的文献检索发现,Wu-chi Feng 和 Jennifer Rexford 于1999年在 IEEE Transactions on Multimedia 上发表的“Performance Evaluation of Smoothing Algorithms for Transmitting Prerecorded Variable-Bit-Rate Video”一文总结了几乎现有所有的视频码流传输过程中的码率平滑方法,并比较了各种方法的性能。文中提出的码率平滑方法:1、最小带宽增加次数;2、最小带宽改变次数;3、最小带宽变化需求数;4、使用最小预缓冲区;5、带宽周期性变化;6、通过动态编码使代价矩阵最小。这六种码率平滑方法都有各自的优点,也能够对传统的二维视频码流传输过程中码率抖动进行很好的平滑。但是以上方法都只是针对二维视频,多视立体视频码流各视角独立传输过程中引起码率抖动的机制与传统的二维视频不同。所以文中提出的各种平滑方法不能适用于多视立体视频网络传输。

发明内容

[0006] 本发明的目的在于克服现有技术中的不足,提出一种多视视频码流的网络传输码率平滑方法,在各个视点码流发送进入网络之前进行独立平滑,能够在根本上解决码流突发传输时剧烈的码率抖动现象,降低了单视角视频码流分离传输时对网络的冲击与视频数据包丢失的风险,提高多视角码流实时传输质量,提高了系统的稳定性。
[0007] 本发明是通过以下技术方案实现的:
[0008] 本发明所述的多视视频码流的网络传输码率平滑方法包括以下步骤:
[0009] 第一步:解析要传输的多视复用码流,获取每个视点码流的参数信息,分离各个视点数据;
[0010] 第二步:为每个视点码流开辟两级发送缓冲区,分别称为第一发送缓冲区和第二发送缓冲区,为第二发送缓冲区设置阈值,将分离的各视点数据分别缓存到各自的第一发送缓冲区中;
[0011] 第三步:每个视点码流的第一发送缓冲区根据缓存到其中的数据的大小与各自的帧率确定当前的发送控制信息,根据控制发送信息向第二发送缓冲区中发送数据包,平滑因各视点码流分离引入的码率抖动;
[0012] 第四步:每个视点码流的第二发送缓冲区根据自身空间使用率自适应调整向外部发送数据包的速度,向外发送数据包,平滑各个视点码流自身固有的码率抖动;
[0013] 第五步:为每个视点码流开辟独立的实时传输流,采用多线程技术异步同时发送各自第二发送缓冲区送来的数据。
[0014] 第一步所述的码流解析指对复用的多视TS传输流进行解析,基于TS包扩展参数与视点编号的对应关系区分不同视点的码流。
[0015] 第二步所述的两级缓冲区是指开辟两个缓冲区,分为两级。第一缓冲区为第一级,第二缓冲区为第二级。缓冲区阈值是缓冲区空间的标尺,用来为第四步服务。
[0016] 第三步所述的发送控制信息是一个控制数值,该数值确定第一发送缓冲区当前的数据发送速度。发送控制信息由每个视角码流的帧率与每帧大小确定,控制第一发送缓冲区向外发送数据包。
[0017] 第四步所述的自适应调整发送速度是指第二发送缓冲区周期性根据自身空间使用值调整向外发送数据的速度。根据使用空间在不同的阈值区间调整向外发送数据的速率。使用空间处于低阈值区间时,低速发送;使用空间处于高阈值区间时高速发送。
[0018] 与现有技术相比,本发明具有以下有益的效果:本发明可以采用软件实现多视视频码流的网络传输中的码率平滑,根据多视视频码流传输中引发码率抖动的机制,设计为各视点码流独立进行两级码率平滑。从根本上消除了多视传输中单视点码流码率的方块现象,并且对消除码率方块现象的单视点码流进行了再一次码率平滑,有效地改善了码流抖动与突发传送状况,降低了单视点码流的瞬时网络带宽需求,减轻了网络与接收终端抗抖动负担,保证多视视频的网络传输质量。

附图说明

[0019] 图1是本发明方法示意图;
[0020] 图2是码流分离与帧读取的示意图;
[0021] 图3是第一发送缓冲区功能实现示意图;
[0022] 图4是第二发送缓冲区自适应调整功能示意图。
[0023] 具体实现方式
[0024] 下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0025] 图1为本发明方法的示意图,本方法的功能由三个部分实现。第一部分首先对要传送的多视复用码流进行解析,获取各个视点码流的视频参数信息,并且周期性分离各个视点数据,视点数据分离周期由帧率决定。第二部分将分离得到的各视点数据存到各自的第一发送缓冲区中,根据帧率与缓存的一帧数据的大小确定当前的发送控制信息,按照发送控制信息发送当前缓存数据,消除多视复用码流视点分离后码率的方块现象。第三部分第二发送缓冲区周期性根据自身空间使用值自适应调整向外发送数据包的速度平滑各个视点视频自身固有的码率抖动。
[0026] 图2为本发明方法码流分离与帧读取的示意图,一种方法是在将多视码流系统层复用为MPEG2-TS流时,建立TS包头部PID字段与视点编号的对应关系表,对不同视点码流标记不同PID值。解析复用后的TS流,通过PID字段分离各视点码流,并将分离后的各视点数据缓存到各自的第一发送缓冲区中。
[0027] 图3为第一发送缓冲区功能实现示意图,第一发送缓冲区是为了消除各视点分离后单视点码流码率的方块现象。第一发送缓冲区将要直接发送的各个视点的数据进行缓存,同时根据各视点码流的帧率与帧的大小确定发送控制信息,消除码率方块性抖动,降低每个视点码流的瞬时码率。减少带宽需求。
[0028] 图4是第二发送缓冲区自适应调整功能示意图,第二发送缓冲区根据自身空间使用值周期性调整发送数据包的速率,平滑各视角码流自身固有的码率抖动。图4以主码流第二发送缓冲区为例解释缓冲区2的自适应调整功能。为缓冲区2设置三个阈值,分别为阈值1,阈值2,阈值3,其中阈值1最小,阈值3最大。设置阈值1为主码流中3个B类型帧的大小之和,设置阈值2为主码流中一个P类型帧与2个B类型帧大小之和,设置阈值3为主码流中一个I类型帧与2个B类型帧大小之和。缓冲区2周期性检测自身空间使用值,再确定使用值处于的阈值区间,根据阈值区间确定下一个检测周期前的缓冲区2发送数据的速度。缓冲区2的检测周期由帧率确定,假设主视角码流的帧率为25帧每秒,那么检测周期就为40毫秒。缓冲区2的自适应调整功能为:(1) 阈值1<使用空间值<阈值2,发送速度=(阈值1*帧率)/3;(2) 阈值2<使用空间值<阈值3,发送速度=(阈值2*帧率)/3;(3)使用空间值>阈值3,发送速度=(阈值3*帧率)/3。
[0029] 本发明可以基于软件环境实现,在各个视点码流发送进入网络之前进行独立平滑。针对多视视频传输方法中各视角视频码流码率抖动的特点,设计使用两级缓冲来分别平滑因各视角码流分离引起的码率抖动与单一视角视频码流自身固有的码率抖动。本发明上述方法能够在根本上解决码流突发传输时剧烈的码率抖动现象,降低了单视角视频码流分离传输时对网络的冲击与视频数据包丢失的风险,提高多视角码流实时传输质量,提高了系统的稳定性。