基于DSP的实时图像处理系统(五)

hgfugh   2006-12-28 09:34 楼主

3.3 软件优化

由于图像处理的数据量大,数据处理相关性高,并且具有严格的帧、场时间限制,因此如何针对图像处理的特点对DSP 进行优化编程,充分发挥其性能就成为提高整个系统性能的关键。

要想充分发挥DSP的运算能力必须从它的硬件结构出发最大限度地利用八个功能单元,使用软件流水线尽量让程序无冲突地并行执行。一般循环体都满足并行处理的条件并且循环体往往是程序中耗时最长的。因此在进行优化时将重点放在循环体上。

1) DSP跳转指令的优化

DSP的指令多为单周期指令,但是转移类指令却通常要耗费较多的时钟周期,每个跳转都有5个延迟间隙从性能上考虑是一项很耗时的工作因此应尽可能地减少程序中的分支。

2) 使用库函数

TI公司对TMS320C6000的用户提供了功能强大的IMAGE LIB库支持。在这个库中包含许多常用函数可以完成DCT/IDCT变换、小波变换、DCT量化、自适应滤波等功能。这些函数都是优化过的完全能够实现软件流水,效率很高。

3)存储空间的考虑

DSP存储空间的配置十分重要。因为DSP对不同的存储单元的访问速度是有区别的,对片内寄存器的访问速度最快,对片内RAM的访问速度比片外RAM的访问速度快。因此合理地配置和使用存储空间,对系统整体效率影响很大。应该尽可能地把访问比较频繁的常数表和代码段装入片内RAM,如果过大,则把其中一部分装入片外存储器。

4)混合编程

不同于传统的VLIW ,Veloci TI 采用了多种先进技术,从而使得DSPC编译器具有很高的效率,我们称之为面向C语言结构的DSP芯片。其平均编译效率可以达到手工汇编的84 %。这使得在绝大多数应用中我们可以采用C 语言编写程序从而充分利用大量用C 描述的算法程序,并获得远胜于传统DSP程序的可维护性、可移植性、可继承性,缩短开发周期。

虽然C6000的C编译器有如此高的编译效率,但是对于MPEG-4这样复杂的算法,只运用C语言是远远不够的,一般采用C语言和汇编语言相结合的方式来完成程序设计。程序设计流程如下:先写C代码并对其优化,如果不能达到预期的运行效率,则编写汇编代码来提高效率。

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复