中值滤波器的VHDL设计_第1页
中值滤波器的VHDL设计_第2页
中值滤波器的VHDL设计_第3页
中值滤波器的VHDL设计_第4页
中值滤波器的VHDL设计_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中值滤波器的VHDL设计重庆邮电大学移通学院本科毕业设计(论文)摘 要随着超大规模集成电路(VLSI)技术的不断发展,图像的并行处理技术也得到飞速发展。现场可编程门阵列(FPGA)是在专用集成电路(ASIC)的基础上发展起来的一种可动态编程的器件,与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便,设计周期短,可重构,扩展性好等,特别适用于流水线方式的数据处理。针对传统数字信号处理器件速度上的瓶颈问题,本文提出了一种基于FPGA 的快速中值滤波器设计方,对图像进行降噪处理。本设计利用VHDL硬件描述语言为系统逻辑描述手段

2、设计文件,在Quartus II软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的中值滤波器,并在Modelsim下进行仿真。系统以Altera公司ACEXlK系列的EPlKl00QC208-3型FPGA芯片为平台构建图像中值滤波实时处理模块,包括33模板生成模块、行列计数器模块、中值滤波模块、输入和输出模块。所编写的程序经编译和仿真,在可编程逻辑器件上下载验证,本系统能够很好的完成对图片椒盐噪声的滤除。【关键词】数字图像处理 现场可编程门列阵(FPGA) VHDL 中值滤波器ABSTRACTAs VLSI circuits (VLSI) technology co

3、ntinues to develop, parallel processing technology has been rapid development of image. FPGA is in dedicated IC (ASIC) of Foundation Shang development up of a can dynamic programming of devices, and other small scale IC compared to, its advantages main is it has is strong of flexibility, is its inte

4、rnal of specific logic function can under needs configuration, on circuit of modified and maintenance is easy, design cycle short, can heavy frame, extended sexual good, special applies Yu line way of data processing.Focusing on the speed problems of the traditional digital signal devices,a design o

5、f fast median filter based on FPGA was proposed in this paper for the Image noise reduction.This will use the hardware-description language VHDL description logic means for the system design documents, in Quartus II tools environment, a top-down design, by the various modules together build a FPGA-b

6、ased media filter. And make the simulation under the environment of modelsim.The main system chips will use EPlKl00QC208-3,and make up of the Building modules of 33 template, the Counter module, modul of Media filter,and the module of input and output.At the last , compiling the design and simulatio

7、n procedures,and the programmable logic device to download verification,this system can complete the picture of salt and pepper noise filter.【Keywords】Digital image processing Field programmable gate array VHDL Media filter目 录前 言1第一章 中值滤波器系统的概述2第一节 课题背景2第二节 课题相关技术的发展3第三节 课题研究的必要性和内容4一、课题研究的必要性4二、课题研

8、究的内容4第二章 FPGA简介6第一节 FPGA概述6第二节 FPGA基本结构6第三节 FPGA系统设计流程8第四节 FPGA开发编程原理10第三章 中值滤波的基本理论12第一节中值滤波的理论12第二节中值滤波算法的分析12第三节中值滤波器的主要的特性14第四章 中值滤波器的总体硬件结构16第五章 中值滤波器的硬件实现18第一节FIFO的工作原理及基本基本参数介绍18第二节3x3方形窗生成模块20第三节行列计数模块22第四节中值滤波器的硬件实现23一、每行三个数的比较模块23二、三个最值的比较模块25三、中值输出模块26第六章 总结与展望28第一节总结28第二节展望28致 谢30参考文献31附

9、 录32一、 英文原文32二、 英文翻译38三、 源程序43前 言图像在生成过程中常常会受到各种噪声源的干扰和影响而使图像的质量变差。为抑制噪声,改善图像质量,必须对图像进行滤波、平滑等预处理。另外现代图像处理系统对实时性的要求愈来愈高,但图像的前端采集往往会受器件或环境影响而使获得的图像含有噪声,因而需要在对图像处理前进行去噪声处理。若使用通用的软件方法,由于处理过程需要进行大量的简单计算,因此会消耗不少时间而影响系统的实时性。随着现代电子技术的发展,由于FPGA含有丰富的逻辑单元,很容易实现各种电路设计和完成较复杂的运算,对于不同的图像处理要求,只需要用软件修改FPGA内部的逻辑功能即可,

