一种基于FPGA的开关中值滤波算法研究

2016-06-17 09:42丁继生杨依忠解光军
关键词:图像处理

丁继生,卫 伟,杨依忠,解光军

(合肥工业大学 电子科学与应用物理学院,安徽 合肥 230009)



一种基于FPGA的开关中值滤波算法研究

丁继生,卫伟,杨依忠,解光军

(合肥工业大学 电子科学与应用物理学院,安徽 合肥230009)

摘要:去除噪声是数字图像处理过程中的一个重要问题,对实时性要求高的系统而言,还要有足够的速度。文章基于现场可编程门阵列(field-programmable gate array,FPGA)处理图像并行特性,提出了一种适宜于FPGA实现的开关中值滤波算法,该算法利用求中值过程中计算所得的极值,通过比较极值起到开关作用;设计了开关中值滤波器的硬件架构,并对其进行仿真、分析和说明。Matlab仿真结果表明,该算法可以有效地去除图像的椒盐噪声,能更好地保护图像细节。

关键词:图像处理;实时处理;中值滤波;现场可编程门阵列;去噪

0引言

数字图像在形成、传输、接收和处理过程中不可避免地存在一定程度的噪声干扰,故去除噪声并恢复原始图像是图像处理的一项基本任务[1-2]。中值滤波是一种非线性空间滤波,具有良好的滤除椒盐脉冲噪声的能力,广泛应用于语音、通讯及图像处理等高速实时系统领域[3-5]。为了提高速度以及滤波具有更好的效果,快速中值滤波算法成为研究的重点。文献[6]提出一种基于均值查找的快速中值滤波算法,该算法通过计算均值来减少待排序的像素点数目,从而减少排序算法的计算量,并以均值为分界点的判别依据,该算法在理论上比传统算法的效率提高了1倍,但运用了迭代运算和求取均值,增加了算法的复杂度。文献[7-8]提出了快速中值滤波算法,并利用相邻窗口间的相关信息来提高排序运算的速度,但是这类方法的前提是前后2次中值滤波的窗口存在大量重叠区域。对于很多自适应中值滤波算法[9],其滤波窗口的形状、大小以及位置都在改变,因此这类对滤波窗口加以限制的算法,在实际运用中具有很多局限性。文献[10]提出一种基于灰色关联度的图像自适应中值滤波算法,该算法可以根据图像像素之间的相似程度自适应地调整滤波加权系数,从而达到滤波效果,但该算法需要计算图像像素之间相似程度,涉及的计算量大,不适宜现场可编程门阵列(field-programmable gate array,FPGA)实现。

本文研究了几种改进的中值滤波算法,在此基础上提出了基于FPGA 的开关中值滤波算法,结合FPGA硬件实现的并行特点,利用求中值过程中计算所得的极值来判断该点是否为噪声点,以达到去噪的目的,并给出基于FPGA 的滤波器总体结构设计方案。

1中值滤波算法

1.1中值滤波原理

中值滤波是一种常用的图像去噪方法,也是一种非线性低通滤波。其原理是先确定以某个像素为中心的领域,该领域可以是圆形或者正方形区域,通常该区域所有像素点总数是奇数,一般为N×N方阵(N为奇数),以其中心点滑动过一幅图像的方式进行操作。中值滤波公式如下:

g(x,y)=median{f(x-i,y-j)},

(1)

其中,f(x,y)和g(x,y)分别为在(x,y)点中值滤波前后的灰度值;S为中值滤波模板,本文以3×3为例,对该算法简要说明。

一般快速中值滤波算法的处理步骤如图1所示。

图1 一般快速中值滤波算法流程

本文采用排除法来求中值输出,对窗口内的9 个像素点,可以看出:最小值中的最小值即为 9 个点值的最小值,最大值中的最大值即为 9 个点值的最大值;中值中的最大值至少大于 5 个点值,即本列最小值、其他2列的中值和最小值,同理中值中的最小值至少小于 5 个点值。最大值中的中值至少大于 5 个点值,即本列的中值和最小值、最大值中的最小值和该列其他2个值,同理最小值中的中值至少小于 5 个点值;最后可能为中值输出的只有max of min、min of max和mid of mid,对这3个值进行比较得到median值,即为 9 个点值的中值。中值滤波中的比较器可以用伪代码表示,具体如下:

if(d1>d2)if(r1>d3)if(r2>r3)

beginbeginbegin

r1=d1;max=r1;mid=r2;

r2=d2;r3=d3; min=r3;

