王月新,刘明君
(忻州师范学院,山西 忻州 034000)
本文从关联分析的角度出发,指出在目标辨识与追踪的处理中,影像的分割与关联匹配是最主要的两项技术。影像分割技术是将影像对象与背景区分开,并从中抽取影像对象的处理技术。相关匹配是以系统为基础,建立出目标模型,并通过目标特征模型参数及道路和规范,利用参考实时图像相关的程度,以完成对对象的相对定位信息的测定。图像处理的实时性对图像信息的处理性能和实时性都有很高的要求。此外,它还需要更高的功耗,更大的体积,更高的稳定性。当前在国外,在目标监视领域,已形成一种以图像为基础的平行模型;接着又有一系列的数字信号处理器被持续地升级。在这一背景下,本研究以目前已有的DSP与FPGA架构为核心,建立了一个DSP的DSG与FPG相结合的数字信号与图像处理系统,然后对图像处理算法进行研究。
数字信号处理(Digital Signal Processing,DSP)是一门涉及许多学科和领域的新兴学科。对数字信号的处理,主要指的是使用计算机或是使用特殊的处理设备,以数字的形式采集信号、增强、压缩和识别等信号的处理方法,以获得人们所要求的信号。
数字信号处理技术是指对信号进行数字化表达和处理的一种方法。其中,数位及类比式讯息是讯息处理中的一个子范畴。数字信号处理主要是对现实中不断变化的模拟信号进行检测和过滤[1]。所以,必须先对信号进行从模拟向数字的变换,一般采用ADC来完成。由于其对数据的要求较高,所以对其进行分析和计算是十分必要的。为实现数字信号处理,必须使用计算机或者诸如DSP、ASIC等特殊的处理装置。DSP技术和器件具有灵活、精度高、抗干扰能力强等特点,其具有体积小、成本低、运算速度快等显著优势,是目前常用的模拟信号处理技术和设备所不能相比的。
随着对互联网和多媒体服务的需求越来越大,美国的Sun公司也即将将其最具竞争力的Personal Java语言应用到DSP上,从而使DSP的数据处理更加自动化,更加智能。当然,在DSP之前也有其他的程序语言,比如C语言,但是这些程序对网络资源和多媒体信息的处理是没有能力的。而Personal Java则是一种非常适用于个人的网络连接和应用的Java环境,在此基础上的个人通信系统能够实现从互联网中下载数据和图片。另外,根据MPEG-4的要求,研制出满足MPEG-4要求的数字信号处理器,这将为将来的通信系统实现多种不同的多媒体数据传送奠定基础。
现场可编程门阵列(Field-Programmable Gate Array,FPGA)是基于可编程阵列逻辑电路(Programmable Array Logic,PAL)和通用阵列逻辑(General Array Logic,GAL)等可编程电路而开发出来的产品。在特殊集成电路中,该技术不仅能有效地解决传统可编程器件存在的问题,而且能有效地弥补传统可编程器件存在的门电路数量受限的缺陷[2]。FPGA器件是一种用于特殊集成电路的半定制电路,其是一种可编程的逻辑阵列,可以很好地解决原来的器件中存在的门电路数量太少的问题。FPGA的主要组成有:可编程序的输入/输出部分、可组态的逻辑部分、DSP控制部分、内嵌内存部分、配线资源、内置特殊的硬件核心,内置于底层的功能单位。FPGA因其线路资源多、可重复性强、高集成性、造价低廉等优点而被越来越多地用于数字电路的设计中。
FPGA的设计流程具体包括算法设计、代码仿真以及设计、板机调试。设计者根据实际需求来构建算法架构,使用EDA来构建设计方案或HD来编写设计代码,并通过代码仿真来确保设计方案与实际要求相一致。在此基础上,完成了系统的硬件设计和软件设计,并通过软件的设计实现了系统的功能。
该系统主要以计算机图像的处理为基础,设计了一套以DSP+FPGA为基础的计算机图像处理系统,具体如图1所示。
图1 基于DSP+FPGA的计算机图像处理系统结构
在进行硬件设计的时候,本文所研究的系统主要是以DSP和FPGA为平台,结合视频解码器、摄像头等器件,来构建一个新型高速实时的数字图像处理系统。其工作过程为:CCD对视频的输出信号进行采集,然后通过视频解码器进行A/D转换,获得一个数字信号[3]。DSP技术对一帧图像进行处理,FPGA对数字图像信号进行了预处理,将经过的图像保存到帧中。在设计系统内容期间,必须综合考虑各种影响因素,如实时性、规模、调试等。
图像处理板硬件结构是基础,其主要采用的是DSP和FPGA结构。其结构要在系统功能、硬件连接方面进行整合。本研究对结构展开了仔细的分析与设计。DSP和FPGA图像处理板硬件构成如图2所示。
图2 基于DSP+FPGA的计算机图像处理板的硬件构成
图3 FPGA和SDRAM的连接方式
该硬件板的特征在于:(1)该硬件板是在工作中进行图像处理的关键部件。(2)该硬件板是一块关键的协同处理器,也是一块可以进行数据交互的核心。(3)采用JIAG模拟架构。(4)每个晶片都有不同的输出电压[4]。
在此设计阶段,要使用FPGA来完成DSP芯片的功能设定,可以将DSP外部中断的I/O信号和计时器信号与FPGA进行互相连接,这样就可以完成二者之间的相互通信。由于DSP本身的内存不够,必须通过DSP进行内存扩充才行。DSP在实现外部存储器访问时,仅需要向其提供片外存储器相应的CE空间初始地址,并以芯片需求为依据实现控制寄存器的设置来实现接入[5]。在本文所讨论的系统中,对两个外存片进行了扩展,在设计外存片时,使用了一个时钟,能够实现800 Mbit/s的传输,所以能够很好地符合该设计的需要。把各个芯片DSP及SDRAM的接口分别与FPGA的I/O进行连接,可以方便地实现FPGA与SDRAM的连接。
与 DSP芯片的外设相比,FPGA的外设比较容易实现,其外设方式也比较容易实现,没有什么特殊的需求。均可根据自身的需求,用硬件编程方法完成功能的设计。FPGA可实现4种不同的组态:从串、主串、边界扫描、选择性映射。从串方式中的FPGA,需要可以接受外部PROM及其他器件串行的配置数据,在外部时钟的作用下,实现图2DSP和FPGA图像处理板硬件组成操作,可以将大量的FPGA构造为菊花链,可以从某种数据源中得到数据。在主要顺序模式下,对FPGA的需求是:串行PROM以及对时钟进行配置,从而可以高效地读取配置数据[6]。在本设计中,采用主串与JTAG两种组态方式来完成,其中JTAG方式是通过对源码进行联机调试来完成的,在计算机关机之后所有系统的配置内容会被遗失。主串方式的电路结构如图4所示。
图4 主串模式的配置电路
在进行系统的设计时,遵循模块化的原则,系统的功能模块由输入模块、图像处理模块(FPGA芯片和DSP芯片)、存储模块、输出模块组成。本系统的工作过程如下:影像处理系统的输入部分包括CCD摄像机和视频解码器TVP5150PBS。TVP5150PBS在收到 CCD的模拟视频信号后,将其转换为YUV4﹕2﹕2的数字视频格式,并将其设定为720×576。在ADSP-BF561单片机上采用特殊的视频接口PPI0来存储这些数字图像。当采集一个画面后,DSP的DMA信号发生故障,此时由FPGA对采集到的画面进行预处理。随后DSP利用相关的图像处理算法,对经过预处理的图像数据进行了处理,经过DMA控制器,经过PPI1接口,将该图像数据传送到了视频编码器SAA7121,将该图像数据转化为标准的模拟PAL视频信号,并显示在显示器上。FLASH的作用是保存系统中的执行程式,并为系统启动提供指引。
在确定了系统基本组成后,要根据满足实时图像处理算法的要求,实现系统部分的相互组合,有效地实现系统,并对系统模块进行全面分析。为更好地拓展该软件的应用领域,本文给出了该软件各功能模块的实现方案。
本模块以两类影像输入信道为主,可依实际需要来确定影像输入路径,使其可进行有效扩充。该系统用于双目图像系统,由于双目图像要求两个成像器可以彼此同步,因此在一个视频信道中,将合成同步信号分开,然后访问第二个成像器的同一部分的输入端口,可以有效地达到两台成像设备的互相同步[7]。
因为成像设备是可以进行模拟的,所以这些图像在被分割出来后,需要进行A/D变换才能与FPGA相结合。A/D取样的程序由FPGA来进行,两个视频信道的分开使得FPGA可以融合到一个FPGA中,该FPGA可以利用奇偶帧和同步信号来完成对一个数据的采集,同时也可以防止系统中的线路对数据的采集造成影响。当信号输入时,添加一块隔离芯片来隔离讯号。本系统采集模组的构成如图5所示。
图5 系统获取模块的构成
FPGA是该系统中最重要的一个模块,其可以实现图像采集,预处理,并产生控制逻辑和时钟。文中采用CFD652芯片来实现以上功能。该晶片可执行各种装入模组,在影像讯号的输入处,因为PAL系统的影像是以交错的方式进行,所以必须在其中加入两个端口的记忆体;当一个偶数的画面进入时,这两个字段就会合成一个完全的画面。作为一个系统的协处理器,FPGA要实现对这些数据的预处理。
DSP和FPGA可以通过多种途径进行数据交互,而本论文所设计的图像处理系统需要进行海量的数据的交互,以及对视频像素的速率有较高的需求,因此可以采用双口RAM来完成二者的交互。该系统以控制器为核心,通过FPGA和PC计算机之间的通信,将PC的控制命令通过串行传输给DSP。采用FPGA的程序来完成对串口通信的控制,同时也可以使用专用的芯片来完成,这样可以节省大量的资源。
TM5411是一款利用TM5411对图像信号进行数字处理的新型高性能DSP芯片,其具有以下几个方面的功能。
(1)利用EMIFA端口,完成用于储存要被加工的数字图像信号,并对图像数据进行访问和处理。扩展程序存储器的最大作用就是要实现对数字图像信号处理程序的存储,在DSP复位后,就可以完成DSP初始化及FPGA的配置并运行[8]。
(2)通过与FPGA建立实时通信,以达到高效地完成各软件模块间的互相调度与协作。
(3)根据产生的控制逻辑,对FPGA进行重置,其中,根据对应的信号,对DSP进行重置;以执行复位和运算等运算,使用高速FPGA实现二维傅立叶转换,然后对转换的数据进行对应的运算。当操作完成后,将生成一个终止标记,DSP通过对终止标记的探测,完成对FPGA数据的读出,并通过现场总线将数据传送到PC机上。
本计算机系统的图像处理系统软件设计流程如图6所示。
图6 计算机图像处理系统的软件设计流程
在该系统应用前,需要对其进行初始化操作。首先,设定一个中断矢量表,并采用锁相环二十次频率。由于采用了外置晶体振荡器的时钟,核心可以在多赫兹的时钟频率下运行,并可根据EBIU的结构,开启一个外接总线的接口。在完成了EBIU的组态后,完成DSP外围电路的设定,并对外围电路进行初始化。在完成对影像的预处理以后,要想有效地改善影像的处理,必须采用有目的的方法进行处理。该算法具有空间平行性,在对图像进行区块化处理后,采用一种星型结构联系各处理单元,将待处理的图像数据传输到各处理单元DSP芯片上。DSP的干燥过程包括以下步骤。
(1)对图像进行边界扩大,然后读取内存。
(2)对全局的变量及参数进行计算,从而能够进一步降低计算量,避免重复使用的变量重新执行计算。
(3)提取各像素对应的中间像素,将各像素对应的权重与该中间像素进行乘法,利用该乘法初始化估计量窗口。
(4)确定各中间区块所对应的观察窗口区域。
(5)求取观察窗口的权重,完成估算窗口的累积。
(6)判定观察窗口的定位有无超出观察窗口的定位范围。
(7)确定两个像素的位置。
(8)由于像素点估算窗口交叠,因此要对对应的点进行除法,然后取整,从而限制了灰度的范围,由此得出该像素点的灰阶估算。
(9)完成运算后,将信号处理的结果传送到PC机上。
对图像进行处理的方法有两大类:一类是对图像进行后处理算法,另一类是对图像进行预处理。而预处理算法的目的就是可以对图像特征进行更多地增强,排除一些干扰信息,还可以提取一些有用的信息。这由FPGA完成。在完成预处理之后,大多数都是二值图像,这样就可以减少图像的冗余,从而减少后期算法,增加算法的可行性。通过对该模型进行模拟实验,验证该模型的正确性。
综上所述,本文基于DSP+FPGA的非线性结构对计算机的图像处理系统进行设计。设计的系统具有性价比高、体积小、速度快、功耗低、可扩展性强、易于维护、适应性强等特点。该系统的应用前景较为广阔,由于系统的设计时间有效,系统的某些功能还不够完善,在以后的实际应用中将不断改善系统的性能。