首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的图像融合处理系统方案设计

基于FPGA的图像融合处理系统方案设计

摘要:一种基于FPGA 技术的图像处理系统,实现了图像数据的A/D 采集、在SRAM 以及SDRAM 中的存取、在FPGA 内部的DSP 运算以及图像数据的D/A 输出,具备图像融合处理功能。文章在阐述系统结构、总体方案和设计思想基础上,重点论述了系统各模块划分、芯片选型依据以及系统有关模块的接口设计。
0 引言
基于FPGA 的图像处理系统,在构建融合拼接式大屏幕显示系统中具有关键作用。它能实现多路独立视频信号和计算机信号同时直通显示,画中画显示、高分辨力全屏显示、灵活缩放显示、大画面跨屏清晰显示,超高分辨力图像、视频、计算机、网络信号综合显示等。

采用可编程逻辑器件FPGA 来控制实时显示系统,具有高集成度、高速、高可靠性、灵活的编程能力、全新的开发设计思想等特点。由于FPGA 器件实现的各功能块可以同时工作,从而实现从指令级到流水线级甚至是任务级的并行执行, 因此大大地加快了计算速度。由FPGA 实现的计算系统可以达到现有通用处理器的数百甚至上千倍。
1 系统结构
对于一般的图形图像处理系统而言由以下几个模块构成:图像A/D 采集模块、数字信号处理模块、图像存储模块以及图像D/A 输出模块,组成结构如图1 所示。


由A/D 采集模块完成图像的采集和输入功能,由外部存储器存放采集到的图像信息或者是存放处理后的图像信息,D/A 输出模块用于完成处理后的图像输出显示的功能。系统控制和数字信号处理模块是系统的核心部分,该模块需要完成从图像输入、存储、处理以及输出的所有控制。
由于高分辨率的图像处理系统数据量和计算量都很大,因此在系统控制和数字信号处理模块中一般选用专用的视频处理图像系统。当前流行的系统有基于DSP 的专用视频图像处理系统和基于FPGA 的专用视频图像处理系统这两种选择方案。因为DSP 程序是串行执行的,所以在高速信号处理中难以达到要求。
使用FPGA 可以充分利用硬件上的并行性,基于FPGA 的专用视频图像处理系统能够对大数据量的图像处理达到实时性。FPGA (Field Programmable Gate Array)器件是一种用户可编程门阵列集成电路,它将半定制的门阵列电路的优点和可编程逻辑器件的用户可编程性结合在一起,使其不仅包含大量的门电路,还使设计的电子产品达到微型化、高集成度和高可靠性,大大缩短了设计周期,降低了设计风险,增加了设计数字系统的灵活性。
2 总体方案
本方案选择FPGA 器件作为图像处理系统的核心处理芯片,设计的系统要求FPGA 通过A/D 采集芯片将视频图像数据采集到FPGA 内部,由于FPGA 内部自带的RAM 容量非常有限,采集来的大量图像数据和处理后的数据必须通过外部存储器来保存,所以在FPGA 外部设计了外部存储器。对于处理后的图像数据设计了D/A 输出模块用于图像输出。文献[3]提出根据图像几何校正和图像融合的主要算法,采用了双线性插值法进行图像变化,因此针对FPGA 硬件DSP 模块的处理特点,可在上位机利用软件计算出图像需要进行几何变化和色彩校正的一系列参数。FPGA 在图像处理过程中将利用这些参数进行处理,这就需要设计一个能够使FPGA与上位机进行通信的模块。传统的通信模块通过PCI 总线来完成,但是这样不够灵活,图像处理卡与PC 机不能分离,使用场合很有局限性。由于FPGA 技术发展很快,利用ARM 嵌入式处理器外挂在FPGA 芯片上, 通过ARM 处理器的以太网口与PC 机进行通信,系统参数获得传递。系统的总体结构如图2 所示。


为简化系统处理器处理图像算法的复杂程度,也降低实时处理系统硬件设计的难度,可将复杂的图像处理算法(图像的几何校正算法、边缘融合算法、色彩校正算法等)留在上位机完成。上位机根据图像处理算法生成一个算法参数表, 再通过ARM 处理器下载到FPGA 的外部存储器中。FPGA 内部的图像处理模块根据计算好的参数表,只需在内部实现简单的乘累加运算就能完成图像的几何校正或色彩校正处理。
要满足高分辨率图像大容量的数据处理的实时性,有必要在设计中采用先进的设计思想和技术方法。
一是乒乓操作方法。为了实现不间断的输出图像,需要利用“乒乓操作”设计两组控制器实现对数据的连续处理。其优点是,通过输入数据选择单元和输出数据选择单元按节奏彼此密切配合和切换,让图像数据流连续不断的通过原始图像存储模块、图像处理模块以及结果图像存储模块。本设计对原始图像存储模块和结果图像存储模块都运用了乒乓操作技术方法。
二是流水线操作方法。这是使系统高速运行常用的设计方法。将一个设计的处理流程分为若干步骤,如果整个数据的流向是单向的,前一个步骤的输出是下一个步骤的输入,采用流水线设计方法提高系统的工作效率是十分有效的。
3 模块划分与芯片选型
对于上述高分辨率图像融合处理系统,可以按硬件设计划分为几个模块:图像A/D 采集模块、图像D/A 输出模块、外部存储器模块、图像处理模块和ARM 处理器模块等等。

