基于高性能dsp图像处理

2009-01-13 22:37:00 lrx2712 阅读数 8200
基于DSP的数字图像处理(1)

目 

引 言. 1

第1章  数字图像处理的应用及现状. 2

1.1 数字图像处理的内容. 2

1.2 数字图像处理的应用. 3

1.3图像处理与图像识别. 3

1.4 VPM642图像处理开发板. 4

1.5 论文组织. 4

第2章  SEED-VPM642及其图像处理模块. 5

2.1 SEED-VPM642开发板简介. 5

2.2 DSP特点. 6

2.3  TMS320DM642芯片结构. 7

2.4视频解码芯片YVP5150AM1 9

2.5 视频处理模块. 10

2.6 图像采集与数据处理过程. 12

2.7 EDMA配置. 12

2.8 CCS集成开发环境. 14

第3章  图像的预处理及其识别. 15

3.1 YUV,YCbCr与RBG颜色模型. 15

3.2图像的平滑处理. 16

3.2.1邻域平均滤波. 16

3.2.2中值滤波. 17

3.3 阈值处理和边缘检测. 21

3.3.1二值化和阈值处理. 21

3.3.2微分法边缘检测. 24

3.3.3 Sobel边缘检测算子. 27

3.4 细线化. 29

3.5 几何校正. 31

3.5.1 图像放缩. 31

3.5.2 图像旋转. 32

3.6 图像定位与分隔. 34

3.6.1  图像定位. 34

3.6.2 图形切割算法. 35

3.7 特征提取. 36

3.8 模式匹配. 36

第4章 总结. 39

参考文献. 40

致谢. 42

 


引言

自从上世纪60年代美国喷气推进实验室对航天探测器“徘徊者7号”发回的几千张月球照片进行处理得到清晰逼真的图像之后,数字图像处理技术在科学研究、工业生产和管理部门中得到越来越多的应用。在图像识别、目标跟踪、机器人导航、自动驾驶、交通监视等领域中的应用也极大地促进了图像处理技术的发展。图像处理理论的发展特别是实时图像处理对数字图像处理器提出了较高的要求,图像处理系统必须具有强大的运算功能,DSP的发展正好能满足这一发展的要求。DSP的发展,使得在许多速度要求较高,算法较复杂的场合,取代MCU或其它处理器,而成本有可能更低。

图像识别技术是图像处理技术的高层次应用,也是模式识别的一个分支,最初从文字识别开始,然后逐步发展到识别静止图像和运动图像,接下来是对三维物体的处理和识别。图像识别技术广泛的用于军事,医学,交通,工业生产等领域,例如,字符识别,医学诊断,遥感图像解释,导航与制导,人脸与指纹识别,污染监测,工业生产检测等等。近年来国际上对这一领域给予了极大地重视,有关图像识别的理论算法也取得了较大的进展,如人工神经元网络,遗传算法等在图像识别的研究中取得了可喜的成果。现在,研究高性能,多用途的图像分析识别系统乃是有待我们努力解决的课题。

本文从图像处理的现状入手,概括介绍了TI公司DM642 型号的DSP的性能及其图像处理模块的应用,以较大篇幅介绍了关于图像处理的基础理论以及基于DSP的图像处理算法的实现。最后,以这些理论算法为基础,对所采图像中数字、符号信息进行识别,并取到了较为满意的效果。

 

 

 

 

 

第1章  数字图像处理的应用及现状

     数字图像处理是指使用数字计算机来加工、处理图像,就其处理目的而言可分为:恢复退化图像的本来面目、改善视觉效果、突出图像中目标物的某些特征、提取目标物的特征参数。

数字图像信息有以下几个特点:⑴信息量大,一幅大小为512×512的二维图像信息量为: bit,这就对计算机的速度和内存容量提出了要求。⑵相关性大,常常有大批像素具有相同或接近的灰度。因此,数据信息压缩的潜力很大。⑶占用频带较宽,如电视图像的带宽约5.6MHz,而语音带宽仅为4kHz左右。这对频带压缩技术提出很高要求。

1.1 数字图像处理的内容

数字图像处理学科所涉及的知识面十分广阔,具体方法种类繁多,应用也极为普遍,但从学科研究内容上可以分为以下几个方面:

(1)图像数字化。将模拟图像转化为计算机可用的离散的图像数据。

(2)图像变换。改变图像的表示域或表示数据,如傅立叶变换,沃尔什变换,离散余弦变换等,将空间域处理转换为变换域处理。

(3)图像增强。改善图像的质量和视觉效果,或突出感兴趣的部分,以便于人或机器分析,理解图像内容。

(4)图像复原。对退化图像进行处理,使处理结果尽量接近原始未失真图像。

(5)图像分割。根据灰度或几何特性选定的特征,将图像划分为几个有意义的部分,对有意义的部分继续处理分析,提取有用信息,以便进一步做模式识别、机器视觉等处理。

(6)图像描述和分析。也称图像理解,是对给定的或已分割的的图像区域的属性及各区域之间的关系用更为简单明确的数值、符号或图形来表征,它们反应图像的重要信息和主要特征,有利于人或机器对原图像的分析和理解。

(7)图像数据压缩。减少图像数据量,以便节省传输和处理时间以及存储容量。编码是压缩技术中最重要且比较成熟的方法。

(8)图像分类。图像经过某些预处理,再进行特征提取、分割,进而按一定的判据进行判决分类

(9)图像重建。它利用摄像,X射线或超声波在三维物体中的投射或散射信息,应用一定的算法来构造物体某断层面的二维图像或由多个断面构成三维图像。例如计算机断层扫描成像技术,俗称CT(computer tomography)技术。

1.2 数字图像处理的应用

 目前,数字图像处理已应用于许多领域。在遥感方面,以数字图像处理为基础,发展了多光谱图像遥感,SAR图像遥感和微波图像遥感,以及与这些遥感技术相对应的技术。目前,人们利用数字图像处理技术处理分析遥感图像,可以有效的进行资源勘探和调查、农业和城市土地规划、作物估产、气象预报、灾害及军事目标监视等。

在医学方面,无论是临床诊断还是病理研究都大量采用图像处理技术,如X光照片的分析,血球计数,染色体分类等。

在工业和工程方面,图像处理技术已有效的应用于无损探伤、质量检测和过程控制等方面,如应力分析、流场分析、机械零件检测和识别、印刷电路板疵病检查等。

在军事方面,图像处理技术的应用上最有价值和迫切需求的是飞行导航、导弹打靶的景物图像制导和寻的。该技术是通过判读侦查照片,进行图像匹配识别和跟踪。

另外,人像、指纹以及其他痕迹的处理和识别,以及跟踪、监视、交通监控、事故分析等都已在不同程度上使用的图像处理技术的成果。

目前,数字图像处理研究最为活跃的一个领域视基于模式识别的机器人“计算机视觉” ,该技术已发展到制造具备视觉、听觉和触觉反馈的智能机器人,它将在诸多方面起到重要作用。

1.3图像处理与图像识别

图像处理着重强调对给定的图像进行某些变换,从而得到清晰图像的过程。虽然人们常用图像处理泛指各种图像技术,但比较狭义的图像处理主要满足于对图像进行各种加工以改善图像的视觉效果并为自动识别打下基础,或对图像进行压缩编码以减少所需存储空间或传输时间,满足设定传输通路的要求。对含有噪声的图像,要去除噪声,滤去干扰,提高信噪比;对信息微弱的图像进行灰度变换等增强处理;对已经退化的图像进行复原;对失真的图像进行几何校正等变换。

图像识别就是对经过上述处理的图像进行特征抽取,如抽取图像的边缘、线及轮廓,进行区域分割等,然后根据图形的几何及纹理等特征利用模式匹配、判别函数、决定树、图像匹配等识别理论对图像进行分类,并对整个图像做结构上的分析。

随着目前对智能化的要求越来越高,图像识别已经而且会继续成为一个备受关注的研究方向。

1.4 VPM642图像处理开发板

大量数据的处理和现代图像处理算法要求图像处理系统必须具有强大的运算功能,特别是实时图像处理的场合,对硬件提出更高的要求。SEED-VPM642是一款专为各种视频应用而推出的开发板,核心芯片是TI最新推出的面向多媒体处理领域的数字信号处理器TMS320DM642。DM642建立在C64x DSP核基础上,采用德州仪器公司开发的第二代高性能的先进的超长指令字结构VeloeiTl,在600MHz的时钟频率下,DM642每秒可以进行24亿次16位的乘累加或48亿次的8位的乘累加。这样强大的运算能力使得DM642可以进行实时多视频图像处理。它的增强型直接内存存取 (EDMA)对DSP图像处理系统是非常重要的,它可以在没有CPU参与的情况下完成映射存储空间中数据搬移。

1.5 论文组织

