论文部分内容阅读
H.264/AVC是视频编码专家组ITU-T和运动图像专家组MPEG共同制定的视频编码标准。与现有的标准相比,H.264获得了更高的压缩性能,同时具有更好的网络适应性。但这些优势的取得都是以增加运算开销为代价的。对硬件的存储空间和处理能力提出了更高的要求。因此如何设计高性能的编解码器成为学术领域和工业领域研究的重点问题。在H.264编码器中运动估计是其关键的一项技术,通过运动估计能很好的消除帧间的相关性,由于H.264采用了多种块划分模式和1/4像素精度的运动估计,这极大的提高了运动估计模块的计算复杂度,其计算时间占整个编码器的60%(单帧参考)到80%(5帧参考),为了降低快速运动估计的计算复杂度,同时避免采用小菱形搜索算法可能带来的局部最优点问题,本文提出了自适应搜索模板的估计算法。本算法在搜索时根据SAD(sum of absolutedifferences)值的变化快慢和相邻帧之间时间相关性自适应选择搜索模板。实验表明,使用本算法编码,码流大小与使用菱形搜索算法和六边形搜索算法差距为±0.6%,搜索点数为菱形算法的72%-77%,六边形算法的83%-86%,在减少搜索点数的情况下有效地避免了局部最优点问题。在H.264的编码器中每个块的编码都离不开量化,变换,反量化,反变换,1/2 1/4像素插值,滤波和SAD求值的过程,且在这些计算中大量的过程可以并行处理,于是本文利用MD64的64位和128位的SIMD指令进行算法的优化并提出了利用128位SIMD(SingleInstruction Multiple Data)指令并行处理2个4x4块变换的算法,同时提出了利于并行处理的滤波算法,该算法通过增加单个滤波计算的计算量换取了利于并行处理的计算形式,有利于采用SIMD指令编程处理,从而在通过SIMD指令优化后提升了滤波速度。这些算法使得以往H.264编码中耗时很大的模块的速度得到3-8倍的提升从而大大提高了编码速度。最后,本文对基于MD64的H.264编码器的存储结构优化作了研究,在一个基于DSP的软件编码器中数据的访问量是很大的,如何安排这些数据的存储结构直接影响了数据的访问速度,所以存储结构设计成为了编码器设计的重要组成部分,合理的存储结构设计不但利于提高数据的访问速度同时利于不同平台的移植。本文考虑了MD64的片内存储空间的大小问题同时考虑到其DMA带来的数据传输和数据计算并行化的可能性,提出了一种精简的片上存储空间的分配方法,利用MD64的DMA实现了片上与片外间数据的调度和DSP上数据的处理完全并行化。