endendend

else else else

beginbeginbegin

r1=d2;max=d3;mid=r3;

r2=d1;r3=r1; min=r2;

endendend

1.2开关中值滤波

由经验可知,自然图像相邻点之间点存在着很大的相关性,某一点的灰度值与周围点的灰度值非常接近,除了孤立点(一般认为是噪声)外,即使在图像边缘部分也如此。在图像中,如果一个像素点的值远大于或远小于其邻域的值,说明该像素点与其邻域的相关性很小,则该点很可能是被噪声污染了;否则,如果其值与邻近的值接近,就应该是有效的信号点。

由上述分析可知,本文给出的噪声N与信号S的判别标准如下:在一幅图像中,如果某点的灰度值是其邻域的最大或最小值,那么该点为噪声;反之,则为信号。即

(2)

设yij表示输出图像,则本文提出的去噪方法可表示为:

(3)

其中,min(W[xi,j])为对窗口内所有点取最小值;max(W[xi,j])为对窗口内所有点取最大值。

该算法实现非常简单,本文对每个像素点3×3窗口进行检测,如果像素点是最大值或最小值,则取中值代替该点的灰度图,否则对该像素不处理。

2FPGA硬件设计

整体硬件设计中包括3×3模板生成模块和开关中值滤波模块2个模块。原理如图2所示。

图2 开关中值滤波原理图

2.13×3模板生成模块硬件设计

硬件中图像信息是以数据流的形式传输,1个时钟周期只能接收或发送1个像素的数据。本文利用先进先出队列(first input first output,FIFO)缓存可实现在1个周期内同时接收处理3×3矩阵中所有9个数据。当该模块接收数据时,为了保证每行数据信息同时获取,可以用2 个FIFO缓存前2行数据,当第3 行数据到来时,将第3 行以及前2个FIFO缓存数据同时取出。接下来只需处理每行的3个数据并同步输出,只需要对该行3个数据进行分级寄存,经过适当地延时即可,3×3模板产生过程如图3 所示。

图3 3×3模板产生过程

2.2开关中值滤波模块硬件实现及时序设计

由开关中值滤波算法原理可知,该模块可分为2个小模块。第1个模块是将3×3矩阵模板的9个数值求出最大值、最小值和中值;第2个模块是通过比较极值,判断是否用中值代替该点灰度。前者核心模块视图如图4a所示,其局部放大图如图4b所示。

由图4可知,该电路由7个三输入比较器和6个寄存器构成,图中输入信号分别是9个像素灰度值、时钟信号CLK和复位信号iRST-N,电路中每个小模块为1个三输入比较器,输出最大值、最小值和中值,只需在传统中值滤波模块中加入6个寄存器,将最大值、最小值以及中值同步输出,作为下一个比较模块的输入。

图4 中值滤波模块视图

中值滤波模块得到最大值、最小值和中值后,只需要将原像素点灰度图延迟9个时钟(中值滤波模块处理3×3矩阵需要9个时钟),就可以将所有数据同步送到下个比较模块中。最后通过比较极值,判断该点是否为噪声点。该模块核心代码如下:

always @(posedge CLK or negedge iRST-N)

begin

if(!iRST-N)

dataOut <=8'b0;

else

begin

if(P5-9==max||P5-9==min)

dataOut<=median;

else

dataOut<=P5-9;

end

end

传统中值滤波算法和本文开关中值滤波算法的硬件逻辑资源消耗情况如图5所示。

图5 硬件逻辑资源消耗对比

从图5可以看出,本文算法的逻辑资源消耗比传统算法多,这些多出的逻辑资源主要是用于比较模块的设计。

3实验与仿真

3.1Matlab仿真实验对比分析

在Matlab环境下,对提出的新算法进行可行性分析,并以峰值信噪比(peak signal to noise ratio,PSNR)作为评价标准。选取512×512的灰度图像,依次加入5%、10%、20%的椒盐噪声,分别采用传统中值滤波算法和本文算法对图像进行滤波处理,计算出每种算法的PSNR,结果见表1所列。从表1可以看出,本文算法在传统算法基础上有所改进,并且有效提高了PSNR,降低了图像的均方误差(mean squared error,MSE)。

表1 不同中值滤波方案的PSNR和MSE

3.2联机调试

本实验采用Altera的Stratix IV GX系列EP4SGX230KF40C2芯片,将设计好的开关中值滤波模块嵌入到实时采集系统中。在调试前先对代码进行仿真,modelsim对其仿真的结果如图6所示。