论文第一章介绍了数字图像处理的内容、应用及现状,并由图像处理对硬件要求的提高而引入DSP。第二章介绍DSP开发板的硬件结构和开发环境,重点介绍了VPM642开发板的图像处理模块及其图像采集过程。第三章讲述了图像处理理论及算法,并在此基础之上,实现简单的图像识别。

 

 

 

 

第2章  SEED-VPM642及其图像处理模块

2.1 SEED-VPM642开发板简介

    SEED-VPM642是一款专为各种视频应用而开发的PCI插卡或带10/100M以太网接口的独立的模板,(见图2.1)其上包含:专用于数字媒体应用的高性能32位定点DSP  TMS320DM642,其工作主频高达720MHz,处理性能可达5760MIPS,可实时实现多路视频/音频的编码运算,如:MPEG4、H.264、G.729等;多路视/音频接口:4路PAL/NTSC制标准复合或Y/C模拟视频输入,1路PAL/NTSC制标准复合或Y/C模拟视频输出,4路标准的麦克风输入或Audio Line In立体声输入,4路标准的Audio Line Out立体声输出;2路可编程切换的RS232/RS422/RS485异步接口,8路数字输入,8路数字输出,用于云台控制和环境检测;大容量本地储存:标准的ATA硬盘接口,方便本地存储,实现数字录像机功能;高速数据传输接口:标准的32位、33MHz、支持主/从模式的PCI 2.2总线或10/100M以太网接口,方便实现数字视频服务器功能;实时时钟,为数字视频/音频提供实时时基信息;软/硬加密功能,更好的保护开发者知识产权。

                 

 

图2.1  SEED-VPM642开发板

2.2 DSP特点

为适应快速数字信号处理运算的要求,DSP芯片普遍采用了特殊的硬件和软件结构,以提高数字信号处理的运算速度,并且多数DSP运算操作可以在一个指令周期内完成。DSP芯片的结构特征主要是指:

① 哈佛(Harverd)结构及改进的哈佛结构

哈佛结构不同于冯·诺依曼(Von Neuman)结构的并行体系结构,其主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。与两个存储器相对应的是系统中设置了程序总线和数据总线两条总线,从而使数据的吞吐率提高了一倍。而冯·诺曼结构则是将指令、数据、地址存储在同一存储器中,统一编址,依靠指令计数器提供的地址来区分是指令、数据还是地址。取指令和取数据都访问同一存储器,数据吞吐率低。

在哈佛结构中,由于程序和数据存储器在两个分开的空间中,因此取指和执行能完全重叠运行。为了进一步提高运行速度和灵活性,TMS320系列DSP芯片在基本哈佛结构的基础上作了改进,一是允许数据存放在程序存储器中,并被算术运算指令直接使用,增强了芯片的灵活性;二是指令存储在高速缓冲器(Cache)中,当执行此指令时,不需要再从存储器中读取指令,节约了一个指令周期的时间。

② 专用的硬件乘法器

在通用微处理器中,乘法是由软件实现的,实际上是由时钟控制的一连串移位运算。而在数字信号处理中,乘法和加法是最重要的运算,提高乘法运算的速度就是提高DSP的性能。在DSP芯片中,有专门的硬件乘法器(DM642有两个乘法器,其他只有一个),使得一次或者两次乘法运算可以在一个单指令周期中完成。大大提高了运算速度。

③ 指令系统的流水线结构

在流水线操作中,一个任务被分成若干子任务,这样,他们在执行时可以相重叠,与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处理能力,把指令周期减小到最小值,同时也就增加了信号处理器的吞吐量。

第一代TMS320处理器采用二级流水线,第二代采用三级流水线,而第三代则采用四级流水线。也就是说,处理器可以并行处理2~6条指令,每条指令处于流水线上的不同阶段。在三级流水线操作中,取指、译码和执行操作可以独立地处理,这可使指令执行能完全重叠。在每个指令周期内,三个不同的指令处于激活状态,每个指令处于不同的阶段。

④ 片内外两级存储结构

在片内外两级存储器结构中,片内存储器虽然不可能具有很大的容量,但速度快,可以多个存储器块并行访问。片外存储器容量大,但速度慢,结合他们各自优势,实际应用中,一般将正在运行的指令和数据放在内存储器中,暂时不用的数据和程序放在外部存储器中。片内存储器的访问速度接近寄存器访问速度,因此DSP指令中,采用存储器访问指令取代寄存器访问指令,而且可以采用双操作数和三操作数来完成多个存储器同时访问,使指令系统更加优化。

⑤特殊的DSP指令

DSP的另一个特征就是采用特殊的DSP指令,不同系列的DSP都具备一些特殊的DSP操作指令,以充分发挥DSP算法和各系列特殊设计的功能。

⑥快速指令周期

哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令再加上集成电路的优化设计,可使DSP芯片的指令周期在200ns 以下。TMS320系列处理器的指令周期已经从第一代的200ns降低至现在的2ns 以下。快速的指令周期使得DSP芯片能够实时实现许多DSP应用。

2.3      TMS320DM642芯片结构

DM642 (TMS320DM642)型处理器是TI公司最新推出的面向多媒体处理领域的数字信号处理器(DSP)。 DM642建立在C64x DSP核基础上,采用德州仪器公司开发的第二代高RS232性能的先进的超长指令字结构VeloeiTl.2TM, 含有双数据通路、8个运算单元,每周期可执行8条32-bit指令,支持4个16-bit和8个8-bit连乘加MAC指令,有64个寄存器,取数/存数的数据通道为64-bit。在600MHz的时钟频率下,每秒最多可完成4.8 G次操作,具备在线编程功能,带有的丰富外围接口可以与多种存储器相连,可以直接与网络连接。DM642每秒可以进行24亿次16位的乘累加或48亿次的8位的乘累加,这样强大的运算能力使得DM642可以进行实时多视频图像处理。

DM542结构框图如图2.2,其外部端口包括:

 

 

图2.2  DM642结构框图

·三路可配置的视频端口,可以进行视频输入输出,数据流输入的无缝连接

·VCXO interpolated control port (VIC),内插控制接口

· 10/100 Mbps ethernet MAC (EMAC),光纤接口

·Management data input/output (MDIO) module,数据输入输出控制模组

·Inter-Integrated Circuit (I2C) bus Module,I2C总线模组

·Multichannel audio serial port (McASP),多通道音频端口

·Two multichannel buffered serial ports (McBSPs),多通道缓冲端口

·3个32位通用定时器

·host port interface (HPI16/HPI32),用户可配置16位,32位主机接口

·66 MHz 32-bit peripheral component interconnect (PCI),PCI总线

·General-purpose input/output (GPIO) port,通用输入输出端口

·64-bit external memory interface (EMIF),64位外部存储器接口

DM642采用两级Cache结构,1级程序缓存(L1P)是128K的直接映射的缓冲区,1级数据缓存(L1D)是128K的设置相关联的2块缓冲区。2级存储器/缓存包括2M的程序数据存储空间。2级存储器可以配置为映射存储区,缓冲区,或者两者的结合。

增强的直接存取器访问(EDMA)控制器处理二级(L2)缓存控制器和 DSP 的片外设备之间的所有数据传输。这些数据传输包括高速缓存服务,无缓存内存存取,用户定义数据传输和基本传输。C64x EDMA 最多可支持64 个EDMA 通道,这些通道服务于片外设备和外部存储器。

内部时钟信号都可以通过内部锁相环电路PLL产生,Power down 电源管理模块可以控制可部分的工作模式,以降低功耗。

2.4视频解码芯片YVP5150AM1

TVP5150A 芯片是一款超低功耗NTSC/PAL/SECAM视频解码器。TVP5150A 解码器将 NTSC, PAL, 和 SECAM 视频信号转换为8位ITU-R BT.656信号。在典型运行条件下,该解码器的功耗是115mW,而在低功耗模式下,功耗仅有1mW,是的它在便携式设备中得到大量应用。TVP5150A 解码器需要一个外部晶振,可以再I2C总线下进行编程,内核电压1.8V,I/O电压3.3V。

TVP5150A 解码器将基带模拟视频转换为数字YCbCr 4:2:2 复合视频,同样支持合成及S-Video输入。内部带有9位A/D转换器,输出为8位4:2:2格式或8位ITU-R BT.656格式。解码器时钟频率为14.31818M,由晶振分频所得。内部寄存器的读写采用总线控制。下图为TVP5150A与DSP的连接电路图,由于TVP5150A的输入信号为0.75VPP,而外部输入信号一般为1VPP,所以外部视频输入与TVP5150A之间串接18Ω和56Ω到地分压电阻网络,以达到TVP5150A输入电平要求。本系统采用复合视频信号输入,CYBS/Y0作为复合视频输入,CYBS/C0接地。

 

 

图2.3 解码芯片与DSP连接电路图

2.5 视频处理模块

