论文部分内容阅读
H.264/AVC作为新一代的视频编解码标准,采用了一系列先进的算法,极大的提高了解码效率,但也导致了运算复杂度的大幅增加,制约了H.264标准在视讯领域中广泛应用。尤其是在硬件配置普遍偏低的嵌入式设备上,H.264解码技术很难适用。因此如何优化H.264解码器以实现H.264标准视频的流畅播放是一个急需解决的课题。本文通过对H.264视频编解码标准的分析和研究,并对H.264标准的实现模型之一JM的解码流程进行了深入剖析。针对JM解码流程中时耗比较大的去块滤波模块和运动矢量预测模块进行了改进:对于去块滤波模块,该模块由边界强度判断和环路滤波两部分组成,其中边界强度(BS)的判断过程消耗了去块滤波模块90%的运算时间。由于一般视频序列的相邻两帧图像具有时间相关性,视频内容变化不会很大,所以本文提出了利用相邻帧中宏块的边界强度来预测当前帧中各宏块的边界强度,避免了复杂的计算过程。对于运动矢量预测过程,原JM解码算法是以4×4子块作为计算运动矢量的基本单位。由于在视频图像序列中,有相当比例的宏块编码模式为SKIP和16×16模式,采用4×4模式编码的宏块数量较低,而且在H.264标准中,当前分割中的所有4×4子块具有相同的运动矢量预测过程,所以本文借鉴了已有的思想,实现了以当前块的分割模式作为计算运动矢量的基本单位,简化了运动矢量预测的过程。为了实现嵌入式H.264解码器,本文选用MINI2440开发板作为硬件平台,并在此平台上依次移植了嵌入式引导程序UBoot和Linux 2.6.13版本的操作系统内核,制作了Yaffs文件系统,最终成功搭建了嵌入式平台。之后针对硬件平台的特点对JM解码器从内存分配和程序结构方面以及结合汇编语言进行了优化,实现了基于ARM+Linux平台的H.264解码器。实验结果表明本文实现的解码器可以显著提高对内容变化不太剧烈的视频序列的解码速度。