论文部分内容阅读
H.264在带来编解码效率提高的同时也带来了计算复杂度的提高。因此如何通过软件方法降低H.264计算复杂度以适应通用嵌入式平台,最终实现H.264在移动终端上的应用成为各科研机构和院校的研究热点。本文的研究目标是通过对H.264解码程序中的耗时模块进行算法改进和代码优化,最终实现解码程序在ARM9平台上的实时解码。论文的主要工作安排如下:论文第二章是CAVLC解码算法的研究。本章首先分析了CAVLC熵解码过程中影响熵解码速度的主要原因——查找变长码表,同时使用测试软件进行耗时分析找出了主要的耗时模块。然后探讨了相关文献作者优化变长码表的方法,在此基础上,提出了一种改进的CAVLC解码算法——基于数据存储格式和码表地址映射的算法。通过改变数据的存储格式,可以节省存储空间;通过分析码字的特点,确定码字与数组下标的映射关系,使用下标查找匹配信息,可以降低查表运算。最后给出了算法的程序设计并对上述算法给出了实验证明。论文第三章是环路滤波算法的研究。本章首先对环路滤算法中的滤波条件判定进行了分析。通过分析找出了产生这些复杂判定条件的主要原因,因为编码端采用了过多的预测模式,导致了滤波时严苛的判定条件。然后文章通过分析这个判定依据的合理性,提出了以宏块边界是否平滑作为是否对宏块边界滤波的有效依据。新算法先计算整条边界的梯度,如果梯度在给定的阈值范围内,则判定为平滑,使用强滤波,否则分情况判断。对于宏块内的分块,则分成帧内和帧间来讨论,帧内统一使用中等强度滤波,帧间根据选用预测块大小使用弱滤波或不滤波。最后给出了算法的程序设计并对上述算法给出了实验证明。论文第四章选择JM11.3解码部分代码作为研究对象,通过验证解码程序在ARM+WINCE平台上解码实时性来验证上述改进算法的有效性和可行性。本章首先介绍了解码程序的移植,接着重点以熵解码和环路滤波为研究对象,讨论了解码程序的代码结构优化和基于C语言和ARM汇编语言优化。最后在EVC下编写了一个播放器应用程序,通过边解码边播放的形式验证了优化后的解码程序在ARM平台上实时解码的可行性。