DM642型数字信号处理器可实时处理4路模拟视频和音频输入、l路模拟/数字视频和1路模拟音频信号输出,适应PAL/NTSC标准复合视频CVBS或分量视频Y/C格式的模拟信号输入,可适应PAL/NTSC标准S端子或数字RGB模拟/数字信号输出,可适应标准麦克风或立体声音频模拟输入及标准立体声音频模拟输出,具有对多路采集数据进行实时处理和分析的功能,可实现数据和图像叠加显示。视频框图如图2.4。

 

图2.4 视频端口配置

   视频接口可工作在三种状态:视频捕获模式,视频显示模式,TSI捕获模式。如图示,每个视频端口包括A,B通道,两通道共有5120字节的缓冲器。对于视频捕获模式,端口可以作为2个8/10位通道来捕获BT.656或RAW原始图像格式;或者作为单通道8/10位的BT.656,8/10位RAW,16/20位的Y/C视频格式,16/20位的RAW原始图像格式,8位的TSI格式。对于视频显示模式下,端口可以在单通道方式下显示:8/10位的BT.656,8/10位RAW,16/20位的Y/C视频格式,16/20位RAW。

视频捕获操作方式如下:模块对输入的图像数据采样,并将其存入图像的FIFO里面,当FIFO里的数据达到一定数量后,将出发DMA通道将数据从FIFO送入DSP存储器中。某些情况下,在图像数据输入后进行色彩分离(YC信号分离),这就需要多个FIFO和多通道DMA来进行数据传输。视频捕获和视频显示有多种方式,这里仅介绍BT.656 捕获和显示方式。

BT.656 捕获方式中,TVP5150A 解码器将基带模拟视频转换为数字YCbCr 4:2:2 复合视频,系统捕获8位或10位的4:2:2的亮度、色彩复合信号进入单一的数据流中。视频信号转换为Cb,Y,Cr,Y,Cb,Y,Cr,……的形式,其中,序列Cb,Y,Cr表示同位置的亮度和色彩样本,接下来的Y值对应于下一个亮度样本。数据流以这种方式分离后,各分量分别以打包的形式进入各自所对应的FIFO中,为进一步进入DSP内存中的缓冲器做准备。打包和采样的顺序依赖于采样位数(8为或10位)以及DSP的模式(big-endianess 和little-endianess)。每个通道的数据线都是10位,对于8位操作,输入的数据按高位对齐(9-2位),低2位忽略。

BT.656 视频显示方式下,将输出一通道复合数据流的8位Y/C或者10位的4:2:2同位置亮度色度信号。像素点成对输出,每对包含两个亮度采样和两个色度采样。显示时要连接SAA7120视频译码器,如下图示。

 

图2.5  8位Y/C显示方式连接

2.6 图像采集与数据处理过程

TMS320DM642有三个可配置的视频端口:VP0、VP1和VP2,与视频采集芯片连接,该系统将VP0口与之连接,采用8位ITU-R BT.656模式。将VPxD2~9,直接与A/D芯片的8根输出管脚相连。输入的PAL/NTSC模拟信号经过视频解码芯片A/D后形成的数字视频信号直接进入相应的视频端口中。采集8 bit ITU-R BT.656数据时,视频端口接收A/D的亮度与色度的复合数据流(YUV422,称为packet格式:Cb,Y,Cr,Y,Cb,Y,Cr ),然后将它分解成三个单独的数据流(planar格式),分别是Y,U,V,再将分离后的数据打包存放到各自的FIFO中。

将FIFO分成3部分,其中为亮度数据Y分量分配的FIFO为1280B,为每个色度数据分量分配FIFO为640B;每个FIFO都有相关的存储器映射地址:YSRC,CBSRC和CRSRC;EDMA将使用这些地址作为数据搬运操作的源地址。每个视频端口最多可以使用六个EDMA通道,当某个FIFO的计数器到达VCTHRLDn寄存器设置的数值时,就可以触发相应的EDMA(增强的直接存储器存取控制器)事件。

图像获取模式下,使用YEVT, CbEVT,  CrEVT事件来告知DMA控制器将buffer中的图像采样数据复制到DSP的存储器中。产生事件的号码是VCxTHRLD中的VCTHRLDn设置的。在每个YEVT, DMA 使用YSRC定位源地址,将数据从Ybuffer里面送入DSP存储器中;类似的,在每个CBSRC ,CrEVT,DMA分别使用CBSRC和CRSRC定位各自源地址,将数据从各自buffer里面送到DSP存储器中。对于每4个Y采样,对应于2个Cb 采样和2个 Cr采样,所以Cb 和 Cr的buffer空间是Y空间的一半。

2.7 EDMA配置

EDMA配置是为了从FIFO搬运数据到SDRAM中,采用1D/2D传输,即源地址不变,而目的地址则在每次传输后按索引值自动更新。我们为每一场设置一个EDMA参数,并将这些参数连接起来,一次传输任务的结束会自动从参数RAM中装载下一次传输需要的参数,从而实现某些复杂数据流的传输。

初始EDMA参数设置:数据源地址;数据目的地址:第一行起始地址;数据单元计数:一行的采样点数:每行像素数;阵列计数:一场的采样行数;阵列索引:一场采样点数的两倍(两场按行交叉存放);参数连接地址:下一组EDMA参数。格式如图2.7所示。

可选参数设置:优先级:用户设置;数据单元子长:32bit;1D/2D源/目的地址传输;源/目的地址更新模式:源地址不更新,目的地址按阵列索引更新;传输结束中断:使能每帧的底场结束中断,并设置中断码;顶场禁止;EDMA事件连接:使能所有EDMA参数的连接。

通过以上参数设置后三个EDMA通道分别负责从视频端口FIFO中搬运Y、Cb和Cr三个分量到SDRAM中;EDMA每启动一次,从FIFO中搬运一行的采集数据到SDRAM中,并在搬运完毕后自动更新目的地址;EDMA阵列计数值到0后启动参数连接,从参数RAM中装载下一次传输需要的参数,若使用了传输结束中断,则执行EDMA中断服务程序。

 

EDMA参数存储结构

Option(可选参数)

Word 0

SRC Adress(源地址)

Word 1

Array/Frame count

(帧/阵列计数)

Element count

(数据单元计数)

Word 2

Dst address(目的地址)

Word 3

Array/Frame index

(帧/阵列索引)

Element index

(数据单元索引)

Word 4

Element count reload

(数据计数的重加载)

Link address

(连接地址)

Word 5

图2.7  EDMA参数配置存储结构

模拟视频输入PAL或NTSC都是按场隔行扫描,因此数据可以按照场模式进行存储,即先存储顶场再存储底场,在存储器中是单独的两场图像;或者按帧模式进行存储,即顶场和底场按行交叉存储,将两场图像拼成一帧图像。

按帧模式存储时,在SDRAM中申请一帧缓存,然后为每一帧中的每一场的亮度和色度分量指定存储地址,两场地址相差一个象素行,首先采集顶场,然后采集底场,两场按行交叉存放形成完整的一帧。

在DSP中开辟三个存储数据段,分别存放这些数据:capChaAYSpacecap,ChaACbSpace,capChaACrSpace。段定义如下:

#pragma DATA_SECTION(capChaAYSpace, ".capChaAYSpace")

Uint8 capChaAYSpace[720*576];

#pragma DATA_SECTION(capChaACbSpace, ".capChaACbSpace")

Uint8 capChaACbSpace[360*576];

#pragma DATA_SECTION(capChaACrSpace, ".capChaACrSpace")

Uint8 capChaACrSpace[360*576];

由于摄像头采用镜像方式成像,摄像头扫描时,先扫描到的是图片的最底端,所以EDMA传输时应将最先采到的数据送入存储区的高地址处。Y采样时,由于每行为720像素,EDMA每次传输的数据单元数应为720字节,即Y目的基地址应为最高地址-720。目的地址按阵列索引更新方式应为,每次目的地址减去720字节的位置。Cb,Cr采样与之类似。

2.8 CCS集成开发环境

 CCS(Code Composer Studio)提供了环境配置,源文件编辑,程序调试,跟踪和分析等工具,可以帮助用户在一个软件环境下,完成编译,编译链接,调试和数据分析等工作。CCS可以工作在两种模式下——软件仿真器和与硬件开发板相结合的在线编程。前者可以脱离DSP芯片,在PC机上模拟DSP的工作机制,主要用于前期算法调试。后者实时运行在DSP芯片上。

CCS操作界面如下图,关于CCS的使用,详见参考文献[3],在此不再赘述。

2019-06-22 20:50:52 YEYUANGEN 阅读数 1782

1. 核心板简介

