论文部分内容阅读
新一代的视频编码国际标准H.264/AVC使用了大量的新技术,使得其在视频压缩效率上相比以往的视频编码标准有了极大的提高,但同时也极大地增加了编解码算法的计算复杂度。因此,在将H.264视频编码标准付诸实用之前必须对其编解码计算过程进行优化。MD32是浙江大学信息与电子工程学系SoC研发小组设计的拥有自主知识产权的媒体数字信号处理器,非常适合于实现视频编解码算法。本文重点研究了在MD32上实现和优化H.264编码关键算法的各种方法。本文首先研究了变换和量化算法。通过使用MD32的SIMD指令可以有效地加速变换和量化算法。在使用128位SIMD指令代替64位SIMD指令之后,算法的执行时间进一步得到了缩短。经过变换和量化之后系数全为零的块称为全零块,如果能在变换和量化之前检测出这些全零块,就可以有效地降低计算复杂度。在分析和比较多种全零块检测算法的基础上,本文提出了一种新的全零块检测算法,可以减少更多的计算量。其次,本文研究了环路滤波算法。环路滤波算法主要用于减轻重建图像中的块效应,对于提高低码率视频的主观质量有明显的作用。环路滤波算法的两个主要步骤,即边缘强度计算和像素级的滤波计算,都具有相当的计算复杂度。在对以上两个步骤的计算公式进行合理的调整,特别是用逻辑运算代替条件跳转之后,可以高效地使用SIMD指令进行优化。除此之外,利用统计规律调整算法流程并分层次地重用数据,都进一步地加速了环路滤波算法。最后,本文研究了CABAC熵编码算法。相比H.264视频编码标准中的另一熵编码算法CAVLC算法,CABAC算法具有更高的压缩效率,同时具有更高的计算复杂度。为了有效地加速CABAC算法在MD32上的实现,本文采用了指令扩展的方法,即设计了一系列用于CABAC编码的新指令。和以往的专用硬件实现方法不同的是,指令扩展的方法充分利用了MD32原有的资源,包括寄存器、片上存储器和流水线。