基于RTP/RTCP主动丢包的立体视频传输研究
2015-01-02李少博王晓东陈美子章联军
李少博,王晓东,周 宇,陈美子,章联军
(宁波大学信息科学与工程学院,浙江宁波315211)
1 概述
随着多媒体技术和网络通信技术的迅猛发展,由于立体视频数据量庞大,在不稳定的网络中传输视频流容易导致码流丢失,从而降低终端视频质量,因此立体视频相关传输技术成为目前广泛研究的热点[1]。目前对传输技术的研究主要集中在传输模式、传输控制和差错控制等3个领域[2]。其中,传输模式通常有单播、广播、组播和P2P模式,单播的传输效率及带宽利用率都比较低,广播传输效率高,但产生了额外的网络流量,比较实用的是组播和P2P模式,组播效率较高,但中间路由节点管理难度较大,P2P方式传输可以通过有效分配网络带宽来解决现有的网络负载过重等问题,获得较高的传输性能,但如何实现有效分配带宽资源是难点。传输控制领域的研究重点是拥塞控制,常见的拥塞控制方法有基于窗口的拥塞控制、基于速率的拥塞控制以及基于丢包的拥塞控制。基于窗口拥塞控制方法主要是通过在发送端或者接收端调整窗口大小以实现TCP友好与公平,其调节方式主要是加性增乘性减(Additive Increase Multiplicative Decrease,AIMD);基于速率的拥塞控制根据丢包率和往返时间RTT来调整发送速率,从而实现媒体流的平滑传输。TFRC(TCP-Friendly Rate Control)是基于TCP吞吐量模型的端到端友好拥塞控制协议,能获得相对平滑的发送速率,在视频传输中应用广泛;目前,基于丢包的拥塞控制方法研究的重点是如何建立合适的失真模型以区分数据重要性,然后通过主动丢包的方式实现拥塞控制,但往往复杂度比较高。主流的差错控制技术包括前向冗余纠错(Forward Error Correction,FEC)、自动请求重传技术(Automatic Repeat Request,ARQ)和解码端错误隐藏技术,前向冗余纠错和自动请求重传技术都会增加额外负载,而解码端错误隐藏技术则不需编码端的任何反馈信息,不占用信道资源,同时不会产生额外的传输延迟,是目前最常用的差错控制技术。
本文主要研究基于编解码依赖关系的帧重要性区分方法[3],对每个GOP中的帧进行重要性划分,其中,I帧最重要,P帧次之,B帧最不重要,并标记相应的优先级,然后依据优先级分配不等的带宽。在网络拥塞时,首先满足优先级较高的数据所需带宽,同时在解码端采用错误隐藏技术,进而对视频进行修复。以此为基础,本文首先搭建基于NS2的立体视频传输平台,然后根据解码依赖关系的帧重要性区分方法和RTP/RTCP协议封装与反馈机制,在发送端实现基于重要性等级进行的调度管理方案,从而缓解网络的拥塞程度,降低重要信息在转发时的丢包几率,实现对重要信息的保护,同时能增加解码端的视频可解码帧数与视频平滑度。
2 立体视频传输平台
立体视频传输系统的构建与实现,无论是对于理论研究还是实际应用,都具有深刻的意义。首先需要分析系统的发展过程得到系统的总体框架[4]。欧盟于2002年开展了 ATTEST项目的研究[5],在ATTEST项目的基础上,MERL实验室于2004年构建了自己的立体视频传输系统,其基本的设计思想来源于ATTEST原型系统。微软亚洲研究院从交互和传输的角度出发,建立了基于 IP(Internet Protocol)组播的多视点视频传输系统[6-8],该系统定义了3种特效视频,能够为用户提供良好的视觉观赏体验。针对手持计算机、移动电话等小型便携式设备,欧盟于2008年 -2011年间建立了 Mobile 3DTV 系统[9-11]。
文献[12-13]主要实现了 MPEG,H.264等编码格式的码流在NS2平台的模拟传输,但是只考虑了单视点视频的传输仿真,并没有在提高传输效率和鲁棒性等方面做更深入的研究。本文为实现立体视频在网络中的仿真传输,在单视点视频的传输仿真基础上,提出了基于NS2的立体视频传输框架,并完成了其仿真平台的搭建工作。立体视频传输仿真框架如图1所示。
图1 立体视频传输框架
首先,在JM编码平台将左右2个视点的YUV原始序列编码得到发送端H.264文件,同时输出Trace_file文件;然后对Trace_file文件进行修正,完成后得到适合NS2传输的Send_Trace文件,再通过NS2网络模拟仿真,得到接收端的接收文件Receive_Trace;之后根据Send_Trace文件、Receive_Trace文件和发送端H.264文件,提取出接收端H.264文件;最后在JM解码平台解码得到左右视点的YUV文件,可在显示器上播放。
3 拥塞控制策略
由于传统的拥塞控制没有考虑视频的一些特点,例如帧的相关性、适量丢包容忍和延迟时限等。本文通过区分帧重要性,并依据不同重要程度进行不同的调度,适当丢弃一些不重要的数据帧,确保优先级高的数据优先传输,从而实现拥塞控制策略。
3.1 帧重要性区分
在立体视频中,各个视频帧的重要性是有差异的。目前,帧重要性区分方法主要分为2种:一种是基于编解码依赖关系的帧重要性区分方法,在一个GOP中,通常认为I帧最重要,P帧次之,B帧最不重要;另一种是根据帧重要性区分模型,对序列中的每一帧进行评估,该方法相比前一种方法来说更加准确,但计算复杂度增加,而且需要对每一帧进行计算,对编码端要求较高。本文以低复杂度为基准,采用第一种方式对帧重要性进行简单区分。
在图2中,第1列序号若为奇数,则该行是左视点帧的相关信息,若为偶数,则是右视点帧的相关信息。从表中的标记区域可以看出,I帧和P帧数据的重要性都为最高等级,而B帧的重要性等级有进一步的划分。
图2 标记区域为优先级的相关信息
在立体视频编码过程中,左视点帧只有视点内参考编码模式,而右视点帧既有视点内编码又有视点间编码模式,即右视点中的部分帧在编码时参考了左视点对应帧的信息,由此可知,如果左视点帧丢失不仅会影响左视点后续帧的解码,同时将会影响右视点当前帧以及后续帧的解码,而右视点帧丢失则不会出现这种现象。所以在对B帧进行进一步重要性划分时,充分考虑立体视频编码特性,认为左视点B帧的重要性要高于右视点对应时刻的B帧。
因此,如图2中所示,右视点的B帧重要性等级为3,即为最不重要数据,左视点的B帧等级为2,为次重要数据。
3.2 调度策略
依据帧的不同重要性进行不同优先级的划分,并根据RTP/RTCP协议封装与反馈机制,在发送端主动丢弃不重要的帧信息,缓解网络的拥塞程度,降低重要信息在转发时的丢包几率,从而最终实现对重要信息的保护。具体调度策略过程如下:
(1)在数据打包成RTP数据包时标记相对应的优先等级。
(2)将打包后的RTP数据包根据等级存放在不同等级的队列中,利用RTCP的反馈信息(如丢包、延时、抖动等),按照不同优先级,以一定的比例去调度不同等级队列中的数据包,优先级高的队列发送比例越大,具体流程如图3所示。
图3 基于RTP/RTCP主动丢包的调度流程
目前,在队列调度的研究成果中主要有3种调度算法:轮询式的调度算法,保证优先级的调度算法以及比例公平的调度算法。轮询式的调度算法是最公平的,但同时其性能也被认为是最低的。保证优先级的调度算法的优点在于实现比较简单,同时它能为不同业务提供不同等级的服务;缺点在于,如果高优先级队列不为空,那么低优先级队列中的分组就难以得到服务。比例公平的调度算法的原则是通过控制带宽资源的分配,使得各优先级业务在指定的QoS参数上符合给定的比例。如果用,i=1,2,…,K;j=1,2,…,n 代表第 i个优先级的第 j个性能参数,K代表系统提供的业务优先级类别总数,n代表要保持比例公平的性能参数个数,则比例公平原则可以表示为:
本文依据反馈丢包信息作为性能参数,其优先级之比即为调度主动丢包个数之比:
其中,Δpac_num()为反馈间隔内该等级数据的数据包个数;Δtaltol_pac_num则为当前反馈间隔内所发送数据包个数;pri(i,j,k)表示优先级比例。根据比例公平队列调度算法的思路,在对数据包进行调度时,采用主动丢包的方式,对低优先级的数据采用最大比例丢弃,相反等级越高丢弃比例越低,如式(3)所示:
其中,dis(i,j,k)为不同等级主动丢弃比例;high,mid,low分别对应相应的等级数据,比例公平的调度算法一方面考虑了不同队列优先级的差异,另一方面考虑了不同队列的公平性,是一种综合性的解决方案。具体算法如下:
当出现拥塞,但丢包个数小于阈值limmin时,只丢弃最低等级的数据,即pri=3的数据,丢弃个数根据丢弃比例而定;当拥塞进一步加剧,反馈间隔内丢包个数处于limmin与limmax之间时,根据丢弃比例,对pri=3和pri=2的帧按照一定的比例进行主动丢弃;当严重拥塞时,则3个等级的帧按照比例都要丢弃;当不拥塞以及其他时刻,数据均正常发送。
4 实验结果与分析
4.1 立体视频编码及码流信息提取
根据本文提出的立体视频传输框架,首先需要对2个视点的原始序列通过JM18.6编解码平台进行编码获得H.264码流以及Tracefile文件;再根据Tracefile文件提取如图2格式的相关数据信息,得到一个适于模拟传输的Send_Trace。
4.2 TCL脚本与网络拓扑
在NS2网络模拟器中,网络拓扑结构的搭建都是通过编写TCL脚本来实现的,为了满足实验的需要,本文搭建了如图4所示的网络拓扑结构。
图4 传输网络拓扑
图4中包含了2个发送节点、2个接收节点以及2个路由转发节点,本文采用基于RTP/RTCP协议的流媒体传输,其中,RTP Sender和RTP Receiver就是建立在该协议基础进行传输的。对于UDP Sender和UDP Receiver加入是为了在传输期间提供一个竞争机制,制造拥塞情况的发生,从而调用发送端的主动丢包算法,实现对重要信息的保护。
4.3 码流提取及解码
搭建网络拓扑结构以后,运行脚本文件,模拟流媒体在网络中的传输,在通过码流提取得到接收端H.264文件,解码得到如图5所示的结果。
在该实验中,左右视点共编码180帧,即左右视点各90帧,可以看到如果不采用任何主动丢包拥塞控制策略的情况下,接收端只能解码出13帧的数据,如图5中左侧的一组图所示;而采用了主动丢弃策略以后能够解码出15帧的数据,如图5中间图所示,可解码的帧数有明显增加。最后采用基于重要性的主动丢包的策略后,可解码帧数又明显增加,如图5右侧图所示,从图5上下图中还可以看出,由于采用基于右视点B帧重要性比左视点对应位置B帧高的主动丢包策略,使得左视点可解码帧数多于右视点。
表1中3组序列,每组序列左右视点均为90帧。通过3组不同序列的解码帧数可以看出,采用主动丢包的策略后,可以提高接收端的解码帧数,通过区分帧的重要性,对不同的帧有区别的进行丢弃,保护重要性高的数据,可解码帧数又明显增加,提高了视频的流畅度和观赏效果。
表1 不同序列可解码帧数及提高比例
5 结束语
本文搭建了一个基于NS2的适合立体视频传输的仿真平台,并在此平台上进行基于RTP/RTCP协议的主动丢包的立体视频传输的研究,该主动丢包策略在现有网络条件下,能有效保护视频序列中较重要的数据,增加解码端的可解码帧数,提高视频的平滑性和用户的观看质量。在主动丢包的过程中,由于大部分帧都没有超过一个数据包的大小,都是采用主动丢帧的方式,对于可拆分为多个包的帧来说,并非这一帧内所有的宏块都是重要的,因此如何根据不同宏块的重要性进行主动丢包将是下一步研究的重点。
[1] 周 洋,蒋刚毅,郁 梅,等.面向HBP编码格式的立体视频B帧整帧丢失分层错误隐藏算法[J].电子与信息学报,2014,36(2):377-383.
[2] 王腾飞,王晓东,胡彬彬,等.交互式立体视频系统传输质量研究[J].宁波大学学报,2014,27(1):37-43.
[3] 乐德广,靳 勇,郭东辉,等.基于帧重要性认知的网络差错控制策略[J].通信学报,2011,32(11):11-20.
[4] 杨 铀,郁 梅,蒋刚毅.交互式三维视频系统研究进展[J].计算机辅助设计与图形学学报,2009,21(5):569-574.
[5] Redert A,de Beeck M O,Fehn C,et al.ATTEST:Advanced Three-dimensional Television System Technologies[C]//Proceedings of International Symposium on 3D Data Processing Visualization and Transmission.Thessalonikj,Greece:IEEE Press,2002:258-264.
[6] Vetro A,Matusik W,Pfstef H,et al.Coding Approaches for End-to-end 3DTV Systems[C]//Proceedings of Picture Coding Symposium.San Francisco,USA:IEEE Press,2004:215-222.
[7] Matusik W,Pfister H.3DTV:A Scalable System for Real-time Acquisition,Transmission and Autostereoscopic Display of Dynamic Scenes[J].ACM Transactions on Graphics,2004,23(3):814-824.
[8] Lou Jianguang,CaiHua,LiJiang.A RealTime Interactive Multi-view Video System[C]//Proceedings of the 13th Annual ACM International Conference on Multimedia.New York,USA:ACM Press,2005:548-557.
[9] Zuo Li,Lou Jianguang,Cai Hua,et al.Multi-cast of Real-time Multi-view Video[C]//Proceedings of International Conferenceon Multimedia and Expo.Washington D.C.,USA:IEEE Press,2006:326-333.
[10] Lou Jianguang,Cai Hua,Li Jiang.Interactive Multiview Video Delivery Based on IP Multicast[J].Advances in Multimedia,2007,25:97535-97542.
[11]Mobile 3DTV Content Delivery Optimization over DVBH System[EB/OL].(2012-10-21).http://sp.cs.-tut.fi/mobile3dtv/results/summaries/Mobile3D-TV_FinalPublic Summary.pdf.
[12] Ke C H,Shieh C K,Hwang W S,et al.An Evaluation Framework for More Realistic Simulations of MPEG Video Transmission[J].Journal of Information Science and Engineering,2008,24(2):425-440.
[13] Ke C H. myEvalSVC:An Integrated Simulation Framework forEvaluation ofH.264/SVC Transmission[J]. KSII Transactions on Internet and Information Systems,2012,6(1):378-393.