SOM-XM5728 是信迈科技基于 TI AM5728 处理器的工业级核心板,采用沉金无铅、十层板、工业级设计,可应用于运动控制系统、机器视觉处理系统、图像识别系统、音频分析系统、视频分析系统,高端测量仪器等行业应用。

  • 客户可基于不同的应用,采用不同的 CPU、内存、外存配置。核心板支持基于 TI AM5728处理器,内置两个 ARM Cortex-A15 处理器,和两个浮点 DSP C66x™ Floating-Point VLIW DSP@750MHz、同时支持多种工业协议的 PRU-ICSS。内存支持工业级 1GB-4GB DDR3,外存则支持工业级 4GB-16GB eMMC,扩展非常方便。
  • SOM-XM5728 核心板支持 EtherCAT,EtherNet/IP、PROFIBUS等多种工业通信协议,产品可轻松实现各总线控制和工业组网;通过双 C66x DSP 实现更复杂的,更高精度的运动控制插补算法;并可通过 GPMC 总线连接 FPGA 的方案,实现更多的工业控制与图像处理功能。
  • SOM-XM5728核心板通过 8x McASP 和双 C66x DSP,可实现 16 路或 32 路高端应用的音频处理分析算法,可实现声源定位、回音消除等各种音频分析处理场景应用。
  • 视频编解码能力强大,支持 1 路 1080P60 或 2 路 720P60 或 4 路 720P30 视频硬件编解码,支持 H.265 视频软解码;在视频处理上,利用双 C66x DSP 的强大功能,可实现复杂的图像识别、视频分析及识别、各种数据实时分析处理、以及其他高端 AI 应用场合等。
  • 高性能 GPU,双核 SGX544 3D 加速器和 GC320 2D 图形加速引擎,支持 OpenGL ES2.0;
  • SOM-XM5728软件 SDK 开发包,提供 Linux4.14.67 系统、DSP RTOS 系统,支持 OpenCL、OpenMP、SysLink IPC 多核开发提供 ARM 与 DSP 多核间通信方法与案例,让高速信号处理、音视频数据分析等开发难度大大降低。
  • 体积小,大小仅 86mm*60.5mm;

 

评估板:

2  AM572x 处理器规格

处理器

AM5728

AM5726

ARM

2x Cortex-A15@1.5GHz

2x Cortex-A15@1.5GHz

DSP

2x C66x@750MHz

2x C66x@750MHz

图像加速器

2x 3D and 1x 2D

N/A

显示输出最高分辨率

1080p@60fps

N/A

显示输出接口

3x LCD and 1x HDMI 1.4a

N/A

 

3. 主要特点

同时具有 2x Cortex-A15@1.5GHz、2x C66x DSP@750MHz、2x Cortex-M4、2x PRU 

采用工业级精密BTB 连接器进行连接,保证信号完整性,安装拆卸方便稳定可靠

最大支持 6 路视频输入3路视频输出

最大支持 8  McASP

最大支持 2  CAN 接口

最大支持 10  UART

最大支持 3  LCD

最大支持 4  SPI

最大支持 3  MMC

最大支持 5  I2C

最大支持 2 路千兆网口

支持 1  SATA-2 接口

支持 1  USB 3.0

支持 2 USB 2.0

支持 1  HDMI

支持 1  PCIe 3.0, 支持 1*2-lanes  2*1-lane 两种模式

支持 Linux 4.14.67、DSP RTOS 系统,支持实时 RT-Linux 系统

工作温度范围:-40℃~85℃(工业级)

 

4. 应用领域

本核心板应用广泛,主要包括工业运动控制系统、机器视觉处理系统、音频分析系统、高清图像识别系统、视频分析处理系统、医疗图像处理、电力自动化、高端测量仪器、EtherCAT 主/从控制器等应用领域。

 

核心板规格

1. 核心板结构

                                                                                        机械尺寸图

结构参数

连接器

BTB 连接器

尺寸

86MM*60.5MM*6MM

引脚间距 

0.5MM

引脚数量 

400(80+80+80+80+80)

核心板和底板间合高 

5MM

安装孔数量

6个

 


硬件规格参数

项目

类型

型号参数

说明

核心配置

CPU

TI AM572x

ARM Cortex-A15 CPU@1.5GHz ,集成C66x  DSP@750MHZ, 集成 SGX544  3D GPU

片上缓存

L2 Cache

ARM Cortex-A15:1Mbyte
C66x:288KB

On-Chip Memory

2.5 MByte

内存

DDR3

1GB/2GB/4GB

eMMC

4 -16GB eMMC

电源管理

TPS6590377ZWSR

总共有15路输出,有输出短路和过载保护,有过温警告和关断保护,有过压和欠压保护,可通过 I2C 接口控制

连接器

5 x 80 pin B2B 连接器

包含一个高速连接器。引脚间距 0.5MM,共 400PIN

引脚功能

显示输出

3 x LCD

支持 24bit、16bit、8bit,与其他接口复用

1 x HDMI

支持 HDMI 1.4a

Video

6 x Video Input Ports

3 x Video Input Ports

最大支持 6 路视频输入3路视频输出

以太网

2 x Ethernet

支持 MII、RMII、RGMII,与其他接口复用

PRU

2 x PRU-ICSS

支持PRU-ICSS

串口

10 x UART

3.3V TTL 电平,UART3 为调试串口,10路均支持硬流控和软流控,与其他接口复用

音频

8 x McASP

支持 I2S 和 S/PDIF,支持录放音,与其他接口复用

数字视频输入

10 x VIN

支持 24bit、16bit、8bit,与其他接口复用

MMC

3 x SDIO

支持 1bit 和 4bit,与其他接口复用

USB

2 x USB

其中一路支持 USB3.0, 一路支持USB 2.0

PCIe

1 x PCIe 3.0

支持 1*2-lane 或 2*1-lane,需要外部输入时钟

SATA

1 x SATA

SATA Gen2

PWM

3 x PWM

与其他接口复用

I2C

5 x I2C

其中 IIC1 配置 PMIC,与其他接口复用

SPI

4xSPI

与其他接口复用

DCAN

2x DCAN

支持 2.0B 协议,与其他接口复用

GPMC

1x GPMC

16 位地址线,与其他接口复用

JTAG

1 x JTAG

JTAG用于在线调试

TIMER

16 x Timers

最大支持16个定时器

EMIF

2 x EMIF  

 

按键控制器

1 x Keyboard Controler

支持 9X9 矩阵键盘,与其他接口复用

RTC 时钟

独立 RTC

纽扣电池供电,可关断系统电源时保存时间

电源

电源输入

DC 5V/3A

 

2. 核心板工作环境

环境参数

最小值

典型值

最大值

工业级温度

-40℃

/

85℃

工作电压

4.3V

5V

5.25V

3. 核心板功耗

电压

电流

功耗

4.93V

830mA

4.09W

备注:功耗测试基于深圳信迈 XM-EVM572x 开发板进行。

4 软件参数

Linux

启动下载

版本

u-boot 2018.01

启动方式

支持从 eMMC/SD 启动

启动速度

支持启动速度优化

启动画面

支持开机画面定制

下载方式

支持串口和网络下载

Kernel

内核版本

Linux 4.14.67

支持文件系统

EXT3/EXT4/NFS/JFFS2/UBIFS

设备驱动

提供所有外设驱动

文件系统

Rootfs

可根据需求进行文件系统定制

图形界面

QT5.7

提供完善的QT开发资源

DSP

CCS 7.1

 

DSP 调试及开发工具,提供安装、基本使用指南

RTOS SDK

 

提供安装、基本使用指南

IPC通讯协议

 

提供 ARM 与 DSP 之间多核通讯协议资料

DSP Sysbios

 

提供 DSP RTOS 系统镜像

 

技术服务

1. 开发资料

提供核心板引脚定义、可编辑底板原理图、可编辑底板PCB,缩短硬件设计周期;

提供系统烧写镜像、内核驱动源码、文件系统源码,以及丰富的 Demo 程序;

提供完整的平台开发包、入门教程,节省软件整理时间,上手容易;

 提供基于核心板的产品设计手册,包括硬件设计、系统软件移植、驱动开发、应用软件开发环境。产品开发速度大幅提升,开发周期缩短一半以上,最快一周出产品设计!

提供主芯片数据手册、软件开发 SDK 包、软件开发环境,让您快速进入软件开发状态;

提供 QT 开发环境,快速进入应用软件开发;

 

2. 技术支持服务

  1. 协助底板设计和测试,减少硬件设计失误;
  2. 判定产品是否存在故障
  3. 信迈嵌入式产品的软硬件资源解释
  4. 帮助您正确地编译与运行我们提供的源代码
  5. 按我们提供的产品文档,操作信迈嵌入式软硬件产品出现异常问题的
  6. 提供长期可靠的售后支持与服务

 

3. 增值服务

  • 底板/核心板定制设计
  • 项目合作开发
  • Linux系统定制
  • 嵌入式软件开发

 

4. 更多帮助

销售邮箱:sales@szxinma.com

技术邮箱:support@szxinmai.com

信迈官网:www.szxinmai.com

淘宝商城:https://item.taobao.com/item.htm?spm=a230r.1.14.70.7e7c26f2FHlpA0&id=596565683992&ns=1&abbucket=12#detail

TI 中文论坛:http://www.deyisupport.com/

TI 英文论坛:http://e2e.ti.com/

TI 官网:www.ti.com

2019-08-03 22:27:27 weixin_30614587 阅读数 109

