2 软件优化
本系统算法采用C语言编程实现后,首先在ATEME公司的NVDK6416开发板上进行算法调试和代码优化,主要采用如下优化手段。
2.1基于C语言环境的优化
为了提高程序的执行效率,在编程实现算法时,应采用一些具体的优化手段。在SPIHT编解码中门限值的初始化和逐步降阶中,对于2次幂整数的乘除运算可采用比特的移位操作来代替;尽量少使用局部变量,多使用全局变量和static变量;对于多次重复访问的变量,如for循环中的变量,可设置为register变量;函数调用时,尽量避免传递结构参数,一般用结构指针代替,如果结构是不可修改的,可用常量结构指针代替。
2.2 基于CCS的优化
CCS集成开发环境提供了很多现成的优化方法,可以直接为开发人员所用,常用的有编译器法、使用字访问短型数据、合理采用Const关键字、使用内联函数、循环展开以及编写线性汇编等。
2.3 基于TMS320C6416硬件特征的优化
TMS320C6416的片内存储器容量较小,总共为1Mbit,采用了两级缓存结构。在编制程序和存储数据时,在内存满足的情况下,应使用片内RAM和高速缓存,将核心代码存储在片内的高速缓存或RAM内;若片内内存容量不足,则把使用次数较少的数据放在片外RAM中进行存储。
采用DMA/EDMA传输数据是系统高速采集数据的一个重要手段,在图像实时采集中应用非常广泛。TMS320C6416的EDMA有多种地址生成方式,通过设置各个控制寄存器,可以方便地实现数据重排、一对多和多对一的数据交换等操作,利用这些操作可以大大提高程序效率。
对算法的关键代码部分综合采用上面的各种优化措施,经过反复实验、测试、优化,算法的执行效率得到了明显的提高。优化前后的时间结果比较见表2。
从表中可以看出,优化后系统的执行效率提高了近20倍,较好地满足了系统的实时性要求。
3 硬件实现
本系统采用TI公司的定点芯片TMS320C6416作为核心处理器。此芯片采用了VelociTI.2TM甚长指令字(VLIW)结构,最高工作频率达到720MHz,运算能力达5760 MIPS,是目前性能最高的DSP芯片,特别适合图像压缩等具有较大运算量的场合。由于数据的输入速率和输入量都非常大,因此将高速FIFO用于图像数据缓存非常适合。FIFO只需数据总线和控制信号就可以对其进行读写,开发十分方便;并且可以与TMS320C6416 DSP的同步FIFO进行无缝接口。
图2所示是系统压缩板卡的设计原理框图。
从CCD高分辨率相机送出的数据,经过预处理后由时钟信号控制存储在同步FIFO中,当FIFO出现半满标志时立即以中断方式通知DSP到FIFO中读取数据,同时在FIFO的另一端继续存储原图像数据,并一直以这种方式存取数据。DSP收到中断后立即从FIFO中读取数据,然后对图像进行压缩处理,处理完毕后送到双口RAM(DPRAM)中,进行调制处理后由发射机发射出去。
接收端首先利用接收机接收信号,然后进行信号解调、小波反变换和SPIHT解码,这可以通过PC机或地面工作站来进行,这时只需相应的解压缩软件即可实现。
经过实际测试,结果表明本系统在保持良好的重构图像的情况下较好地满足了系统的实时性要求,并且其它设计指标也均满足设计要求。本系统已经在某航空图像回传系统中得到实际应用。