1 引言
随着大规模集成电路的飞速发展,DSP的性能越来越完善,能够满足图像处理时对数据处理速度的实时要求。以DSP为核心处理器组建图像处理系统应用广泛,其优点是DSP资源丰富、编程灵活、算法设计简单,并且在系统软件开发中可采用模块化设计,可提高系统的通用性,缩短系统的开发周期。本文介绍了基于TMS320DM642的图像处理系统。
2 TMS320DM642简介
TMS320DM642是TI公司推出的一款针对网络与多媒体应用的DSP。TMS320DM642具有以下主要特点:
处理器时钟频率高,具有500 MHz/600 MHz/720 MHz 三种时钟速率(本系统设计采用的时钟速率是600 MHz);
专用的视频口,包括3个可配置的视频口;
外部接口:64个独立通道的增强EDMA控制器,多通道音频串行端口(McASP),64 bit的外部存储单元接口EMIF,66 MHz 32-bit,3.3 V的PCI主/从接口,10 Mb/s/100 Mb/s以太网口(EMAC)及通用I/O端口(GPIO)等外围接口;
专用缓存,能够加快数据存储及运算速度。TMS320DM64采用二级高速缓存的Cache结构,一级程序和数据缓存为16 KB,二级缓存为256 KB,其CPU内核基于C64X的CPU。
因此,TMS320DM642的处理速度高,外围接口丰富,并具有专用的视频口。与其他同性能产品相比,TMS320DM642性价比高,无论从产品性能还是经济效益上考虑,TMS320DM642都是图像处理系统的理想选择。
3 系统设计
3.1硬件设计
系统硬件结构框图如图1所示。系统工作过程是:视频输入设备摄像机输入的图像数据经视频解码器解码后传输至TMS320DM642,TMS320DM642存储、处理采集到的数据,并将处理后的数据送至视频编码器,视频编码器对其编码后再送至视频输出设备监视器。
3.2视频输入设计
采集视频输人设备(摄像机)图像采用专门的视频解码器,视频解码器实现图像采集驱动,简化了设计,节省设计时间缩短设计周期。视频解码器采用Phillips公司的SAA7115。
TMS320DM6412数据采集驱动程序通过IOM器件驱动模式进行设计。如图2所示驱动器的设计分为Class Driver与Mini-Driver两个层面,利用FVID模块设计Class Driver,提供独立和通用的API设置以及Mini-Driver的多种服务。为了使代码重复利用率达到最高,Mini-Driver分为通用部分和面向不同电路板的个体部分设计,前者利用EDMAs与视频口进行数据传输,后者又称为EDC(External DeviceControl)接口设计,是针对不同电路板设置视频解码器,包括视频编码器的初始化及其配置等。采用此方式设计TMS320DM642视频输入驱动时,需配置DSP/BIOS参数:正确配置Input/Output下DeviceDrivers中的User-DefinedDrivers项,包括Init function、Function table ptr、Function table type、Deviceid、Device params ptr、Device global data ptr等参数。DSP/BIOS各参数配置完成后,DSP程序包含vport.h、vportcap.h、saa7115.h,并对SAA7115初始化及其配置,视频数据输入直接调用器件支持的API函数,即可完成视频输入驱动设计。
3.3视频输出设计 视频输出的编码器采用Phillips公司SAA7105。SAA7105与SAA7115是配套使用的一对器件。图3是视频输出驱动框图,在显示操作期间。数据从存储器加载到帧缓冲器中,然后通过EDMA传输给视频端口FIFO,视频端口再将数据传输至视频编码器进行显示。EDMA中断在每帧数据从存储加载完成后触发,此中断用于管理帧缓冲器和EDMA重新加载更新数据。
视频输出驱动设计与视频输入驱动设计类似,DSP/BIOS中各参数配置完成后,DSP程序中包含vport.h,vportdis.h,saa7105.h,并对SAA7105进行初始化以及配置,视频数据输出直接调用器件支持的API函数,即可完成视频输出驱动设计。
3.4数据处理设计
数据处理设计分为两步,第一步确定算法,第二步将确定好的算法用DSP程序代码实现。确定算法利用功能强大且容易使用的Matlab软件实现,在Matlab环境中设计算法并对其仿真,仿真结果正确后即可确定算法。DSP代码按照图4所示的C6000系列代码开发流程进行设计。代码开发流程分为三个阶段:第一阶段产生C代码,第二阶段优化C代码,第三阶段编写将C代码转换为线性汇编或汇编代码并对其优化,直到程序代码满足要求。
整个设计中代码的优化是核心,只有通过优化代码的效率才能保证满足既定的要求。代码优化的步骤及方法:
1)CCS编程环境中设置编译优化级别为-o3,并按照C代码的优化法则对代码做一些手动的初步优化。
2)经过优化后的C代码效率不能达到要求时将C代码转换为线性汇编代码让编译器作进一步优化。
3)如果还不能达到要求,则将线性汇编代码转换为汇编代码,并且手动调整代码顺序,改变代码的并行及流水能力,如此通过不断地对代码的调整,使代码的执行效率达到要求。
4 应用实例
利用TMS320DM642EVM硬件平台对PAL格式的图像进行旋转处理,算法设计时插值算法采用最近临插值算法。整个软件采用C语言编写,程序运行结果不理想,图像有明显的停滞现象。将耗时最多的旋转算法代码部分转换成汇编代码,并对其优化,重新调整代码次序,增加代码的并行及流水能力,代码执行效率大大提高,程序运行流畅无滞留,运行速度满足实时要求。
5 结束语
TMS320DM642提供的专用视频端口通过EDMAs传输数据使视频的获取及输出非常简单;同时TMS320DM642支持的视频驱动设计模式大大简化视频输入输出驱动设计的工作量,从而简化了整个图像处理系统的设计,节省了设计时间,从而保证了系统设计的高效性。基于TMS320DM642的图像处理系统设计简单,设计周期短,是图像处理系统较为理想的选择.