立体视频信号丢帧的误差分析模型

2011-07-24 03:18刘金根李志强
关键词:视点编码误差

刘金根,柳 鑫,李志强

(武汉理工大学信息工程学院,湖北武汉430070)

随着3D(three-dimensional)应用的发展,如3D电视、自由视点电视,多点视频编码(multiview video coding,MVC)作为一种3D视频的实现方案,其实现和传输也得到了越来越多的关注[1-3]。由于标准的因特网服务模式为尽力服务模式,在网络接口发生拥塞时,则丢弃数据包,直到业务量减少[4-5]。视频作为一种常用的实时流媒体,会因数据包的丢失,引起视频质量的下降。为了提高视频的容错能力,众多提高视频流容错性的技术得以提出,如错误隐蔽[6]、前向纠错编码和非平等差错保护[7-8](UEP)等,这些技术在编码端的参数选择,对视频传输后得到的最终效果有重大影响。视频传输的误差分析模型,作为一种评估手段,对在视频编码和传输过程中的参数选择以及错误隐蔽的参数选择有重要意义,如用于非平等差错保护和前向纠错编码的参数选择。笔者基于MVC的复杂编码的预测结构,在理论分析和实验的基础上,提出了一种丢包引起的误差估计模型及其算法,该算法不仅考虑了视点内的误差传播,也考虑了视点间的误差传播,具有良好的可行性和可扩展性。通过验证结果可以看出,该模型能准确估计视点内和视点间由丢帧引起的误差。

1 MVC编码及结构

与传统的视频结构不同,典型的立体视频包含两路视频,称为左视点和右视点,分别对应人左眼和右眼所观察到的图像。多点视频编码通常指同时对多个视点进行编码,而3D视频可以理解为是多点视频编码只有左右两个视点的一种特殊形式。由于3D视频有两个视点,其存储和传输的数据量为传统视频的两倍[9]。而多点视频的编码由于其大量的数据,使得其对数据压缩有着很高的要求[10]。联合视频组开发了用于多点视频编码的编解码工具JMVM,其引入了视点间预测,使得编码后的多视点视频的数据量大大减少,使3D视频需要传输的数据量只有传统视频的1.2倍左右[11]。JMVM典型的3D视频的编码结构如图1所示。

图1 3D编码典型预测结构

结构中GOP(group of pictures)的长度为8,在JMVM的结构里,GOP长度一般为2n,这样其编码的预测结构就是这种典型模式的扩展。如图1所示,左视点的帧除了用于自己视点内的预测之外,还被用于右视点的预测,这样当编码后左视点的帧在传输过程中丢失之后,不仅会给自己所在的视点引入误差,还会在右视点引入误差,并且这个误差也会在右视点中传播,其传播过程与在左视点里传播的过程相同。

2 误差分析模型

MVC视点间的预测结构比较简单,但其视点内的预测结构比较复杂,且其预测方式决定了相应帧的编解码顺序。MVC的编码结构与GOP的长度有关,在提出的模型中,用2n(n=1,2,3,…)来表示所编码的GOP的长度,为了简化模型,假设在传输过程中,所有的I帧和P帧都是正确接收的。为了便于描述模型,可用图2描述GOP长度为8的编码的部分结构。

图2 编码预测的部分结构

根据GOP的长度将整个GOP分成几个等级,图2中的算式表明其在GOP中的位置。等级的数目由GOP的长度决定。一个长度为2n的GOP,可以分为n-1个等级,用参数l表示其等级,最高层为l=n且l等级中包含的帧的数目为2n-l-1,可根据每帧在GOP中的位置确定其所在的等级。为了方便表示这个GOP位置中某帧的等级,先定义一个整数型算子v(j),该算子表示的意义是整数j(j表示帧在GOP中的位置)可以被整数2整除的次数(例如:v(3)=0,v(4)=2,v(5)=0,v(6)=1)。在GOP中位置为j的帧相应在金字塔中所处的等级可用式(1)表示:

这里j=0表示的是I帧或P帧,定义其为最高等级,由于其总是正确接收,因此不会产生错误传播。图2中箭头表示预测的结构,如果在这个金字塔形的结构中某帧丢失,其差错就会沿着箭头传播,很明显,处于越高等级的帧丢失,其错误传播影响的范围就会越大。