10、故对于实时性要求较高的系统,利用FPGA 实现底层算法是理想选择之一。本论文本文提出了一种基于FPGA 的快速中值滤波器设计方法,利用33模板矩阵,结合FPGA的并行特点,在Qautus II平台下编写中值滤波器的VHDL源程序。 第一章 中值滤波器系统的概述第一节 课题背景21世纪是一个信息的时代,图像作为人们感知世界的视觉基础,是人们获取信息,表达和传递信息的重要手段,一张图片的信息量相当于几万字的语言描述。并随着4G和物联网的发展,手机已成为每个人必不可少的即时通信工具,用手机看电视也变得越老越流行、视频聊天等实时视频、即时共享拍照的美图等实时系统1,以及在物联网当中图像处理也占有一席之

11、地,因此谁能够处理好图像的传输效率和质量就能在这行业占有主动权,至此就有两个解决办法一是展开传输的带宽,二是开发出高速的图像处理软件。但由于数字图像的生成、传输与通信过程中,经常会伴有随机的脉冲干扰和其他的噪声,从而使图像的质量变差,从而不利于图像的处理,因此图像处理2中,对噪声的滤除变得尤为重要。影响图像的质量的噪声有很多种,例如电噪声、机械噪声、信道噪声以及其他的干扰等,为了抑制噪声,改善图像的质量,便于进一步的处理,必须对图像进行预处理,人们根据实际图像的特点、噪声的统计特性和频率特性,发展可各种各样的降噪方法。其中最直观的方法是根据噪声的能量一般集中于高频,而图像频谱分布在一个有限区间

12、这一特点,采用低通滤波方法。此外还有对图像进行平滑处理,也是常见的方法。目前,数字图像平滑处理有很多的方法,其中空域平滑是图像处理领域比较活跃的一个分支,已经经历了几十年的研究探索,并形成了系统的算法。总的来说,其基本方法就是用所选的领域中的各个像素灰度的平均值代替中心像素的灰度值。但是,空域平滑算法就有一个共同的不足,就是它不仅平滑噪声,而且试图想的细节模糊化。1974年,Tukey针对高离散数据平滑问题首先提出了中值滤波34(Median Filter)的概念,其后这种新概念思想很快就引入些重要的数字信号处理领域,其中图像处理是最重要的一方面,当标准中值滤波器用于解决图像处理恢度问题时,人

13、们注意到它的两个独特的性能:能较好地保护图像的细节(图像灰度发生突出的地方);很好的韧性,能较好地抑制原片高斯型的,甚至不完全独立于有信号的各种噪声,这些性能是人们所熟悉的线性滤波器所不具备的。为了解释标准中值滤波的这些特性并且能更加深刻的懂得中指令的操作,人们开始研究中值滤波器的特性,并且取得了许多好、重要结论。理论分析和实际应用的结果都使人们相信中值滤波器在图像处理中有独到的优势。正是这样,使得中值滤波算法得到越来越广泛的应用。但是标准中值滤波器而言,它有一个主要的问题是它会造成图像中相对滤波窗口较为“细小”的某些细线、拐角等细节结构或丢失,而这些细小结构往往包含这重要的信息。为了不至于丢

14、掉太多的有用的细节,我们就不得不选用晓得滤波窗口,然而在图像滤噪中,好的滤波效果要求要求大的滤波窗口,这就形成了一堆尖锐的矛盾。此外,勇于图像处理时,标准中值滤波器往往会造成边缘的不稳定抖动,还有就是标准中值滤波器在应用中只有滤波窗口的大小和形状可供调整(大多数情况下窗口形状为正方形,因此可供改变的以适应不同应用的参数往往只有正方形窗口的边长),缺乏必要的灵活性。标准中值滤波器的上述优势和缺陷强烈的激发人们去寻找一些改进的中值滤波器算5。自20世纪80年代以来不断有一些新的滤波器算法提出来。第二节 课题相关技术的发展当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产

15、品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上最新的QUARTUS II开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动