图6 开关中值滤波模块的仿真结果

由图6可以看出,对该模块输入9个数据,如果a22属于最大值或者最小值,输出结果为9个数值的中值,反之如果a22不是极值,则输出结果为a22,保持不变,该设计能达到预期功能。本文将设计好的代码用Quartus软件下载到FPGA开发板,实时采集滤波前后的图像,结果如图7所示。由图7可以看出,滤波后的图像明显比滤波前清晰,椒盐噪声基本被滤掉。

图7 滤波前后的效果对比

4结束语

本文分析了传统中值滤波器设计中遇到的一些问题,并且阐述了几种改进算法的优缺点,提出了基于FPGA硬件实现的开关中值滤波算法。本文利用了求中值过程中计算所得的极值来判断该点是否为噪声点,极大程度上节约了硬件资源。与软件处理方法相比,基于FPGA 的开关中值滤波算法不仅适用于高速实时系统,而且结构简单、延时小、时序固定、可以预见。

[参考文献]

[1]Ka S B S,Muth R.An efficient non-linear cascade filtering algorithm for removal of high density salt and pepper noise in image and video sequence[C]//International Conference on Control,Automation,Communication and Energy Conservation,2009:1-4.

[2]李昊.新阈值函数及其小波去噪研究[J].合肥工业大学学报:自然科学版,2008,31(10):1672-1675.

[3]李佐勇,汤可宗,胡锦美,等.椒盐图像的方向加权均值滤波算法[J].中国图象图形学报,2013,18(11):1407-1415.

[4]宋宇,李满天,孙立宁.基于相似度函数的图像椒盐噪声自适应滤除算法[J].自动化学报,2007,33(5):474-479.

[5]李轶博,李小兵,周娴.基于FPGA的快速中值滤波器设计与实现[J].液晶与显示,2010,25(2):292-296.

[6]鮑华,樊榆波,饶长辉,等.基于均值查找的快速中值滤波算法[J].四川大学学报:工程科学版,2011,43(2):76-79.

[7]张海青.基于FPGA图像处理系统的关键算法研究及硬件实现[D].重庆:重庆大学,2010:22-25.

[8]张海青,杜晓晴,赵釜,等.基于横向拓展窗口的快速图像中值滤波算法[J].激光与光电子学进展,2010,47(2):021001-1-021001-5.

[9]倪臣敏,叶懋冬,陈孝春.一种改进的自适应中值滤波算法[J].中国图象图形学报,2006,11(5):672-678.

[10]李艳玲,黄春艳,赵娟.基于灰色关联度的图像自适应中值滤波算法[J].计算机仿真,2010,27(1):238-240.

(责任编辑闫杏丽)

Research on switching median filtering algorithm based on FPGA

DING Ji-sheng,WEI Wei,YANG Yi-zhong,XIE Guang-jun

(School of Electronic Science and Applied Physics,Hefei University of Technology,Hefei 230009,China)

Abstract:Denoising is an important issue during digital image processing,and high speed is indispensable when real-time characteristic of a system is needed strongly.Based on the parallel characteristic of field-programmable gate array(FPGA)when processing image,a switching median filtering algorithm which is suitable for FPGA implementation is proposed.This algorithm compares extremes which are calculated in the process of seeking the median smartly,and has a role of switching.The hardware structure of switching median filter is designed,and its simulation,analysis and illustration are given.The simulation results on Matlab show that the proposed algorithm can remove pepper salt noise from image effectively and keep the detail of image better.

Key words:digital image processing;real-time processing;median filtering;field-programmable gate array(FPGA);denoising

收稿日期:2015-01-28;修回日期:2015-04-03

基金项目:中央高校基本科研业务费专项资金资助项目(J2014HGXJ0083)

作者简介:丁继生(1990-),男,安徽芜湖人,合肥工业大学硕士生;解光军(1970-),男,安徽肥西人,博士,合肥工业大学教授,博士生导师.

doi:10.3969/j.issn.1003-5060.2016.04.012

中图分类号:TP274.2

文献标识码:A

文章编号:1003-5060(2016)04-0490-04

猜你喜欢
图像处理
海战场侦察图像处理技术图谱及应用展望
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
提高VRay渲染器渲染品质和速度的图像处理应用技巧分析
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的废有色金属自动分选算法研究
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
计算机图像处理技术应用分析
遥感图像处理软件在文物高光谱数据分析中的应用
图像处理系统运用POCS-Mallat算法的探讨