一种基于块纹理特性的H.264/AVC帧内预测算法*
2010-06-25杨会云张有会王志巍霍利岭刘晨光
杨会云,张有会,王志巍,赵 金,霍利岭,刘晨光
(1.河北师范大学 数学与信息科学学院,河北 石家庄 050016;2.石家庄第二十三中学,河北 石家庄 050011)
1 引言
H.264/AVC是由ITU-T视频编码专家组和ISO/IEC运动图像专家组组成的联合视频专家组JVT制定的新一代视频编码标准[1]。与以往的标准相比,本标准在相同码率情况下,峰值信噪比和可视质量获得了较好的性能[2],但也增加了复杂度,影响了其实时应用。
帧内预测是H.264/AVC标准的一个重要组成部分,充分利用了图像的空间相关性,提高了压缩效率[3-4]。为达到高效的编码性能,H.264/AVC使用率失真优化(Rate Distortion Optimization,RDO)[5]模型选择最佳编码模式。由于帧内预测模式较多,为选择一个预测模式,需计算592个RDO值,使其具有很高的复杂度。为降低复杂度,人们提出了很多优化算法[6-8]。
笔者则提出一种基于某方向上像素差分和的块平坦性及纹理方向估算的快速H.264/AVC帧内预测算法(以下简称新算法)。实验结果表明在PSNR和码率变化极小的情况下编码速度有显著提高。
2 H.264/AVC的帧内预测算法
在H.264/AVC编码标准中,为提高帧内图像编码效率,采用帧内预测技术。根据图像的空间相关性,利用当前块左边和上边的像素值对当前块进行预测[9-10](见图1),对实际值和预测值的差值进行编码,大大节省了图像帧的比特数。
图1 宏块预测
H.264/AVC提供了4种帧内预测方式[11-12],分别为4×4 亮度块预测(Intra_4×4)、8×8 色度块预测(Intra_chroma)、16×16 亮度块预测(Intra_16×16)和 PCM 预测(I_PCM)。Intra_4×4适合纹理细节较多的图像块,有9种预测模式,其中包括8种方向性预测模式(见图2)和1种均值预测模式。Intra_16×16适合较平坦的块,有4种预测模式,其中包括3种方向性预测模式(见图3)和1种均值预测模式。Intra_chroma预测方式与 Intra_16×16相似。I_PCM预测模式直接传输图像样值,无须进行预测。
为获取最佳的预测效果,JVT提供的参考程序采用全搜索算法对各宏块进行模式搜索,对结果进行比较。全搜索算法能获得最优的压缩效果,但其搜索模式总数达到了 M8×(M4×16+M16)[11-12],共 592 个,其中 M8=4,M4=9,M16=4,分别代表 8×8 色度块、Intra_4×4 和 Intra_16×16 的预测模式个数。这意味着要得到一个块的最佳模式需计算592个RDO值,可见其算法复杂度之高。
3 基于纹理特性的帧内预测算法
纹理特征是图像的重要特征之一,其本质是刻画像素邻域灰度空间的分布规律[2]。图像的纹理特征[13]可用方向性、规则性、粗糙度和凹凸性等特性描述。其中方向性是指其灰度在一定方向上的变化所呈现的一致性和均匀性,从视觉上看近似条纹状。按方向性可将纹理划分为水平、垂直和斜向等。
3.1 新算法的基本思路
由第2节可知,H.264/AVC的预测模式除DC模式外都具有方向性。如果能对块的纹理性进行预判,即判断出块是否有明显的纹理及其大致纹理方向,便可排除可能性小的模式,仅对可能性大的模式进行RDO计算,降低算法复杂度。
基于此,针对H.264/AVC的4种预测方式中对预测算法改进影响较大的Intra_4×4模式和Intra_16×16模式,提出一种新的基于纹理特性的预测算法。算法分两部分:一部分为类型判定,利用16×16块在不同方向上间隔一定臂长L下的像素差分和[13]的差来判断宏块是否有明显纹理,即是否平坦,若平坦只进行Intra_16×16块的预测,否则只进行Intra_4×4块的预测;另一部分为预测模式选择,利用4×4块差分和的大小判断纹理方向,根据纹理方向选择预测方向。考虑色度块的模式选择较简单,在此仅研究亮度块的模式选择。
具体过程为:将0~π内角度量化为多个角度方向θ(θi∈{0°,45°,90°,135°}),以 w×w(w 取值 16 或 4)块中每个像素点O(x,y)为中心,按一定臂长L在中心点两侧沿θi方向各选一点作差分;遍历整个块,求方向θi上块的差分和;比较各方向差分和,如果各差分和之间差别较小则判定宏块较平坦,否则非平坦。对非平坦块,进行Intra_4×4模式预测,其差分和最小的块对应的方向即为其纹理方向。其中每一方向上中心点两侧像素点的选取如下:
计算相对O点的偏移量Tx和Ty
由Tx和Ty可分别确定相对O点的两个偏移点的灰度值,分别记为 P(x+Tx,y+Ty),P(x-Tx,y-Ty)。 遍历该块,求方向为θi的绝对差分和
依次求取各方向上的 S[θi],比较各 S[θi],找出最小的S[θi]对应的方向 θi即为当前块纹理方向,即
3.2 宏块类型判定
由以上讨论可知,对较平坦的宏块,像素的灰度较接近,相邻像素的灰度绝对差较小,其各个方向上的绝对差分和的差异性较小;对非平坦宏块,其在纹理方向上的绝对差分和较小,其他方向特别是与纹理方向垂直的方向上的绝对差分和则很大,不同方向上的绝对差分和的差异性较大。
图4为foreman序列第0帧中两种类型的宏块,图右侧为平坦块,左侧为非平坦块,表1为图4中对应块的最大、最小绝对差分和及其差值(其中臂长L=1,方向为0°,45°,90°,135°的 4 个方向)。
由表1可见,平坦块对应的最大差小,非平坦块对应的最大差较大。基于以上分析,以各方向绝对差分和的最大差作为判定宏块是否平坦的依据是可行的。因此算法可以此作为依据选取合适的阈值对宏块进行类型判定。
表1 块的最大、最小差分和以及最大差
3.3 预测模式选择
利用前述差分和同样可以对块纹理方向进行估计。对一纹理块来说,沿其纹理方向上的各像素值比较相似,故其差分和较小,而其他方向特别是与纹理方向垂直的方向上各像素值差异较大,其差分和会较大。因此,认为宏块各方向上差分和的最小值对应的方向为纹理的大致方向。
为此,计算 4 个方向(0°,45°,90°,135°)上臂长为 L(L=1)的块的差分和,比较4个方向差分和的大小,并选出最小差分和,记录其方向,该方向即为当前块纹理方向。利用此方向对块进行模式选择。
图5为foreman序列第0帧中典型的135°和水平纹理的图像块。表2是图5中各图像块对应的4个方向差分和,由表可见最小差分和对应的方向即为块纹理方向。
表2 块差分和
3.4 算法具体步骤
新算法中,引入两个阈值Kmin和Kmax判定宏块的类型。计算4个方向的绝对差分和,在宏块类型选择中,将3.2节中最大差分别与阈值Kmin和Kmax比较,若小于Kmin判定为平坦宏块,采用16×16块预测;若大于Kmax判定为非平坦宏块,采用4×4块预测;否则,按H.264标准算法计算。对判定为Intra_4×4预测的块,同样计算4个方向绝对差分和,选择最小差分和对应的方向为该4×4块纹理方向,将与此方向对应的模式及其相邻的两个模式加上DC模式共4个模式作为候选预测模式,进行RDO计算,从中选出最佳模式。
两个阈值的选择对编码的性能影响很大。经过大量实验,取Kmax=500,Kmin=300获得的效果较好。
新算法具体步骤如下:1)获取16×16宏块的亮度数据,设定两个阈值Kmax和Kmin。2)计算4个方向的绝对差分和,并计算最大差分和Maxdiff与最小差分和Mindiff及其差值 diff。 3)若 diff
4 试验结果及分析
为了验证本算法的性能,基于JVT提供的参考软件JM14.2对全搜索算法进行了改进,并作了大量测试与全搜索算法比较。
测试环境如下:编码配置中,帧率为30 f/s(帧/秒),全I帧序列,每个标准测试图像序列测100帧,RDO使能,CAVLC使能;硬件配置采用Inter Pentium Dual T23901.86 GHz和2.0 Gbyte RAM。
表3是所选11个QCIF标准视频序列在L=1和L=2时的新算法与全搜索算法的测试结果比较。结果获取采用对各个视频序列进行大量测试取平均值的方法。L=1时各项指标的平均值为:PSNRY降低了0.06 dB,速度提高了38.94%,码率提高了1.63%。L=2时各项指标平均值为:PSNRY降低了0.07 dB,速度提高了40.79%,码率提高了2.01%。
从表3可以看出,由于本算法充分考虑了宏块本身的特性,在进行预测前对宏块特性预判,避免了全搜索算法的穷举搜索方式,降低了复杂度,节省了时间。同时,试验对各测试序列的PSNR值的影响非常小,对视频序列的视觉影响极小。
5 小结
分析了宏块纹理特征与候选预测模式的关系,对于纹理特征明显的宏块,直接从两种预测模式(Intra_16×16和Intra_4×4)中选取一种,从而避免对每一个宏块都进行两种模式的预测。对于那些特征不明显的宏块,则用标准算法进行判断,以保证用最佳的模式来编码。并且对Intra_4×4模式利用纹理方向预测来排除可能性小的预测模式。试验证明,在PSNR和码率变化很小的情况下,提高了编码速度。
表3 QCIF标准视频序列测试结果(以全搜索算法为基准)
文中对宏块模式判定使用双阈值,阈值大小将会直接影响编码性能,而纹理复杂度不同的视频差分和的差别也很大,在下一步工作中将考虑采用自适应的阈值,来代替本文中的固定值。
[1]ITU-T Recommendation H.264&ISO/IEC 14496-10 (MPEG-4)AVC,Advanced video coding for generic audiovisual services[S].version 3.2005.
[2]滑斌杰,张有会,王志巍,等.一种快速H.264/AVC块帧内预测模式选择算法[J].微计算机应用,2009,30(4):12-17.
[3]王超,于洪珍,厉丹,等.H.264帧内预测编码的优化与实现[J].电视技术,2009,33(12):21-23.
[4]王海勇,孙雁飞,吴启宗.H.264编码中帧内预测算法研究[J].电视技术,2009,33(8):11-12.
[5]SULLIVAN G,WIEGAND T.Rate distortion optimization for video compression[J].IEEE Signal Processing Magazine,1998(15):74-90.
[6]KIM J,JEONG J.Fast intra-mode decision in H.264 video coding using simple directional masks[J].Proceedings of SPIE,2005,5960:1071-1079.
[7]毕厚杰.新一代视频压缩编码标准——H.264/AVC[M].北京:人民邮电出版社,2005:210-218.
[8]PAN F,LIN X,RAHARDJA S,et al.A directional field based fast intra mode decision algorithm for h.264 video coding[C]//Proc.IEEE International Conference on Multimedia and Expo.Taipei,China:IEEE Press,2004,2:1147-1150.
[9]曾焕强,蔡灿辉.H.264/AVC快速帧内预测模式选择算法[J].中国图象图形学报,2007,12(2):189-194.
[10]贾克斌,谢晶,方晟.一种基于自相关法的H.264/AVC高效帧内压缩算法[J].电子学报,2006,34(1):152-154.
[11]WIEGAND T,SULLIVAN G,BJNTEGAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Transactions on Circuits and Systems for Video Technology,2003,13(7):560-576.
[12]RICHARDSON I E G.H.264 and MPEG4 video compression:video coding for next generation multimedia[M].Aberdden,UK:John Wiley and Sons,2003.
[13]黄坤,李见为,吴心红.一种求取指纹图像方向的方法[J].计算机工程,2007,33(5):166-167.