16、完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。本设计采用的VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。专用系统集成电路6(ASIC),是一种带有逻辑处理的加速处理器。而FPGA(Filed Programmable Gate Array)是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具

17、先进、标准产品无需测试、质量稳定以及可实时在线检测等优点且FPGA设计上能实现在硬件上并行和流水线操作(pipeline)技术7。目前,实现图像处理算法的方式很多,FPGA技术因其众多优点在实时图像处理方面有广泛的应用8。 第三节 课题研究的必要性和内容一、课题研究的必要性在信息技术高速发展的时代,对图像进行高速、清晰的传送是非常有必要的,有很大发展空间和应用前景,以及重要的科学意义:当前的各种滤波器依旧存在实时性和降噪效果之间的矛盾,发展的空间依旧很大应用前景:自能识别系统、电视、卫星、雷达、摄影、医疗、交通等等。科学意义:其设计可以加快科学技术的发展速度,和为科学某些领域的深入的发展奠定坚

18、实的基础,为社会带来了方便。二、课题研究的内容本设计主要研究中值滤波器VHDL的设计的以下三个方面:探究是否可以找到改变图像处理算法,使算法更简单,更容易实现。能否找到更加合适的算法实现方式。以FPGA为平台通过观察实际的效果观测是否达到理论的要求。即达到对椒盐噪声和脉冲噪声的滤除,并且可有效地保护图像的边缘。第二章 FPGA简介第一节 FPGA概述FPGA910是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,两者的功能基本相同,只是实现原

19、理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HD

20、L的进步。第二节 FPGA基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、输入/输出模块(IOB-I/O Block)和互连资源(IRInterconnect Resource)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常

21、排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。(一)CLB是FPGA的主要组成部分图2-1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G 、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路

22、的输出H1。这个函数发生器能实现3输入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另一方面,逻辑函数发生器F和G还可以

23、作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。(二)输入/输出模块IOBIOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路经延时几纳秒(或者不延时)送到输入通路D触发器,再送到数据选择器。通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。当IOB控制的引脚被定义为输出时,CLB

24、阵列的输出信号OUT也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。(三)可编程互连资源IR可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。CLBCLBCLBCLBCLBBCLBCLBCLBCLBCLBCLBCLBCLBBCLBCLBCLB可编程

25、开关矩输入输出模块互连资源图2.1 CLB基本结构第三节 FPGA系统设计流程一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOP DOWN(自顶向下)的设计方法。目前这种高层次的设计方法已被广泛采用。高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的工作流程如图2.2所示。系统划分编译器代码级功能仿真综合器适配前时序仿真适配器CPLD/FPGA实现适配

26、后仿真模型适配后时序仿真适配报告ASIC实现VHDL代码或图形方式输入仿真综合库器件编程文件图2.2 CPLD/FPGA系统设计流程流程说明:工程师按照“自顶向下”的设计方法进行系统划分。输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。将以上的设计输入编译成标准的VHDL文件。进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。利用综合器对VHDL源代码进行综合优化处理,生

27、成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,

28、因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。第四节 FPGA开发编程原理硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。CPLD/FPGA软件设计可分为两大块:编程语言和编程工具。编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合E

29、DA软件(如MAX+plusII、QuartusII、Foundation、ISE)以及第三方工具(如FPGA Express、Modelsim、Synposys SVS等)。具体的设计输入方式有以下几种:HDL语言方式。HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。用这种方式描述的项目最后所能达到的性能与设计人员的水平、经验以及综合软件有很大的关系。图形方式。可以分为电路原理图描述,状态机描述和波形描述3种形式。有的软件3种输入方法都支持,如Active-HDL。MAX+plusII 图形输入方式只支持电路原理图描述和波形描述两种。电路原理图方式描

30、述比较直观和高效,对综合软件的要求不高。一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,所以硬件工作速度和芯片利用率很高,但是但项目很大的时候,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部。由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。

