三维图像信息处理一直是图像视频处理领域的热点和难点,目前国内外成熟的三维信息处理系统不多,已有的系统主要依赖高性能通用PC完成图像采集、预处理、重建、构型等囊括底层和高层的处理工作。三维图像处理数据量特别大、运算复杂,单纯依靠通用PC很难达到实时性要求,不能满足现行高速三维图像处理应用。
本系统中,采用FPGA实现底层的信号预处理算法,其处理数据量很大,处理速度高,但算法结构相对比较简单,可同时兼顾速度和灵活性。高层处理算法数据量较少、算法结构复杂,可采用运算速度快、寻址方式灵活、通信机制强大的DSP实现[1,4]。
1 三维图像处理系统组成
1.1 硬件系统构成
该系统由五个模块组成,如图1所示。
系统信息处理流程见图2所示。CCD摄像机采集的多路模拟视频信号经MAX440按需要选定后,送入模数视频转换器SAA7111A将摄像机输出的模拟全电视信号CVBS转换成数字视频信号;之后视频信号流入图像预处理器Spartan XC3S400,经过提取中心颜色线、提取激光标志线和物体轮廓线的预处理后,配送到两片TS201进行定标参数计算、坐标计算、三维重建、数据融合以及三维构型的核心运算;最后将DXF文件数据经由PCI接口传送到PC,完成三维图像变换和显示等最终处理;整个系统的逻辑连接和控制以及部分数据交换由另一片FPGA来完成[1]。
在体系结构设计上,FPGA处理器采用SIMD结构,在一个控制单元产生的控制信号下,数据通路中的三个算法并行运行。由于该系统要求处理速度较高,因而在数据通路中采用了流水线技术以提高速度。此外,本系统中为图像存储采用了许多大容量高速FIFO,以达到减少地址线,简化控制的目的。
1.2 处理器芯片
为满足系统大数据量快速处理的要求,三款核心芯片均为最新高性能产品,其硬件方面的特点给系统设计带来极大的方便,其优异的运算性能可确保系统的快速实时性。
FPGA芯片采用Xilinx公司近期推出的采用90nm工艺的Spartan3系列的XC3S400,该系列芯片是目前为止工艺最先进、价格较低、单位成本内I/O管脚最多的平台级可编程逻辑器件。XC3S400芯片内部时钟频率可达326MHz,信号摆幅1.14V和3.45V,I/O口支持622Mbps的数据传输率,具有高性能SelectRAM内部存储器,多达4个数字时钟管理器模块和8个全局时钟多路复用缓冲器。
DSP采用ADI公司的最新款基于并行处理设计、具有海量片内RAM的TigerSHARC ADSP TS201。其内部集成的RAM容量高达24Mbit,核心速度最高达600MHz。内设双运算模块,每个包含一个ALU、MUL、64bit移位寄存器、32个32bit寄存器组和一个128bit通信逻辑单元,相关的数据对齐缓冲器;双整数ALU,各有独立的寄存器组,提供数据寻址和指针操作;4个128bit宽度内部总线,每个都连接到6个4Mbit的内部存储器块;提供与主机处理器、多处理器空间、片外存储器映射外设、外部SRAM和SDRAM相连的外部端口;14通道DMA控制器;4个全双工低电压差分信号输入的Link Port;具有片内仲裁总线,用于多DSP无缝的连接。
数字化器采用了Philips公司的增强视频输入处理器(EVIP)——SAA7111A模数转换器。该产品广泛应用于个人视频、多媒体、数字电视、可视电话、图像处理、实时监控等领域,纯3.3V CMOS工艺的模拟视频前端和数字视频编码器,能够将PAL/TSC/ECAM视频信号解码为与CCIR-601相兼容的多种数字视频格式,支持TV或VTR信号源的CVBS或S-Video视频信号,最高图像分辨率可达720×576,支持24位真彩色,可以通过串行总线动态配置
SAA7111A模数转换器的工作方式和各种参数。
2 模块设计
2.1 视频采集与数字化模块
由于模拟摄像机采集的是PAL制的复合视频信号(CVBS),所以必须先将其数字化才能开始后继数字视频处理。视频采集与数字化模块主要包括一片视频多路复用器MAX440、一片SAA7111A、一片I2C接口控制器PCF8584和一些连接逻辑。MAX440用来快速切换来自不同模拟输入端的模拟视频流,SAA7111A模数转换器是该模块的核心,它采集模拟视频,将其数字化为720×576的RGB(8,8,8)真彩色信号格式的数字视频,其输出的RGB真彩色信号为16位,其中高字节和低字节数据周期分别为74ns和37ns,即低字节的频率是高字节的1倍。这样就要利用触发器和两个分别为13.5MHz和27MHz的时钟信号,将输入数据格式转换为24位、周期均为74ns的RGB真彩色信号,此外,它还为整个硬件系统提供必要的时钟和同步信号;PCI接口控制器通过PCF8584来配置和控制SAA7111A,连接逻辑由FPGA实现。
2.2 FPGA图像预处理模块
预处理从巨大的视频信息中提取极少量的对三维重建有用的信息传送至DSP后处理。该模块包括主处理FPGA芯片和高速FIFO,负责实时采集视频信号并对采集到的无压缩的视频信息进行预处理,包括提取激光中心线、提取轮廓线、提取中心颜色线三个部分。
为了提高视频采集的整体性能,更重要的是为预处理提供相邻的有激光帧和无激光帧,必须通过视频帧缓存首先暂存无激光帧。缓存由3片AverLogic公司的AL422B及一些由FPGA实现的连接逻辑组成;当前端模块输出无激光帧时,SA7111A控制3片AL422B写操作,将其存入FIFO;当前端输出有激光帧时,后端的视频处理模块控制3片AL422B进行读操作,读出暂存在其中的无激光帧数据。预处理FPGA将读取的无激光帧和有激光帧进行相减运算。输出同样采用3组缓存分别用来暂存激光样条数据、目标轮廓线数据和图像中心线数据;所有模块均采用同步时钟控制,同步时钟采用由SAA7111A模数转换器产生的LLC2信号。为了提高系统速度,算法复杂、耗时较长的计算过程进行了流水线处理。