方法,使得解码速度大大提升。除了使用c6000编译器提供的编译选项-pm、-o3、-no debug以外,其他优化措施主要包括以下几个方面。程序结构的调整 为了满足dsp结构的需要,本文对avs解码软件的程序结构进行了调整。 pc上的程序是在解码一帧后再进行环路滤波,需要两次把数据从片外搬移到片内。本文对此进行了修改,在每个宏块解码完成以后就对该宏块进行滤波。如图2所示。 图2 环路滤波示意图 在解码一个宏块完成以后,先对每个8×8亮度块的垂直边界bsv00、bsv01、bsv10、bsv11和色度块bsv00(u)、bsv01(v)进行滤波,滤波的结果作为输入,再对水平边界进行滤波。使用内联指令和数据打包 c6000编译器提供了许多内联函数(instrinsics),如_add2、_avgu4、_dotpsu4等。内联函数是直接与c6000汇编指令映射的在线函数。不易用c/c++语言实现功能的汇编指令都有对应的内联函数。 对c6000的存储器进行访问是很费时的。要提高c6000的数据处理效率,应使1条load/store指令能够访问多个数据。当程序需要对一连串的字符型、短型数据
1.0A/60V