基于帧间预测的H.264到HEVC快速转码算法
2015-01-01陈耀武
丁 彬,陈耀武
(浙江大学数字技术及仪器研究所,杭州310027)
1 概述
H.264/AVC由于编码效率的提高和实际应用中的灵活性,在视频编解码领域取得了极大的成功[1]。然而,网络带宽的限制和对超高清视频的需求对H.264的编码效率提出了挑战。基于此,视频编码专家组(VCEG)和运动图像专家组(MPEG)成立了视频编码联合协作小组(JCT-VC),提出了高效视频编码(High Efficiency Video Coding,HEVC)作为新一代视频编码标准。在相同视频质量下,HEVC和H.264相比节约50%的码率[2]。由于H.264的普及性和HEVC较高的编码复杂度,利用H.264压缩流信息实现H.264到HEVC的转码成为本文的主题。
虽然在编码框架方面和H.264存在相似性,HEVC的编码单元却存在较大差异。为了提高编码的灵活性,HEVC采用了自适应四叉树编码单元(Coding Tree Unit,CTU),最大编码单元达到64×64,而且可以继续划分成32×32,16×16,8×8大小的编码单元(Coding Unit,CU)[3]。此外,HEVC支持更多的预测单元,包括对称分割模式(2 N×2 N,N×2 N,22 N×2 N,N×2 N)和非对称分割模式(nL×2 N,nR×2 N,22 N×2nU,22 N×2nD)[4],其中,HEVC的预测单元(Prediction Unit,PU)模式中N可以为4,8,16,32,N×2 N 模式只有在编码深度为3时才可能出现。
为了适应不同设备和场合的需要,视频转码能够改变压缩视频流的码率、分辨率,还可以改变视频内容和编码标准[5]。本文提出的从 H.264到HEVC转码器属于改变编码标准的异构转码器,在H.264解码过程中提取有用信息,并经过处理后优化HEVC编码过程。
2 模式选择的快速算法
HEVC的模式选择原理和H.264相似,在纹理复杂高的区域选择尺寸较小的编码单元,相应的分配较多的编码比特数。HEVC的编码单元最大可达64×64,在模式选择时根据率失真优化(Rate Distortion Optimization,RDO)模型判断最佳编码结构。本文转码器框架如图1所示,首先在解码器部分提取信息,然后在编码部分处理信息。
图1 转码器框架
该算法的具体过程如图2所示,先计算SKIP模式的率失真代价,接着逐次计算帧间预测单元的率失真代价,然后计算帧内预测单元的率失真代价。
图2 模式选择流程
在图像的高复杂度区域,CU可递归分割成更小的编码单元,重复执行上述过程,直至CU达到8×8。在HEVC编码过程中,需要递归至最大深度时才能计算出最佳编码树结构,这样每个CTU将会进行85次CU计算,该过程虽然提高了编码效率,但牺牲了较多的编码时间。
由于在H.264解码过程中,可以知道每个MB的编码比特数,相应的可以预测该区域的图像复杂度,从而可以缩小HEVC编码的搜索深度,降低编码时间。本文根据每个CTU所覆盖区域在H.264中消耗的比特数和当前帧平均消耗比特数的比值预测该CTU的纹理复杂度,从而对搜索深度进行决策。计算公式如下:
其中,Npu是每一帧中的宏块个数;PUBitsi是第i个PU所消耗的比特数;AvgBitsmb为H.264中每个宏块平均消耗的比特数;Nc是每个CTU覆盖的PU数目;PUBitsi是每个CTU映射到H.264中第i个宏块所消耗的比特数;CTUBits(k)是HEVC中第k个CTU所覆盖区域的宏块平均比特数;R(k)是CUT所在区域消耗的宏块平均比特数和当前帧的宏块平均比特数之比。
对于复杂度较低的区域,HEVC可以采用大小为64×64的编码单元,而H.264只能采用SKIP模式或Inter16×16模式,因此,从H.264分割模式也可以预测HEVC编码深度。本文用N16×16代表当前CTU覆盖区域的SKIP块和Inter16×16块的个数。文献[6]做了关于 HEVC搜索深度和H.264相应区域编码比特数之间关系的实验,根据该实验的结果和H.264分割模式对CTU搜索深度预测如下:
如前文所述,HEVC通过递归至最大深度构造最优编码树结构,其中,比较耗时的过程是在每个深度层次遍历各种PU预测模式。文献[6]中指出,在HEVC各种分割模式中,2N×2N分割模式所占比例最高,其次是2N×2N和N×2N分割模式,而非对称分割模式所占比例很小。因此,为了节省编码时间,可以预先建立分割模式的候选集,排除可能性比较小的分割模式。本文根据H.264解码信息中每个预测单元的运动矢量信息预测每种分割模式的可能性。计算公式为:
其中,NPU为H.264中相应区域预测单元的个数;αi是每个运动矢量(Motion Vector,MV)的权重系数,由PU尺寸大小与4×4的比值得到;MVi是每个PU的运动矢量;μPU是预测单元的平均运动矢量;VARPU是每个PU所覆盖区域的运动矢量方差;VARCU是当前编码单元(Coding Unit,CU)第k种分割模式所对应总的运动矢量方差。按照每种分割模式下的方差值大小,只选取方差最小的3种分割模式作为分割模式候选集。
3 运动估计的快速算法
HEVC运动估计是为当前帧每个编码块在参考帧的搜索窗内找到最佳匹配块的过程[7]。搜索过程分为全局搜索和快速搜索,由于全局搜索耗时较长,HEVC可采用基于增强预测区域搜索(Enhanced Predictive Zonal Search,EPZS)的快速搜索算法。具体来讲,HEVC以运动矢量预测值(Motion Vector Prediction,MVP)作为搜索起点,原理是根据当前块在空间和时间相关块的运动矢量建立若干个候选集,对于集合中每个MVP运用拉格朗日函数。无论从编码时间和压缩效率来讲,候选集的设计和选择对该搜索算法都至关重要,文献[8]在此基础之上通过优化减小了运动估计搜索范围。
本文基于H.264解码信息对搜索起点和搜索范围大小进行优化。为了快速确定搜索起点,本文利用每个预测单元所在区域的平均运动矢量和运动矢量中值作为候选搜索起点,代替了HEVC中基于相邻块的预测算法。搜索起点的计算公式如下:
其中,MVavg是H.264中相应区域的平均运动矢量;MVmid是对PU中各个MV求中值得到。由此,得到下列搜索起点候选集式(9),其中,包括式(7)和式(8)中得到的运动矢量平均值和中值。
HEVC中运动搜索范围可以由相应区域所有运动矢量的最大范围预测得到,其计算公式分别为式(10)和式(11)。式(10)中,表示该PU中任意2个运动矢量的绝对差值,MVmax表示该PU中运动矢量的最大绝对差值,Ro是HEVC预先设定的搜索范围,Range是最终的搜索范围,由两者中取最大值得到。
4 实验结果与分析
在本文实验中,H.264编解码器为参考代码JM18.6,HEVC编码器为参考代码 HM16.0,编码时量化系数(Quantization Coefficient,QP)选择为22,27,31,35。本文实验硬件平台为Intel i7-3537U@2.0GHz双核处理器,8 GB内存。软件配置具体信息如表1所示,其他配置均为默认条件。
表1 H.264和HEVC配置信息
为了全面的衡量本文算法的性能,实验从文献[9]中选取不同分辨率和运动特性的视频序列。实验从3个指标衡量算法的性能,指标均为本文转码算法的编码部分和参考算法的对比结果。其中,ΔTime衡量本文算法的编码时间;ΔRate衡量本文算法的编码码率;ΔPSNR衡量本文算法的信噪比。
为了具体评价本文各部分算法在转码性能的贡献程度,表2分别给出了模式选择和运动估计和HM参考代码的对比结果。实验数据表明,模式选择算法平均节省了35.6%的编码时间,而运动估计算法平均节省了15.0%的编码时间。其中,随着QP变大模式选择快速算法节省的编码时间逐渐变小,这是因为QP变大时编码比特数的差异减小,导致搜索深度范围变大。此外,运动估计算法在编码Cactus和RaceHorses视频序列时性能较优,这和它们具有较强的运动特性有关。为了更全面衡量本文算法的性能,实验测试了本文转码算法整体性能指标,同时和文献[10]算法进行对比,具体实验数据如表3、表4所示。
表3 2种算法整体性能对比(QP为22时)
表4 2种算法不同QP下的平均性能对比
实验结果表明,本文算法相比于HM参考代码节省了45.3%编码时间,编码码率仅增加了1.6%,信噪比降低了0.081 dB。对比文献[10]算法可知,本文算法在编码时间上提高了10%,同时率失真性能相差不大。
5 结束语
本文提出一种基于帧间预测的H.264到HEVC转码技术,在H.264解码过程中提取能够对HEVC编码过程进行优化的相关信息,通过对该信息的统计与分析,在HEVC编码过程中重新利用这些信息从而提高编码速度。实验结果表明,该算法和HEVC参考代码相比明显减少了编码时间复杂度。此外,为了更大程度地加快码转速度,本文算法还可以结合基于视觉显著性的转码技术[11]和 HEVC编码快速算法[12]等加速转码过程。然而由于HEVC标准的计算复杂度过高,其并不能较好地支持视频实时编码,因此需要利用多核处理器实现并行转码。
[1]Wiegand T,Sullivan G J,Bjntegaard G,et al.Overview of the H.264/AVC Video Coding Standard[J].IEEE Transactions on Circuits and System for Video Technology,2003,13(7):560-576.
[2]Sullivan G J,Ohm J R,Han W J,et al.Overview of the High Efficiency Video Coding(HEVC)Standard[J].IEEE Transactions on Circuits and System for Video Technology,2012,22(12):1649-1668.
[3]Goswami K,Kim B,Jun D S,et al.Early Coding Unit Splitting Termination Algorithm for High Efficiency Video Coding(HEVC)[J].ETRI Journal,2014,36(3):407-417.
[4]Zhang Dong,Li Bin,Xu Jizheng,et al.Fast Transcoding from H.264/AVC to High Efficiency Video Coding[C]//Proceedings of ICME’12.Washington D.C.,USA:IEEE Press,2012:651-656.
[5]Ahmad I,Wei Xiaohui,Sun Yu,et al.Video Transcoding:An Overview of Various Techniques and Research Issues[J].IEEE Transactions on Multimedia,2005,7(5):793-804.
[6]Jiang Wei,Chen Yaowu,Tian Xiang.Fast Transcoding from H.264to HEVC Based on Region Feature Analy-sis[J].Multimedia Tools and Applications,2013,73(3):2179-2200.
[7]Purnachand N,Alves L N,Navarro A.Fast Motion Estimation Algorithm for HEVC[C]//Proceedings of ICCE’12.Washington D.C.,USA:IEEE Press,2012:34-37.
[8]Fang J T,Chen Zongyi,Liao T L,et al.A Fast PU Mode Decision Algorithm for H.264/AVC to HEVC Transcoding[J].Computer Science & Information Tech-nology,2014,4(2):215-225.
[9]Bossen F.Common Test Conditions and Software Reference Configurations[C]//Proceedings of JCTVC’12.Stockholm,Sweden:[s.n.],2012:1-3.
[10]Chen Zongyi,Tseng C T,Chang Paochi.Fast Inter Prediction for H.264to HEVC Transcoding[C]//Proceedings of ICMT’13.[S.l.]:Atlantis Press,2013:1301-1308.
[11]蒋 炜,田 翔,陈耀武.H.264到HEVC的低复杂度视频转码算法[J].浙江大学学报:工学版,2014,48(6):994-1003.
[12]周承涛.HEVC编码快速算法关键技术研究[D].杭州:浙江大学,2014.