基于DSP和FPGA的通用图像处理平台设计

时间:2009-07-24 10:13:57 来源:国外电子元器件 作者:孙浩,陈安,胡跃明 华南理工大学

摘要:设计一种基于DSP和FPGA架构的通用图像处理平台,运用FPGA实现微处理器接口设计,并对图像数据进行简
单预处理,利用DSP进行复杂图像处理算法和逻辑控制,实现图像数据的高速传输与实时处理。系统可应用于贴片机芯
片检测中,并进行性能评估实验。实验表明该系统满足实时性和功耗的设计需求,易于维护和升级,具备较强的通用性。
关键词:数字信号处理器;现场可编程门阵列;数字图像处理:DSP/BIOS


1 引言
    随着数字化技术不断发展和完善,数字图像处理技术已广泛应用于工业、军事、生物医疗、电信等领域。实际应用中能够运行复杂灵活的图像处理算法和大数据量的 数据传输处理能力成为图像处理平台稳定运行的前提,而系统实时性、体积、功耗等因素也至关重要。传统数字图像处理平台大多采用通用PC机、高速图像采集卡 和基于VC++的软件平台来实现,但很难满足当前对系统体积、功耗和实时性要求。因此这里提出的基于DSP和FPGA的通用图像处理平台,充分发挥 FPGA灵活性强和DSP运算速度快、寻址方式灵活的优点,更好地提高图像处理系统的集成度,降低系统功耗,并满足实时性要求。


2 高速图像处理平台的工作原理
    为实现高速图像的实时处理,该系统采用DSP和FPGA线性流水线阵列结构,将FPGA可在通用接口设计和简单信号处理等方面的优点与DSP的快速数字信 号处理能力相结合,充分发挥这两者的优点。该系统主要由DSP和FPGA的子系统构成,为保证大量图像数据流快速稳定通讯,DSP与FPGA间通过外扩的 SDRAM实现大容量数据交换。DSP子系统则实现较为复杂的图像处理算法,并提供图像存储功能。而FPGA子系统完成CCD传感器图像数据的预处理以及 微控制器通用接口功能。
    系统结构原理图如图1所示。CCD传感器输入的图像数据经FPGA预处理后,将数据传送至DSP,DSP对输入数据进行实时图像处理,并将处理后的图像通 过EMIF接口发送并保存至外扩SDRAM。同样,FPGA也能够读取外扩SDRAM的图像数据,通过VGA接口实时显示。对于少量数据流,如系统参数或 图像数据传输的起止信息等,则通过SPI接口实现。DSP子系统内部扩展有SD卡接口和USB主机接口,主要用于图像数据的存储和传输等。FPGA子系统 外扩的主要接口包括:I2C、SPI、UART、PS/2和VGA等接口,用于系统升级和调试,提高系统通用性。

3 系统硬件结构设计
    系统硬件设计采用模块化设计思想,将整个系统分为DSP子系统和FPGA子系统。这两者间的数据交换通过双端口RAM方式实现。
3.1 器件选型
    该系统设计选用TI公司的TMS320VC5509A型DSP。该款DSP功耗低,片上资源丰富,主频最高可达200 MHz,片上带有128 K×16 bit RAM和32 K×16 bit ROM,内置6个DMA通道,1个I2C接口,3个McBSP接口,1个RTC模块,其外部存储器接口(EMIF)能与SDRAM无缝连接,同时还带有 USB接口。FPAG选用ALTERA的Cyclone-II系列处理器,具有强大的逻辑处理能力,从而实现微处理器通用接口设计和简单信息预处理功能。
3.2 DSP与FPGA的接口设计
    为保证系统实时性,DSP与FPGA之间的接口需实现大数据流通讯流畅的功能。将FPGA内部结果缓冲器模拟为SDRAM接口,一端输入CCD图像信号, 一端输出图像数据并连接至DSP数据线。DSP的EMIF接口外接一片4 M×16 bit的SDRAM MT48LC4M16A2-75,通过将处理后的图像数据回传至外扩SDRAM,由FPGA实时读取并通过VGA接口显示,从而实现DSP与FPGA之间 数据通讯功能。这两者之间配置的双端口RAM连接如图2所示。

3.3 DSP子系统
    DSP子系统主要包括电源管理单元、EMIF接口、SD卡接口、USB接口、JTAG调试接口和引导装载(Bootload)电路等。电源管理单元主要为 系统提供稳定电源;EMIF接口主要用于外部扩展存储器;SD卡接口用于掉电后图像数据的存储;USB接口用于外接其他外设;JTAG接口用于电路调试 等。
3.3.1 电源管理单元
    DSP子系统供电可分为1.6 V和3.3 V两种,DSP内核需1.6 V供电,外设及I/O端口采用3.3 V供电,并需保证内核先于I/O上电,I/O先于内核掉电。该系统采用电源器件TPS767D301配置不同电压值。该器件包括两路电压输出,每路最大输 出电流可达1 A.输出电压稳定。图3为电源管理单元电路。

3.3.2 外部存储器接口
    TMS320VC5509A内部集成的EMIF接口除了支持异步存储器,还支持同步突发静态存储器(SBSRAM)和同步动态存储器(SDRAM)。在此 通过编程寄存器配置EMIF和SDRAM的连接。设置CE空间控制寄存器1的MTYPE=011b表明连接存储器是SDRAM。图4为配置的4 M×16 bit的SDRAM MT48LC4M16A2-75的连接电路。由于单个CE空间的限制是4 MB,故使用2个CE空间,并将CEO引脚作为片选,CE1引脚悬空。外扩的SDRAM主要用于存储处理后的图像数据。

3.3.3 SD卡接口
    TMS320VC5509A内置MMC控制器支持对MMC卡和SD卡的读写,支持MMC/SD协议和SPI协议,MMC控制器的运行频率可通过程序设置, 并与McBSP接口引脚复用,使用时需设置外部总线选择寄存器(EBSR)。图5所示为MMC控制器与SD卡信号连接图,连接信号有:时钟信号 (CLK)、控制信号(CMD)和数据信号(DAT0~DAT3)。

3.3.4 Bootload电路
    Bootload的功能是在系统上电后,将用户程序从片外的慢速存储器加载至片内RAM中,并使其高速运行。这里选用EEPROM作为外部非易失性程序存 储器。TMS320VC5509A的Bootload方式支持EMIF模式,SPI模式和McBSP模式等。其中SPI模式的EEPROM自举有两种,一 种是基于16位字节地址,最大可达64 K寻址空间;另一种是基于24位字节地址,最大可达16 M寻址空间。在此选用第一种方式,并引出Bootload模式选择引脚BOOTM[3:0],便于系统升级。
3.4 FPGA子系统组成及功能
    为实现该图像处理平台通用性和实时性,FPGA子系统需实现的功能包括:开放式的图像数据采集总线,DSP图像处理实时数据总线,100 MB以太网接口,UART接口,VGA实时显示模块,I2C存储器接口和PS/2接口等。其中UART接口方便系统软件开发及调试,VGA接口用于图像数 据实时显示,I2C接口外接EEPROM用于系统参数的掉电存储。为实现多个系统的网络化,FPGA子系统还设有以太网接口,用于多个系统将处理结果回传 至PC端口。PS/2接口为预留端口,后期根据需要增加键盘等输入设备。


4 系统软件设计
4.1 软件开发开具
    该系统软件设计采用TI公司CCS3.1(Code ComposerStudio)作为开发环境,并利用CCS自带的DSP/BIOS实时操作系统进行设计。在CCS中完成软件的编辑、编译、调试、代码性 能测试和项目管理等工作。通过使用DSP/BIOS提供的一系列丰富的内核服务,快速创建满足实时性能要求的精细复杂的多任务应用程序。DSP/BIOS 内核具有跨平台的标准API接口,能被用户程序调用,易于移植。此外,这些服务除支持多线程调度管理外,还支持系统实时分析以及资料管理。 DSP/BIOS内核具有很大的尺寸伸缩性,多线程配置下的内核镜像的代码量最小仅有1 K字,占用DSP资源非常少。
4.2 软件系统总体设计
    在硬件平台基础上,利用CCS集成开发环境中的DSP/BIOS实时操作系统内核,开发具有可扩展性的软件系统。系统软件部分采用模块化和层次化设计思 想。软件结构主要包括:设备驱动层、操作系统层、应用程序接口(API)层和应用层。设备驱动层负责与硬件有关的各个模块或外设的驱动程序设计;操作系统 层负责嵌人式实时操作系统移植;应用程序接口层完成系统控制功能、数据读写等,并实现硬件无关性;应用层则设计与系统应用背景有关的控制程序。图6为系统 软件运行流程。软件设计主要分为CCD图像预处理后的接收任务、快速数字图像处理任务、逻辑控制任务和图像数据回传任务。系统上电后,程序首先执行DSP 的初始化和DSP/BIOS初始化,接着执行函数主体并启动DSP/BIOS操作系统,以后的任务均由操作系统进行调度。采用嵌入式实时操作系统 DSP/BIOS构建的图像处理软件平台能较好满足任务对实时性的要求,且结构稳定紧凑,可移植性高。

