文獻標識碼: A
文章編號: 0258-7998(2013)02-0137-04
圖像是人類獲取外界信息的重要途徑,圖像的清晰度直接影響到人們對其的觀察以及進一步的分析研究。圖像的采集、傳輸、存儲等環(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.