峰值信噪比(peak signal-to-noise ratio,PSNR)和均方误差值(mean square error,MSE)是最典型的误差客观评价标准,MSE通过简单的换算可以得到相应的PSNR值。在所提出的模型中,使用均方误差值作为对图像误差的评价标准。

MSE的计算方法如下:

式中:fj为序列中第j帧的原始无损图像;f'j为产生了差错的图像;xij和yij分别为原始序列和产生误差后的序列中第j帧的第i个像素的像素值;X、Y分别为视频序列的长和宽。

首先,分析视点内的误差传播过程。由于视点内的预测结构比较复杂,需要根据GOP的长度将其分成多个过程来分析。图3为当等级最高的B(GOP中位置为2n-1)帧丢失时,错误从高等级向低级传播的完整过程,为了标明该模型的可扩展性,在图3中使用GOP长度为16的结构,但是只画出了其中的前半部分,未画出的部分和画出的部分是一个对称结构。

图3 错误传播过程的拆分

如图3所示,将其过程拆分为3个过程,表示从各个等级到其相应的下一个等级的误差传播情况。虽然图3中只表示出了其中的前半部分,在省略号部分中,还有相应对称的错误传播部分。图3中α(0<α<1)为定义的视点内的错误传播衰减系数,在试验和模型验证部分,通过实验验证所有可能丢掉的帧丢掉时引入的误差,并且在大量的实验和数据统计的基础上,采用回代的方法得到相应的α值。

以左视点为例,假设2n-1(n=4)帧丢失,其丢失本身所带来的损耗为djL,在这种情况下其引起的误差传播过程可以用式(3)表示:

由以上分析可知,由左视点GOP位置为2n-1帧丢失所引起的该视点内的误差是以上从高等级到低等级传播过程的叠加,再加上其本身引入的误差,可以表示为:

将式(4)进行推广,可得点内GOP中对于任意位置为j的帧丢失所引入的总误差DjLin为:

为方便后面的表示,定义另外一个算子s(j),其定义如下:

式(5)则可以表示为:

式(7)表示在左视点内某个GOP中位置为j的帧丢失所带来的误差。引入另外一个参数β,用于描述误差从左视点到右视点传播时的衰减,类似于α的值,β的值也需要通过实验和回代的方法得到。这样,从左视点到右视点的误差可以用式(8)描述:

由于右视点的预测结构与左视点相同,因此,从左视点引入右视点的总误差可以表示为:

这样,该帧丢失时在左右两个视点引入的总误差可以用式(10)表示:

由于左视点与右视点的视点内预测结构相同,因此,右视点一个GOP中位置为j的帧丢失引入的误差为:

模型还可以给一个序列中的每个GOP定义不同的衰减系数,或在不同的等级内采用不同的衰减系数来提高其预测精度,但随着衰减系数数目的增加,模型的复杂程度和与之相对应的模型计算量也会增加。

3 实验和模型验证

该模型首先通过实验计算出相应的α和β值,并将实验测试所得到的α和β代入算法模型中,并对该模型进行验证。以Ballroom序列为例,在实验中,使用Ballroom序列作为测试序列,Ballroom序列是一个具有8个视点(0~7视点)的MVC测试序列,使用其中0视点作为左视点,1视点作为右视点来实现立体视频编码。编解码工具为JMVC 4.0,编码的基本参数如表1所示。

表1 编码参数设置

实验中引入了相应的错误隐蔽机制,使用最常用的拷贝前一帧的方法。这里所指前一帧并不是在原始序列位置中的前一帧,而是在编码结构上的前一帧,以金字塔的结构来看,就是拷贝其上一等级的用于预测自身的那一帧(例如,在GOP长度为8时,若丢失第4帧;则拷贝第0帧)。

图4表示通过实验所得到Ballroom序列的α和β值的曲线图,由图4可看出α的值要相对稳定,可得出该参数的设定是比较准确的,但是β的值波动相对较大,可能会给视点间误差传播的估计带来影响。

图4 Ballroom序列α和β系数的值

