一种基于fpga的3*3均值滤波算法的实现方法

文档序号:6354886阅读:2983来源:国知局
专利名称:一种基于fpga的3*3均值滤波算法的实现方法
技术领域
本发明可应用于空间域图像增强领域,涉及ー种基于FPGA的3*3均值滤波的快速算法及设计技木,具体涉及ー种基于FPGA的3*3均值滤波算法的实现方法。
背景技术
图像增强的主要目的是处理图像,使其比原始图像更适合于特定应用,也就是说研究图像增强技术是面向具体问题的,不存在通用的图像增强方法。例如,一种很适合增强X射线图像的方法,不一定是增强由空间探测器发回的火星图像的最好方法。由于其广泛的应用,图像增强本身就是图像处理中最具有吸引力的领域之一。图像增强的方法分为两大类空间域方法和频域方法。“空间域”ー词是指图像平面自身,这类方法是以对图像的像素直接处理为基础的。“频域”处理技术是以修改图像的傅氏变换为基础的。
平滑线性空间滤波器的输出响应是包含在滤波掩模邻域内像素的简单平均值,也称为均值滤波器。由于其直观的概念和简单的处理,一直在图像增强领域中占有重要的地位。并且对于图像平均处理的ー个重要应用是在天文学领域,在天文学中经常用极低亮度水平成像,经常导致传感器噪声混入单幅图像,从而实际上使图像在分析时无法使用。现场可编程门阵列(FPGA)是在专用集成电路(ASIC)的基础上发展起来的ー种可动态编程的器件,与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便,设计周期短,可重构,扩展性好等,特别适用于流水线方式的数据处理。考虑到当前对常用的3*3滤波窗ロ的数学模型进行处理,基本上都采用软件进行处理,不能保证对接收图像实时性的处理要求,即使是ー些快速的运算处理器,对于除法的运算操作也是比较复杂和费时的,那么利用FPGA实现除9的实时均值滤波就有很重要的意义。

发明内容
本发明的目的在于,为克服目前常用的3*3滤波算法采用现有的数学模型进行处理,不能保证对接收图像实时性的处理要求,即使是ー些快速的运算处理器,对于除法的运算操作也是比较复杂和费时的,从而提供一种基于FPGA的3*3均值滤波算法的实现方法。为达到上述目的,本发明提供一种基于FPGA的3*3均值滤波算法的实现方法,该方法采用FPGA模块实现8bit灰度图像的3*3滤波窗ロ的均值滤波,所述的方法包含如下步骤I)在第一个采样周期,计算9个输入数据之和;2)在第二个采样周期将9个输入数据之和右移3位得到Si ;将9个输入数据之和右移6位得到s2 ;取9个输入数据之和的低3位sum[2:0]乘以9得到9m ;取sum右移6位乘以8得到8s2 ;取sum的低6位得到n ;3)在第三个采样周期,设定余数部分的分子为loss = 9m+8s2-n = 9m+8 (9s3+k) _n=(9m+8k-n)+72s3,其中余数部分包含s3和所有的余数,计算loss的值;4)在第四个采样周期,判断s2的大小,若由上个周期得到的s2 < 9,那么s3将为0,则商为average = sl_s2,余数部分的分ナ为 really_loss = loss ;若9 < s2 < 18,那么s3将为I,则商为average = sl_s2+l,余数的分子为really_loss =丄oss—72 ;若18彡s2 < 27,那么s3将为2,则商为average = sl_s2+2,余数的分子为
really_loss =丄oss—144;若s2彡27,那么s3将为3,则商为average = sl_s2+3,余数的分子为really_丄oss =丄oss_216 ;5)在第五个采样周期,判断上个周期得到really_loss,若really_loss大于71,则最后模块的均值输出为需加余数I ;否则均值的余数为零;得到该模块的准确输出。所述的FPGA模块包含如下子模块数据输入子模块,接受并行输入的9个数据,在时钟上升沿,把9个数据读进来;数据处理子模块,该子模块用于完成对输入的9个数据进行处理,得到均值;该子模块进一歩包含求和単元,用于计算并行输入9个数据的和;移位单元对得到的和进行右移3位得到Si,右移6位得到s2 ;乘法单元将输入数据之和的低3位sum[2:0]乘以9得到9m,再s2乘以8得到8s2 ;第一设定单元,用于根据所述求和単元、移位単元和乘法单元得到的数据设定余数分子;第一判断単元,用于判断移位模块得到的s2的取值范围,得到4个判决结果;第二设定单元用于根据判断単元得到的4个判决结果分别设定不同的商,并相应更新所述余数分子;第二判断単元,用于判断更新的余数分子与71的关系,得到两个判断结果;第三设定单元,用于根绝第二判断単元的结果设定两个不同的均值作为输出均值;输出子模块,输出第三设定单元得到的均值。本发明的优点在于,本发明提供的一种基于FPGA的3*3均值滤波算法及设计技术,该算法结合FPGA的并行结构和适合流水线设计的结构特点,构建图像均值滤波实时处理模块,因此能够快速的实现对Sbit灰度图像的3*3滤波窗ロ的均值滤波;且利用该算法设计的模块具有稳定的运算周期,从而能够进行流水线操作,在达到实时处理效果的同时不降低图像平滑的质量。


