抑制编码误差扩散的深度图帧内编码*
2014-08-16杨旭李兵兵马祥常义林
杨旭 李兵兵 马祥 常义林
(西安电子科技大学 综合业务网理论及关键技术国家重点实验室,陕西 西安 710071)
目前三维视频编码采用的表示方式为多视点视频加深度(MVD)[1],其主要包括纹理视频编码和深度图编码.深度图的亮度值表示场景中的物体到摄像机光心的距离,纹理视频的亮度值和色度值表示场景中物体的颜色、轮廓和纹理特性[2].深度图与纹理视频的特征存在一定的差异性和关联性,故深度图编码与纹理视频编码类似,均采用基于H.264/MVC 的编码标准[3].目前已有许多深度图的帧内编码方法[4-12],如文献[4]中提出了一种帧内预测模式,该模式利用边缘图表信息获得任意的边缘形状以达到提高深度图帧内编码效率的目的;文献[5]中利用k-均值方法将参考像素分为k 类并计算出每类的核心值,再利用这k 个核心值预测当前块中每个区域的值;文献[6]中提出的深度自适应重建滤波器,通过周围的像素对当前边缘位置像素值进行修正;文献[7]中利用纹理视频中的边缘信息寻找深度图的边缘,以降低编码比特,并利用三角形滤波器对深度图的边缘像素进行滤波以降低深度图的编码误差;文献[8]中采用一阶/二阶多项式方程来趋近块的边缘,以降低深度图帧内编码的边缘误差;文献[9]在编码模式中增加了高效视频编码(HEVC)标准所使用的平面模式对平坦区域进行编码,以提高深度图的帧内编码效率.
这些算法虽然能够有效地提高深度图的帧内编码效率,但深度图的特性及独立宏块的率失真优化(RDO)技术会导致深度图编码产生误差扩散,这种误差扩散最终会影响虚拟合成误差.因此,文中在深入分析深度图编码特性及编码误差扩散的基础上,提出了抑制编码误差扩散的深度图帧内编码方法,即对帧内16×16(I16MB)及帧内4×4(I4MB)的率失真优化过程进行改进,以更好地抑制编码误差扩散.
1 深度图帧内编码误差扩散
1.1 深度图平坦区域帧内编码误差的扩散
目前的视频编码所采用的RDO 技术是局部RDO 技术,即对每个宏块(MB)采用RDO 技术选择最优的编码模式.在此情况下,第i 个MB 的率失真(RD)代价函数Ji的最小值是基于其参考MB 的重建像素值,Ji的优化式如下:
在深度图的帧内编码过程中,若当前MB 处于平坦区域,且其亮度矩阵与参考MB 相同,则当前MB 的失真矩阵Dc等于参考MB 的失真矩阵Dr.
首先,参考MB 的失真矩阵与当前块的残差矩阵相等,这是因为预测的像素依赖于参考像素.若参考像素均相同,则对于I16MB 预测模式而言,其4种预测模式的预测矩阵相同且与参考MB 的重建像素矩阵相等.由于参考MB 与当前MB 的亮度矩阵相同,故Dr与当前块的残差矩阵c相等.
其次,残差矩阵需要经过离散余弦变换(DCT)、量化、反量化及逆离散余弦变换(IDCT),才能得到重建的残差矩阵c'.由前面推导可得Dr=c.令c'=F(c),F(·)表示DCT、量化、反量化及IDCT 的整个过程,因为F(Dr)=0,所以c'=0.
最后,由于当前MB 的重建矩阵等于预测矩阵与重建的残差矩阵c'之和,且c'=0,故当前MB 的重建矩阵等于预测矩阵.又由于当前MB 的预测矩阵等于参考MB 的重建矩阵,且参考MB 与当前MB的亮度矩阵相同,因此当前MB 的失真矩阵Dc等于参考MB 的失真矩阵Dr.
如果具有以上性质的MB 联合在一起,每个MB的失真矩阵等于其参考MB 的失真矩阵,那么这些MB 的编码误差均等于第一个MB 的编码误差Dr,即误差Dr将扩散到这些MB 中,文中称这种现象为平坦区域的误差扩散现象.在实际的编码过程中,受误差扩散影响的MB(DPMB)频繁出现于深度图的平坦区域.DPMB 在不同序列中所占的百分比如表1所示,其中QP 为量化参数.
表1 DPMB 在不同序列中所占的百分比Table 1 Percentages of DPMB in different sequences %
进一步地,DPMB 的RD 性能受误码扩散的影响,不论选择I16MB 中的哪种预测模式,DPMB 的失真均等于Dr.故对Ji优化的过程简化为对宏块编码优化比特Ri的过程.由于Ri包含头信息比特Rh和残差编码比特Rr,且DPMB 量化后的DCT 矩阵为零矩阵,即Rr=0,故Ji的最小值为
1.2 深度图边缘区域帧内编码误差的扩散
对于深度图编码而言,边缘的误差扩散方向主要有水平、垂直和斜角方向.宏块中边缘有出现在4 ×4子块之间及出现在4 ×4 子块之内两种方式.对于边缘在4 ×4 子块内的深度图,宏块仍会存在较大的编码误差.文中着重分析边缘出现在4 ×4 子块之内的情况.采用RDO 技术计算I4MB 的代价函数时,通常是先计算每个4 ×4 子块的最优预测模式,然后将每个子块的最优代价函数相加,得到宏块的最优代价函数,故当前子块的编码误差依赖于其参考子块的误差,从而使4 ×4 子块的边缘出现误差扩散现象.以图1(a)为例,存在边缘的第1 个4 ×4 子块出现边缘误差,即原始边缘与重建边缘存在偏差,如果第2 个存在边缘的子块选择水平预测模式为最优模式,那么其预测子块为参考块的重建块,进一步地,当前子块的误差矩阵等于参考块的误差矩阵,即第2 个子块亦出现原始边缘与重建边缘存在偏差的现象.依此类推,随后的子块若选择水平预测模式,则这种编码误差亦会扩散到随后的子块中.图1(b)和图1(c)的编码误差扩散情况均与图1(a)的情况类似.
深度图的亮度值表示场景中的物体到摄像机光心的距离,它是由被多个边缘分割的平坦区域组成.为了验证误差扩散在深度图编码中是普遍存在的,文中采用视频序列Balloons、Kendo、GT_Fly 和Undo Dancer 的深度图(这些深度图具有普遍的特性)进行实验,统计存在误差扩散的块占所有块的百分比.首先将编码块划分为4 类:①平坦区域存在误差扩散的子块,即其DCT 矩阵仅直流系数不为0 且与参考块的DCT 矩阵相同;②存在边缘扩散的子块,即其DCT 矩阵的非直流系数不为0 且相邻子块的DCT 矩阵相同;③DCT 系数为0 的子块;④不存在扩散的子块,即其DCT 矩阵与参考块的DCT 矩阵不同.实验中的量化参数QP 取为38、42、46,统计结果如表2 所示.从表可以看出,这4 个序列的深度图中存在大量的误差扩散块,其中Balloons、Kendo GT-Fly序列的误差块所占的百分比(表中第1 类与第2 类编码)分别达到44%、43%和47%.
表2 不同视频序列深度图中的误差扩散块所占百分比Fig.2 Percentages of error pervasion blocks in depth map for different video sequences
2 抑制误差扩散的帧内编码方法
深度图的编码误差扩散对虚拟合成误差有很大的影响,故需对编码误差扩散进行抑制.根据前面对深度图误差扩散的分析,文中提出了一种基于深度图特性的抑制误差扩散的深度图帧内编码方法.
2.1 改进的I16MB 的RDO 算法
如果当前宏块处于平坦区域,量化误差只集中在直流分量上,并且符合式(3),则表明该宏块的编码误差会影响虚拟合成误差.
式中,f 为焦距,l 为水平摄像机阵列的间距,Znear和Zfar分别为最近和最远深度值,ΔL为编码误差,Δd 为几何误差.
为防止编码误差扩散到其他宏块,文中将平坦区域中第1 个MB 的每个重建像素加上修正值δ,
式中,TDC和T'DC分别为4 ×4 子块及其量化后的DCT系数矩阵中的直流(DC)系数.经此修正过程后,平坦区域的误码扩散得到抑制;DPMB 可获得较好的重建质量,其预测误差为0,且DCT 系数矩阵为零矩阵.对于平坦区域中的第一个MB,需要用多余的比特对修正值δ进行编码,而对于DPMB,则不需要多余的编码比特,DPMB 的最优化Ji为
在此修正过程后,式(5)的RD 性能优于式(2)的RD 性能,即DPMB 的编码性能得到明显的提高.由于DPMB 所占的比例较大(如表1 所示),故平坦区域的编码性能会有明显的提高.
进一步地,由于DPMB 的亮度值完全可由参考块的亮度值所替代,即其模式信息(cbp)和残差信息与参考块相同.为了进一步降低编码头信息比特和优化Ji,在编码时可直接跳过这些块,同时跳过DCT 系数矩阵为零矩阵的MB,该跳过模式称为帧内跳过模式(ISM).表3 给出了QP 为38、42、46 时不同序列经误码抑制后DCT 系数矩阵为零矩阵的块所占百分比(记为P).从表中可以看出,P 值相对较高,因此编码时跳过DCT 系数矩阵为零矩阵的MB,能够节省较多的比特.
表3 DCT 系数矩阵为零矩阵的MB 所占百分比Table 3 Percentages of MB blocks whith zero DCT matrixes %
改进的I16MB 的RDO 算法步骤如下:
(1)判断是否选择ISM 模式.利用DC 模式对当前的MB 进行预测,如果当前MB 只有左邻块(或上邻块),则可用水平(或垂直)预测模式对当前块进行预测.随后计算DCT 矩阵,判断其是否为零矩阵,若是,则将帧内预测模式设为ISM 模式,并跳转到步骤(4);否则,跳转到步骤(2).
(2)利用I16MB 中的4 种预测模式对当前块进行预测,并计算残差和DCT 系数.判断该块是否存在编码误差并且仅存在于DCT 系数中的直流系数上,如果存在,将Error_flag 置为1,并对修正值δ进行计算和编码,为每个重建像素加上修正值δ;否则,将Error_flag 置为0.
(3)按照H.264 中帧内编码步骤对量化后的DCT 系数、cbp 值及宏块头进行编码,计算编码比特和编码误差,然后计算RD 代价函数值,将计算得到的RD 代价函数值与初始的MinRDcost 进行比较,若小于MinRDcost 则将其置为MinRDcost.最后判断预测模式m 是否为最后一个预测模式,若不是,则跳转到步骤(2),否则跳转到步骤(4).
(4)结束帧内预测的模式选择过程.
2.2 改进的I4MB 的RDO 算法
在该算法中,用邻近子块的量化误差方向代替I4MB 的9 种预测模式.子块的量化误差方向可分为DC、水平、垂直、左斜、右斜.这些误差方向可由DCT矩阵得到,令D 为4 ×4 子块的DCT 系数矩阵,dij为D 的第i 行第j 列的数值,则误差方向可由表4 得到,其中direction_flag 表示误差方向所对应的值.
表4 子块误差方向的判定Table 4 Judgment of the distortion direction of subblock
在获得相邻子块的误差方向后,可对当前子块进行预测.其预测过程如下:如果上、左及左上邻子块的误差方向相同,则当前子块的预测方向为上、左邻子块的误差方向;如果上、左及左上邻子块的误差方向不同,则分别用这些误差方向对当前子块进行预测.
得到当前子块的预测值后,计算其残差的DCT系数矩阵,并判断当前子块是否存在编码误差,若存在,则将Error_flag 置为1,并对编码误差进行抑制.抑制过程如下:首先计算direction_flag,然后计算边缘像素位置edge_pixel,最后计算被边缘划分的两个区域的修正系数.
最后计算该误差方向条件下所得到的预测残差的代价函数.若不存在编码误差,则将Error_flag 置为0,不对该子块进行编码.改进的I4MB 的RDO 算法流程如图2 所示.以误差方向为水平方向为例,如果子块被边缘划分为两个区域,则edge_pixel 的值为即当边缘在第1 和第2 行之间时,edge_pixel 为0;当边缘在第2 和第3 行之间时,edge_pixel 为1;当边缘在第3 和第4 行之间时,edge_pixel 为2.通常情况下,深度图的子块一般被划分为两个区域.但在某些情况下,子块被多个边缘划分,此时将采用均方误差(MSE)最大的边缘作为最终的边缘,将子块强制划分为两个区域,并将edge_pixel 置为次边缘对应的值.在确定好子块的边缘后,分别计算被边缘划分的两个区域的修正系数.
图2 改进的I4MB 的RDO 算法流程图Fig.2 Flowchart of improved RDO algorithm of I4MB
3 实验结果与分析
为了评估文中所提出的深度图帧内编码方法的性能,采用3DV 序列Balloons、Newspaper、Poznan Hall、Undo Dancer、Kendo[13]进行实验,这些序列的分辨率为1024 ×768,帧数为100.实验所用的参考软件为JMVC8.5[14],深度图编码时的量化参数为32、36、42 和46.在解码端,已解码的深度图和原始的纹理视图需通过虚拟合成虚拟视点,本实验所采用的虚拟合成软件平台为VS3.5,并利用左右两个视点合成中间视点.虚拟合成的配置参数值如表5所示.
表5 合成虚拟视图的配置参数值Table 5 Setting values of parameters for virtual view synthesis
对深度图的I 帧进行编码,编码帧数为100.编码条件为基于内容的自适应二进制编码(CABAC).将文中提出的深度图帧内编码方法与JMVC8.5、基于分割的帧内预测(PSIP)方法[5]分别进行编码,3 种方法的编码结果如表6 所示,其中Bit-rate 为左右两个视点深度图编码的比特之和,D-PSNR 为左右两个视点深度图编码的峰值信噪比(PSNR)均值,S-PSNR 为重建的深度图相比于原始的纹理视频合成虚拟视点的峰值信噪比.
文中方法与JMVC8.5 和PSIP 方法的深度图编码质量和合成质量比较如表7 所示,其中,BD PSNR[15]为正值,表示文中方法与参考方法相比的PSNR 平均增长值;BD Bit-rate[15]为负值,表示文中方法与参考方法相比的Bit-rate 平均下降值.从表7中可以看出,对于深度图编码而言,文中方法与JMVC8.5 的帧内编码方法和PSIP 方法相比的平均BD PSNR 分别为0.80 和0.61 dB,其中Kendo 序列的BD PSNR 最高,分别为2.90 和2.85 dB,这是因为Kendo 序列中的扩散误差块比例较大,且通过误差抑制后DCT 系数为0 的块所占比例高达63.12%.这表明文中方法能够抑制深度图的帧内编码误差扩散.由于深度图不直接显示给用户,而是参与虚拟视点的合成,并影响虚拟合成质量,故进一步关注虚拟合成质量的提高.从表7 中还可以看出,对于虚拟合成,文中方法与JMVC8.5 的帧内编码方法和PSIP
表6 3 种方法对I 帧编码的实验结果Table 6 Experiment results of three methods for coding I-frames
表7 文中方法与其他两种方法在I 帧编码条件下对深度图的编码质量和合成质量的比较Table 7 Comparison of depth map coding quality and synthesis quality of the proposed method with other two methods under I-frame coding condition
图3 3 种方法在I 帧编码条件下的RD 性能比较ig.3 Comparison of RD performance among three methods under I-frame coding condition
F方法相比的平均BD PSNR 分别为0.30 和0.25 dB,其中Undo Dancer 序列的BD PSNR 最高,分别为1.21和1.15 dB.由此可以看出,文中方法能够有效地提高三维视频虚拟的合成质量.
在I 帧编码条件下,3 种方法的RD 性能对比如图3 所示.从图中可以看出,文中方法的RD 性能要优于其他两种方法,尤其是对于序列Kendo 和Undo Dancer.
4 结论
文中在深入分析深度图平坦区域和边缘区域的编码误差扩散基础上,对帧内16 ×16 及4 ×4 的率失真优化过程进行改进,提出了抑制编码误差扩散的帧内编码方法.实验结果表明,该方法能够较好地抑制深度图的帧内编码误差扩散,有效地提高三维视频虚拟的合成质量.
在文中方法的基础上,可进一步将纹理视频信息引入到深度图编码中,在深度图编码的率失真优化算法中,用纹理深度的合成误差代替深度图编码误差,可以更有效地抑制深度图编码误差,提高合成质量.
[1]Smolic A,Muller K,Dix K,et al.Intermediate view interpolation based on multiview video plus depth for advanced3D video systems[C]∥Proceedings of the 15th IEEE International Conference on Image Processing.San Diego:IEEE,2008:2448-2451.
[2]Daribo Ismaёl,Tillier Christophe,Pesquet-Popescu Béatrice.Motion vector sharing and bitrate allocation for 3D video-plus-depth coding [J].EURASIP Journal on Advances in Signal Processing,2009,2009:258920/1-13.
[3]ITU-T Recommendation H.264,Audio visual and multimedia systems infrastructure of audiovisual services:coding of moving video[S].
[4]Shen G,Kim W S,Ortega A,et al.Edge-aware intra prediction for depth-map coding [C]∥Proceedings of the 17th IEEE International Conference on Image Processing.Hong Kong:IEEE,2010:3393-3396.
[5]Oh Byung Tae,Wey Ho-Cheon,Park Du-Sik.Plane segmentation based intra prediction for depth map coding[C]∥Proceedings of 2012 Picture Coding Symposium.Kraków:IEEE,2012:41-44.
[6]Oh K-J,Vetro A,Ho Y-S.Depth coding using a boundary reconstruction filter for 3D video system[J].IEEE Transactions on Circuits and Systems for Video Technology,2011,21(3):350-359.
[7]Liu Shujie,Lai PoLin,Tian Dong,et al.New depth coding techniques with utilization of corresponding video [J].IEEE Transactions on Broadcasting,2011,57(2):551-561.
[8]Kang M K,Lee J,Lee J Y,et al.Geometry-based block partitioning for efficient intra prediction in depth video coding[C]∥Proceedings of SPIE-IS&T Electronic Imaging.San Jose:SPIE,2010:75430A/1-11.
[9]Bici M O,Lainema J,Ugur K,et al.Planar representation for intra coding of depth maps [C]∥Proceedings of 3DTV Conference:the True Vision Capture,Transmission and Display of 3D Video.Antalya:IEEE,2011:16-18.
[10]喻莉,张军涛,邓慧萍,等.SSIM 度量虚拟视点绘制失真的深度图帧内编码[J].中国图象图形学报,2012,17(11):1353-1358.Yu Li,Zhang Jun-tao,Deng Hui-ping,et al.Virtual view rendering distortion using the structural similarity index as quality metric for depth map intra coding[J].Journal of Image and Graphics,2012,17(11):1353-1358.
[11]张秋闻,安平,张艳,等.基于虚拟视点绘制失真估计的深度图帧内编码[J].电子与信息学报,2011,33(11):2541-2546.Zhang Qiu-wen,An Ping,Zhang Yan,et al.Depth map intra coding based on virtual view rendering distortion estimation[J].Journal of Electronics & Information Technology,2011,33(11):2541-2546.
[12]Yin Zhao,Lu Yu.3D-AVC-CE4 results on gradientbased most probable mode (GMPM)for intra depth coding[EB/OL].(2012-02-01)[2012-10-20].http:∥wg11.sc29.org/.
[13]ISO/IEC.Call for proposals on 3D video coding technology[EB/OL].(2010-03-01)[2012-10-20].http:∥wg11.sc29.org/.
[14]Joint Video Team.JMVC reference software[EB/OL].(2011-03-10)[2012-10-20].http:∥garcon.ient.rwthaachen.de/cvs/jvt.
[15]Bjontegaard G.Calculation of average PSNR differences between RD-curves[Z]∥ITU-T SG16 Q.6 Document.Austin:Video Coding Experts Group,2001.