文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)02-0137-04
圖像是人類獲取外界信息的重要途徑,,圖像的清晰度直接影響到人們對其的觀察以及進(jìn)一步的分析研究,。圖像的采集,、傳輸,、存儲等環(huán)節(jié)通常會導(dǎo)致圖像質(zhì)量的降低,。因此,為了改善圖像的質(zhì)量,,必須對圖像進(jìn)行濾波,、平滑等預(yù)處理操作。但是,,由于實際處理的數(shù)據(jù)量巨大,,預(yù)處理的過程往往達(dá)不到系統(tǒng)對實時性的要求。近年來,,微電子技術(shù)和超大規(guī)模的集成電路制造技術(shù)的發(fā)展,,特別是FPGA的發(fā)展,為提高圖像處理系統(tǒng)各種性能提供了新的思路和方法,。FPGA在設(shè)計上實現(xiàn)了硬件并行和流水線(Pipeline)技術(shù),,適于模塊化設(shè)計;同時其開發(fā)周期短,,系統(tǒng)易于維護(hù)和擴(kuò)展,,能夠大大提高圖像數(shù)據(jù)的處理速度,滿足系統(tǒng)的實時性要求[1],。
中值濾波作為一種空域濾波技術(shù),,能有效地去除脈沖噪聲和椒鹽噪聲,同時還能較好地保留圖像的邊緣信息,,在圖像預(yù)處理中應(yīng)用廣泛,。雖然中值濾波算法處理的數(shù)據(jù)量大,但其運算簡單,,重復(fù)性強(qiáng),,存在較大的并行性,可由硬件映射到FPGA架構(gòu)中[2-3],。另外,,由于中值濾波算法處理后的圖像存在邊緣模糊的問題,因此,,本文對快速中值濾波算法提出了一些改進(jìn),,通過加入閾值比較的環(huán)節(jié),更好地保留了圖像的細(xì)節(jié)信息。最后,,基于FPGA硬件平臺實現(xiàn)了改進(jìn)的快速中值濾波算法,,大大提高了圖像的處理速度。
針對傳統(tǒng)中值濾波算法的一些快速中值濾波算法已經(jīng)被提出[7-10],。參考文獻(xiàn)[7]提出了一種將3×3窗口的像素值先按列降序排序,,然后再按行降序排序,,最后取對角線上的元素作為模板中值輸出的快速中值濾波算法,相對于需要進(jìn)行36次比較運算的傳統(tǒng)的中值濾波算法,這種快速中值濾波算法的比較次數(shù)明顯減少,,僅為21次,。參考文獻(xiàn)[8]提出了采用3×3像素的十字型中值濾波結(jié)構(gòu)模板,對快速中值濾波算法進(jìn)行改進(jìn),,只需對5個像素數(shù)據(jù)進(jìn)行排序,,從而減少了數(shù)據(jù)比較的次數(shù),該算法的比較次數(shù)為24次,。參考文獻(xiàn)[9]提出了一種先取模板各個水平行的中值,,再求出這些水平行中值的中值,以此作為濾波結(jié)果的快速中值濾波算法,,該算法在最壞情況下的比較次數(shù)為12次,。
同時,為了更好地保留圖像的細(xì)節(jié)信息,,參考文獻(xiàn)[10]提出了在傳統(tǒng)的中值濾波算法中加入閾值判定的方法,,即設(shè)定一個閾值TH后,按傳統(tǒng)的算法算出初始的中值,,將當(dāng)前中值與模板的中心值的差的絕對值與閾值進(jìn)行比較,,若判定結(jié)果大于閾值,則判定中心點為噪聲點,,用求的中值代替中心值,,否則保留原有的中心值。
2 改進(jìn)的快速中值濾波算法及分析
為了減少圖像濾波后的誤差,,提高圖像處理的速度,,本文提出了一種改進(jìn)的快速中值濾波算法。采用3×3模板,,以快速中值濾波算法為基礎(chǔ)來尋找中值,,通過閾值約束條件,判斷中值是否為有效數(shù)據(jù),。算法的具體實現(xiàn)步驟如下:
(1)獲取大小為m×n的原圖像,,對圖像加入5%的椒鹽噪聲;
(2)圖像擴(kuò)展,使其大小為(m+2)(n+2),;
(3)將模板在圖像上按行列滑動,,如果未到達(dá)循環(huán)結(jié)束條件,則轉(zhuǎn)到步驟(4),;
(4)對模板中水平行的數(shù)據(jù)進(jìn)行排序,,取每一行第2個位置上的值,然后再對3行的中值進(jìn)行排序,,取其中值,;
(5)判斷該中值是否為所需的有效數(shù)據(jù),,將所求的中值和中心點值做差,將差值與事先設(shè)定的閾值TH按式(2)進(jìn)行比較,;
分別采用基于上述參考文獻(xiàn)的算法以及本文的算法對圖像進(jìn)行處理,。各個算法MMSE的比較結(jié)果如圖1所示。
由圖1可以看出本文提出的改進(jìn)算法比其他算法的MMSE值都小,,能獲得較好的處理效果,。圖2給出了本文改進(jìn)算法對加入5%椒鹽噪聲的圖像的處理效果,。
結(jié)合圖1和圖2可知,,增加閾值判定的算法在細(xì)節(jié)保護(hù)和去噪之間能達(dá)到一個較好的平衡點,本文的改進(jìn)算法處理效果明顯較好,。
3 算法的硬件實現(xiàn)
3.1 總體設(shè)計方案
FPGA硬件化設(shè)計遵循并行流水機(jī)制,,分別采用各自獨立的處理通道,對同一段時間內(nèi)需要處理的所有任務(wù)同時進(jìn)行處理,處理時間從多個任務(wù)所需時間之和降至最慢任務(wù)所需的時間,。為了便于在FPGA上實現(xiàn)改進(jìn)的中值濾波算法,,本文以3×3像素模板處理512×512像素的灰度圖像為例,進(jìn)行了硬件化的設(shè)計,,總體設(shè)計方案主要包括比較排序模塊的設(shè)計和控制電路的設(shè)計,如圖3所示,。
3.2 三點排序模塊的設(shè)計
每個三點排序模塊都用了3個比較器對3行數(shù)據(jù)進(jìn)行并行比較排序。在一個時鐘周期下,,每次比較3個輸入信號,,輸出信號為每行的中值。當(dāng)時鐘觸發(fā)下一級的比較器后,,各行輸出的中值信號作為下一個排序的輸入信號,,最后再加入一個比較器對所得中值進(jìn)行判斷。這樣,,總處理時間只是其中關(guān)鍵模塊的處理時間,,處理速度是順序執(zhí)行的兩倍。
3.3 控制電路的設(shè)計
控制電路控制著整個系統(tǒng)的運行,,是硬件設(shè)計的難點和重點,。本設(shè)計的控制電路分為兩部分:
(1)控制不連續(xù)信號的輸入和數(shù)據(jù)緩存
由于圖像信號是按串行的方式輸入到系統(tǒng)中,因此需要通過控制信號使系統(tǒng)保持在并行流水的工作模式中,??紤]實際工作中,圖像信號的輸入可能是不連續(xù)的,,故采用FIFO緩存模塊來保存數(shù)據(jù),。當(dāng)FIFO模塊不為空時,系統(tǒng)將產(chǎn)生局部時鐘使能信號來保證系統(tǒng)計算的正確性,。
(2)控制圖像邊界點的輸出和對有效信號的選取
中值濾波算法在處理圖像時,,只處理圖像內(nèi)部的像素,,而邊界上的像素保持不變,因此需要在FPGA系統(tǒng)中加上對邊界點的處理并選取有效信號的輸出,,此處理由控制模塊完成,。對于選定的512×512像素的圖像,其4條邊界上有2044個邊界點,,系統(tǒng)需要對這些邊界點進(jìn)行判定,,并完成有效數(shù)據(jù)的正確輸出。
4 測試結(jié)果及分析
實驗采用了Altera的具有高密度低成本Cyclone系列的EP2C70F896C6N芯片,,利用DSP-builder11.1實現(xiàn)算法設(shè)計,,并通過Quartusii11.1對設(shè)計進(jìn)行調(diào)試和仿真,同時利用modelsim10.0c完成時序仿真,。modelsim10.0c的仿真結(jié)果如圖4所示,。
由圖4可知,實驗數(shù)據(jù)與預(yù)計結(jié)果一致,。因此,,設(shè)計電路具有良好的穩(wěn)定性。本文給出了硬件實現(xiàn)不同算法的效果對比情況,,如表1所示,。
由表1可知,對于一幅512×512像素的圖像,本文改進(jìn)的基于FPGA的快速中值濾波算法在硬件上能達(dá)到的最高工作頻率為231.21 MHz,,處理時間約為1.13 ms,,比軟件實現(xiàn)該算法的速度快11倍;與傳統(tǒng)的中值濾波算法和參考文獻(xiàn)[7]算法的硬件結(jié)構(gòu)相比,,本文改進(jìn)算法耗費的邏輯單元和寄存器較少,,占用硬件資源更少,從而達(dá)到較高的工作頻率,以滿足圖像實時處理的要求,。
本文通過對快速中值濾波算法的改進(jìn),,能夠減少算法排序量,更好地保護(hù)圖像的細(xì)節(jié)信息,。改進(jìn)的算法具有較高的內(nèi)在并行性,,易于在FPGA上實現(xiàn)。硬件實現(xiàn)的算法對圖像的處理能達(dá)到較高的工作頻率,,且占用資源較少,,適合圖像的實時處理。
參考文獻(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] 萬海軍.實時圖像處理算法研究及FPGA實現(xiàn)[D]. 陜西:西北農(nóng)林科技大學(xué),2008.
[7] 付昱強(qiáng).基于FPGA的圖像處理的算法的研究與硬件設(shè)計[D].南昌:南昌大學(xué),2006.
[8] 朱捷,朱小娟,賀明.基于FPGA的實時圖像中值濾波設(shè)計[J].計算機(jī)測量與控制,2007,15(6):798-800.
[9] 王萍,白光遠(yuǎn),唐曉燕.基于FPGA的圖像中值濾波算法的優(yōu)化及實現(xiàn)[J].電子與電腦,2009(10):94-96.
[10] 李飛飛,劉偉寧,王艷華.改進(jìn)的中值濾波算法及其 FPGA快速實現(xiàn)[J].計算機(jī)工程,2009,35(14):175-177.