论文部分内容阅读
H.264是由ITU-T VCEG和ISO/IEC MPEG联合推出的新一代国际视频编码标准,它采用的依然是基于块的运动补偿和变换的混合编码方案,但和其它视频编码标准相比,它采用了一种全新的近似DCT变换技术——整数变换技术以避免以前标准中使用DCT变换所带来的反变换匹配误差,采用帧内预测编码以提高帧内及帧间编码效率,帧间采用灵活多变的不同块大小来准确描述物体的实际运动情况,且使用了高精度的分数像素运动估计与补偿以及多参考帧选择技术来增加预测的准确度,采用自适应滤波器以去除图像的边界效应,采用基于上下文的二进制编码技术以缩减编码所需的位数等等,这些新技术的综合运用使得H.264编码器和以前的视频编码标准相比在同等重建图像质量下能够节约大约50%的码率,但H.264编码器所使用的新技术也直接导致了其实现的高复杂性,从而限制了其在实时领域里的应用,因此,如何以较低的实现复杂度获得较高的编码效率就成了H.264视频编码技术走向实时应用的一个重要研究课题。为了追求高效率的编码效果,H.264所采用的新的编码技术中使用了大量复杂度极高的编码算法,这些算法的使用直接制约着H.264编码器在实时视频编码领域里的应用,因此,必须寻找相应的快速实现算法来替代H.264中那些复杂度极高的算法;同时为了进一步提高H.264的编码速度,除了对算法进行优化以外,还可以对编码器中反复使用的一些功能模块根据平台的特点进行指令级的优化,此外,还可以根据实际需要对整个H.264编码器的程序结构和数据结构进行适当的优化,本文依据这一思路对H.264编码器中所使用的部分关键算法进行了比较深入的研究并结合平台特点进行了实现,取得了较好的加速效果,主要创新点体现在:●从理论上解决了对H.264中的零块进行精确检测的问题。针对H.264中整数变换与量化的特点对H.264中的零块判决技术进行了深入研究,推导出了H.264中的最佳零块判决阈值计算公式。●提出了三个运动搜索模板以及两种快速整像素运动估计算法。针对运动估计的复杂性,提出可以在整像素运动估计过程使用三角形模板、线性模板或简化正方形模板对大运动矢量进行粗定位,并在此基础上提出了两种快速整像素运动估计算法——基于菱形—三角形模板的快速运动估计算法DTS(Diamond Triangle Search)和基于菱形—简化正方形模板的快速运动估计算法DSSS(Diamond Simplified Square Search)。●提出了一种快速的多参考帧选择算法。针对多参考帧选择算法的复杂性,根据运动强度和参考帧率失真优化值所表现出来的单调性提出的快速多参考帧选择算法可以有效地减少参考帧判决数目。●提出了一种利用新的码字结构进行变长编码方案——商—余数编码方案,使用该编码方案可以有效减少H.264视频编码的长度。作者最后还把本人提出的上述有关算法综合运用到H.264编码器中,在参考软件JM7.6框架下对程序与数据结构进行了适当优化,并对一些关键模块如整像素运动估计中求残差的绝对误差和SAD,分数像素运动估计中求残差的Hadamard变换及对变换后的残差矩阵求取绝对值和SATD,整数变换及其逆变换,亚像素内插等模块利用PC机的多媒体指令系统进行指令级优化,同时对编码器进行总体优化,取得了比较满意的加速效果,实验结果表明:使用了总体结构优化、算法优化和平台优化之后,基本可以在通用微处理器平台PC上对QCIF格式的视频序列进行实时H.264编码。