DSP 在图像处理中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP 在图像处理中的应用
(北京科技大学自动化学院北京100081)
摘要:本文以TI TMS320C54X DSP 为例描述了DSP 作为优秀的数字信号处理平台所具备的特点,并在此基础上介绍了利用Altera 公司提供的数字信号处理开发工具DSP Builder 和现代DSP 技术,在
Matlab/Simulink 环境中建立了JPEG 算法模型,并进行了仿真验证,最后将编译代码下载到硬件上进行了在线调试。
关键词:DSP Builder;TMS320C54X图像处理
The Application of DSP in Image Processing
College of Automation, University of Science and Technology Beijing, Beijing 100081 Abstract:This paper presents the excellent characteristics of DSP chips using TI TMS320C54X DSP as an example.And it has been introduced in this paper that a JPEG algorithm model is created in the environment of Matlab/Simulinkwith the help of DSP Bulider, a digital signal processing development tool provided by Altera Corporation, and modern DSP technology. Then a simulation verification has been performed, and finally the code is compiled and downloaded to the hardware for thepurpose of on-line debugging.
Key words :DSP Builder TMS320C54X Image processin g.
0 前言
数字图像处理在当今工业及医疗领域的应用日益广泛,从而对图像处理系统的实时性和准确性提出了更高的要求。DSP 芯片以其适应于高速数字信号处理的内部结构,在图像处理领域发挥了不可替代的作用。
1 DSP 芯片简介
当前数字信号处理领域并存两大类处理器:通用处理器(GPP) 和专用处理器(DSP) ,通用处理器主要应用于PC 机中,而DSP 器件主要应用于便携式、嵌入式设备中。消费类电子产品对器件成本和功耗要求苛刻,DSP 器件正是在这两方面较通用处理器有优势。DSP 芯片采用能提供多条地址及数据总线的哈佛结构而摒弃了以往的冯·诺依曼结构。由于片内存储器比片外存储器快,在通用处理器中广泛使用的高速缓存也被引入到DSP 芯片中来。另外,为提高处理速度DSP 芯片还使用了流水线技术。TMS320C54x 是TI 公司为实现低功耗、高性能而专门设计的定点DSP 芯片。54x 系列DSP 采用改进的哈佛结构,该结构有8 条总线,使数据处理能力达到了最大限度。通过程序、数据空间的分离可同时进行程序指令和数据的存取并提供了高度的并行性。此外数据还可以在数据空间和程序空间进行传送。这种并行性还持一系列功能强劲的算术逻辑及位操作运算。所有这些运算都可以在单个机器周期内完成。同时,54x 还有包括终端管理、重复操作及功能调用等在内的控制机制。
2 DSP Builder 介绍
DSP Builder 开发工具是Altera 公司提供的数字信号处理平台, 它是一个系统级( 或算法级) 设计工具, 架构在多个软件工具之上,并把系统级和RTL 级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。DSP Builder 依赖于MathWorks 公司的数学分析工具Matlab /Simulink ,以Simulink 的Blockset 出现,可以在Simulink 中进行图形化设计和仿真,同时通过SignalCompiler 把Matlab/Simulink 的设计文件(.mdl) 转成相应的硬件描述语言VHDL 设计文件(.vhd),以及用于控制综合与编译的TCL 脚本。而对后者的处理可以由FPGA/CPLD 开发工具Quartus II 来完成。
设计人员能够同时进行多个HDL 模型或者QuartusII软件设计工程的设计,为每一个
模块生成一个独立的仿真模型,并且能够在同一设计环境中,以标准Simulink/DSP Builder 模型来仿真HDL 模块。此外,该工具可充分利用和重复使用现有设计,从而大大提高产品开发速度。在仿真软件方面,除了可以利用Simulink 的仿真环境,DSP Builder 还提供了与Modelsim 的接口,充分利用Modelsim 仿真的优势。以前DSP 开发者只能直接使用VHDL 或VerilogHDL
语言进行FPGA 的DSP 系统设计,难度比较大。现在利用基于FPGA 的DSP 开发工具DSP Builder 以及完整的软件开发平台, 可以
使设计者遵循一条类似于软件设计流程的
开发方法进行FPGA 的DSP 设计,设计效率大为提高。基于DSP Builder 的系统级开发流程如图1
所示。
3 DSP 系统设计
3. 1 有关数据传输的处理
一幅未经处理的CCD 图像大约有5M 左右,这已超出DSP 的寻址能力,而DSP 在绝大多数情况下不能以全速访问外部存储器,于是提出对中间缓冲区的要求,而缓冲区又不宜过大,解决的办法之一是将图像数据转换成数据流进行传送。首先是将像素进行横向滤波,在处理某一像素的时间内,FIR 滤波器必须同时接收下一个处理的像素并将本次处理结果传送至下一单元,这一过程就是一个简单的流水线操作。其中滤波器纵向宽度决定能够存储的行数。对于TITMS320c54X 系列的DSP 片内存储器为16k~64k ,对于动辄几兆的图像数据显得杯水车薪,但它已基本满足非实时应用的要求,譬如对静态图像的处理。
另一方法是在系统中使用DMA 技术即当原始的CCD图像数据进入外部存储器后,以DMA 方式将数据由速度较慢的外部存储器传送至DSP 片内存储器。由于DSP 没有和外部存储器之间的直接通道,因此首先应在算法上将数据分成小块,其次确保在向DMA 发出数据传输请求之后, 数据传输本身不再占用DSP 时间,从而使数据传输和数据处理同时进行,进而充分利用DSP 的计算资源。另外,由于多数系统设计中数据处理时间会多于数据传输时间,这种方法会更有利于降低功耗。
3. 2 图像数据处理中的一些具体问题
由于可用存储空间是有限的,所以DSP 系统对图像数据的处理必须建立在小数据块的基础之上。此外,为充分利用有限的I/ O 资源,数据块应在处理过程开始时取入直到整个处理过程完毕才应写回存储器。
DSP 汇编语言中的MPY,ADD 等指令使我们可以对图像数据进行线性操作,而非线性的操作则需用查表的方法来实现,而不宜用一系列的条件分支语句,例如在TMS320c54XDSP 芯片上实现一个查表操作需6 个时钟周期,而仅实现一条条件分支语句就需3 个时钟周期。当表的规模比较大时,对存储空间的合理分配显得尤为重要。
在DSP 上实现滑动窗口时应考虑如何处理相邻数据块间的重叠部分,解决这一问题的最直接的方法就是在对当前要处理的数据块调入的同时,重复调入重叠区域的数据待处理下一数据块时使用。另一方法是调入数据后根据特定算法对其重新排列,再次调入数据时只调新数据。
当前的DSP 芯片还没有对二维阵列直接处理的指令,尽管在DSP 上实现循环并不复杂,但在循环中有了乘法计算后,会引入相当大的系统开销,其原因在于二维数据的组织方式。这一点在用DSP 实现卷积运算时体现的很明显。卷积是数字图像处理中图像