5 实验结果
    为验证该系统的通用性与实时性,将其应用于某型号贴片机的器件检测中,并进行以下3个实验:DMA方式下大容量数据传输实验,阈值分割测试实验和模板匹配 测试实验。其中DMA方式下大容量数据传输实验,通过DMA方式将片内数据传输至片外SDRAM内部,图像大小为600×480字节。阈值分割和模板匹配 实验则直接读取片外SDRAM中的图像数据,并对图像分别进行阈值分割和8×8模板匹配实验,图像处理算法采用TI公司图像处理库甬数。IMG threshold()和IMG_mad_8×8()。设置DSP运行时钟为208 MHz,采用定时器0计时,DMA通道选用通道0,图像数据大小为600×480字节。实验结果如表1所示。

    以上实验数据表明,当采用600×480面阵CCD数据采集,并要求每帧图像处理时间限定在30 ms以内时,该系统能很好满足当前系统需要。


6 结论
    系统能够满足600×480面阵CCD和普通线阵CCD传感器对系统处理能力的需要,具有较强的通过性和实时性。其设计创新之处在于,充分运用DSP的强 大运算能力和灵活的寻址方式,结合FPGA在通用接口设计和简单信号处理速度方面的优点,采用基于DSP/BIOS的软件架构,使得系统集成度高,功耗 低,具备更高的实时性和可移植性。

转载于:https://www.cnblogs.com/zhangzhi/archive/2009/10/09/1579578.html

2008-07-28 09:31:00 linglongyouzhi 阅读数 0
 

基于DSP的嵌入式显微图像处理系统的设计

[日期:2008-7-25] 来源:电子技术应用  作者:张怀柱 尹传历 宋建中 乔 双 [字体: ]

 

显微图像处理是数字图像处理的一个重要研究领域,随着其技术的不断发展,已经在材料、生物、医学等领域得到了广泛应用[1][2]。目前的显微图像处理通常利用图像采集系统将显微图像采集到计算机中再进行图像处理,这样,虽然运算速度高,但体积庞大、不便于携带,有一定的局限性。因此,采用数字图像处理技术和DSP技术实现颗粒显微图像的高效、快速、全面的统计与测量,具有重要的实用价值和广阔的应用前景。
    本文提出并设计了一种基于DSP和FPGA的嵌入式显微图像采集处理系统,如图1所示。其中,图像采集与处理装置是整个系统的关键部件,它以DSP和FPGA为核心,DSP作为中央处理器负责图像滤波、阈值分割及目标的数目、直径及面积等统计处理,通过FPGA完成各种接口逻辑和时序匹配,并配以大容量存储器用于图像的存储。DSP芯片体积小,运算速度快,使用灵活方便;FPGA具有在系统可编程和控制逻辑实现灵活的特点。因此,既能够满足处理的快速性,又能满足小型化便于携带的要求。

 


1 系统硬件平台设计
    基于视频图像处理的显微图像处理系统的性能,在很大程度上依赖于其硬件处理单元的结构和性能。本系统所采用的硬件结构主要由5大模块组成:DSP核心处理单元、视频图像采集与存储模块、字符与图形迭加单元、通讯与用户交互接口模块、电源模块。系统电路框图如图2所示。

 

 

图2  嵌入式显微图像处理系统硬件结构框图

    系统的工作过程为:系统上电后,DSP执行BOOTLOAD程序,将用户程序代码从外部Flash load到内部程序存储器,并执行A/D、字符迭加等初始化操作。视频采集与转换模块将CCD摄像机输出的模拟视频信号转换为数字图像数据并存储在RAM中,在一场图像采集完毕后,由场同步信号通过FPGA以中断方式通知DSP,DSP从RAM中读取图像,并负责完成图像滤波、分割、测量等各种处理算法,将测量结果通过字符图形迭加单元显示在监视器屏幕上,也可以根据需要由通讯接口模块传送给主机。各种接口逻辑与时序控制通过在FPGA器件内部编程实现。
    模拟视频信号分为两路:一路经A/D转换为数字图像信号,另一路则与视频叠加芯片MAX442和字符叠加芯片μD6453进行图形和字符的叠加显示。这里采用Philips公司的SAA7111A作为视频A/D解码芯片,它将CCD摄像机输出的模拟视频信号转换为数字图像数据,并在FPGA的控制下存储在RAM中,同时产生行同步信号HS、场同步信号VS、奇偶场标志信号RTS0以及像素时钟信号LLC2。MAX442是一个双通道视频信号放大器,增益带宽高达140MHz。μPD6453为NEC公司生产的用于视频设备中的字符发生芯片。待显示的字符和图形与CCD摄像机输出的原始图像一起叠加显示在监视器屏幕上。
    在图像采集过程中,视频解码芯片SAA7111A按像素逐点输出4:2:2的YUV格式的数字图像数据。该格式中,每帧图像的分辨率为720×576,即每行有720个像素点,每帧576行,由于一帧图像是由奇、偶两场图像组成的,因此每场图像有288行。为了处理方便,每场采集的图像大小为512×256,即每行采集512个像素,每场(奇场或偶场)采集256行,通过在FPGA中编程实现像素延时和行延时,选择每行中间的512个像素和每场中间的256行。
2 软件设计
    传统的DSP程序多采用单线程顺序结构实现,其实时性较差,资源利用率低,在高速、实时的图像处理领域中难以满足实际要求。CCS(Code Composer Studio)是一个完整的DSP集成开发环境,不仅集成了常规的开发工具,如源程序编辑器、代码生成工具(编译、链接器)以及调试环境,还提供了DSP/BIOS开发工具。DSP/BIOS是一个简易的嵌入式操作系统,它本身仅占用极少的CPU资源,而且是可裁剪的,能大大方便用户编写多任务应用程序,增强对代码执行效率的监控,提高程序的可读性,方便用户应用程序的编写,缩短软件开发周期。
2.1 软件程序框图
    本文在DSP/BIOS的基础上,设计开发了显微图像处理系统的DSP应用程序。使用混合语言编程,用C语言设计程序中对运行时间影响不大的模块,用汇编语言设计严格要求实时性的核心算法。在这里,程序采用模块化设计,各个功能模块相互独立,程序框图如图3所示。该程序主要由1个主程序初始化模块、3个硬件中断HWI处理模块、1个软件中断SWI处理模块和4个任务模块TSK构成。

 


    当系统复位后,DSP执行Bootload引导程序,并将程序入口点设置到c_int00处,DSP/BIOS应用程序从该处开始运行,执行过程为:首先调用DSP/BIOS初始化模块,并调用主函数main(),由main()函数负责完成硬件资源分配及各种外围芯片工作方式的初始化设置;然后启动DSP/BIOS,并进入空闲循环周期。这时,应用程序完全由硬件中断驱动,只有产生中断时,才会执行相应的功能模块,执行完毕后跳出继续执行Idle空闲循环程序。
2.2 图像处理算法设计
    当采集完一场图像后,FPGA以中断方式通知DSP,触发DSP的INT0中断。由于一场图像的时间间隔为20ms,因此每隔20ms触发一次该中断。在中断处理程序Vs_interrupt()中启动键盘扫描SWI,若有键按下,则执行相应的图像处理程序。
    显微图像受光源光照强度的影响很大,采集的图像往往质量较差、亮度不均匀,目标区域不易从背景区域中分离出来。为此,需要首先对图像进行滤波处理,然后采用自适应阈值的办法将目标从背景中提取出来,并利用数学形态学的方法进一步去噪处理,最后完成对图像中目标的统计测量计算。
    首先,利用中值滤波进行图像平滑,窗口大小选择3×3,采用十字状窗口。中值滤波在保持目标图像边缘的同时,去除了尖峰干扰,使图像背景的亮度更均匀,便于进一步的图像分割处理。
    由于光源光照强度的影响,背景的灰度值在整幅图像中存在很大差别,如果只用一个固定的全局阈值对整幅图像进行分割,则由于不能兼顾图像各处的情况而使分割效果受到影响。为提高分割的精确性,可采用随背景灰度值缓慢变化的动态阈值分割的方法,即自适应阈值算法。具体做法是:首先将原图像分解成系列子图像,由于子图相对原图很小,因此受阴影或对比度空间变化等问题的影响会比较小;然后对每个子图计算一个局部阈值;最后通过对这些子图所得到的阈值进行线性插值,就可以得到对原图中每个像素进行分割所需要的合理阈值。分割后的二值图像再利用数学形态学变换中的开、闭运算并选取合适的算子,便可以很好地消除图像中仍然存在的少量噪声点,利于下一步的工作。
    这里,在局部阈值计算时采用最大类间方差法[6],其计算公式为:
   

    其中:σ2(T)为两类间最大方差,WA为目标概率,μa为目标的平均灰度,WB为背景概率,μb为背景平均灰度,μ为图像总体平均灰度。即阈值T将图像分成A、B两部分,使得两类总方差σ2(T)取最大值的T,即为最佳分割阈值。
    为了实现对显微图像中目标的数目以及直径、面积等几何特征的统计测量,采用了对二值图像的目标区域进行标记归类的算法[7]。首先对二值图像的目标区域从左到右、自上而下进行扫描,若为目标点,则对其加以标记,并根据八连通原则将属于同一个颗粒的目标图像赋予相同的数值。标记归类算法示意图如图4所示。由于目标的几何形状是不规则的,一次扫描不能够把所有目标全部区分开来,因此要对二值图像进行多次扫描。图4(a)表示二值图像(黑色区域为目标,白色为背景),图4(b)为对目标区域的一次标记,图4(c)为最后标记完成的结果。其中,数字1表示1号目标,数字2表示2号目标。从图4可以看出,1号目标的标记经过一次扫描就能够完成,而2号目标则需要二次扫描方可完成标记。目标图像经过标记归类后就可以很方便地对目标的数目及直径、面积和周长等特征进行测量了。

 


