H.264帧内预测快速算法的研究 H算法
摘要:H.264视频编解码标准中,帧内预测是很重要的组成部分,它显著提高了压缩率,但增加了计算复杂性。文章研究了采用率失真优化(RDO)技术进行帧内模式选择以及目前常用的快速帧内模式选择方法。
关键词:H.264标准;帧内预测;率失真优化;模式选择
0 引言
H.264编码标准是当前最新的视频压缩编码国际标准。为了提高帧编码的效率,它引入了帧内预测算法,充分利用了帧内相邻宏块间的信息相关性,只对预测值与实际值的差值进行编码,就可以只用很少的比特来表示该宏块的信息。H.264采用RDO技术进行帧内预测模式选择,用最少的比特获得了最好的编码效果,但为了确定一个宏块的帧内预测模式,需要计算592种组合模式的RD代价,所以编码器的复杂度很高。因此,研究RDO模式下的快速帧内预测模式选择算法具有重要的应用价值。
1 H.264帧内预测原理
宏块采用RDO技术确定帧内预测模式的过程如下:
(1)分别计算9种Intra4×4模式的代价RDCost,选择具有最小代价的模式。
(2)把16个4×4块最小的RDCost相加得到当前宏块Intra4×4方式下的RDCost。
(3)分别计算4种Intra16×16模式的SATD(Sum of Abso-lute Transformed Difference),选择具有最小SATD的模式。计算该模式下的RDCost,得到当前宏块Intra16×16方式下的RDCost。
(4)比较前两步获得的RDCost,选择具有最小RDCost的模式作为该宏块的帧内预测模式。
由上面的计算过程可知,为了确定一个宏块的帧内预测模式,需要计算592种不同的模式组合,RDCost的计算量相当大。帧内预测的模式选择总体计算复杂度大,尤其体现在Intra4×4预测上。
2 帧内预测模式研究
目前,对帧内预测模式的优化主要集中在两个方面:一是对代价函数的简化,选择比RDO计算量更小的代价函数;二是减少待选预测模式数,可以基于一定的分析,预先排除不可能的模式。减少参与判别的模式个数是目前比较流行的研究方向,以下是常用的几种方法:
(1)对宏块避行4×4块和16×16块的预判
在H.264的帧内预测中,对于亮度信息的预测有两种类型,分别是4×4块和16×16块,其中4×4块有9种预测模式,而16×16块只有4种预测模式。通常,4×4亮度块适合于纹理比较丰富的区域,而16×16块适合于较为平坦的区域。H.264原有算法中遍历所有模式后取最优的方法,并没有利用到宏块本身平坦度的特征。因此可以考虑对于平坦的宏块直接选择16×16块的预测模式,避免4x4块方式的搜索,从而减少计算量。
文献中的算法充分利用宏块的MAD信息及时间/空间相关性,对宏块进行预判,在帧内4×4块和帧内16×16块预测模式之间进行选择。文献中提出的算法是依据宏块的某种特征来表征宏块的平坦程度,对于平坦明显的宏块直接选择16×16块的预测模式,避免4×4块方式的全搜索,从而减少计算量。
(2)估计图像纹理特征,减少候选模式数量
H.264的帧内预测模式中,大部分的预测模式都是基于方向的模式,在编码中,如果选择了某一方向对应的预测模式,也就说明该块的纹理具有该模式对应的方向,最优的帧内预测模式是和视频图像块的纹理方向密切相关的。
文献通过计算相邻宏块的边界像素差值,估计图像的纹理方向,再根据此方向选择相应的帧内预测模式,由此减少候选模式数量,简化模式选择过程,降低帧内预测的计算复杂度。
(3)利用模式相关性减少候选模式数量
每个4×4块的8种预测模式(DC模式除外)在方向上有一定的相关性,最佳预测模式和其他效果较好的模式具有相同的方向,即如果一种模式可以获得最佳的预测效果,那么与它预测方向相同的模式也同样可以产生较好的预测效果。
文献利用帧内4×4块最优预测模式与和它相邻的预测模式之间率失真代价的高相关性,以及绝对变换误差和与率失真性能之间的强相关性,有效地跳过一些不太可能的预测模式,对于帧内4×4块模式选择过程只需进行4次率失真代价计算即可。
(4)设置阈值,提前中止
虽然4×4块共有九种预测方向,但在实际预测过程中,对大多数的子块而言,前面的预测方向中已经找到了最佳预测方向,后面的预测就显得多余了。所以,可以通过设置阈值,提前中止预测过程。
文献提出设定一阈值,在计算某种可能预测模式的代价值的过程中,将RDCost与这一设定的阈值作比较,如果大于设定的阈值,就可以排除这种预测模式,提前中止这种预测模式代价值的计算。文献中还指出,阈值应是一个动态值,可根据相邻宏块的预测模式的代价值做出修正。
实际上,很多快速帧内预测算法将上述的几种方法结合在一起,以达到更好的优化效果。例如,文献首先依据图像的纹理特征从9种4×4块的预测模式中选出4种备选模式,然后根据SATD的特征以及相邻块的预测模式之间的相关性,选出最佳预测模式,从而有效减少预测模式,避免了不必要的RDCost计算。
3 结束语
帧内预测技术的发展今后将集中在两个方面:
(1)在原有标准的基础上进一步提高编码效率。现在针对H.254标准有了很多新的提案,例如双向帧内预测技术,它比原有标准具有更好的编码性能。
(2)在H.264编码性能得到提高的同时,编码的复杂程度也大大提高了,从而也增加了运算量,降低了运算速度,所以为了满足某些需求,比如实时视频通信的需求,必须使用快速算法,还要尽量降低帧内预测的运算复杂度。
