文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)02-0137-04
圖像是人類獲取外界信息的重要途徑,圖像的清晰度直接影響到人們對(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.