31、这种输入方式最后所能达到的工作速度和芯片利用率也是主要取决于综合软件。第三章 中值滤波的基本理论第一节 中值滤波的理论中值滤波器是在1971年由JwJukey首先提出并应用于一维信号处理技术(时间序列分析)中,后来被二维图像信号处理技术所引用。中值滤波是基于邻域操作的,可通过定义个大小为NN(N为奇数,一般采用33或者55模板,相对比较采用33模板拥有耗时短,资源省的优点,而采用55模板能获得更好的处理效果更好一些)的邻域,以其中心点滑动过一幅图像的方式进行操作。中值滤波是一种能有效地抑制图像噪声而提高信噪比的非线性滤波技术。它是把邻域中的像素按灰度级进行排序,然后选择该组的中间值作为输出像素

32、值。用公式表示为: g(x,y)=medianf(x-i,y-j) (i,j)S上式中g(x,y),f(x,y)为像素的灰度值;S为模板窗口。对于不同的图像内容和不同的应用要求,往往采用不同的模板窗口。中值滤波器能够很好地滤除脉冲噪声,同时又可以很好的保护目标图像的边缘因而中值滤波对极限像素值( 与周围像素灰度值差别较大的像素) 远不如平均值那么敏感, 从而可以消除孤立的噪声点, 又可以使图像产生较少的模糊11。第二节 中值滤波算法的分析中值滤波算法核心是排序,排序算法的优劣直接决定了求取中间值的效率,从而决定滤波器的整体性能。在传统中值滤波中,窗口内的所有像素点的灰度值从小到大(或从大到小)

33、顺序排列,并以灰度值序列的中间值来代替窗口中心位置的像素点的灰度值。例如对于NN 方形窗的中值滤波器来说,运行一次就要进行n2(n2 一1)/2次排队和比较运算。这样一来的话,处理一般的图像不仅需要很长的时间,而且还会占用很大的系统资源,假如用作在手机等配置不是那么高的移动设备上,那么将无法达到预期的目的,并影响其他技术的发展。基于硬件的排序算法设计可以充分地利用硬件平台的并行性特点,从而达到加快处理速度目的。我们以33模块为例子,利用冒泡法求把模板数据3个行向量同时排序,进行流水操作,生成一个新的矩阵模板;求出每一行的最大值、中值、最小值,分别表示Max1=maxa11,a12,a13,Mi

34、ll=mila11,a12,a13,Min1=mina11,a12,a13。同理可得每一行的最大值、中间值、最小值Max2=maxa21,a22,a23,Mil2=mila21,a22,a23,Min2=mina21,a22,a23,Max3=maxa31,a32,a33,Mil3=mila31,a32,a33,Min3=mina31,a32,a33。利用此方法,对窗中3行3列共9个像素取中值运算,中值滤波只需21次比较运算就可以计算出中值输出,比传统的中值滤波的36次的运算量减少了42。因此,相比于传统中值滤波算法,硬件实现快速中值滤波算法将占用更少的硬件资源,从而使它能够到达较高的工作频率

35、,以满足图像实时处理的要求。由此可得,由每一行的最大值、中值、最小值组成的新的三个数组,其中3个最小值组成的数组中的最小值为这9个数中最小值,最大值组成的数组中的最大值为这9最大值,并且3个中值中的最大值至少大于5个数,即本行中的最小值、其它两行的中的最小值;3个中值的最小值至少小于5个数,即本行的最大值,其它2行中值及最大值。最后,只需要比较3个最大值中的最小值Min of Max,3个中值中的中值 Mil of Mil,3个最小值中的最大值 Max of Min,就可以得到这9个数的中值,比较的原理图如图3.1中间值的求得过程12。我们可以看个例子如图3-2(a)(b),经过排序以后只要比

36、较三个最大值7、6、10中的最小值6,三个中值5、4、9的中值5,三个最小值1、3、8的最大值8,即比较6、5、8的大小取其中值6,所以6就为这9个数的中值。与最一般的用冒泡法设计的模块相比,在Quartus II平台下的仿真时算法占用的资源对比如下表3.1表3.1 两种滤波的性能对比名称33模块,冒泡排序法33模块,改进算法Total logic elements921/33 216(3%)610/33 216(4%)Total registers138228Total pins20/475(4%)20/475(4%)Total memonry320/483 840(1%)320/483 8

