基于DSP的数字图像处理实现
扫描二维码
随时随地手机看文章
随着计算机、多媒体和数据通信技术的高速发展,数字图像技术近年来得到了极大的重视和长足的发展,并在科学研究、工业生产、医疗卫生、教育、娱乐、管理和通信等方面取得了广泛的应用。同时,人们对计算机视频应用的要求也越来越高,从而使得高速、便捷、智能化的高性能数字图像处理设备成为未来视频设备的发展方向,数字图像处理(DigitalImageProcessing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。数字图像处理(digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。首次获得实际成功应用的是美国喷气推进实验室(JPL)。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片使用了图像处理技术,如几何校正、灰度变换、去除噪声等方法进行处理,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,获得了巨大的成功。随后又对探测飞船发回的近十万张照片进行更为复杂的图像处理,以致获得了月球的地形图、彩色图及全景镶嵌图,获得了非凡的成果,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。
1 功能强大的TMS320C6x
TMS320C6000是美国TI(Texas Instruments)公司于1997年推出的新一代高性能DSP芯片。这种芯片是定点、浮点兼容的DSP。DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
C6000内部结构的主要特点包括:
①定点/浮点系列兼容DSP,目前CPU主频100MHz~600MHz。
②具有先进VLIW结构内核。
(1)8个独立的功能单元:6个ALU(32/40bit),2个乘法器(16×16),浮点系列支持IEEE标准单精度和双精度浮点运算。
(2)可以每周期执行8条32bit指令,最大峰值速度4800MIPS。
(3)专用存取结构,32/64个32bit通用寄存器。
(4)指令打包技术,减少代码容量。
③具有类似RISC的指令集。
(1)32bit寻址范围,支持bit寻址。
(2)支持40bitALU运算。
(3)支持bit操作。
(4)100%条件指令。
④片内集成大容量SRAM,最大可达8Mbit。
⑤16/32/64bit高性能外部存储器接口(EMIF)提供了与SDRAM、SBRAM和SRAM登同步/异步存储器的直接接口。
⑥内置高效率协处理器(C64X)。
(1)Viterbi编解码协处理器(VCP),支持500路7.95kb/s AMR。
(2)Turbo码编解码协处理器(TCP),支持6路2Mb/s 3GPP。
⑦片内提供多种集成外设(不同芯片的资源不同)
(1)多通道DMA/EDMA控制器
(2)多通道缓冲串口(McBSP)
(3)多通道音频串口(McASP)
(4)可以访问DSP整个存储空间的主机口(HPI)
(5)32bit扩展总线(xBUS)
(6)32bit/33MHz PCI主/从模式接口
(7)32bit通用计数器(Timer)
(8)UTOPIA接口
(9)通用输入/输出(GPIO)
(10)总线主/从模式接口
(11)支持多种复位加载模式(Boot),提供3种节电控制模式(Power Down)
⑧支持IEEE一1149.1(JTAG)边界扫描接口。
⑨内核采用1.0/1.2/1.5/1.8V供电,周边采用3.3V供电。
⑩0.12tzm0.18tμm CMOS工艺,5/6层金属处理。BGA球栅阵列封装。
TMS320C6x系列的DSP芯片结构不同于一般的DSP,属于类RISC结构,从而使它的c编译器具有很高的效率,因此称之为面向C语言结构的 DSP芯片。这使得其在绝大多数应用中,可以采用 C语言编写TMS320C6x程序,从而充分利用大量用c描述的算法程序,并获得远胜于传统DSP程序的可维护性、可移植性、可继承性,缩短开发周期。
2 FPGA计算系统模型
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。
在通常的并行系统设计中,微处理器在空间维上是固定的,而在时间维上是可变的;而连接的专用芯片在空间维和时间维上都是固定的。这样的系统往往只能适用于特定应用场合下的特定算法。
FPGA是二十世纪80年代后期出现的新型的大规模可编程器件,由逻辑单元和互连线网络两部分组成,两者均可编程。逻辑单元能完成一些基本操作。逻辑单元经互连线网络互连,通过对基本逻辑块和互连线网络编程,可以实现非常复杂的逻辑功能。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及个模块之间或模块与I/O间的连接方式,并最终决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能, FPGA允许无限次的编程。
FPGA计算系统就是充分利用FPGA的高集成度和硬件可编程性在系统中用FPGA实现除了必要模块(如微处理器和存储器等)之外的其它逻辑和硬件互连,从而使系统具有空间上的可编程性。系统的空间可编程性是FPGA计算系统引入的新特征。它是指通过对FPGA的重新编程和配置来改变系统体系结构等一系列硬件逻辑结构。系统的空间可编程性是系统可重构的前提,它使得硬件系统的设计趋于软件编程化。然而需要指出的是,由于FPGA内部结构的完全分布性和内部单元的百分之百的互连连通性,系统的硬件互连编程不象由中央处理单元引起的软件编程那样可以充分总结指令集。
3 基于FPGA计算系统模型的双DSP实时图像处理系统
为了尽可能地获得高性能,我们提出以两个TMS320C62x为中央处理核心构成双DSP处理系统,由FPGA(这里采用ALTERA的FLEX系列)实现系统互连。系统分为处理器模块、FPGA组模块和各总线接口模块等,如图1所示。
其中处理器模块包含TMS320C62x、内存空间以及相应逻辑。处理器作为最小处理单元模块而存在,可以完成相应的处理子任务。在我们的系统中设置了两个这样的处理模块。这两个处理模块都是在系统核心FPGA控制下运行的。而FPGA作为系统中心,负责两个微处理器互相通信、互相协调以及它们与外界(这里通过主从总线和互连总线)的信息交换。同时,系统处理子任务可以由 FPGA直接派发给处理器。灵活的FPGA体系结构设计是该系统有效性的保证。在实际应用中,可以根据系统的任务,通过配置FPGA控制两个微处理器按流水线方式运行,也可以控制它们按MIMD方式并行处理同一输入图像。由于并行效率的要求,我们将系统存储空间设置为两个Bank结构,两个Bank是独立控制和运行的,系统的实现框图见图2。
由于系统的互连、各个接口以及数据通道都是通过FPGA完成,并在FPGA内部实现除一些必要逻辑之外的其它所有逻辑,因此系统的重构非常方便。这是系统设计中的最大特点。另外系统还有可测性好,可裁减性,系统设计的方便性等其它优点。
参考文献:
[1].TMS320C6000datasheethttp:///datasheet/TMS320C6000_891022.html.
[2].ALUdatasheethttp:///datasheet/ALU_2089372.html.
[3].RISCdatasheethttp:///datasheet/RISC_1189725.html.
[4].BGAdatasheethttp:///datasheet/BGA_1071529.html.
[5].CPLDdatasheethttp:///datasheet/CPLD_1136600.html.
QICK