《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 快速中值濾波算法的改進及其FPGA實現(xiàn)
快速中值濾波算法的改進及其FPGA實現(xiàn)
來源:電子技術(shù)應用2013年第2期
李國燕1, 侯向丹2, 顧軍華2, 陸益財2, 范培培2
1. 河北工業(yè)大學 電氣工程學院,天津300401; 2. 河北工業(yè)大學 計算機科學與軟件學院,天津300401
摘要: 針對傳統(tǒng)中值濾波算法排序量大、速度慢且處理效果模糊的問題,在快速中值濾波算法的基礎上,提出了一種加入閾值比較、且具有更高并行流水結(jié)構(gòu)的改進算法,并在現(xiàn)場可編程門陣列(FPGA)硬件平臺上實現(xiàn)了該算法。實驗結(jié)果表明,改進的快速中值濾波算法不僅減少了比較的次數(shù),還更好地保護了圖像的細節(jié),可滿足圖像預處理對實時性的要求。
中圖分類號: TP301
文獻標識碼: A
文章編號: 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

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

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

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

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

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

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

 

 

    由表1可知,對于一幅512×512像素的圖像,本文改進的基于FPGA的快速中值濾波算法在硬件上能達到的最高工作頻率為231.21 MHz,處理時間約為1.13 ms,比軟件實現(xiàn)該算法的速度快11倍;與傳統(tǒng)的中值濾波算法和參考文獻[7]算法的硬件結(jié)構(gòu)相比,本文改進算法耗費的邏輯單元和寄存器較少,占用硬件資源更少,從而達到較高的工作頻率,以滿足圖像實時處理的要求。
    本文通過對快速中值濾波算法的改進,能夠減少算法排序量,更好地保護圖像的細節(jié)信息。改進的算法具有較高的內(nèi)在并行性,易于在FPGA上實現(xiàn)。硬件實現(xiàn)的算法對圖像的處理能達到較高的工作頻率,且占用資源較少,適合圖像的實時處理。
參考文獻
[1] BOAS M L. Mathematical methods in the physical sciences(3rd ed)[M]. John Wiley & Sons, 2006.
[2] 黃艷軍.基于FPGA的數(shù)字圖像預處理算法研究[D].南京:南京理工大學,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] 萬海軍.實時圖像處理算法研究及FPGA實現(xiàn)[D]. 陜西:西北農(nóng)林科技大學,2008.
[7] 付昱強.基于FPGA的圖像處理的算法的研究與硬件設計[D].南昌:南昌大學,2006.
[8] 朱捷,朱小娟,賀明.基于FPGA的實時圖像中值濾波設計[J].計算機測量與控制,2007,15(6):798-800.
[9] 王萍,白光遠,唐曉燕.基于FPGA的圖像中值濾波算法的優(yōu)化及實現(xiàn)[J].電子與電腦,2009(10):94-96.
[10] 李飛飛,劉偉寧,王艷華.改進的中值濾波算法及其 FPGA快速實現(xiàn)[J].計算機工程,2009,35(14):175-177.

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