37、40(1%)延时(时钟周期)4347通过对比明显改进后的算法滤波器的性能有很大的优势,不仅体现在占有资源的方面,更为重要的是使得图像处理的实时性得到很大的提高。B1A1 X(i-1,j-1) X(i-1,j) X(i-1,j+1) C B2A2 X(i,i-1) X(i,j) y(i,j) X(i,j+1) B3A3 X(i+1,j-1) X(i+1,j) X(i+1,j+1) 图3.1 数据的比较原理图第三节 中值滤波器的主要的特性中值滤波器的主要特性有:滤除噪声的性能、中值滤波的频谱特性13、对某些信号的不变性。滤除噪声的性能:中值滤波器是非线性运算,类似于卷积运算,过程是非常复杂的。经研

38、究表明,对于零值正态分布的噪声输入,中值滤波器的输出与输入的分布密度有关,输出噪声方差与输入噪声密度函数的平方成反比。对于随机噪声的抑制能力,中值滤波比平均值滤波效果要差一点。但对于脉冲噪声来讲,相距较远的窄脉冲,中值滤波还是很有优势的。如图3.3所示。中值滤波的频谱特性:对于中值滤波是非线性运算,在输入很热输出之间的频率上不存在一一对应的关系,故不能用一般线性滤波器频率特性分析方法。采用总体实验观察法,经大量实验表明,中值滤波器的频率响应与输入信号的频谱有关,呈现不规则波动不大的曲线,信号经滤波后频谱可以认为是基本不变的。对某些信号的不变性:对于某些特性的输入信号如图3.4(a)(b),中值

39、滤波器输出信号保持不变,相对于一般的线性滤波器而言中值滤波器有更好的保护图像细节的优势。 (a)原矩阵 (b)每行进行排序后 图3.2 输入信号 输出信号 图3.3 脉冲 输入信号 输出信号 输入信号 输出信号 图3.4 (a)阶跃 图3.4(b)斜坡第四章 中值滤波器的总体硬件结构采用现场可编程门阵列(FPGA)构建的各种图像处理算法滤波器的硬件电路主要包括:3x3方形窗生成模块、算法模块和行列计数器模块。3x3方形窗生成模块功能是,生成用于实现各种图像处理算法所需的3x3方形窗;算法模块是图像处理的硬件实现电路设计中的核心模块,主要是对3x3方形窗中的9个数据值进行各种图像算法处理,产生经

40、过算法处理后的有效输出信号;行列计数器模块用来确定正在处理的数据在图像数据阵列中的位置和完成图像行列计数功能。图像处理滤波器的总体硬件模块框图如图41所示。CLK为全局时钟信号输入,RST为全局复位信号输入,D(7:0)为8位灰度图像信号输入,DOUT(7:0)为经过图像算法处理后的8位信号输出。因为本设计是对256x256x8bit灰度图像进行处理,所以取8位输入信号。DV为信号输出的有效标志,即当输出信号为经算法模块处理后的有效输出数据值时,DV为高电平,否则为低电平。 算法模块3x3方形窗口生成模块 D( 7:0) DOUT(7:0) DV行列计数模块CLK RST图4.1 中值滤波器总

41、体硬件结构该总体硬件设计方案适应于各种基于滑动窗操作的图像处理算法的FPGA硬件实现。由于FPGA设计中模块具有可复用特点,无需重复设计3x3方形窗生成模块和行列计数器模块,只需要在顶层硬件设计中使用VHDL硬件描述语言或原理图法,将不同的算法模块与这两个模块综合在一起工作,并设计正确的时序关系,即可实现各种不同图像处理算法功能。需要指出的是,各种不同图像处理算法的滤波器项层硬件设计是有所不同的,但是由于底层模块的可复用性,使得设计周期能够有所缩短,设计也更加的简洁清晰。第五章 中值滤波器的硬件实现由本设计需要用到3x3方形生成模块、行列生成模块、中值滤波算法模块的设计。由于3x3方形窗口生成

