王念之
(西安邮电大学 西安 710121)
对于上一代视频编解码技术H.264,H.265/HEVC在继承其基本编码结构的前提下,加入了许多新技术。如H.265/HEVC舍弃了前一代中以宏块作为编码单元,采用了树形编码结构,在此基础下定义了编码树单元(CTU)、编码单元(CU)、预测单元(PU)、变换单元(TU)等新型结构单元;并且引入了运动合并技术(Merge),先进的位移矢量预测技术AMVP(Advanced Motion Vector Prediction)等技术,来提高预测的准确度;扩展了帧内预测方向。同时引入了样点自适应补偿技术SAO(Sample Adaptive Offset),以此来提高重建图像的质量。在码率方面,H.265/HEVC比H.264降低了约50%。
近年来,国内外的许多学者都不断的在探索优化HEVC编码过程,这些研究主要从两个方向展开,包括CU(编码模块)的快速划分以及PU(预测模块)模式的选择。有文献提出了一种基于DCT的快速帧内判决算法(Outlier-based Fast Intra Mode Decision,OIMD)。OIMD算法利用TCM(Transparent Composite Model)识别的异常值快速决定是否分割当前编码单元(CU),减少了帧内预测模式数。另有文献提出了一种利用图像纹理复杂度来进行快速CU划分的方法。首先根据CTU及其子块纹理复杂度的关系,排除不满足划分条件的单元。而后根据相邻PU的尺寸大小,直接选择跳过尺寸关系不满足顺序排列的层。以4k视频为编码对象时,该算法提升了46.8%的编码速率。
本文提出一种优化方案:在原H.265/HEVC编码标准实现平台X.265的帧内编码过程中加入一个预处理块,如图1所示,其作用:在正式进行帧内编码之前先排除掉一些出现概率较低的帧内预测模式以及CTU划分方式的组合,从而在尽可能保证解码图像质量的前提下,降低帧内预测编码的计算复杂度和储存资源使用,最终达到优化的目的。
预处理块的主要工作流程如图1所示。
图1 预处理块工作流程
本文提出一种优化的图像纹理测度计算方法,具体步骤如下:
1)首先定义一个值Pe(x,y)来表示图像中x,y位置上的像素数值;
2)计算水平方向的纹理测度SA DHOR,如图2所示。
图2 水平方向纹理测度计算
由于相邻的像素之间有很强的关联性,因此采取每三列计算一次像素的平均值的方法,在不损失编码性能的前提下提高了编码速度,其计算公式如下:
其中i,y表示像素的坐标值;
3)计算垂直方向的纹理测度S A DVER,如图3所示。
图3 垂直方向纹理度计算
对于垂直纹理测度同样采用每三行计算一次平均值的方式,其公式如下:
4)定义一个当前编码块的参考像素平均值AV GBLK,将其作为一个离散度计算的标准,分别用水平和垂直方向的纹理测度与其进行离散度计算,其计算公式如下:
5)对待编码区域中所有原始像素做SAD计算(取差值的绝对值后求和),得到局部纹理测度SA DTX:
在得到上述纹理测度计算方法后,以输入的一个CTU开始,首先将其全部划分成为8×8大小的块,按照上一节中提出的方式计算每个8×8块在水平和垂直方向上以及局部的纹理测度,按照这三个参数出现的次数确定最终的局部纹理特征。我们先将输入的一个CTU全部划分成为8×8块,开始计算每个8×8块S ADTX、S A DHOR以及SA DVER的值,比较这三个值的大小,考虑到预测模式可能性的多样化,此处可以将三个值的大小对比分为四种可能性:
1)S A DTX>SA DHOR S ADHOR>SA DVER,记为A组;
2)S A DTX>SA DVER S A DVER>SADHOR,记为B组;
3)S A DHOR>SADVER,记为C组;
4)S A DVER>S ADHOR,记为D组。
随后使用数个1920×1080视频序列(BQSquare,BasketballDrill,Bigbuckbunny,BQTerrace),在QP一定的情况下,对A~D四种组合所得的最优模式在不同序列的8×8块中作为最优预测模式出现的概率进行统计,给出测试结果。
表1 相同QP下预测模式出现概率统计表
由表中数据可知,此预测模式选择方法预测水平和垂直方向上的预测模式,在四个视频序列中平均命中概率超过75%,可以认为能正确的给出图像的纹理方向并由此得到正确的预测模式。而当图像的纹理较为复杂时,大概率会选择角度模式作为最佳预测模式时,就需要接货组其他判定条件来完成纹理度的判断和预测模式的选择。
图4 帧内预测角度模式及其对应的偏移量
由图中的各种角度模式偏移量可以大致将33种模式简化分为4组:
其余角度均可看做是近似于水平或者垂直方向,因此不做分组。
结合本文之前的水平以及垂直方向纹理测度的计算方法,给出上述四种分组的纹理测度计算公式:
目前我们得到了总计七个纹理测度值,将其加入到之前的预测模式选择算法中,可得到完整的流程。
1)首先计算S ADTX和SA D+30、SAD-30的值,如果SA D+30>SADTX或者SAD-30>S ADTX,则将±30度所对应的所有候选模式加入可能合集中{2,3,33,34,17,18,19},结束选择;否则进行步骤2);
2)若SA D+30和SA D-30的值均小于或等于5,则说明纹理度不存在与±30度的合集中,进行步骤3),否则进行步骤4);
3)计算剩余所有的纹理测度的值,得到所有特征值,进行排序,得到最优预测模式选择合集;
4)当SA D+30或SA D-30中有一个的值大于5,记录其值,并舍弃另一个值,进入步骤3)。
为了测试本文提出的算法的优化程度,本节将通过峰值信噪比、比特率以及该模块所需编码时间三个参数对其进行测试分析。在H.265/HEVC编码标准实现平台X.265中,将本算法添加进帧内预测部分,并删除相关原算法,选择出五组不同的测试序列在不同的QP环境下进行分测试(FourPeople,ParkScene,BQSquare,Traffic,Basketball Drill)得出以下结论。
表2 本文算法与HEVC原帧内编码部分算法性能对比
由表中数据可得出结论:本文算法相较原HEVC帧内编码模块PSNR平均降低0.294dB,比特率平均升高2.098%,平均降低60.94%的编码时间。
综上所述,本文所提出的优化过的帧内预测模式选择算法相比于原算法,在基本保证不降低编码效率的同时,较大幅度地提升了编码速度。