为了确定一个可用于验证试验的衰减系数值,除了Ballroom序列之外,还选取了另外4个典型的MVC编解码测试序列对该模型进行测试,从这4个序列中分别抽取了10个GOP做α和β的获取实验。测试环境与之前的Ballroom序列一致,这4个序列分别是Exit、Flamenco2、Race1、Vassar,这4个序列在色彩复杂度,运动剧烈程度上都有差异,4个序列如图5所示。与之相对应的4个序列的α和β系数的值如图6所示。

由图6可以看出,对于各个序列来说,α的值要相对稳定,β值波动相对较大。在后面的模型验证试验中,将取这5个序列相对应的α=0.387和β=0.361的两个均值作为后面进行测试模型的参数值。使用较为典型的测试序列Ballroom来进行实验模型的验证。Ballroom序列的验证结果如图7所示。

图5 Exit、Flamenco2、Race1、Vassar序列

图6 α和β系数值

图7 左视点内的误差及其传播误差的预测值和实际值

图7 为Ballroom左视点的实际误差和预测误差,可以看出视点内误差和视点间误差具有一致性,对于视点内误差的预测,准确度达到80%以上,但是对于视点间误差传播的预测产生了一定程度的低估,这与视点间传播系数的不稳定有一定的关系,但总体来看,其趋势与实际值相同且准确度较高。

图8 为右视点的误差预测值和实际值,右视点不用于参考,其只有α参数的部分,从图8中可以看出该模型有较好的预测精确度和准确性,尤其是在视点内的误差估计方面,且该模型算法简单,有较好的可行性和扩展性。但在参数的获取上略显复杂,且对于传播误差有较明显的低估,这些都将成为下一步研究的内容。

图8 右视点的预测误差和实际误差

4 结论

笔者分析了MVC编码的预测结构,通过理论分析和实验的方法提出了一种丢帧引起的误差估计模型及其算法,且考虑了错误隐蔽机制的应用和视点内及视点间的误差传播;仿真实验结果表明,该算法具有良好的扩展性,可以准确预测帧丢失在视频序列中引入的误差。

[1]ISO/IEC JTC1/SC29/WG11 N10857.Applications and Requirements on 3D Video Coding[S].

[2]LISM,HOU C P,YIN Y C,et al.Stereoscopic video compression based on H.264 MVC[C]//IEEE Conf Image and Signal Processing.[S.l.]:[s.n.],2009:1-5.

[3]AKAR G B,TEKALP A M,FEHN C,et al.Transport methods in 3DTV-a survey[J].Circuits and Systems for Video Technology,2007,17(11):1622-1630.

[4]胡娴,王彦,张金辉,等.视频传输中的FEC技术综述[J].电脑知识与技术,2007(13):42-43.

[5]ENGIN K,ANIL A,CAGDASB.A standards-based,flexible,end-to-endmulti-view video streaming architecture[J].Packet Video,2007(12/13):302-307.

[6]项欣光.多视点视频编码中错误隐藏技术的研究[D].哈尔滨:哈尔滨工业大学图书馆,2007.

[7]AGUEH M,SOUDE H.Optimal layer-based unequal error protection for robust JPEG 2000 images and video transmission over wireless channels[C]//Advances in Multimedia.Paris:[s.n.],2009:104-109.

[8]BACCAGLINI E,TILLO T,OLMO G.Slice sorting for unequal loss protection of video streams[J].Signal Processing Letters,2008(15):581-584.

[9]MERKLE P,BRUSH,DIX K,et al.Stereo video compression for mobile 3D services[C]//3DTV Conference:The True Vision-Capture,Transmission and Display of3D Video.[S.l.]:[s.n.],2009:1-4.

[10]LIU SJ,CHEN Y,WANGY K,etal.Frame loss error concealment formultiview video coding[C]//Circuits and Systems.[S.l.]:[s.n.],2008:3470-3473.

[11]TEKALP A M,KURUTEPE E,CIVANLAR MR.3DTV over IP[J].Signal Processing Magazine,2007(24):77-87.

猜你喜欢
视点编码误差
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
角接触球轴承接触角误差控制
《全元诗》未编码疑难字考辨十五则
Beidou, le système de navigation par satellite compatible et interopérable
子带编码在图像压缩编码中的应用
压力容器制造误差探究
Genome and healthcare
九十亿分之一的“生死”误差
视点
让你每天一元钱,物超所值——《今日视点—2014精萃》序