《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 快速中值濾波算法的改進(jìn)及其FPGA實(shí)現(xiàn)
快速中值濾波算法的改進(jìn)及其FPGA實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第2期
李國燕1, 侯向丹2, 顧軍華2, 陸益財(cái)2, 范培培2
1. 河北工業(yè)大學(xué) 電氣工程學(xué)院,天津300401; 2. 河北工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與軟件學(xué)院,天津300401
摘要: 針對(duì)傳統(tǒng)中值濾波算法排序量大、速度慢且處理效果模糊的問題,在快速中值濾波算法的基礎(chǔ)上,提出了一種加入閾值比較、且具有更高并行流水結(jié)構(gòu)的改進(jìn)算法,并在現(xiàn)場(chǎng)可編程門陣列(FPGA)硬件平臺(tái)上實(shí)現(xiàn)了該算法。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的快速中值濾波算法不僅減少了比較的次數(shù),還更好地保護(hù)了圖像的細(xì)節(jié),可滿足圖像預(yù)處理對(duì)實(shí)時(shí)性的要求。
中圖分類號(hào): TP301
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)02-0137-04
Implementation of the improved fast median filtering algorithm based on FPGA
Li Guoyan1, Hou Xiangdan2, Gu Junhua2, Lu Yicai2, Fan Peipei2
1. School of Electrical Engineering and Automation, Hebei University of Technology, Tianjin 300401, China; 2. School of Computer Science and Software, Hebei University of Technology, Tianjin 300401, China
Abstract: The speed of classical median filtering algorithm is slow because of a lot of sorting and it blurs the image, this paper introduces an improved algorithm by adding threshold comparison to the fast median filtering algorithm, which has a parallel pipeline structure. The improved algorithm is implemented on the platform of field programmable gate array(FPGA).The experimental results show that the improved fast median filtering algorithm not only has less times of comparison but also better quality, meet the requirements of the image pre-processing of real-time over the software version of the same algorithm.
Key words : median filter; FPGA; fast algorithm; comparison of threshold

    圖像是人類獲取外界信息的重要途徑,圖像的清晰度直接影響到人們對(duì)其的觀察以及進(jìn)一步的分析研究。圖像的采集、傳輸、存儲(chǔ)等環(huán)節(jié)通常會(huì)導(dǎo)致圖像質(zhì)量的降低。因此,為了改善圖像的質(zhì)量,必須對(duì)圖像進(jìn)行濾波、平滑等預(yù)處理操作。但是,由于實(shí)際處理的數(shù)據(jù)量巨大,預(yù)處理的過程往往達(dá)不到系統(tǒng)對(duì)實(shí)時(shí)性的要求。近年來,微電子技術(shù)和超大規(guī)模的集成電路制造技術(shù)的發(fā)展,特別是FPGA的發(fā)展,為提高圖像處理系統(tǒng)各種性能提供了新的思路和方法。FPGA在設(shè)計(jì)上實(shí)現(xiàn)了硬件并行和流水線(Pipeline)技術(shù),適于模塊化設(shè)計(jì);同時(shí)其開發(fā)周期短,系統(tǒng)易于維護(hù)和擴(kuò)展,能夠大大提高圖像數(shù)據(jù)的處理速度,滿足系統(tǒng)的實(shí)時(shí)性要求[1]。

    中值濾波作為一種空域?yàn)V波技術(shù),能有效地去除脈沖噪聲和椒鹽噪聲,同時(shí)還能較好地保留圖像的邊緣信息,在圖像預(yù)處理中應(yīng)用廣泛。雖然中值濾波算法處理的數(shù)據(jù)量大,但其運(yùn)算簡(jiǎn)單,重復(fù)性強(qiáng),存在較大的并行性,可由硬件映射到FPGA架構(gòu)中[2-3]。另外,由于中值濾波算法處理后的圖像存在邊緣模糊的問題,因此,本文對(duì)快速中值濾波算法提出了一些改進(jìn),通過加入閾值比較的環(huán)節(jié),更好地保留了圖像的細(xì)節(jié)信息。最后,基于FPGA硬件平臺(tái)實(shí)現(xiàn)了改進(jìn)的快速中值濾波算法,大大提高了圖像的處理速度。
   
    針對(duì)傳統(tǒng)中值濾波算法的一些快速中值濾波算法已經(jīng)被提出[7-10]。參考文獻(xiàn)[7]提出了一種將3×3窗口的像素值先按列降序排序,然后再按行降序排序,最后取對(duì)角線上的元素作為模板中值輸出的快速中值濾波算法,相對(duì)于需要進(jìn)行36次比較運(yùn)算的傳統(tǒng)的中值濾波算法,這種快速中值濾波算法的比較次數(shù)明顯減少,僅為21次。參考文獻(xiàn)[8]提出了采用3×3像素的十字型中值濾波結(jié)構(gòu)模板,對(duì)快速中值濾波算法進(jìn)行改進(jìn),只需對(duì)5個(gè)像素?cái)?shù)據(jù)進(jìn)行排序,從而減少了數(shù)據(jù)比較的次數(shù),該算法的比較次數(shù)為24次。參考文獻(xiàn)[9]提出了一種先取模板各個(gè)水平行的中值,再求出這些水平行中值的中值,以此作為濾波結(jié)果的快速中值濾波算法,該算法在最壞情況下的比較次數(shù)為12次。
    同時(shí),為了更好地保留圖像的細(xì)節(jié)信息,參考文獻(xiàn)[10]提出了在傳統(tǒng)的中值濾波算法中加入閾值判定的方法,即設(shè)定一個(gè)閾值TH后,按傳統(tǒng)的算法算出初始的中值,將當(dāng)前中值與模板的中心值的差的絕對(duì)值與閾值進(jìn)行比較,若判定結(jié)果大于閾值,則判定中心點(diǎn)為噪聲點(diǎn),用求的中值代替中心值,否則保留原有的中心值。