3 实验结果
    为了验证系统的可靠性,对来自显微镜下的油膜颗粒图像进行了大量的采集处理与统计测量实验。图5(a)是现场采集的一幅颗粒显微图像,图像大小为512×256,由于光源光照强度的影响,整幅图像背景不均匀。图5(b)是采用自适应阈值二值化后的图像,目标区域与背景区域已经分离开,虽然还有少量的噪声点,但是经过数学形态学变换后已经能够准确地进行颗粒的统计计算。

 


    在统计测量过程中,面积小于3个像元的目标被当作噪声干扰而略去不计,只对面积大于等于3个像元的目标加以统计。为了便于进一步的分析和比较,将目标按像元数目分成9个档次: 3~10、11~20、21~30、31~40、41~50、51~60、61~70、71~80和81以上。对颗粒的数目、平均面积以及各档次所占比例进行了统计计算,结果如表1所示。实验中,在DSP芯片TMS320VC5416工作在最大工作频率160MHz时,程序的运行时间约为15ms。由于视频采集为PAL制,一场图像时间为20ms,因此能够达到实时性要求。

 


    本文提出了一种以TMS320VC5416作为图像处理的核心部件的嵌入式显微图像处理系统,设计了基于DSP/BIOS的应用程序。利用自适应阈值算法对采集的图像进行准确的分割,并采用扫描标记算法对油膜颗粒显微图像进行了统计测量实验。实验结果表明,利用本系统对颗粒显微图像进行统计,可达到全面、客观、方便且自动化程度高的效果,可以应用于各种显微图像的统计与分析,具有较高的实用性。
参考文献
[1] 辛莉,胡茂海,周绍光.水稻花粉颗粒显微图像采集与分析系统研究[J].应用光学,2004,25(1):43-45.
[2] 尤育赛,于慧敏,刘圆圆.基于粒度测量的重叠圆形颗粒图像分离方法[J].浙江大学学报(工学版),2005,39(7):962-966.
[3] TMS320VC5416 Fixed-Point Digital Signal Processor Data Manual,SPRS095O[J].Texas Instruments,2005,1.
[4] 清源科技.TMS320C54X DSP硬件开发教程[M].北京:机械工业出版社,2003.
[5] 潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2002.
[6] OTSU N.A threshold selection method from gray-level histogram[J].IEEE Trans,1979,SMC-15:652-655.
[7] 陈忠碧,张启衡.一种适合于多目标检测的图像分割方法[J].光电工程,2004,31(5):34-37.

2012-04-18 13:59:56 yuyin86 阅读数 5008
实时图像处理、高速数据运算处理要求其系统具有对数据处理速度快、数据吞吐率高以及多任务处理功能。目前大多数方案都是采用HPI数据传输方式,将ARMDSP进行组合完成一些图像处理,DSP处理器只是完成图像采集、压缩、编码等简单的处理[1]工作,不能满足实时的智能识别或大数据量运算的视频处理要求。在应用领域方面也会因其处理速度问题受到一定的限制。
    例如,胎儿性别屏蔽项目中,要对实时视频进行性别部位的检测和屏蔽,若采用单DSP则会出现漏帧或视频不流畅;应用于高速运动物体跟踪时,单DSP无法实现实时运动物体跟踪,例如汉王科技的运动检测和海康威视运动检测,都不能实时检测,即使检测也会出现漏检现象和视频不流畅。当处理4CIF或者更大图像时,单DSP的处理能力又会下降,虽然可以将图像缩小进行处理,但是缩小图像则会丢失一些重要的图像信息,使得智能识别准确率下降。
    针对上述情况,设计一种能够实现进行快速信号处理和数据交换的实时图像处理系统很有必要。
1 系统结构
1.1 结构
    系统功能:利用S3C6410进行数据整合、任务调度、人机交互;利用TMS320C6416进行算法运算;每个DSP与FPGA都是无缝连接。设计中利用FPGA实现的FIFO进行与DSP之间的高速数据传输以及ARM对多个DSP的任务调度处理等。
    系统结构如图1所示。系统由1个ARM11处理器S3C6410(主处理器)与4个TMS320C6416(720 Hz)(从DSP)通过FPGA(EP2C70~7)实现互联的ARM+多DSP的嵌入式图像处理系统。所有的DSP都通过外部存储器接口(EMIF)与FPGA无缝相连,每个DSP之间的数据传输是通过FPGA内部互联FIFO网络实现。

    图2所示是一种互联的FIFO网络结构和高速数据传输网络结构。主处理器通过DMA数据访问模式与FPGA的双口FIFO连接,从而实现与FPGA通过FIFO连接的所有从DSP进行通信,所有FIFO都是双向的,FIFO及其读写控制逻辑都在FPGA内部实现。

    FPGA中的FIFO读写状态控制、各从DSP之间通信的同步握手信号、S3C6410处理器数据请求等逻辑信号,都是由每个DSP的一部分GPIO口与EP2C70的I/O口连接实现。
1.2 特点
    系统结构具有可重构特性,在硬件平台不变情况下,只需通过改变FPGA程序代码就可以完全改变系统结构,以适应不同的算法结构。如图2中屏蔽DSP1~DSP4之间的互相通信,即可组成主从并行的流水线结构;若需要串行的流水线结构,只需将DSP1~DSP4的其中一个与S3C6410通信即可;若需要设计更复杂的串并混合性结构,也只需改变FPGA的代码就能够很容易地实现。

2 S3C6410的DMA与FPGA的软FIFO
   接口实现
2.1 S3C6410简介
    S3C6410是三星公司的产品采用ARM1176JZF-S核,包含16 KB的指令数据Cache和16 KB的指令数TCM;ARM Core电压为1.1 V时,可以在553 MHz下运行。在1.2 V时,可以在667 MHz下运行。通过AXI、AHB和APB组成的64/32 bit内部总线与外部模块相连。SROM Controller:6个片选,支持SRAM、ROM和NOR Flash以及支持8/16 bit,每个片选支持128 MB。JPEG Codec:支持JPEG编解码功能,最大尺寸为4 096×4 096。2D GRAPHICS:2D加速,支持画点/线,bitblt功能和Color Expansion。3D GRAPHICS:3D加速。
    S3C6410可支持4个DMA控制器,用于系统总线内部或与外围总线之间的数据交换,每个控制器包含8个通道,支持8/16/32 bit传输。现以外部DMA请求为例简要介绍DMA的工作过程。图3所示为DMA基本工作时序。

    当需要进行DMA操作时,外部DMA请求引脚XnXDREQ置为低电平。此时DMA控制器向CPU发出占用总线的请求,当总线请求成功后,XnXDACK引脚变为低电平,表示CPU已经将总线使用权交给DMA控制器,可以进行数据传输。当数据传输完成后,应答信号XnXDACK置为高电平,通知CPU完成一次DMA操作。
    S3C6410提供了三种不同的DMA操作模式:单服务命令模式、单服务握手模式和全服务握手模式。在利用DMA进行数据传输前必须对其相关寄存器进行设置,包括源地址寄存器、目的地址寄存器和各自的控制寄存器以及配置DMA模式的控制寄存器等。
2.2 FPGA及其实现FIFO[2]
    采用FPGA 实现多时钟电路系统时,需要处理不同的时钟域之间速率匹配问题,可利用FPGA内部生成的异步FIFO来处理。异步FIFO主要由双端口RAM、写地址产生模块、读地址产生模块、满空标志产生模块组成。双端口RAM由FPGA的Block RAM块构成,FPGA采用Atera公司的EP2C70-896C7,其Block RAM读写时钟频率可以达到216.73 MHz,因此选用Block RAM作为存储体,不仅速度快,而且设计简单。设计时,一个端口配置成写端口,另一端口配置成读端口,然后把Block RAM 的管脚与相对应的控制信号相接即可。读写地址通过FPGA芯片内部的二进制进位逻辑产生,以对应Read_En/Write_En作为使能信号在读/写时钟的控制下进行计数。空或满标志可以由读或写地址的相对位置来获得。本系统采用2个FIFO组成一路数据传输通道,双向FIFO的设计图如图4所示。