42、模块需要使用FIFO存储器,故以下先介绍的工作原理以及基本逻辑参数。第一节 FIFO的工作原理及基本基本参数介绍FIFO(First In First Out,先进先出)存储器14是一个具有两个端口(输入口和输出口)、能按先进先出的顺序来暂时存放数据的存储器件。它可分为同步FIFO和异步FIFO,同步FIFO是指数据输入输出的时钟频率相同,异步FIFO是指数据输入输出的时钟频率可以不同。FIFO是一种特殊功能的存储器,数据以达到FIFO输入端口的先后顺序依次存储在存储器中,并以相同的顺序从FIFO的输出端口送出,所以FIFO内数据的写入和读取只受读写时钟和读写请求信号的控制,而不需要读写地址线

43、。FIFO在数字系统中有着十分广泛的应用,可以用作并行数据延迟线、数据缓冲存储器以及速率变换器等。在FPGA处理图像数据的过程中,本文使用FIFO来缓存图像数据,每个FIFO存储一行图像数据,不仅方便构成3x3方形窗,同时也便于之后的滤波算法模块处理。由于应用场合的特殊性,我们要求数据实时的进行传输和处理,所以FIFO的每一块RAM都是工作在刷新一读取一刷新这样的循环中。在牺牲一定的物理RAM的基础上,这样可以获得更好的实时性能。QuarmsII提供了几种FIFO模块。本文在设计中选用的是单时钟同步FIFO,可在LPM宏单元中调用此FIFO模块,并做必要的参数设定,它的逻辑参数可见表5.1和5

44、.2。表5.1 LMP_FIFO宏模块基本逻辑参数(一)Clockaclrrdregwrreg 功能描述H存储器清空LL状态不改变(需要时钟上升沿)L从FIFO中读取数据(数据未读空时)LL状态不改变LH从FIFO中写入数据(FIFO未写满) 表5-2 LPM_FIFO宏模块基本逻辑参数(二)端口名称功能描述输入端口 data输入数据clock同步读取时钟,上升沿触发wrreg写请求控制,wrreg=1时写禁止输出端口rdreg读请求控制,rdreq=1时写禁止q数据输出 fullIFO中数据存储满信号 empty FIFO中数据存储空信号参数设置 usedw FIFO中数据存储的数量 LPM

45、_WIDTHData和q端口的数据宽度LPM_NUMWORDSFIFO中存储单元的数目 LPM_WIDTHUUsedw端口的数据宽度USE_EAB选择使用“EAB”或“逻辑单元”实现FIFO功能,“ON”为使用EAB,“OFF”为使用逻辑单元 Data7:0 q70Wrreq fullRdred emptyClock usedw7.0 B bitsx256 words Lpm_fifo Inst图5.2 LPM_FIFO宏模块图52中所示的FIFO有8条数据输入总线data,8条数据输出总线q,l条读控制信号线rdreq,1条写控制信号线wrreq,1条时钟输入线clock,存储数据单元的计数

46、器usedw及两条状态信号线(full、empty)。因此,FIFO由6个小功能块组成,它们是存储体,读指示器(rdreq),写指示器(wrreq),满逻辑信号full,空逻辑信号empty和计数器usedw,这是一个同步的FIFO模块。在时钟脉冲的上升沿作用下,当wrreq=0且full=0时,data的数据将压入FIFO堆栈。在通常情况下,rdreq指示器所指出的单元内容总是放于q的输出数据线上,只是在rdreq=0且empty=0时,rdreq指示器内容才改变而指向FIFO的下一个单元,下一个单元的内容将替换当前内容并从q端口输出。所以,在任何时候q上总有一个数据输出,而不像RAM那样,

47、只有在读有效时才有数据输出,平时就为三态输出。第二节 3x3方形窗生成模块如前文所述,在中值滤波的实现过程中需要选用3x3方形窗,该滑动窗在一个时刻处理图像的某个像素和其邻域像素,经过中值滤波算法排序后,得出其中值像素来取代其原3x3方形窗中间位置的像素值。之后,每当一个像素及其邻域像素经过中值滤波处理完毕后,3x3方形窗将不断右移或换行,直到将一幅灰度图像的数据阵列中的所有像素全部处理完。在中值滤波的硬件设计中,本文采用3x3方形窗,它同时也适用于顺序滤波、卷积滤波等图像处理算法的硬件实现。为了使窗中的3行3列共9个像素能够在一个时刻同时输出,便于之后的核心算法模块进行流水线处理,在3x3方

