MPEG-4 ASP视频编码器的软件优化设计

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

文章摘要:#include < csl. h > #include < csl_cache. h > CSL_init ( ) ; CSL_enableCaching(CACHE_EM IFA_CE00) ; CACHE_setL2Mode (CACHE_256 k CACHE) 。 3. 3项目级优化 TI为其集成编译环境CCS提供了一系列的编译优化参数,可根据代码性能要求进行选取。因此可以通过不断对各个参数( - mw, - pm, - o3, - mt等)进行组合、优选,这可以通过CCS 2. 20的PBC选项来完成。同时在代码链接过程中,对代码段链接顺序进行一定的安排,可

MPEG-4 ASP视频编码器的软件优化设计,标签:电子小制作,http://www.88dzw.com

#include < csl. h >
#include < csl_cache. h >
CSL_init ( ) ;
CSL_enableCaching(CACHE_EM IFA_CE00) ;
CACHE_setL2Mode (CACHE_256 k CACHE) 。

3. 3 项目级优化
TI为其集成编译环境CCS提供了一系列的编译优化参数,可根据代码性能要求进行选取。因此可以通过不断对各个参数( - mw, - pm, - o3, - mt等)进行组合、优选,这可以通过CCS 2. 20的PBC选项来完成。同时在代码链接过程中,对代码段链接顺序进行一定的安排,可以减少程序执行时代码调用带来的缓存缺失,提高程序的执行效率。

3. 4 代码优化
代码优化是MPEG-4 ASP视频编码器软件开发中的一个重要环节,未经过优化的代码在DSK平台上的执行效率很低,平均约25s才进行一帧编码,而实时性的指标为每秒25帧以上。

(1)使用TI库函数
TI提供了图像处理函数库IMGL IB,可以调用其中的函数进行FDCT和IDCT变换。

(2)对C代码进行改写
首先对程序中的循环操作进行分解展开,对不能展开的循环则合理安排循环内外层,以更大程度地提高流水效率。C6000的编译器还提供了许多内联函数( intrinsics) ,这些内联函数能直接映射到对应的汇编指令,提高程序的效率。同时可利用编译指示伪语句( Pragma Directive)向编译器提供一些先验知识,以提高编译效率。如用#p ragma (minimum value, maximumvalue, factor)向编译器指出循环执行的信息,这样便于编译器利用数据打包等技术进行优化。以计算宏块中像素同均值偏差的dev16函数为例,采用了以上方法改写后,函数执行周期数由277 个cycles变为130个cycles (同在o3条件下) ,性能提升超过50%。

(3)进行线性汇编改写
线性汇编是针对C6000 的结构特点优化设计的介于C和汇编语言之间的一种编程语言,其编译效率能达到汇编代码的90%以上。同时C64x系列DSP针对图像和视频应用增加了许多特有的指令,使得这些应用的代码编写效率得到了提高。如在ASP视频编码器中,半像素插值使用的avgu4、shrmb、unpklu4 和unpkhu4指令,计算SAD 时用到的dotpu4、subabs4 指令,图像重建时用到的SPACK2指令等等。也方便了代码的编写,如ME (Motion Estimation运动估计)时在参考图像帧中进行像素值读取的LDNDW 指令,解决了参考图像中数据不满足双字对齐的问题。下面给出了将函数transfer_16 to8copy( )通过线性汇编改写后的代码,同在o3选项下,线性汇编代码只需C代码15. 8%的指令周期。表1给出了部分代码改写前后的性能对比(同在o3优化选项下) 。

. global _transfer_16 to8copy
              _transfer_16 to8copy: . cp roc dst, src, stride
. reg pdst, p src, count
. reg ahi: alo, bhi: blo, chi: clo
         mvk 8, count
         mv dst, pdst
         mv src, p src
               loop: . trip 8, 8
               lddw 3 *psrc, ahi: alo
               spacku4 ahi, alo, blo; keep the value
               in the range 0 - 255
               lddw 3  *+psrc (8) , chi: clo
               spacku4 chi, clo, bhi 

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


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