微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于DSP TMS320C6416的实时图像处理系统

基于DSP TMS320C6416的实时图像处理系统

时间:11-29 来源:互联网 点击:
4 软件设计及优化

4.1 视频采集

本系统在视频采集中设计了一个数据结构将空间连续的先行缓冲区转化为一个环形的缓冲区,其简单的示意图如图4所示。


采用此方法只要为这个缓冲区分配足够大的空间,使其中存放的图像帧的数目至少大于3,这样就可以保证在对图像数据进行处理的同时还可以同步进行新的图像数据的采集,而不会发生任何数据冲突。系统将会永远保留环形缓冲区中最旧的N帧图像直至被系统取走。

4.2 视频编码

MPEG-4的视频编码是基于对象的视频编码,它仍然采用传统的预测编码、运动补偿、DCT变换构成的混合编码方式。编码器的核心算法包括运动估计、DCT/IDCT、量化、VLC 等,其中运动估计占据整个编码器近四分之一的运算量。因此,研究适合DSP 结构的、在速度和编码质量之间具有良好折中的运动估计算法是实现实时编码的一个关键问题。

在视频编码中应该采用块匹配的运动估计算法,但传统的块匹配算法在匹配速度上达不到满意的效果,因此本系统采用了在三步搜索算法的基础上改进的四步搜索的块匹配算法。

四步搜索算法描述如下:

(1)搜索匹配点组成一个菱形窗口,如图5所示。初始的9个匹配点为菱形的4个顶点、4条边的中点及菱形的中心点,如图5中的实心点。对每个点计算SAD的值,选取SAD最小的点。如果该点是此次搜索窗口的中心则跳到第4步,否则到第2步。


图5 四步搜索算法示意图


(2)以SAD最小的点为新的菱形匹配点窗口的中心点,其余的匹配点的选取按下面的原则进行。

a)如果SAD最小的点是当前搜索窗口的角上的点,如A点,则取与A点不相邻的另外5个点,如图5中的形如的点。选取SAD最小的点,并到第3步;

b)如果SAD最小的点是当前搜索窗口的边上的点,如B点,则取与B点不相邻的另外3个点,如图5中的形如的点。选取SAD最小的点,并到第3步;

c)如果SAD最小的点是当前搜索窗口的中心点C点,则到第4步;

(3)搜索模式同2,最后都到第4步。

(4)选取周围的四个点作为匹配点,步长改为1,如图5中所示的空心点。选取SAD最小的点作为最终目标点。

四步搜索算法比三步搜索算法的复杂度更小,但精度并没有降低,同时算法规则易于实现软件流水,而非常适合在DSP 上实现。

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

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

5 总结

该系统非常灵活,支持的视频输入为PAL制或NTSC制式的标准模拟视频信号,输入的视频信号既可以是复合视频信号,也可以是S-Video信号。并支持多分辨率,分别为FULL、CIF和QCIF,可以满足多种应用的需求。测试证明经过以上的优化可以实现视频图像的实时压缩,同时系统运行可靠、功耗低。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top