2 改進(jìn)的快速中值濾波算法及分析
    為了減少圖像濾波后的誤差,提高圖像處理的速度,本文提出了一種改進(jìn)的快速中值濾波算法。采用3×3模板,以快速中值濾波算法為基礎(chǔ)來尋找中值,通過閾值約束條件,判斷中值是否為有效數(shù)據(jù)。算法的具體實(shí)現(xiàn)步驟如下:
    (1)獲取大小為m×n的原圖像,對(duì)圖像加入5%的椒鹽噪聲;
    (2)圖像擴(kuò)展,使其大小為(m+2)(n+2);
    (3)將模板在圖像上按行列滑動(dòng),如果未到達(dá)循環(huán)結(jié)束條件,則轉(zhuǎn)到步驟(4);
    (4)對(duì)模板中水平行的數(shù)據(jù)進(jìn)行排序,取每一行第2個(gè)位置上的值,然后再對(duì)3行的中值進(jìn)行排序,取其中值;
    (5)判斷該中值是否為所需的有效數(shù)據(jù),將所求的中值和中心點(diǎn)值做差,將差值與事先設(shè)定的閾值TH按式(2)進(jìn)行比較;
   
 分別采用基于上述參考文獻(xiàn)的算法以及本文的算法對(duì)圖像進(jìn)行處理。各個(gè)算法MMSE的比較結(jié)果如圖1所示。

    由圖1可以看出本文提出的改進(jìn)算法比其他算法的MMSE值都小,能獲得較好的處理效果。圖2給出了本文改進(jìn)算法對(duì)加入5%椒鹽噪聲的圖像的處理效果。
    結(jié)合圖1和圖2可知,增加閾值判定的算法在細(xì)節(jié)保護(hù)和去噪之間能達(dá)到一個(gè)較好的平衡點(diǎn),本文的改進(jìn)算法處理效果明顯較好。

3 算法的硬件實(shí)現(xiàn)
3.1 總體設(shè)計(jì)方案

    FPGA硬件化設(shè)計(jì)遵循并行流水機(jī)制,分別采用各自獨(dú)立的處理通道,對(duì)同一段時(shí)間內(nèi)需要處理的所有任務(wù)同時(shí)進(jìn)行處理,處理時(shí)間從多個(gè)任務(wù)所需時(shí)間之和降至最慢任務(wù)所需的時(shí)間。為了便于在FPGA上實(shí)現(xiàn)改進(jìn)的中值濾波算法,本文以3×3像素模板處理512×512像素的灰度圖像為例,進(jìn)行了硬件化的設(shè)計(jì),總體設(shè)計(jì)方案主要包括比較排序模塊的設(shè)計(jì)和控制電路的設(shè)計(jì),如圖3所示。

3.2  三點(diǎn)排序模塊的設(shè)計(jì)
    每個(gè)三點(diǎn)排序模塊都用了3個(gè)比較器對(duì)3行數(shù)據(jù)進(jìn)行并行比較排序。在一個(gè)時(shí)鐘周期下,每次比較3個(gè)輸入信號(hào),輸出信號(hào)為每行的中值。當(dāng)時(shí)鐘觸發(fā)下一級(jí)的比較器后,各行輸出的中值信號(hào)作為下一個(gè)排序的輸入信號(hào),最后再加入一個(gè)比較器對(duì)所得中值進(jìn)行判斷。這樣,總處理時(shí)間只是其中關(guān)鍵模塊的處理時(shí)間,處理速度是順序執(zhí)行的兩倍。
