- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于CPLD+DSP的实时数字 像稳定系统
4 系统工作方法和优化配置
4.1 系统工作方式
系统上电后,DSP从Flash读入1 K大小的程序数据,该引导程序继续将其他主程序调入SDRAM中,在以后的运行过程中,DSP自动将运行所需程序从SDRAM装入片内存储器。同时89C5l单片机对SAA7110进行初始化。当DSP准备就绪后,通知CPLD开始控制向输入端双端口RAM写入由S-AA7110采集的视频图像数据。输入缓存的存储空间分为奇、偶场空间,写满一场后向DSP发送中断信号,DSP收到该中断信号后以EDMA方式将数据读入SDRAM等待处理。在DSP读走和处理该部分数据时,CPLD继续控制向输入缓存的另一部分空间写入下一场采样数据。当DSP处理完上一场数据后,等待下一场视频数据的写满信号。采用双端口RAM作为系统的输入输出缓存,有效地避免了读写访问冲突和系统总线的冲突,极大提高了系统的执行效率。
4.2 配置L2 Cache和Memory的比例
由于片内RAM与CPU工作在同一时钟频率,比片外RAM性能高得多。C64的两级缓存机构工作特点为:片内分为两级存储结构(L1和L2),L1不能设置为映射寄存器。L1又分为L1P和L1D,L1D指的是第1级的数据缓冲,为128 K字节的两路成组相连结构缓存。L2是第2级片内缓存,大小为l 024 K(可同时存储程序和数据)。L1P和L1D都可以对L2进行存取,当L1D或L1P中没有运行所需要的数据时(即产生cache miss时),首先向L2发出申请,当L2中也发生cache miss时,将申请转发给EDMA。申请的转发将严重影响系统运行效率。所以根据算法数据流特性配置好两极缓存的大小,预先将待处理的数据读入,降低cache miss的次数以提高系统实时性。
以块匹配运动估计为例,匹配块32×32 pixel=1 K字节,加上旋转角度范围:±7°,步长为O.2°,共产生70个旋转1 K的小图像;搜索窗为96×96 pixel=9 K字节,共10 K字节,所有待进行运动估计的图像数据为80 K,完全可以读入L2Cache。这些数据可以用ODMA将数据全部读入片内L2。而这些数据是从一帧完整的图像中"扣出"的,所以搬移方式采用2D-1D的方式,QDMA支持这种高效的数据传输能方法。
4.3 基于EDMA加快数据传输
当使用双缓冲结构的时候,EDMA是另一种去除多余CPU开销的重要机制。利用EDMA,可实现片内存储器(L2SRAM)、片内外设,以及外部空间之间的数据转移。合理利用EDMA,还可以提高程序性能,由于图像处理中的数据对象通常以8 bit为一单位,利用DMA的数据交织功能把来自图像不同区域的4个数据并接为一个32位数据,大幅度地提高效率。
系统采用"乒乓"结构的数据交换,所以奇场和偶场的起始信号触发EDMA通道中断,虽然传送数据的源地址相同,但目的地址却不同。而C64的EDMA控制器提供了一种称为连接(linking)的传输机制,可以将不同的传输参数组连接起来,组成一个传输链,为同一通道服务。在链中,一个传输结束后,自动装载下一次传输所需要的事件参数。根据这个特点,为每个EDMA通道配置两组参数,用连接的方式完成"乒乓"结构的数据读写。
5 算法程序优化
由于图像处理的数据量大,数据处理相关性高,并且具有严格的帧、场时间限制,因此如何针对图像处理的特点对DSP进行优化编程,充分发挥其性能就成为提高整个系统性能的关键。主要在下面方面的优化方法提高C代码的性能:
1)使用内联函数 C6000编译器提供的内联函数(intrinsic functions)。内联函数是直接映射为内联的C6000指令的特殊函数,可以快速优化C代码。
2)使用字访问短型数据 C6000的内联函数中的某些指令,如_add2()是对存储在32位寄存器的高16位和低16位字段进行操作。当对一连串短型数据进行操作时,可使用字(整型)一次访问2个短型数据,减少对内存的访问次数。
3)人工干预软件流水 流水是用来安排循环指令,并使这个循环的多次叠代并行执行的一种技术,通过线性汇编指令,并行处理数据处理指令。
通过以上3种方法优化,程序执行效率提高70%以上,表1中列出各种算法速度做50次运算的平均值。
实际上,在程序优化方面,还有很多的工作可作。另外,本实验室前期开发的基于TMS320C6711型DSP的图像开发板,工作频率在200 MHz,优化后对256×256大小的图像进行10~13帧/s的图像稳定,尚不能达到实时。而基于TMS320C6416的处理板,不优化就能达到18~22帧/s的处理速度,经过简单优化后,如提前进行图像块旋转并读入片内,展开循环,就能达到30帧/s的实时处理。现已移植的算法包括:基于快速搜索的块匹配法、灰度级分层法、边缘匹配法,各种算法都完全能够进行实时运行。
6 结论
该系统通过选用CPLD+DSP,既能保证系统的执行速度,也能保证可靠的逻辑控制。该系统实现一个比较完整的图像采集、传输、处理和送显的硬件实验系统,由CPLD对系统的运行逻辑进行控制,通过对编写在DSP上运行的图像处理程序进行优化后,能够实现大小为512×512像素图像的实时稳定。该稳像系统作为一个独立的图像处理系统,可完成多方面的图像处理功能,也为其他基于DSP的图像处理平台的设计提供了参考。
来源:维库开发网
上一篇:准谐振反激的原理、应用及参数计算
下一篇:TMS320C54x系列DSP的中断机制