图I为本发明的基于FPGA的3*3均值滤波算法实现方法的步骤流程图。
具体实施方式
下面结合附图和实施例对本发明进行进ー步说明。一、算法原理对于该算法的具体推导过程如下先假设该3*3滤波窗ロ内的数据如下,数据宽度为8位
权利要求
1.一种基于FPGA的3*3均值滤波算法的实现方法,该方法采用FPGA模块实现8bit灰度图像的3*3滤波窗ロ的均值滤波,所述的方法包含如下步骤 1)在第一个采样周期,计算9个输入数据之和; 2)在第二个采样周期将9个输入数据之和右移3位得到Si;将9个输入数据之和右移6位得到s2 ;取9个输入数据之和的低3位乘以9得到9m ;取9个输入数据之和右移6位乘以8得到8s2 ;取9个输入数据之和的低6位得到n ; 3)在第三个采样周期,设定余数部分的分子为loss= 9m+8s2-n = 9m+8 (9s3+k) -n =(9m+8k-n)+72s3,其中余数部分包含s3和所有的余数,计算loss的值; 4)在第四个采样周期,判断s2的大小, 若由第二个周期得到的s2的值小于9,那么由第三周期得到的s3将为0,则商为average = sl_s2,余数部分的分子为 really_loss = loss ; 若s2取值满足9彡s2 < 18,那么s3将为1,则商为average = sl_s2+l,余数的分子为really_loss = loss-72 ; 若s2取值满足18 < s2 < 27,那么s3将为2,则商为average = sl_s2+2,余数的分子为really」oss = loss-144 ; 若s2取值满足s2彡27,那么s3将为3,则商为average = sl_s2+3,余数的分子为really_loss =丄oss—216 ; 5)在第五个采样周期,判断上个周期得到really_loss,若really_loss大于71,则最后模块的均值输出为上个周期得到的商与I的和;否则输出均值为上个周期得到的商的值。
2.根据权利要求I所述的基于FPGA的3*3均值滤波算法的实现方法,其特征在于,所述的FPGA模块包含如下子模块 数据输入子模块,接受并行输入的9个数据,在时钟上升沿,把9个数据读进来; 数据处理子模块,该子模块用于完成对输入的9个数据进行处理,得到均值; 该子模块进一歩包含 求和単元,用于计算并行输入9个数据的和; 移位单元对得到的和进行右移3位得到Si,右移6位得到s2 ; 乘法单元将输入数据之和的低3位sum[2:0]乘以9得到9m,再s2乘以8得到8s2 ; 第一设定单元,用于根据所述求和単元、移位単元和乘法单元得到的数据设定余数分子; 第一判断単元,用于判断移位模块得到的s2的取值范围,得到4个判决结果; 第二设定单元用于根据判断単元得到的4个判决结果分别设定不同的商,并相应更新所述余数分子; 第二判断単元,用于判断更新的余数分子与71的关系,得到两个判断结果; 第三设定单元,用于根据第二判断単元的结果设定两个不同的均值作为输出均值; 输出子模块,输出第三设定单元得到的均值。
3.根据权利要求I或2所述的基于FPGA的3*3均值滤波算法的实现方法,其特征在于,所述的时钟为采样周期,该采样周期可调。
全文摘要
本发明提供一种基于FPGA的3*3均值滤波算法的实现方法,该方法采用FPGA模块实现8bit灰度图像的3*3滤波窗口的均值滤波,所述的方法包含如下步骤第一个采样周期,计算9个输入数据之和;第二个采样周期将9个输入数据之和右移3位得到s1;将9个输入数据之和右移6位得到s2;取9个输入数据之和的低3位sum[2:0]乘以9得到9m;取sum右移6位乘以8得到8s2;取sum的低6位得到n;第三个采样周期,设定余数部分的分子计算loss的值;第四个采样周期,判断s2的大小,确定余数部分的分子;第五个采样周期,判断上个周期得到really_loss,若really_loss大于71,则均值输出为需加余数1;否则均值的余数为零。利用该算法能够进行流水线操作,在达到实时处理效果的同时并不降低图像平滑的质量。
文档编号G06T5/00GK102651121SQ201110044808
公开日2012年8月29日 申请日期2011年2月23日 优先权日2011年2月23日
发明者杜利利 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1