3.3 控制電路的設(shè)計(jì)
    控制電路控制著整個(gè)系統(tǒng)的運(yùn)行,是硬件設(shè)計(jì)的難點(diǎn)和重點(diǎn)。本設(shè)計(jì)的控制電路分為兩部分:
    (1)控制不連續(xù)信號(hào)的輸入和數(shù)據(jù)緩存
    由于圖像信號(hào)是按串行的方式輸入到系統(tǒng)中,因此需要通過控制信號(hào)使系統(tǒng)保持在并行流水的工作模式中??紤]實(shí)際工作中,圖像信號(hào)的輸入可能是不連續(xù)的,故采用FIFO緩存模塊來保存數(shù)據(jù)。當(dāng)FIFO模塊不為空時(shí),系統(tǒng)將產(chǎn)生局部時(shí)鐘使能信號(hào)來保證系統(tǒng)計(jì)算的正確性。
    (2)控制圖像邊界點(diǎn)的輸出和對(duì)有效信號(hào)的選取
    中值濾波算法在處理圖像時(shí),只處理圖像內(nèi)部的像素,而邊界上的像素保持不變,因此需要在FPGA系統(tǒng)中加上對(duì)邊界點(diǎn)的處理并選取有效信號(hào)的輸出,此處理由控制模塊完成。對(duì)于選定的512×512像素的圖像,其4條邊界上有2044個(gè)邊界點(diǎn),系統(tǒng)需要對(duì)這些邊界點(diǎn)進(jìn)行判定,并完成有效數(shù)據(jù)的正確輸出。
4 測(cè)試結(jié)果及分析
    實(shí)驗(yàn)采用了Altera的具有高密度低成本Cyclone系列的EP2C70F896C6N芯片,利用DSP-builder11.1實(shí)現(xiàn)算法設(shè)計(jì),并通過Quartusii11.1對(duì)設(shè)計(jì)進(jìn)行調(diào)試和仿真,同時(shí)利用modelsim10.0c完成時(shí)序仿真。modelsim10.0c的仿真結(jié)果如圖4所示。
    由圖4可知,實(shí)驗(yàn)數(shù)據(jù)與預(yù)計(jì)結(jié)果一致。因此,設(shè)計(jì)電路具有良好的穩(wěn)定性。本文給出了硬件實(shí)現(xiàn)不同算法的效果對(duì)比情況,如表1所示。

 

 

    由表1可知,對(duì)于一幅512×512像素的圖像,本文改進(jìn)的基于FPGA的快速中值濾波算法在硬件上能達(dá)到的最高工作頻率為231.21 MHz,處理時(shí)間約為1.13 ms,比軟件實(shí)現(xiàn)該算法的速度快11倍;與傳統(tǒng)的中值濾波算法和參考文獻(xiàn)[7]算法的硬件結(jié)構(gòu)相比,本文改進(jìn)算法耗費(fèi)的邏輯單元和寄存器較少,占用硬件資源更少,從而達(dá)到較高的工作頻率,以滿足圖像實(shí)時(shí)處理的要求。
    本文通過對(duì)快速中值濾波算法的改進(jìn),能夠減少算法排序量,更好地保護(hù)圖像的細(xì)節(jié)信息。改進(jìn)的算法具有較高的內(nèi)在并行性,易于在FPGA上實(shí)現(xiàn)。硬件實(shí)現(xiàn)的算法對(duì)圖像的處理能達(dá)到較高的工作頻率,且占用資源較少,適合圖像的實(shí)時(shí)處理。
參考文獻(xiàn)
[1] BOAS M L. Mathematical methods in the physical sciences(3rd ed)[M]. John Wiley & Sons, 2006.
[2] 黃艷軍.基于FPGA的數(shù)字圖像預(yù)處理算法研究[D].南京:南京理工大學(xué),2009.
[3] VINCENT O R, FOLORUNSO O. A descriptive algorithm for sobel image edge detection[C]. Proceedings of Informing Science & IT Education Conference(InSITE),2009.
[4] ZEMCIK P, Hardware acceleration of graphics and imaging algorithms using FPGAs[D]. Brno University of Technology:SCCG,2002.
[5] BATES G L, NOOSHABADI S. FPGA implementation of a median filter[C]. Speech and Image Technologies for Computing and Telecommunications,Proceedings of IEEE,1997.
[6] 萬海軍.實(shí)時(shí)圖像處理算法研究及FPGA實(shí)現(xiàn)[D]. 陜西:西北農(nóng)林科技大學(xué),2008.
[7] 付昱強(qiáng).基于FPGA的圖像處理的算法的研究與硬件設(shè)計(jì)[D].南昌:南昌大學(xué),2006.
[8] 朱捷,朱小娟,賀明.基于FPGA的實(shí)時(shí)圖像中值濾波設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2007,15(6):798-800.
[9] 王萍,白光遠(yuǎn),唐曉燕.基于FPGA的圖像中值濾波算法的優(yōu)化及實(shí)現(xiàn)[J].電子與電腦,2009(10):94-96.
[10] 李飛飛,劉偉寧,王艷華.改進(jìn)的中值濾波算法及其 FPGA快速實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009,35(14):175-177.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。