基于FPGA的图像处理现状分析摘要:本文首先介绍了现场可编程门阵列(FPGA)的基本特点和设计流程。针对图像处理中处理速度的瓶颈问题,本文回顾了基于FPGA的图像处理算法,包括图像的采集和压缩存储、预处理、图像检测、视频图像的实时处理和显示等。这些实现算法,在提高图像的处理速度上都有明显的效果,在图像的实时处理方面具有现实的意义。关键字:FPGA,图像处理,实时,硬件设计.1引言随着数字多媒体技术的不断发展,数字图像处理技术被广泛应用于航空航天、通信、医学及工业生产等领域中,新开发的产品在图像存储容量、图像质量、图像处理速度等方面有了新的要求。数字图像处理,一般是通过对像素的一些运算提高图像质量,在图像处理过程中,虽然处理算法简单,但参与运算的数据量大,数据需多次重复使用,因此,图像处理往往是图像处理系统中最为耗时的环节,对整个系统速度影响较大。在当前图像处理算法研究已经很成熟的背景下,提高图像处理的时效性有很大的应用前景。随着微电子技术的高速发展,FPGA为数字图像信号处理在算法、系统结构上带来了新的方法和思路。由于图像中的所有元素均可施以同样的操作,存在固有的并行性,非常适合于映射到FPGA架构中由硬件算法实现,使得图像的处理速度大大加快。对于数字图像处理,底层图像处理的数据量很大,要求处理速度快,但运算结果相对比较简单,以FPGA作为主要处理芯片的图像处理系统非常适合于对图像进行处理。2现场可编程门阵列(FPGA)概述FPGA(FieldProgrammableGateArray)是一类高集成度的可编程逻辑器件,起源于美国的XILINX公司,该公司于1985年推出了世界上第一块FPGA芯片。FPGA技术结合了微电子技术、电路技术、EDA技术,使设计者可以集中精力进行所需逻辑功能的设计。与专用集成电路ASCI(ApplicationSpecificIntegratedCircuit)相比,FPGA具有灵活性高、设计周期短、成本低、风险小等优势,因而得到了广泛应用。随着工艺的发展和市场需求的扩大,超大规模、高速、低功耗的新型FPGA不断推陈出新。新一代的FPGA甚至集成了中央处理器(CPU)或数字处理器(DSP)内核[1],在一片FPGA开发板上进行软硬件协同设计,为实现片上可编程系统提供了强大的硬件支持。目前,FPGA的主要发展动向是实现片上可编程系统,芯片朝着高密度、低电压、低功耗方向发展,实现在速度和集成方面的进一步提高。迄今为止,FPGA的品种繁多,主要有XILINX公司的Spartan、vertex、Atrix-7、Kintex-7系列,以及ALTERA公司的FIEX系列等。根据FPGA基本结构的不同,可以将其分为基于乘积项技术的FPGA和基于查找表技术的FPGA两种。FPGA主要有6个部分组成:可编程输入/输出单元、基本可编程逻辑单元、完整的时钟管理、内嵌SRAM、丰富的布线单元、底层嵌入功能单元和内嵌专用单硬件模块等。基于FPGA的硬件设计流程大致可以分为7个步骤。一是设计输入。FPGA支持的输入方式有硬件描述语言Verilog和VHDL、状态图与原理图三种输入方式。各种图像处理算法,需要转化成硬件语言或是原理图的形式,输入到FPGA中去。二是功能仿真。电路设计完成后,要用专用的仿真工具进行功能仿真,验证电路功能是否符合设计的要求。通过仿真能够及时发现设计中的错误,加快设计进度,提高设计可靠性。功能仿真中没有加入时序信息,不涉及具体的硬件特性。三是设计综合。综合就是针对给定的电路实现功能和实现此电路的约束条件。四是综合后仿真。综合完成后需要做综合后仿真,以检查综合结果是否与原设计一致。在仿真时,把综合生成的延时文件反标到综合仿真模型中去,可估计门延时带来的影响。五是布局与布线。这一步是根据所选芯片的型号,将综合输出的逻辑网表适配到具体的FPGA硬件上。六是布局布线后仿真。将布局布线的时延文件反标到设计中,使仿真既包含门延时信息,又包含线延时信息。七是下载配置。整个设计开发的最后步骤就是在线调试或者将生成的配置文件写入到芯片中进行测试,从硬件上验证整个设计。3研究现状近年来,FPGA发展迅速,在图像的压缩[2-4]、拼接[5]、分割[6]、融合[7]以及视频影像的实时处理[8-11]等方面,有了较大的发展,特别是在提高计算速度上,现场可编程门阵列因为其设计方式灵活,断电可擦除、可靠性高等方面的优点,极大的方便了用户的开发和使用。3.1图像压缩及存储在传统的数据采集系统中,A/D的控制和数据的转存均通过CPU或者MCU来完成。在这种方式下,将A/D转换的结果读入,然后再转存到片外的存储器中,这个过程至少需要四个机器周期。在高速采样系统中,这种方法一方面占用太多CPU资源,另一方面也远远满足不了高速采样的速度要求。为解决这个问题,王强等设计了以Virtex-5系列的XC5VLX50为核心处理芯片的多路数据采集系统,在硬件电路上用流水采样来提高速度[1]。实现时,采用高带宽(1GHz)高速低功耗A/D芯片作为A/D转换器件,采样时钟由芯片内部的锁相环实现。每级电路一次采样可在一个时钟周期内完成,但是存在流水线延迟的问题。张学全[2]等利用FPGA解决了图像压缩时因数据量大造成的存储和传输时效性的问题。邓广兴[3]采用一种优化组合编码算法对高光谱图像进行无损压缩编译码,将这一算法在FPGA上实现,设计了OCC编码器和译码器,满足了机载图像采集系统的实时性要求。雷震霖[4]针对星上压缩低功耗、高性能,灵活性的要求,研究了基于CCSDS星载图像压缩标准利用FPGA实现星载图像压缩系统的方法,并提出来一种基于并行和流水的位平面编码实现结构,改进了原有的扫描方法,使扫描速率大大提高。Kim[11],Angus[12]设计了一种自适应差分编码方法,在降低压缩比的同时提高了影像解码的速率。3.2图像预处理原始图像,由于传感器自身条件,成像环境,地球曲率等影响,不可避免的存在变形或噪声,降低了图像的质量,因此在进行下一步应用之前,首先要进行图像的预处理。一般来说,图像的预处理包括图像裁剪、几何配准、噪声处理、辐射校正、几何精纠正、图像融合等几部分。在现有的研究中,Uzun[13],葛茂林[14]等在FPGA平台上实现了FFT变换,Gavin等[15-22]等人研究了中值滤波算法在FPGA上的实现方法,去除了椒盐噪声,达到了图像增强的目的。对于中值滤波,过程中用到卷积运算,若采用3x3因此,必须设计行缓存器,同时存储9个数据,这9个数据在中值滤波模块中,排序取中值取代最中间的值。流程如图1所示:图1.中值滤波数据处理流程图像分割是图像预处理的基本环节,也是进行图像处理的第一步,是减少后期图像分析量的重要方法。图像分割把图像表示为物理上有意义的几个连通区域的集合,筛选出有效信息,为以后的目标识别、特征提取打好基础。在FPGA上设计一种图像高速分割系统,替代传统PC机和DSP的构架,不少学者进行了这方面的研究。孙宁建[6]做了详尽的基于FPGA高速图像分割系统的设计方案,并结合具体的应用做了验证,结果显示,基于FPGA的高速图像分割系统不仅具有很高的精度,在分割速度上更是有了很大的提升。3.3边缘检测边缘检测与图像缩放是图像处理中重要的研究内容,广泛的应用于图像模式识别、分割和图像增强中。随着新兴技术和相关理论的发展,新的边缘检测和图像分割技术不断涌现。段咏龙[23]等针对遥感影像在轨云检测技术中图像纹理特征提取功能的实现需求,采用FPGA实现纹理特征提取算法,以此提高遥感图像的纹理特征提取的效率。设计中充分利用FPGA片上RAM、ROM寄存器等逻辑资源,发挥FPGA并行处理的优势,构建了16个灰度共生矩阵并行计算的结构,进一步计算得到4个纹理特征参数,利用Xilinx公司的Systemgenerator工具实现设计并通过仿真。在遥感图像云检测的实现过程中,纹理特征提取的基本应用流程如图2所示。3.4视频影像的处理FPGA目前的研究集中在视频图像的采集和压缩显示方面。SteffenKlupsch利用FPGA实现医学图像的预处理,加快了处理速度,可以及时的进行图像理解,对医学病症的诊疗有很实际的意义。随着视频流的分辨率越来越高,同时视频流的背景也越来越复杂,如何设计一套高性能的硬件平台来完成运动目标的实时监控是一个值得研究的问题。传统的DSP芯片的方法成本较高、会受到高频干扰并且功率消耗较大;而FPGA具有编程灵活,相比较ASIC设计周期较短,其可靠性、灵活性和低功耗等特点,比较适用于星上系统。采用基于FPGA(内嵌DSP模块)的硬件架构设计,具有更高的性能和更低的功耗,同时满足实时性和复杂性的要求,降低硬件设计的复杂度,大大提高系统的整体性能。在视频目标的检测中,FPGA主要用于视频图像的接收、存储、预处理等大规模简单操作;内嵌DSP模块充分利用其高速运算能力,主要负责计算复杂的跟踪算法。这样设计使硬件平台具有更大的灵活性。运动目标检测的FPGA实现流程图见图3.图像接收内存视频采集FIFO目标跟踪图像输出FIFO视频显示预处理图3.运动目标跟踪流程图结论图像处理系统中,底层的图像预处理的数据量很大,要求处理速度快,但运算结果相对比较简单,适用于用FPGA通过硬件实现,这样能同时兼顾速度及灵活性。FPGA结构的最大特点是结构灵活,有较强的通用性,适于模块化设计,从而能够提高运算、处理的效率,同时开发周期短,易于维护和扩展,适于实时图像处理。因此,基于FPGA的实时图像处理为应急响应系统提供及时的图像资料,具有广泛的应用前景和深远的现实意义。参考文献[1]禇振勇,翁木云.FPGA设计与应用.西安:西安电子科技大学出版社.2002.[2]张学全.基于FPGA的星载图像压缩系统实现方法研究[D].中国科学院空间科学与应用研究中心.2009.[3]邓广兴.高光谱图像无损压缩编译码器的FPGA实现[D].山东大学.2012.[4]雷震霖.空间图像CCSDS压缩算法研究与FPGA实现[D].大连理工大学.2007.[5]董林粒.基于FPGA的数字图像拼接器系统设计[D].成都理工大学.2012.[6]孙宁建.基于FPGA的一种高速实时图像分割系统研究及其应用[D].南京理工大学.2013.[7]FengQu,BochaoLiu,JianZhao,QiangSun.ImageFusionReal-timeSystemBasedonFPGAandMulti-DSP[J].OpticsandPhotonicsJourna.2013,3:76-78.[8]PierreGreisen,SimonHeinzle,MarkusGrossandAndreasPBurg.AnFPGA-basedprocessingpipelineforhighdefinitionstereovideo[J].Greisenetal.EURASIPJournalonImageandVideoProcessing.2011,18.[9]郑永瑞,李洁,刘晓宏,林秋华.基于FPGA的视频图像实时几何畸变校正[J].电光与控制.2013,20(6):75-78.[10]朱奕丹,方怡冰.基于FPGA的图像采集与VGA显示系统[J].计算机应用.2011,31(5):1258-1261.[11]Jong-hakKim,Jung-kyunOh,Seong-mukKangandJun-dongCho.AReal-timeRectificationusinganAdaptiveDifferentialEncodingforHigh-resolutionVideo[J].2014.[12]AngusWu,P.W.M.Tsang,JohnsonTang.FPGAimplementationofanearcomputationfreeimagecompressionschemebasedonadaptivedecimation.INTEGRATION,theVLSIjournal2003(36