中值滤波的FPGA实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-பைடு நூலகம்-
http://www.paper.edu.cn
∑
∑
图 3 求大多数值电路结构
其中选择器对应的逻辑表达式如下:
srout( j) = abcd + abcd + abcd + cd
(2.2)
4. FPGA 仿真
本文选用 Altera 公司的 Cyclone 系列 EP1C12 芯片为目标器件,以 Altera 公司的配套开 发软件 QuartusⅡ6.0 为平台,采用硬件描述语言 Verilog 描述了整个中值滤波器,并进行了 编译、仿真及下载验证。仿真后得到的时序波形如图 4 所示。图中 sr0,sr1,sr2,sr3,sr4 表示输 入的 5 个数据,tmp0,tmp1,tmp2,tmp3,tmp4 表示中间计算结果,srout 表示中值滤波器的输出。
The Realization of Media Filter Based on FPGA
Wu Shaoqun
Anhui Phisical and Engineering school, Anqing, Anhui (246001) Abstract
This paper introduces a design method of media filter based on FPGA. Then it is simulated using the EP1C12 of the Cyclone series chips and the software of Quartus Ⅱ6.0. Keywords: Media filter, FPGA, Cyclone
(2.1)
j=0
此处 sri[ j] ∈[0,1] ,N 代表字长,M 代表窗口模板大小。则中间值计算对应的电路
结构如图 2 所示。其中 mi[N − 1] = 1 , tmpi[N −1] = sri[N −1] ,图中 j = 0,1,2,L, N −1 。
srout[j] sri[j]
mi[j]
(2.1)
式中 f (x, y) , g(x, y) 分别表示输入数据和输出数据, S 表示模板窗口。
3. 基于 FPGA 的中值滤波的设计
位级算法一个重要优点是硬件复杂度与窗口模板大小和数据的二进制表示位数呈线性 关系。本文提出的位级中值滤波器通过检测窗口模板各元素某一位来确定滤波器的某一位输 出的值。
3.1 位级中值滤波器的结构
位级中值滤波器的思路是:从最高有效位(most significant bit,MSB)开始,首先观察窗 口模板中所有元素的 MSB 位置上 1 和 0 的数目哪一个多,显然滤波输出结果将会是属于个 数多的元素集合,这样对应集合中各元素的下一位置的标志位 M 置 1,表明中值滤波结果 将会在这个集合中产生,否则置 0;而个数少的元素集合中各元素标志位 S 为当前位输出值 的相反数。这样每一位的值等于 1 和 0 中个数较多的值,同时保持了最终输出结果的阶数顺 序。整个位级中值滤波器的结构如图 1 所示,主要由中间值计算和求大多数值的电路组成。
2. 中值滤波原理
中值滤波是一种能有效抑制噪声而提高信噪比的非线性滤波技术[2]。它是一种邻域运
算,类似于卷积,但计算的不是加权求和,而是把邻域中的像素按灰度级进行排序,然后选
择该组的中间值作为输出像素值。用公式表示为:
g(x, y) = media{f (x − i, y − j)} (i, j) ∈ S
图 4 中值滤波器的仿真波形图
5. 结束语
本文介绍了一种利用位级运算实现中值滤波的思路,并借助 Altera 公司的 Cyclone 系列 EP1C12 芯片和开发软件 QuartusⅡ6.0 进行了仿真验证。仿真结果表明该设计具有节省中值 滤波硬件实现资源的优点。
-3-
http://www.paper.edu.cn
1. 引言
中值滤波广泛用于图像信号处理技术中,它是一种非线性信号处理方法,既可以消除噪 声又可以保持图像的细节[1]。虽然中值滤波方法非常简单,但是硬件实现需要大量的比较器。 软件实现的算法最基本的是采用冒泡排序的算法,对于 5 输入 8bit 数据进行排序,转换成硬 件实现需要 5+4+3=12 个 8bit 的比较器以及 11 级流水线。本论文提出一种快速算法实现中 间值滤波,设计了专用的位级基 2 中值滤波硬件结构,以较少的资源完成了硬件实现。
=1 & mi[j-1] 1 &
1
si[j]
&
=1 tmpi[j-1]
=1 si[j-1]
& sri[j-1]
1
&
图 2 中间值计算电路
3.3 求大多数值电路
对于求大多数值的硬件实现,每一位可采用 2 个一位半加器和一个选择器,就可求出针 对一维尺寸为 5×1 大小的窗口模板的“大多数”的值,设计如图 3 所示。如果输入中 1 的个数 大于或等于 0 的数目,则输出 1,否则输出 0。
参考文献
[1] Castleman K R.数字图像处理.北京:电子工业出版社,1998 [2] Gouchol Pok, JyhCharn Liu, AttoorSanju Nair. Selective Removal of Impulse Noise Based on Homogeneity Level Information. IEEE Transactions on Image processing. 2003,12(1): 85-92 [3] 苏光大.图像并行处理技术.北京:清华大学出版社,2002
http://www.paper.edu.cn
中值滤波的 FPGA 实现
吴少群
安徽理工学校机电电子教研室,安徽安庆 (246001)
E-mail:vison101@163.com
摘 要:介绍了一种基于 FPGA 的中值滤波的设计思路,借助 Altera 公司的 Cyclone 系列芯 片 EP1C12 和 Quartus Ⅱ6.0 开发软件对设计进行了仿真验证。 关键词:中值滤波,FPGA,Cyclone 中图分类号:TP 391
作者简介:吴少群,女,1982 年生,安徽理工学校讲师,主要研究方向是电子技术应用。
-4-
-1-
sr0
sr1
http://www.paper.edu.cn srM-1
中间值计算
求大多数值
结果寄存器 图 1 位级中值滤波器的结构
3.2 中间值计算
设窗口模板输入数据为 sri , i = 0,1,2,L, M −1,其权值表示为:
N −1
∑ sri = sri[ j]× 2 j
i = 0,1,2,L, M −1