2.3 S3C6410的DMA与软FIFO接口实现
    根据DMA接口原理,设计S3C6410与FPGA之间的接口简图如图5所示。

    读时钟由ARM的时钟输出引脚CLKOUT0提供。CLKOUT0根据S3C6410内部寄存器的设置可以输出不同的时钟频率。FIFO输出数据经过以nGCS4为选通信号的缓冲器(Buffer)后接到S3C6410的数据总线上。nGCS4是S3C6410存储空间中BNAK4的片选信号,当S3C6410对该信号对应存储空间进行读写操作时,BANK4为低电平,其余时间均为高电平。
  FIFO的写请求信号由S3C6410与FIFO的满状态共同控制。当S3C6410发出START信号并且FIFO未满时,写请求信号为高电平,FIFO在写时钟的控制下写入数据;当START信号撤销或者FIFO满时,写请求信号变为低电平,停止写操作。
     FIFO的读操作与S3C6410的DMA操作配合进行。系统采用单服务命令模式的DMA操作,每次传输一个字节的数据。当DREQ0信号变为低电平时,DMA操作开始,每次传输一个字节后产生一个DACK0应答信号,而且只要DREQ0为低电平DMA操作就继续进行,直到DMA控制寄存器中的计数器为0,产生DMA中断。根据上述时序特点,将FIFO的空信号作为DMA的请求信号DREQ0。当CCD输出的数据写入FIFO中时,空信号跳变为低电平启动DMA操作,同时以DACK0信号作为FIFO的读请求。每次DMA传输完成后应答信号使FIFO的读指针移动一位,以实现数据的快速准确采集。
3 图像采集模块
    用可编程视频输入处理器SAA7113H进行视频信号处理。SAA7113H内部集成了强大图像色度、亮度处理功能以及多种输出模式[3];有32个工作寄存器,在系统复位时,必须通过I2C总线对其进行初始化。本系统使用灰度图像,没有使用色度信号,所以数据线为8 bit。SAA7113H与FPGA的接口如图6所示。

    在本系统中,FPGA内部需要设计一逻辑时序完成图像数据的采集,数据的传输采用异步FIFO完成。采用此方案可以解决CCD输出数据频率与从DSP和ARM不匹配的问题。
4 DSP的EMIFA与FPGA实现的软FIFO接口
4.1 DSP的EMIFA接口[4-5]
    DSP(TMS320DM6416T)之间的通信都是通过外部存储器接口(EMIFA)访问片外存储器进行的。EMIFA由64 bit数据线D[63:0]、20 bit地址线A [22:03]、 8 bit字节使能线BE[7:0]、4 bit地址区域片选线/CE3~/CE0和各类存储器的读/写控制信号组成。TMS320DM6416T 的每个
/CEx空间都有256 MB寻址空间,并且可配置为与SRAM、SDRAM、ZBTSRAM、Flash、FIFO等各类存储器接口。EMIFA读/写各类存储器的时钟可由软件配置为EMIF的AECLKIN、CPU/4或CPU/6。本设计配置为EMIF的AECLKIN,且为133 MHz。
4.2 EMIF与软FIFO接口实现
    DSP之间通过EMIF口与FPGA实现的异步FIFO进行通信。EMIF异步接口的每个读/写周期分为三个阶段:建立时间(SETUP)、触发时间(STROBE)、保持时间(HOLD),且每个阶段时间可编程设置,以适应不同的读写速度。DSP读写异步FIFO的时序图分别如图7、图8所示[6]。DSP读写FIFO控制信号由FPGA产生,其逻辑关系如下:
    写FIFO信号:writ_clk= AECLKOUT
               writ_req=! (/CE+/AWE)
    读FIFO信号:read_clk = AECLKOUT
               read_req = ! (/CE+/ARE)


    另外,写FIFO的DSP要相应为满状态标志,读FIFO的DSP则相应为半满状态标志。
5 DSP之间数据通信[7]
    为了设计一款通用性比较强的图像处理平台,各处理器间的数据传输必需达到通用性,这样可以针对不同系统的应用,只须修改图像处理算法代码,而不须要修改各处理器之间的通信。具体设计分为如下两部分:
 (1) 数据通信协议说明(x=0,1,2,3)
 Se/Re (Send/Receive)[0]:ARM通过FPGA请求DSPx接收(该数据位为1)或发送。
 ARM[1:3]:该段数据为DSPx向FPGA发出请求数的DSP编号。
    DSPx[4:6]:ARM处理器向FPGA提出要求响应的DSP的编号。
    Da_Le(Data_Leng)[7:18]:ARM请求DSPx接收或发送的数据长度。
 Da_Un (Data_Unit)[19]:该标志位表示是否按照Data_leng*K(1K=1 024 bit)的数据长度传输数据,若为1,表示接收或发送数据长度为Data_leng*K(1K=1024 bit);若为0,表示接收或发送数据长度为Data_leng。
 Da_Bl (Data_Block)[20:27]:该数据表示ARM请求DSPx接收或发送Data_Block个Data_leng K或Data_leng数据块。
 Da_Ch(Data _Result)[7:18]:ARM请求DSPx接收或发送的算法代码中间运行结果或最终结果,此数据段与Data_Leng共用。
    In_Pr (Interrupt _Priority) [27:30]:设置DSP的中断优先权。
    Ot_Use (DSP_State) [31:34]:DSP状态标志信息。
 
    Ot_Use (Other_Use) [36:47]:用户自定义数据段。
 (2) 数据通信主要流程
 首先,FPGA接收到ARM[1:3]处理器的请求信号,然后根据Data[0:34]计算出校验数据SUM与Parity_Check[35]比较,若不等,则FPGA向ARM处理器重新发请求信号;若相等、且DSPx为空闲状态时,则FPGA由Send/Receive向DSPx发送接收或发送数据请求,并将采集到的图像数据传输给DSPx,同时使能对应的FIFO数据通道;DSPx根据收到的数据信息,同样计算出校验数据,若与Parity_Check相等,则根据Send/Receive标志位,采用EDMA方式向EMIF口接收或发送Data_Block* Data_leng(或Data_Block* Data_leng K)数据。如果FPGA同时接收到2个或2个以上的DSPx数据传输请求信号,则FPGA根据Interrupt _Priority端口数据判其执行的先后顺序。
6 系统的性能分析[7]
 影响系统性能的主要因素有:ARM处理器协调工作的响应速度、DSP处理数据的速度、数据在多处理器之间的传输速度。前两个因素主要由处理的主频和处理能力决定,因此不做测试。数据在处理器之间的传输速度则是本设计的主要部分之一,而数据传输带宽和数据传输延迟是衡量数据传输速度的重要指标。
 若系统中DSP读写FIFO的带宽为B(单位时间内DSP间的数据传输量),则:
  
    表1是ARM处理器分别与DSP1~DSP4传输不同大小数据时测得的平均延迟时间,图9是根据测试数据绘出的实际带宽Bf曲线。可以看出,随着传输的数据增大,Bf逐渐逼近B的266 MB/s的理论值。

     本文基于ARM、FPGA、多DSP设计的实时图像信号处理系统,使用FPGA芯片设计的一种高速数据传输网络互联结构,使得该系统的数据通信能力和DSP的运算能力能很好地匹配;通过数据传输控制总线,使得数据传输十分灵活;利用S3C6410对图像数据传输的调度,图像数据处理任务的分配,图像保存、显示、网络传输;利用4个TMS320C6416T对图像做算法处理。经测试,算法代码在单DSP(TMS320C6416T 1 GHz)平台下其处理时间小于0.2 s,而在本文平台下其处理时间小于40 ms,可以满足实时要求。另外,该系统可广泛适用于其他图像处理、电子对抗、雷达信号处理等各个领域。
参考文献
[1] 曹理发.尹勇.刘恒辉,等.基于ARM和DSP的视频监控系统设计与实现[J].电子器件,2009,32(1).
[2] Cyclonce Inc. Cyclone II device handbook. 2005.
[3] 龙再川,赵凯生,洪明坚,等. ARM系统中DMA方式在数据采集中的应用[J].国外电子元器件,2007(2).
[4] Texas Instruments Incorporated.TMS320C6414,TMS320C6415, TMS320C6416FIXED-Point digital signal processor,2007.
[5] 李方慧,王飞,何佩琨. TMS320C6000系列DSPs原理与应用(第二版)[M].北京:电子工业出版社,2005.
[6] Texas Instruments Incorporated. TMS320C6000 EMIF to external FIFO interface.1999.
[7] 周委,陈思平,赵文龙,等. 基于DSP EMIF口、FPGA设计并实现的多DSP 嵌入式系统[J]. 电子技术应用, 2008,34(12):6-8.