48、形窗的硬件设计中,本文采用了两个FIFO存储器。其中FIFO地址宽度为W(W为图像宽度),这样每个FIFO正好可以存储一行共W个图像数据,使得方形3x3窗生成模块的输出w11,w12w33正好构成3x3模板所对应的3行3列共9个图像数据值。由于本文处理的图像为256x256的灰度图像,所以FIFO的地址宽度为256,并设定为单时钟同步FIFO。图5-3为3x3方形窗结构框图。如图所示,在进行中值滤波时,先从数据输入端读取两行图像数据(均为lx256x8bits)并保存在FIFO存储器中,这样就可构成整个3x3的方形窗。开始滤波后,从数据输入端中不断读入新的图像数据,这样得到的数据结果就是对第二

49、行lx256个数据进行滤波的数据。每当从数据输入端读入一个新像素值时,方形窗向右移动一个位置,与此同时前一刻方形窗中最右边的像素被置入FIFO中等待处理。由于FIFO在时钟的控制下每一个节拍输出一个新数据,也就等于窗口在每一个时钟控制下沿图像数据的行方向逐像素滑动。当处理完第二行256个像素后,第一行的数据被丢掉,第二行的数据成为第一行的数据,第三行的数据成为第二行的数据,再读入第四行的数据组成3x3窗的第三行的数据,接着再进行滤波后得到的是对第三行的数据进行滤波后的数据结果;之后,第二行的数据被丢掉,第三行的数据变成3x3窗中的第一行数据,第四行的数据变成3x3窗中的第二行数据,再读入第五行

50、的数据成为3x3窗中的第三行数据,以此类推,这样就可以完成对整幅图像的像素值阵列的中值滤波处理,得到最终输出。在处理第n行数据灰度值的同时就应将第n-1、n行数据保存在FIFO中,n+1行数据由数据输入端读入,而当第n行处理完一个数据就将第n-l行的前一个数据丢弃,这样窗口逐个像素向右滑动,且每个系统时钟周期能够读出一个窗口中的9个数据,并送中值滤波算法模块进行流水线处理。a11a12a13a21a22a23a31a32a33OUTFIFO 1FIFO 2 INPUT图5.3 3x3方形窗结构图图5.3为3x3方形窗结构框图。如图所示,在进行中值滤波时,先从数据输入端读取两行图像数据(均为lx

51、256x8bits)并保存在FIFO存储器中,这样就可构成整个3x3的方形窗。开始滤波后,从数据输入端中不断读入新的图像数据,这样得到的数据结果就是对第二行lx256个数据进行滤波的数据。每当从数据输入端读入一个新像素值时,方形窗向右移动一个位置,与此同时前一刻方形窗中最右边的像素被置入FIFO中等待处理。由于FIFO在时钟的控制下每一个节拍输出一个新数据,也就等于窗口在每一个时钟控制下沿图像数据的行方向逐像素滑动。当处理完第二行256个像素后,第一行的数据被丢掉,第二行的数据成为第一行的数据,第三行的数据成为第二行的数据,再读入第四行的数据组成3x3窗的第三行的数据,接着再进行滤波后得到的是

52、对第三行的数据进行滤波后的数据结果;之后,第二行的数据被丢掉,第三行的数据变成3x3窗中的第一行数据,第四行的数据变成3x3窗中的第二行数据,再读入第五行的数据成为3x3窗中的第三行数据,以此类推,这样就可以完成对整幅图像的像素值阵列的中值滤波处理,得到最终输出。在处理第n行数据灰度值的同时就应将第n-1、n行数据保存在FIFO中,n+1行数据由数据输入端读入,而当第n行处理完一个数据就将第nl行的前一个数据丢弃,这样窗口逐个像素向右滑动,且每个系统时钟周期能够读出一个窗口中的9个数据,并送中值滤波算法模块进行流水线处理。图5.4是3x3方形窗的流程图。容易看出,经过寄存器R和FIFO的作用后,在每一个时钟周期时,3x3窗函数生成模块同时输出WllW33共9个待处理图像的像素数据,构成了3x3方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论