面向移动立体电视的高容错编码方案设计*
2010-06-26彭宗举
周 洋 ,彭宗举 ,张 云
(1.杭州电子科技大学 通信工程学院,浙江 杭州 310018;2.宁波大学 信息科学与工程学院,浙江 宁波 315211)
1 引言
随着立体显示技术的不断发展,立体视频服务已越来越贴近广大消费者,应用在手机立体电视等移动终端中[1]。与传统的单通道视频相比,立体视频需两路信号,要处理的数据量成倍增加,仅仅依靠网络带宽的提高和存储容量的提升是无法从根本上解决这个问题的,需要采用高效的视频压缩技术,才能对立体视频数据进行有效的存储和传输。但是视频信号在传输中,尤其是在无线网络中传输,传输差错是不可避免的,应在编码中考虑压缩后视频流传输的稳健性。
早期的立体视频编码是以MPEG-2编码标准为基础,文献[2]在MPEG-2标准上提出了3种编码方案,其中联合运动补偿预测 (Motion Compensation Prediction,MCP)和视差补偿预测(Disparity Compensation Prediction,DCP)的编码方案最佳。目前的立体视频编码大多是基于H.264编码标准来实现的,典型的立体编码方法有 Simulcast编码法[3]、运动补偿预测加视差补偿预测(MCP+DCP)的编码法[4]和单视点图像加对应深度图的编码法[5]。
以上立体视频编码主要以获得更高的压缩效率为目的,并未考虑压缩后视频流的抗差错能力。另外,H.264等视频压缩标准都使用了预测编码和可变长编码,使得经过压缩的数据流对于传输差错特别敏感。因此,为了提高移动立体视频编码的抗差错性能,笔者引入灵活宏块排序技术(Flexible Macroblock Order,FMO),将左右视点图像进行交织,从而使压缩数据流的容错性得到改善,同时也具有良好的率失真性能。
2 高容错立体视频编码
图1为本文立体视频编码方案的预测结构,左视点图像存放在顶场中,右视点图像存放在底场中,将左右图像以宏块为单位进行交织后合成如图2所示的棋盘形分布图。为了与单视点视频服务保持兼容,立体视频编码预测结构中的左视点图像(图2中白色区域)采用基于H.264编码标准进行独立压缩编码,预测结构采用IPPP。右视点图像(图2中黑色区域)除了参考先前时刻的相邻帧进行运动补偿预测外,还利用视点间相关性,参考左视点相邻帧进行视差补偿预测,提高编码的率失真性能。
新的H.264/AVC标准[6]定义了立体视频信息的补充增强信息 (Supplemental Enhancement Information,SEI),用来表示立体视频编码中的一些辅助信息。因此可通过修改SEI语法元素来实现立体视频编码,同时由于只修改SEI内容,还能使码流保持良好的前向兼容性。立体视频编码程序的具体实现步骤为:
1)将SEI中的field_views_flag设置为1,表示采用场编码方式。并将top_field_is_left_view_flag设置为1,使顶场存放左视点图像,底场存放右视点图像。这样,一帧图像的顶场和底场分别对应立体视频序列的左、右视点图像。
2)为使用户能自由选择观看立体视频或单通道视频,同时与传统的单通道视频服务保持兼容,这便要求立体视频流既能完全解码成2个通道的数据,也能只解码1个通道的数据。因此,将语法元素left_view_self_contained_flag设置为1,将left_view_self_contained_flag设置为0,即左通道视频只采用运动补偿预测,而右通道视频采用运动补偿加视差补偿的联合预测方法。
3)采用H.264标准中FMO模式中的棋盘型模式,将各片通过宏块分配映射表,将左右视点图像交织成如图2所示的宏块位置分布图,其中白色区域为顶场,黑色区域为底场。最后,顶场和底场合成一帧通过H.264/AVC编码器实现立体视频压缩编码。
整个具有高容错性的棋盘式立体视频编码的实现框图如图3所示。
图3 棋盘式立体视频编码实现框图
3 实验分析
3.1 率失真性能
为了测试本文方法的优劣,实验仿真了Simulcast法[3],DCP+MCP法[4]及本文方法的率失真性能。测试序列选用韩国ETRI研究所的标准立体视频序列Puppy(见图4),其分辨力为720×480,具体的仿真参数设置见表1。
图4 Puppy序列的左右视点图像
表1 实验仿真参数设定表
图5为各编码算法的率失真性能曲线。由图5可知,本文算法性能优于单通道独立编码的Simulcast法,由于采用了联合运动补偿预测和视差补偿预测,能实现与MCP+DCP法相似的率失真性能,但是本文算法是在SEI中改写语法元素代码实现的,比传统的MCP+DCP法具有更好的与H.264标准的兼容性。
图5 Puppy序列率失真性能曲线
3.2 抗差错性能
压缩后的视频流在传输中,尤其是在无线传输中,由于信道扰动或网络拥塞常常会出现数据包丢失,从而导致解码出错且错误不断传递,影响观看质量。对此,本方案采用了上下场宏块交织的棋盘形排列片组编码方式,当图像中的某片丢失时,由于交织的作用,其周边相关性大的相邻块并未丢失,有利于丢失区域的恢复。为了分析本文算法的抗差错性能,将本文算法与具有良好率失真性能的MCP+DCP法的错误恢复性能进行了比较。仿真中编码码流的QP值为28,设右视点某帧图像的片丢失率为10%。
图6为出错的右视点第6帧图像,其中图6a为普通出错类型,图6b为经棋盘形交织后的出错类型,出错帧经H.264校验软件JM10.2中的差错隐藏程序[7]进行错误恢复。图7a和图7b分别为MCP+DCP法和本文算法编码后码流的差错恢复结果,本文算法解码后图像的PSNR值比MCP+DCP法提高0.59 dB。
为了进一步验证本文方法的抗差错性能,对编码QP值分别为22,28,34,40的码流在传输中出错的差错恢复性能进行仿真。设片丢失率为10%,出错区域分别位于视频序列的不同帧、不同位置,通过重复实验获得平均PSNR值。表2为不同QP值下本文方法与MCP+DCP法的容错性比较结果。它表明相比于采用传统MCP+DCP编码框架,在QP值为28时,本文方法的容错性能提高0.51 dB,并随着QP值的减小,平均PSNR增益更显著。
表2 不同QP值下的平均PSNR增益/dB
4 小结
通过H.264/AVC标准中的立体视频SEI来实现立体视频编码,直接与H.264兼容,无须改写现有的视频编解码器。同时针对移动无线视频流传输易出错的问题,在编码中利用FMO技术,将左右视点图像宏块交织成棋盘形分布的排列形式,提高了传输的容错性。此外,采用联合视差补偿预测和运动补偿预测的编码结构,具有良好的率失真性能。
[1]TECH G,SMOLIC A,WIEGAND T,et al.Optimization and comparison of coding algorithms for mobile 3DTV[C/OL]//Proc.3DTV Conference,2009.Potsdam, Germany:3DTV-CON, 2009[2009-09-01].http://sp.cs.tut.fi/mobile3dtv/results/conference/16_Tech%20et%20al_May09.pdf.
[2]张勇东,李桂苓.基于MPEG-2的3DTV视频编码方案的研究[J].电视技术,2000,24(9):15-16.
[3]SMOLIC A, MULLER K, OSTERMANN J, et al.Coding algorithms for 3DTV-a survey[J].IEEE Trans.Circuits and Systems for Video Technology,2007,17(11):1606-1621.
[4]李世平,蒋刚毅,郁梅.基于H.264的立体视频编码方法[J].计算机工程与应用,2005,41(1):77-79.
[5]METKLE P, WANG Y, MULLER K,et al.Video plus depth compression for mobile 3D services[C/OL]//Proc.3DTV Conference,2009.Potsdam,Germany: 3DTV-CON, 2009.[2009-09-01].http://sp.cs.tut.fi/mobile3dtv/results/conference/13_MerkleBrust20et%20al_May09.pdf.
[6]ITU-T Recommendation H.264.Advanced video coding for generic audiovisual services[S].2007.
[7]JVT reference software[EB/OL].[2009-03-07].http://iphome.hhi.de/suehring/tml/download/old_jm/.