陶新宇,解 蓉,张 良
(上海交通大学电子工程与电气信息学院,上海200240)
责任编辑:魏雨博
随着信息时代的快速发展,对视频应用的要求也提高了很多,低延时的高分辨率、高比特率视频应用广泛。正因为如此,从20世纪90年代以来,数字视频编码技术迅速发展,也导致了一系列帧内编码的配置在国际视频编码标准中被定义。MPEG-4 AVC[1-3]对于从 DVD 到广播的各种分辨率和比特率的视频均可以提供很高的视频质量。
对于高分辨率视频(720p/1 080p),MPEG-4 AVC High profiles中定义的16×16像素的宏块的大小以及4×4像素和8×8像素的帧内预测子宏块的大小显得不够大,一个显而易见的解决方案就是扩大宏块和预测子宏块的尺寸。但是对于更大尺寸的宏块和帧内子宏块,帧内预测又显得并不十分高效,大尺寸的宏块和帧内子宏块会减弱预测的像素与参考像素点之间的相关性。针对这个矛盾,文献[4]提出了一个新的预测算法,这种新的预测算法被称为Node-Cell预测算法,该算法在MPEG-4 AVC中得到应用并被证明十分有效。
本文中,将Node-Cell编码结构与HEVC帧内编码结合起来,为Angular预测模式实现了双线性预测。与原始的Angular预测模式相比,这个编码算法能够为高分辨率视频应用提供更加精准的预测。
HEVC作为最新的视频编码标准,与先前的编码标准中使用一个固定尺寸的宏块,不同的是将每一帧图像分成一个编码树单元(CTU)的集合。每一个编码树单元被图1所示的四叉树结构迭代地分裂成更小的编码单元(CU)。每个编码树单元中的编码单元都扮演一个与H.264/AVC中宏块类似的作用。现时的HEVC HM参考代码定义CTU的最大尺寸为64×64像素。在每个CTU中,一个编码单元可以是以下4种不同尺寸中1种,它们分别是64×64,32×32,16×16,或者8×8像素。其中8×8的编码单元还可以继续分为4个4×4像素点的预测单元。
图1 HEVC四叉树结构
HEVC HM参考代码中对于每个编码单元的预测模式有35种[5-6],其中33 种为图2所示的角度预测,另外两种分别为DC模式和planar模式,本文是对33种角度预测模式做的改进,DC模式和planar模式不变。宏块帧内预测的参考像素点是之前已经重建的相邻宏块的像素点。它们分别是现时编码单元上面的编码单元,在左边的以及左上等,当它距离参考像素点越远,它们之间的相关性也越差,这也使得预测越不准确。所以这也体现了HEVC中引入四叉树编码的重要性,也即自适应地解决了编码单元越来越大带来的预测不准确和越来越多的高清视频为了降低码流需要扩大编码单元之间的矛盾。
图2 Angular预测方向(截图)
Node-Cell结构中每个编码单元的像素点都分成两种,一种是node像素点,另一种则是cell像素点。node像素尺寸为4×4的编码结构如图3所示。node像素点在图中由灰色点表示,均匀分布在编码单元的所有像素点上,而cell像素点则是除了node像素点的其他像素点。Node像素点的尺寸大小与该编码单元的内容复杂度相关,对于一个大小为32×32的编码单元,node像素点的个数可以是4×4,8×8,16×16,32×32,node像素点越多表明该编码单元内容越多。需要由node重建像素预测的cell像素点,距离其参考node像素点越近,由此也可以得到更加精确的预测插值。node像素点被编码之后,cell像素点由node重建值预测得到,它们共同的残差值分别进行变换编码。
图3 CU的4×4 Node-Cell结构
现有的HEVC HM参考代码定义编码树单元(CTU)为最大的64×64像素,且编码单元大小的不确定性,源于HEVC的改变,与此对应,Node-Cell编码模式的node像素点尺寸随着编码单元的不同而不同,可以分别为64×64,32×32,16×16,8×8,以及4×4。对于CTU中固定尺寸的编码单元,只有一部分Node-Cell编码模式适用于此编码单元。表1显示了定义的被用于每种不同尺寸的编码单元的Node-Cell编码模式的子集合。例如,对于16×16像素的编码单元,存在3种不同的Node-Cell编码模式的尺寸,分别是16×16,8×8,以及4×4。有了node像素点,cell像素点则由node像素点的重建值预测得到。
表1 不同尺寸的编码单元的Node-Cell编码模式的子集合
在帧内预测编码中[7],为了判断最优帧内模式,以下式作为判断依据
式中:Jm表示在帧内模式m的率失真;Dm表示其重建失真度;λ是与量化参数QP相关的拉格朗日算子;Rcm与Rhm的和代表了码率的总和,Rcm是变换系数的码流大小,Rhm包括了宏块头的边信息的大小。因为新增的node像素点的DCT,将基于Node-Cell结构的帧内预测的率失真表示为
式中:k代表下采样子块的次序;K是所有子块的个数。在Node-Cell结构中因为所有的像素点分为node像素点和cell像素点,它们分别做变换编码,所以K=2。另外,对于不同size的LCU块,整个宏块的率失真的总和应该考虑如下
式中:JES表示整个编码单元的率失真;RHES表示宏块头的比特信息,比如帧内预测模式等;U表示帧内预测块的个数,而这由LCU的划分策略有关;DES和RCES(u)分别代表每个做帧内预测的编码单元重建失真和变换参数码流大小。
为了将HEVC中原来的Angular预测模式变成双向预测,编码端的预测编码过程最大的不同之处在于预测cell像素点的过程需要得到node像素点的重建值。同时为了使得编码和解码过程中供cell像素点预测的node像素点的重建值值相同,node像素点的残差和cell像素点的残差都需要编码后传输到解码端以保证编解码两端的预测值相同。新增的模式信息表示下采样率,也即决定了node和cell像素点的分布情况,在下采样率为1时所有的像素点均为node像素点,该模式与Angular预测模式相同。在其他任一下采样率情况下,编解码流程图如图4所示。图4略去了node像素点分布以及模式选择等过程,是在node像素点和cell像素点分布确定以及模式选择尚未开始的预测流程图。
图4 编码端流程
1)node像素点预测与编码
高效的node像素点编码会降低了编码的比特流,node像素在CU上均匀分布,如图5a中灰色方块所示,参考像素点是该编码单元上方和左方已编码重建的像素点,即图5a中灰色像素点。预测模式沿用Angular预测,有33个方向预测。
设待预测像素为 Px,y,则
式中:Ri表示参考像素行中第i个参考像素;Ri+1表示第i+1个参考像素;wy表示分数精度的参考像素在这两个参考像素间相对应的权值,由移位投影y与预测方向d确定,各预测方向d如图2所示,各方向角的正切值以1/32为单位递增。
图5 Node-Cell像素点预测过程
得到的残差单独进行编码,编解码端重建后作为cell像素点预测的依据。对于node的残差码流,由于大部分时候它的尺寸总是只有cell像素点的1/2甚至1/4甚至1/8,同时为了降低编码时间,所以不使用四叉树迭代求解变换单元划分,而是直接使用不划分的变换单元,也即直接进行node尺寸大小的DCT变换编码。
2)cell像素点预测与编码
cell像素点的预测同样有33个方向,不同之处在于它的双向插值,参考像素点使用两点内插预测,而不是如node像素点预测那样外推得到。
预测方法大体分为两个步骤完成,步骤1由左边已编码单元和上方已编码单元的重建像素点和本单元已重建node像素点得到cell像素点的预测,为步骤2像素点预测参考像素点。步骤2中预测cell像素点,根据它周围的像素点插值预测出来。图5c展示了cell像素点是怎么使用参考像素点插值得到的 。如,在方向17的情况下,待预测像素点o由(3/8×d+5/8×e)和(3/8×l+5/8×k)插值得到,得到的cell像素点残差矩阵作为一个变换单元,选择最优DCT方案进行编码。
解码端过程与编码端相反,先是进行得到的node像素点的系数的反变换,从而得到各像素点的残差值,重建node像素点,得到cell像素点的预测值,再重建cell像素点。
这种新的Node-Cell编码结构是基于版本HM8.0rc2的HEVC参考代码实现的。考虑到视频中亮度信息占据大部分码率,将Node-Cell结构实现在视频的亮度分量,实验结果也是基于亮度信息。2个Class A视频序列,分别是PeopleOnStreet和Traffic,它们的分辨率是2 560×1 600像素,3个 Class B视频序列,分别是Kimono和Parkscene,Tennis,它们的分辨率是1 920×1 080像素,总共5个视频序列被用于测试。图6a、图6b分别展示了2个序列的不同预测模式的RD性能。表2是5个序列在不同QP情况下不同的预测模式组合的RD性能。表3、表4则表示了Tennis,Kimono序列中不同下采样率的比例分布。可以看到随着QP的增大,选择下采样率不为1的比例上升,也即下采样模式比较适用于码率较低的情况。同时视频序列越简单,采用下采样率不为1的概率也会越大。
新引入的算法是基于HEVC中的Angular Intra Prediction(AIP)实现的,增加了下采样的模式信息,预测模式增多了。为了更有效提高编码效率,接下来的工作可虑将node像素点的量化与cell像素点的量化独立出来,从而得到更高效的node像素点编码,也可以考虑提高cell像素点的预测精度等。
图6 不同序列不同预测模式RD曲线
表2 5个序列在不同QP情况RD性能
表3 Tennis序列中不同下采样率的比例分布
表4 Kimono序列中不同下采样率的比例分布
[1] Recommendation ITU-T H.264:Advanced video coding for generic audiovisual services[EB/OL].[2014-01-01].http://www.itu.int/rec/T-REC-H.264/e.
[2] WIEGAND T,SULLIVAN G J,BJONTEGAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13(7):560-576.
[3] Richardson I.H.264 and MPEG-4 video compression:video coding for next-generation multimedia[M].New York:Wiley,2003.
[4] JCT-VC.Draft Test Model under Consideration[C]//Proc.2nd JCT-VC Meeting.Geneva:[s.n.],2010:62-63.
[5] JCTVC-HM software[EB/OL].[2014-01-01].http://hevc.kw.bbc.co.uk/git/w/jctvc-hm.git.
[6] ZHENG Dong,WANG Deming,ZHANG Liang.High definition video intra-only coding based on Node-Cellmacro-block pixel structure and 2-D interleaved DCT[J].IEEE International Conference on Image Processing,2011(9):496-501.
[7] WU Qingbo,LI Hongliang.Mode dependent down-sampling and interpolation scheme for high effiency video coding[J].Signal Processing:Image Communication,2013(28):581-596.