1)图像A/D 输入模块
图像的输入端的A/D 解码模块可选用Analog Devices 公司的AD9887A,因为该芯片同时具有模拟信号输入(VGA)和数字信号输入(DVI)的接口,能满足高分辨率的采集要求,并支持高带宽数字内容保护(HDCP)。通过模拟接口,AD9887A 可对RGB 图像信号进行8 位精度的采样, 最高采样率为170MSPS, 模拟带宽为330MHz,可支持UXGA 模式(1600×1200 ,60Hz)。并且AD9887A 提供了DVI1.0 规范兼容的接收器的数字接口,同样也支持UXGA 模式。

2) 图像D/A 输出模块
采用Analog Devices 公司的ADV7123 来做图像的模拟信号输出端, 其三通道10bit 精度的视频D/A 转换器,最高采样率达240MSPS,支持1600×1200、100Hz 以下的分辨率;数字信号输出端采用Silicon Image 公司的SiI164 作为DVI 接口信号的编码器。它支持100KHz 的I2C 编程模式, 支持带宽25-165MHz 的VGA 到UXGA信号,也支持DVI1.0。

3)外部存储器模块
设计外部存储器时, 选择SRAM 作为输入图像存储器,用于存放处理前的图像数据;选择SDRAM 作为输出图像存储器,用于存放处理后的图像数据;设计一个单独的SDRAM 用于存放图像处理的参数信息。

4)图像处理模块
该模块主要是由FPGA 内部逻辑完成,FPGA 芯片的选择直接关系着图像处理系统的设计与性能,十分重要。对于FPGA 的选择,可用Xilinx 公司的Virtex4 系列XC4VLX40 芯片,因其具有多方面优势。

(1)输入/ 输出块(IOB),提供了封装引脚与内部可逻辑之间的接口,能够支持大多数流行的IO 标准,且输入、输出路径都提供了一个可选的SDR 和DDR 寄存器。
(2)B1ockRAM 提供了18kbit 的双端口RAM,还可以通过级联实现更大的RAM。
(3) 可配置逻辑块(CLB)是Virtex4 FPGA 内的基本逻辑单元,可以实现组合逻辑、时序逻辑、分布式RAM 以及SRL 16 移位寄存器等。
(4)XtremeDSP 包含了专用的18×18 位的二进制补码形式的有符号乘法器、加法器和一个48 位的累加器。每一个乘法器或累加器都可以独立使用。
(5)通用布线矩阵(GRM)在每一个可编程部件之间提供了布线开关阵列。Virtex4 FPGA 的组件连接到布线矩阵,所有组件采用相同的互连机制。具有64 个XtremeDSP,能够保证图像处理的能力。拥有1728Kb 的Block RAM 等非常丰富的布线资源。
5)ARM 处理器模块及其工作机理
此模块主要用于完成参数的传递以及与PC 机的通信, 在本系统中主要选用了Samsung 公司的S3C2410A芯片。

FPGA 图像处理模块用于对采集到的原始数据进行各种算法处理。由于已经将复杂的图像处理算法在上位机上进行了处理, 并计算出了相应的参数, 所以在FPGA 内部的图像处理模块只需要执行简单的乘累加操作就可以完成相应的处理算法。经此简化后,在具体完成乘累加操作时, 可以直接调用FPGA 内部集成的XtremeDSP 等硬件逻辑资源,从而快速的完成图像信息处理。
由于在进行几何变换的时候使用的是向后映射法,因此要计算一个像素,需要用到上下左右都相邻的四个原始像素。设左上角像素点的坐标为(X, Y),则右上角点的坐标为(X+1, Y),左下角点的坐标为(X,Y+1),右下角点的坐标为(X+1, Y+1)。对于这四个点,上位机根据算法计算好每个点对应的权值, 分别设其为M1,M2, M3 和M4。参数表中每一项的格式设计如下:


其中X, Y 为每次计算一个新的像素点所需要的四个像素数据中的左上角像素的坐标值, 均为16 位无符号数。M1, M2, M3 和M4 均为8 位无符号数。根据参数中的坐标, 就可以从原始图像SRAM 中取出相应的四个原始像素点。其后依据下式对图像进行处理:


图像处理模块具体的执行过程可分为若干个步骤:对于要处理的一帧图像,第一步先从Parameter SDRAM中顺序地读取用于图像处理的参数;再根据每一个参数项提供的坐标值,将用于计算一个结果像素所需的四个原始图像像素在SRAM 中分别取出; 接着按照上式进行计算得到一个输出像素值。
4 输入输出接口设计
本文简述A/D 接口模块和D/A 接口模块。限于篇幅,外部存储器和ARM 处理器接口模块,时序逻辑、状态转换等不予赘述。

1)A/D 接口模块
完成与采集芯片AD9887A 的接口逻辑要靠A/D接口模块。其主要功能是接收从A/D 输入的图像数据,并在模块内部通过双端口存储器(DPRAM)实现图像数据的时钟域转换和图像帧的选择。之后将图像数据馈送至原始图像SRAM 接口模块。

2)D/A 接口模块
由此模块完成输出图像的色彩校正以及芯片SiI164 的接口逻辑。D/A 接口模块的核心部件是一个用
双端口存储器(DPRAM)实现的色彩查找表(RGB Look Up Table)。处理后的图像数据由SDRAM 中取出,在输出前首先经过这个色彩查找表。当系统需要进行色彩调整的时候,只需要通过ARM 处理器将新的色彩查找表写入到DPRAM 中即可完成。该模块还分别设计了数字和模拟两种格式的接口。

5 结束语
基于FPGA 的图像处理系统的研究由于其可编程和重配置的灵活性、算法硬件实现的快速性,为图像融合处理系统带来了新的解决方案。随着大规模可编程逻辑器件技术的迅速发展,FPGA 器件性能将会不断提高,图像融合处理技术方面的应用研究也将会进入更新更高的境界。

作者:张春林,余黄河,来源:信息安全与技术
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表