基于ARM的MPEG4视频解码器

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8940

文章摘要: 从表2中可以看出,上述运算模块在解码过程中占有很大比例。对以上各模块进行优化的效果将直接反映在解码器的实时效率上。表2 优化前解码过程的特征信息各单元名称各单元所占时间比例/%IDCT40逆量化,逆扫描和逆预测24数据分析和变长解码142.2 ARM平台下算法的优化 ARM结构是基于RISC原理的,指令集和相关的解码机制都比CISC要简单得多。它能高效地输出指令,快速送出实时中断响应;它还进行了管道设置,处理和存储系统的所有部分可以持续地运转。在典型的情况下,当一条指令被执行时,其后续指令正在被解码;而第三条指令便从存储器中取出。ARM7TDMI并不具有指令或数据的高速缓存,主

基于ARM的MPEG4视频解码器,标签:电子小制作,http://www.88dzw.com
    从表2中可以看出,上述运算模块在解码过程中占有很大比例。对以上各模块进行优化的效果将直接反映在解码器的实时效率上。

表2  优化前解码过程的特征信息

各单元名称

各单元所占时间比例/%

IDCT

40

逆量化,逆扫描和逆预测

24

数据分析和变长解码

14

2.2 ARM平台下算法的优化
    ARM结构是基于RISC原理的,指令集和相关的解码机制都比CISC要简单得多。它能高效地输出指令,快速送出实时中断响应;它还进行了管道设置,处理和存储系统的所有部分可以持续地运转。在典型的情况下,当一条指令被执行时,其后续指令正在被解码;而第三条指令便从存储器中取出。ARM7TDMI并不具有指令或数据的高速缓存,主要被用于控制核心,而非数据处理。但通过对其特性的灵活运用,可以使其非常容易地应用于视频解码过程。对MPEG4视频解码器的算法优化主要从以下几方面入手:
    (1) 算法的优化
    这里是指高级C语言转化算法以简化计算量, 用最佳算法实现解码中的各模块。 
    ① IDCT算法的选择
    IDCT运行次数多,运算量很大,其变换的快慢直接影响解码的速度。本文采用一种称为AAN的快速算法。其一维8点的DCT变换通过16点DFT来实现,而16点DFT又可通过FFT实现;二维8×8的DCT运算仅需80次乘法和464次加法操作,大大减小了这部分的运算量。用AAN算法实现IDCT运算时,实际上是用IDFT取代IDCT,所以首先要得到DFT系数。方法是逆量化后直接将DCT系数分别乘以尺度因子,也就是说将尺度变换与逆量化结合。
    ② 除法运算的消除
    一个除法操作须花费60~120个周期进行处理,而一个乘法操作最多需要4个周期。在除法可以被乘法代替而不丧失准确性的计算中,这样做是非常有好处的。在反向DC系数预测过程中,DC系数重构后,立即对其进行逆量化,从而消除除法运算。
    ③ 存储访问的减少
    在任何实现中尽可能减少存储访问都是非常有价值的。由于ARM7TDMI内没有缓存,每次访问都是对外部存储器进行的,所以这样做尤为重要。通过在任何可能的地方结合解码过程,访问的次数即可减少。I帧中反向DC系数预测与DC系数逆量化的结合、逆扫描与变长解码的结合,以及逆量化与IDCT的结合,P帧中变长解码、逆扫描与反量化的结合,对于每个非零系数只需一次读入和一次存储。同时,像素重建也在IDCT之后立即进行。这样对每个系数来说,又减少了一次读入和存储。
    (2) 根据ARM7TDMI芯片结构的优化
    这里的优化主要体现在节约寄存器资源。任何一种芯片的寄存器资源都是有限的,ARM7TDMI的通用寄存器总数为31个,对于小规模应用程序是足够了,但在MPEG4解码过程中往往会用到较多的寄存器,所以仍须节俭。方法如下: 其一,在可能的情况下尽量少用寄存器,比如可对一个寄存器多次使用。其二,根据具体情况选择最优的变量类型,在局部变量中,使用int类型效率最高;而对于全局变量,使用short类型,则可减小Flash的使用量。
    (3) 汇编/结构层的优化
    尽管编译器可以产生汇编代码,但为了使代码效率更高,根据ARM7TDMI的特性对模块IDCT、IQ、VLD、DC/AC预测和MC进行手工汇编编码。下面详细阐述不同的优化方法及其所使用的模块。
    ① 内部循环的解开
    循环的解开其实也是为了增强程序中的并行处理能力。对于解循环,不能在解开的循环中保留线性过程,即指令在执行过程中的结果不能作为后续指令的输入数据;否则也就失去了并行处理能力,解循环也就失去了意义。
    ② 乘法和除法尽量用移位运算来完成
    对于2的幂次乘法或除法使用移位将会提高不少效率,一条除法指令使用的周期数远远多于移位指令。

上一页  [1] [2] [3] [4] [5]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作