空域多描述编码的视频错误隐藏算法*
2013-08-16徐巍炜蒋荣欣陈耀武
徐巍炜 蒋荣欣 陈耀武
(1.浙江大学数字技术及仪器研究所,浙江杭州310027;
2.浙江大学浙江省网络多媒体技术研究重点实验室,浙江杭州310027)
视频在经过易错信道进行传输时,较容易产生丢包和错包.丢失的包不但影响当前帧的质量,而且会在后续帧中引起错误扩散,给高质量的视频传输带来了很大的挑战.错误隐藏算法利用解码端接收到的码流信息,近似地恢复丢失或受损的数据,提高了易错信道上图像传输的质量.错误隐藏算法仅仅在解码端进行,无需重传增加额外的带宽,因而被广泛应用[1].错误隐藏算法依赖于码流内部语义单元和图像以及序列本身的特征,对于不同特征的码流需要采取不同的恢复策略.从不同编码方式对于图像本身的划分来看,可分为基于宏块划分的编码方式和基于像素划分的编码方式,前者包括传统帧编码和可变宏块顺序(FMO)编码,后者包括空域多描述编码和场编码.
由于多描述编码良好的容错性能和灵活性,多描述编码的错误隐藏算法逐渐成为研究热点[1].多描述错误隐藏算法多采用与多描述生成方式相关的错误隐藏算法,可以分为空域和时域隐藏两大类.空域多描述编码采取直接对像素[2-3]或者联合频域处理对像素进行空域分割[4-6],然后编码为多个描述.与之对应的错误隐藏算法利用描述间像素和频域系数的相似性,通过插值的方法得到丢失描述的像素[4-5]或系数信息[6-7].时域多描述编码对于原始序列从时间上划分为多个子序列,分别编码为不同描述.与之对应的错误隐藏算法利用时域描述的运动相关性,通过前后帧运动信息恢复当前帧的运动信息[8-10].
场编码是H.264标准支持的图像编码方式,每帧的码流由顶场和底场两幅图像组成,主要针对隔行扫描的数据格式.空域恢复的方法利用顶场图像和底场图像的相似性,通过插值的方法恢复受损图像[2];时域恢复的方法利用当前帧未丢失的顶场或底场的运动信息来恢复丢失场[3];空域和时域自适应的方法[2-3]通过分析时域恢复宏块和空域恢复宏块与未丢失宏块的空域相关性来实现.
场图像和空域多描述编码与传统帧编码图像的错误隐藏算法应用的环境有所不同.对于空域错误隐藏算法,帧编码码流的错误隐藏需要计算边缘信息,分类宏块,然后对于不同纹理复杂度的宏块使用不同的空域错误隐藏算法,如对于平坦块和边缘块采用插值[11-12]的方法比较有效[13].而对于空域多描述编码,可以使用另一描述插值来高效地恢复当前描述丢失宏块的像素信息.对于时域错误隐藏算法,传统帧编码码流与时域多描述编码的错误隐藏类似,利用前后帧和相邻宏块的运动一致性,使用相邻宏块的运动矢量,结合外推法[16-17]得到估计的运动矢量,再通过边沿匹配[14-15]准则来恢复丢失宏块.而空域多描述编码的两场或两个描述的运动矢量和分割模式高度相似,与帧图像有很大不同.
以往空域多描述编码错误隐藏算法使用的是空域错误隐藏策略,利用了描述的空域相关性.空域多描述编码的两个描述在运动上的相关性被以往的空域多描述编码容错和错误隐藏算法所忽略.时域多描述编码的错误隐藏策略[8,10]并不适合空域多描述编码.混合多描述编码的自适应错误隐藏策略[9],需要利用其特殊编码方式的运动矢量和残差,也不适合空域多描述编码.在对场编码容错方法的研究[2-3]中,由于最终的恢复准则还是依赖于像素相似性,图像恢复的质量受到了影响.对于不同序列,空域多描述编码生成的多个描述之间的相关性具有不同的特征.错误隐藏算法不仅要考虑到描述间的像素相关性,也要考虑到两个描述像素的差异性和运动的相似性,需要对两个描述运动信息的特征和像素差异性的特征进行综合比较,以提高错误隐藏的总体质量.
文中提出了一个空域多描述编码错误隐藏框架,对不同特征区域使用不同恢复策略.使用相邻帧的像素差异性失真估计当前描述的像素差异性失真,通过残差能量估计两个描述的运动差异性失真,进而进行相似性和差异性区域的划分,不同区域选择不同的方法进行错误隐藏.
1 空域多描述编码的错误隐藏
空域多描述编码使用不同的滤波器和上下采样过程对原始序列进行预处理,然后再分别对不同的描述进行编码.之前的空域多描述编码方法利用加入频域的对齐[5]、滤波器分离高频信号[4]或空域和频域联合处理[6]的方法生成不同描述的码流,然而该码流的解码过程与H.264标准不兼容.如果把经处理过的帧图像分为两个场图像即两个描述,利用H.264场模式进行编码,就可以实现标准兼容的空域多描述编码算法[2-3].文中以场编码作为空域多描述编码实现的平台.为了方便论述,下文将同一帧的两个描述(即两场)相同位置的两个宏块定义为一个互补宏块对.
在I帧中,如果互补宏块对中的一个宏块丢失,此时可以利用正确接收的宏块的像素进行插值得到丢失宏块[4];如果互补宏块对中的两个宏块都丢失,那么使用帧编码图像的空域错误隐藏策略[12]恢复丢失宏块.在P帧中,如果互补宏块对中的两个宏块都丢失,可以使用运动补偿的时域错误隐藏方法[18]恢复丢失宏块.
视频在易错信道中传输,如果丢包率为p,那么互补宏块对中两个宏块都丢失的概率则为p2,将远小于单个宏块的丢包率p.一般来说,P帧在图像组中的数量远多于I帧,因此,文中将重点论述在P帧互补宏块对中丢失一个宏块情况下的错误隐藏策略.其他的小概率情况可用上文所述方法进行错误隐藏.
在P帧中,一个互补宏块对中丢失一个宏块,可以有两种方法进行错误隐藏:①使用宏块对中另一个宏块的像素进行插值,恢复丢失宏块像素信息;②使用宏块对中另一个宏块的运动信息恢复丢失宏块运动信息.经过分析发现,该两种恢复方法对于不同特征的区域有不同的恢复效果.对于像素相关性强的区域,使用像素插值恢复方法恢复的效果比较好.对于运动相关性强的区域,使用运动信息进行恢复效果比较好.像素和运动差异性相近的情况下,优先使用像素信息进行恢复效果比较好.
为了对不同区域丢失的宏块都有较好的恢复效果,可以根据两场图像编码模式及信息的相关性和差异性进行不同特征区域的划分,再根据划分结果选择不同的恢复策略.
2 区域特征提取
2.1 像素差异性失真估计
两场图像像素的差异性失真D1(x,y,n),可通过计算互补场宏块对中两个宏块相互插值恢复的宏块插值失真得到:
式中,x、y为宏块坐标,n 为帧序号,D1(x,y,n)是像素差异性失真值,FEC为通过互补场插值出的恢复场,F为原始重建场.恢复场通过插值计算,即
式中,A为一个互补场宏块对中的两个宏块.当前宏块的插值恢复失真越大,相关性越弱.
宏块的插值失真与图像的纹理有很大的相关性.由于采用纵向的插值,所以对于具有丰富横向纹理和交织细节纹理的区域,宏块的插值失真较大.纹理比较平滑的区域,宏块的插值失真较小,如图1所示.图像中的每个数值代表计算出的该位置的顶场和底场宏块的插值失真.纹理较复杂的flower序列中的花圃具有最大的宏块失真;hall序列中,平滑纹理较多的地板的宏块插值失真最小;coastguard中,横向纹理较多的水面具有中等大小的宏块插值失真.
图1 不同序列中不同纹理区域的两场对应宏块的像素差异失真值Fig.1 Pixel difference of relative macro-blocks between two fields of different sequences with diverse textures
因为当前宏块对中有一个丢失,所以无法直接计算当前帧该宏块的像素差异失真值.当前帧图像通过从参考帧图像的预测过程得到重建.由于当前帧已丢失,可以通过对上一帧运动矢量外推的方法得到当前帧重建帧的预测[17,19].像素差异性失真值可以通过对上一帧的差异性失真值外推得到,即
式中,wi为权重系数,,)为使用的运动矢量.权重系数通过当前块重叠的面积占当前块的比例来得到.如果另一个未丢失的宏块是帧间编码宏块,运动矢量就使用未丢失宏块的运动矢量.如果另一个未丢失的宏块是帧内编码宏块,则使用前一帧的运动矢量.
2.2 运动差异性失真估计
两场图像编码模式和信息的差异性失真D2(x,y,n)通过判别码流的残差、运动矢量和分割等运动信息得到,即
式中,R为残差,(vx,vy)为正确的运动矢量.运动预测的失真可以通过比较正确矢量和恢复矢量对应的预测块得到:
将式(5)和(6)代入式(4),则运动差异性失真可以表示为
从式(7)可以看出,运动差异性失真可以分为残差能量失真和运动预测失真两部分.
两场图像具有相临近的距离(1个像素),运动具有较大的相似性,如图2所示.图中paris序列两场图像的两个人的人体部分运动、hall序列中两场图像人体的运动和coastguard序列两场图像的船的运动矢量具有较大的相似性.对于帧图像来说,运动相似性一般指的是前后帧运动的平滑性和物体运动的一致性[15-16],与文中方法中两个描述的运动的相似性有很大不同.
图2 paris序列第51帧、hall序列第50帧和 coastguard序列第46帧的运动矢量Fig.2 Motion vectors of 51th frame of paris,50th frame of hall,and 46th frame of coastguard
由于具体搜索算法和码率控制的差异,运动矢量可能略微有区别,但是总体还是表现出了较好的一致性.可以利用场宏块对中一个宏块的运动矢量和参考帧索引去恢复另一个宏块的运动矢量和参考帧索引,式(3)可化为
码流经过反量化和反变换之后得到了重建的残差Res.重建残差Res加上由运动矢量从参考帧预测的预测块P,得到当前宏块的重建残差Rcon.残差信息的计算为
式中,Eres代表残差能量.同一帧的两场图像码流具有相似的残差能量,如图3所示.图中每个数值代表该位置宏块的残差能量值.小船所在的运动区域、大船头部区域和混乱海浪的区域具有较大的残差能量值;岸边的石头草地区域和平滑的海面区域具有较小的残差能量值,而且两场相同位置的残差能量基本相似.因此可使用场宏块对中一个宏块的残差能量去预测另一个宏块的残差能量.两场图像的残差能量具有相似性,式(7)可化为
所以,两场的运动差异性失真主要通过计算残差能量得到.
图3 coastguard序列第19th帧的宏块残差能量Fig.3 Residual energy of 19th frame of coastguard sequence
3 基于区域特征划分的恢复策略选择
通过像素差异性失真值和运动差异性失真值对当前宏块划分区域类型,即
式中,A为区域类型,Tres和TEC为相关性判定的阈值.A为0表示运动相关性强的区域,A为1表示像素相关性强的区域,A为2表示像素和运动差异性强的区域.
对于像素或运动相关性较强的区域,直接采用像素插值和运动恢复.首先判别宏块是否处于运动相关性强的区域,如果宏块所处区域的运动差异性失真D2小于Tres,则被认为是运动相关性强.使用互补宏块对中未丢失宏块的运动矢量和参考帧,作为当前丢失宏块的运动矢量和参考帧,然后使用正常解码过程进行解码.其次判别宏块是否处于像素相关性强的区域,如果宏块所处区域的像素失真值D1低于TEC,这个宏块被认为是强像素相关性宏块.使用互补宏块对中未丢失的宏块重建后的像素插值来作为丢失块的重建像素值.
对于像素和运动相关性较弱的区域,由于在采取不同的恢复策略时,恢复的图像具有不同的特征.像素域恢复的方法,虽然有可能引入模糊现象,但是在运动区域,相比恢复运动信息的方法,具有较好的恢复质量.而且同样的丢包情况下,对于同样的序列,单纯采用运动矢量恢复的方式,比没有采用以插值为基准的恢复质量好.所以在比较像素差异性和运动差异性的基础上,对于高差异性的区域,采取差别化错误隐藏策略.如果宏块区域的运动差异性失真D2大于Tres,并且像素失真值D1大于TEC,认为宏块处于高差异性区域,优先使用像素插值的方法进行恢复.比较运动差异性失真D2(重建残差能量Eres)和像素失真值D1(宏块插值失真DEC),如果满足:
D2<D1-Tb(12)则使用运动矢量和参考帧的方式来进行恢复,否则就使用像素插值的方法进行恢复,其中Tb为设置的阈值.
4 实验和结果分析
文中实验通过对帧图像序列进行场编码的方式来实现空域多描述编码.不同空域多描述编码的性能集中在两个描述的空域相似性上,即空域插值失真;通过不同空域插值失真大小的序列来代表不同空域多描述容错编码方法;通过对具有不同空域相似性序列进行实验,来间接模拟文中错误隐藏算法在不同特征的空域多描述编码方法上的效果.
首先,使用JM14.0编码器,将序列coastguard、Edberg、flower、hall、waterfall和 paris编码,产生测试的场编码流.所有的编码序列都以30帧/s进行编码,码率设置为1M.使用main profile,I帧间隔设置为30帧,使用一个参考帧.使用多slice模式进行编码,随机帧内宏块刷新被关闭.所有的分隔大小和子块分割大小都被使用.接着,编码得到的码流经过丢包程序,以5%、10%和20%的丢包率进行随机丢包,丢包后的码流送给解码器.最后,在解码后通过不同的错误隐藏方法进行恢复.3种错误隐藏程序被集成在JM14.0的解码器中,包括文中提出的自适应空域时域错误恢复算法(TASTEC),还有之前被提出的场图像错误隐藏算法(ECSD)[2-3],以及传统空域多描述编码的空域错误隐藏方法(MDCEC)[4].用解码器输出的图像与原始序列计算峰值信噪比PSNR,来衡量图像传输的客观质量.对于同一个的丢包码流,使用不同的错误隐藏程序分别进行恢复,然后比较恢复结果的质量.
对于纹理复杂和运动中等的序列flower,纹理复杂运动简单的序列paris,纹理中等和运动中等的序列 coastguard,以及纹理简单、运动简单的序列hall在各个丢包率上传输质量,文中方法与ECSD相比有明显提高,最高达4 dB,如表1所示.对于复杂纹理、较复杂运动的序列Edberg,文中方法视频恢复的质量与ECSD相当,如表1所示.
表1 在不同丢包率下文中方法相比ECSD的错误隐藏质量提升(PSNR)Table 1 Quality improvement of the proposed method comparing with ECSD under different loss rates(PSNR)
对于waterfall序列,其运动形式以镜头渐远的轻微全局运动为主,整体的错误扩散失真很小,但运动相对复杂.占多数图像区域的树木包含的是复杂不规则纹理,残差能量与错误隐藏失真都很小并且呈随机噪声分布.当前帧的某种恢复策略使得当前帧有较好的恢复效果,由于错误扩散的影响,后续帧的错误扩散失真并非最小.所以对于waterfall序列,文中提出的方法在低丢包率时,恢复质量略低于ECSD.由于人眼对于复杂不规则纹理中失真的敏感度较低,PSNR上微小的差异不会对主观质量造成大的影响,如图4所示.文中提出的方法与ECSD相比平均提升1.64dB.
MDCEC算法的错误隐藏效果依赖于两个描述的相似性.如表2所示,对于空域失真小、时域失真相对大的序列Edberg和waterfall,错误隐藏的结果和TASTEC相差较小.对于空域失真大、时域失真小的序列 paris、hall、flower和 coastguard,TASTEC 错误隐藏的结果和MDCEC相比有较大提高.文中方法对于各种特征的序列都有相对较好的错误隐藏效果,对于不同的空域多描述编码方法也会有较好的适应性.
图4 对于waterfall序列两种方法的主观质量对比Fig.4 Subjective quality comparison of two methods for waterfall sequence
表2 在不同丢包率下文中方法相比MDCEC的错误隐藏质量提升(PSNR)Table 2 Quality improvement of the proposed method comparing with MDCEC under different loss rates(PSNR)
对于主观质量,在同样有丢失码流的情况下,ECSD恢复容易造成细节的模糊,而TASTEC则对于细节和轮廓都有较好的恢复.如图5和6所示,一些细节的部分,如图中的门框和背景中的书,都被TASTEC很好地恢复.而且和ECSD相比,图中的人物和物体的轮廓在错误隐藏后也更加清晰.
图5 对于hall序列两种方法的主观质量对比Fig.5 Subjective quality comparison of two methods for hall sequence
图6 对于paris序列两种方法的主观质量对比Fig.6 Subjective quality comparison of two methods for paris sequence
5 结语
文中提出了一种低复杂度场的空域多描述编码错误隐藏方法.通过对两个描述像素的差异以及运动特征的分析,提出了基于区域特征划分的错误隐藏框架.使用相邻帧的像素差异性失真估计当前描述的像素差异性失真,通过残差能量估计两个描述的运动差异性失真.以此对丢失宏块进行区域划分,并对不同特征区域使用不同恢复策略.通过实验证明了该错误隐藏方法的有效性.图像的主观质量也有较大提升.与之前算法相比未增加运算量,总体的运算量与解码过程相比基本可以忽略.在今后空域多描述编码的研究中,可以通过提高两个描述的运动相似性来进一步提高容错性能.
[1]Cui Z G,Gan Z L,Zhan X F,et al.Error concealment techniques for video transmission over error-prone channels:a survey [J].Journal of Computational Information Systems,2012,8(21):8807-8818.
[2]Li M Q,Xu Z Q,Xu Y Y.A robust video coding scheme for mobile wireless communications[J].Journal of Multimedia,2009,4(6):405-411.
[3]Li M Q,Xu Z Q.An error resilient coding scheme for video transmission based on pixel line decimation[C]∥Second International Symposium on Intelligent Information Technology Application.Shanghai:IEEE,2008:315-320.
[4]Yan B,Hamid G,Hu B.Pixel interlacing based video transmission for low complexity intra frame error concealment[J].IEEE Transaction on Broadcasting,2011,57(2):253-257.
[5]Farzamnia A,Yusof S K S,Fisal N.Error concealment using joint multiple description coding and zero padding[J].International Review on Computers and Software,2011,6(2):244-249.
[6]Hsiao C W,Tsai W J.Hybrid multiple description coding based on H.264 [J].IEEE Transaction on Circuits and System for Video Technology,2010,20(1):76-87.
[7]刘杰平,余英林.视频多描述编码与差错隐藏的联合抗误码算法[J].华南理工大学学报:自然科学版,2004,32(7):15-19.Liu J P,Yu Y L.Combat channel errors algorithm combining multiple description coding and error concealment for video[J].Journal of South China University of Technology:Natural Science Edition,2004,32(7):15-19.
[8]Zhang G.Efficient error recovery for multiple description video coding[C]∥International Conference on Image Processing.Singapore:IEEE,2012:829-832.
[9]Tsai W J,Chen J Y.Joint temporal and spatial error concealment for multiple description video coding[J].IEEE Transactions on Circuits and Systems for Video Technology,2010,20(12):1822-1833.
[10]Tsai W J,Yu H.Multiple description video coding based on hierarchical B pictures using unequal redundancy[J].IEEE Transactions on Circuits and Systems for Video Technology,2012,22(2):309-320.
[11]Agrafiotis D,Bull D R,Canagarajah C N.Enhanced error concealment with mode selection [J].IEEE Transaction on Circuits and System for Video Technology,2006,16(8):960-973.
[12]Kim W,Koo J,Jeong J.Fine directional interpolation for spatial error concealment[J].IEEE Transaction on Consumer Electronic,2006,52(3):1050-1056.
[13]Gan N,Gong S R,Wang Z H,et al.Spatial error concealment method based on tensor voting[J].Journal on Communications,2011,32(10):127-142.
[14]Xu Y L,Zhou Y H.Adaptive temporal error concealment scheme for H.264/AVC video decoder[J].IEEE Transaction on Consumer Electronic,2008,54(4):1846-1851.
[15]Thaipanich T,Wu P H,Kuo C C J.Low-complexity video error concealment for mobile applications using OBMA[J].IEEE Transaction on Consumer Electronic,2008,54(2):753-761.
[16]Chien J T,Li G L.Effective error concealment algorithm of whole frame loss for H.264 video coding standard by recursive motion vector refinement[J].IEEE Transaction on Consumer Electronic,2010,56(3):1689-1695.
[17]Zhou J,Yan B,Gharavi H.Efficient motion vector interpolation for error concealment of H.264/AVC [J].IEEE Transaction on Broadcasting,2011,57(1):75-80.
[18]Lim K P,Sullivan G,Wiegand T.Text description of joint model reference encoding methods and decoding concealment methods.[EB/OL][2005-01-31].http:∥ftp3.itu.int/av-arch/jvtsite/2005_01_HongKong/JVT-N046.doc.
[19]Hwang M C,Kim J H,Yang H Y,et al.Frame error concealment technique using adaptive inter-mode estimation for H.264/AVC [J].IEEE Transaction on Consumer Electronic,2008,54(1):163-170.