H.264/AVC中运动估计、变换与解码器优化
【摘要】:2003年3月,联合视频工作组JVT(Joint Video Team)正式提出了新一代视频压缩标准H.264/AVC,该标准是ITU-T与ISO/IEC两个国际标准化组织继MPEG-2/H.262标准之后,再一次共同提出的视频编码标准。H.264/AVC标准支持从低带宽、高误码率的无线移动视频通信到高码率、低延迟的视频广播及在线流媒体等多种应用,因此,日益受到业界的关注。为了实现更高的编码效率,H.264/AVC标准采用了很多新的编码技术,如多参考帧预测、多尺寸编码块模式、1/4像素精度运动矢量、整数变换量化、基于内容的熵编码、新型帧内预测、去除方块效应的滤波器等。在保证相同解码图像质量下,H.264/AVC比MPEG-2和H.263的编码性能至少提高一倍以上。
与此同时,H.264/AVC编解码器的计算复杂度与其它视频压缩标准相比,高出了几倍甚至十几倍,需要消耗大量的时间和系统资源。因此,基于PC平台的实时编解码器实现面临巨大的挑战,需要寻找高效的优化算法,以减少巨大的计算复杂度。本文主要从实时视频应用的角度,对H.264/AVC编码过程中运动估计、整数变换模块的加速和H.264/AVC解码器优化三个方面进行了研究。
首先,本文针对H.264/AVC编码过程中耗时最多的运动估计模块进行了深入的分析,根据该方法支持多参考帧预测、多尺寸编码块模式和高像素精度运动矢量的特点,从四个方面分别进行了优化:①整数像素运动矢量搜索过程中,提出了非失真多层逐次消元搜索模式和带有中途停止的扩展菱形搜索搜索模式两种方法,通过结合初始搜索起点预测、搜索窗口自适应伸缩、中途停止准则等多种优化策略,给出了满足不同编码质量的快速整数像素运动估计算法;②根据分数像素局部范围内,误差曲面严格满足单峰分布特点,提出了一种基于抛物曲面方向预测的快速分数像素运动矢量算法;③通过对匹配过程中相邻块之间的运动矢量与绝对值误差和SAD相关性进行了深入的研究,针对16×8、8×16、8×8、8×4、4×8和4×4编码块模式,提出了三条块模式优化选择准则;④并进一步提出了块特征分类预测方法,结合原点绝对值误差和(OSAD)与最小绝对值误差和(MSAD)之间关系,给出了一种多参考帧优化选择方法。
其次,本文对H.264/AVC中使用的整数变换系数分布规律进行了统计分析,并参考H.263全零块判别准则的分析方法,对适用于H.264/AVC编码的全零块判别准则进行了讨论,推导得到了全零块判别的上界和下界。通过对具有不同特征的图像序列进行综合测试、分析,给出了具有统计意义的最优全零块判别准则。对于中低码率的视频编码,全零块检测方法可以有效地减少变换量化模块的计算量。
最后,本文讨论了基于通用PC平台的H.264/AVC解码器优化问题,从算法角度提出了一种新型分组的可变长快速CAVLC熵解码算法,并且从代码实现上给出了程序优化的原则,并结合处理器特性讨论了进一步优化的可行性,最终实现了基于高性能PC平台的CIF图像实时H.264/AVC解码器。