文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)02-0137-04
圖像是人類獲取外界信息的重要途徑,,圖像的清晰度直接影響到人們對其的觀察以及進(jìn)一步的分析研究,。圖像的采集、傳輸,、存儲等環(huán)節(jié)通常會導(dǎo)致圖像質(zhì)量的降低,。因此,為了改善圖像的質(zhì)量,,必須對圖像進(jìn)行濾波,、平滑等預(yù)處理操作。但是,,由于實(shí)際處理的數(shù)據(jù)量巨大,,預(yù)處理的過程往往達(dá)不到系統(tǒng)對實(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)算簡單,,重復(fù)性強(qiáng),,存在較大的并行性,可由硬件映射到FPGA架構(gòu)中[2-3],。另外,,由于中值濾波算法處理后的圖像存在邊緣模糊的問題,因此,,本文對快速中值濾波算法提出了一些改進(jìn),,通過加入閾值比較的環(huán)節(jié),更好地保留了圖像的細(xì)節(jié)信息。最后,,基于FPGA硬件平臺實(shí)現(xiàn)了改進(jìn)的快速中值濾波算法,,大大提高了圖像的處理速度。
針對傳統(tǒng)中值濾波算法的一些快速中值濾波算法已經(jīng)被提出[7-10],。參考文獻(xiàn)[7]提出了一種將3×3窗口的像素值先按列降序排序,,然后再按行降序排序,最后取對角線上的元素作為模板中值輸出的快速中值濾波算法,相對于需要進(jìn)行36次比較運(yùn)算的傳統(tǒng)的中值濾波算法,,這種快速中值濾波算法的比較次數(shù)明顯減少,,僅為21次。參考文獻(xiàn)[8]提出了采用3×3像素的十字型中值濾波結(jié)構(gòu)模板,,對快速中值濾波算法進(jìn)行改進(jìn),,只需對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)前中值與模板的中心值的差的絕對值與閾值進(jìn)行比較,若判定結(jié)果大于閾值,,則判定中心點(diǎn)為噪聲點(diǎn),,用求的中值代替中心值,否則保留原有的中心值。
2 改進(jìn)的快速中值濾波算法及分析
為了減少圖像濾波后的誤差,,提高圖像處理的速度,,本文提出了一種改進(jìn)的快速中值濾波算法。采用3×3模板,,以快速中值濾波算法為基礎(chǔ)來尋找中值,,通過閾值約束條件,判斷中值是否為有效數(shù)據(jù),。算法的具體實(shí)現(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個(gè)位置上的值,然后再對3行的中值進(jìn)行排序,,取其中值,;
(5)判斷該中值是否為所需的有效數(shù)據(jù),將所求的中值和中心點(diǎn)值做差,,將差值與事先設(shè)定的閾值TH按式(2)進(jìn)行比較,;
分別采用基于上述參考文獻(xiàn)的算法以及本文的算法對圖像進(jìn)行處理。各個(gè)算法MMSE的比較結(jié)果如圖1所示,。
由圖1可以看出本文提出的改進(jìn)算法比其他算法的MMSE值都小,,能獲得較好的處理效果。圖2給出了本文改進(jìn)算法對加入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ú)立的處理通道,對同一段時(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è)比較器對3行數(shù)據(jù)進(jìn)行并行比較排序。在一個(gè)時(shí)鐘周期下,,每次比較3個(gè)輸入信號,輸出信號為每行的中值。當(dāng)時(shí)鐘觸發(fā)下一級的比較器后,,各行輸出的中值信號作為下一個(gè)排序的輸入信號,,最后再加入一個(gè)比較器對所得中值進(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ù)信號的輸入和數(shù)據(jù)緩存
由于圖像信號是按串行的方式輸入到系統(tǒng)中,因此需要通過控制信號使系統(tǒng)保持在并行流水的工作模式中,??紤]實(shí)際工作中,圖像信號的輸入可能是不連續(xù)的,,故采用FIFO緩存模塊來保存數(shù)據(jù),。當(dāng)FIFO模塊不為空時(shí),系統(tǒng)將產(chǎn)生局部時(shí)鐘使能信號來保證系統(tǒng)計(jì)算的正確性,。
(2)控制圖像邊界點(diǎn)的輸出和對有效信號的選取
中值濾波算法在處理圖像時(shí),,只處理圖像內(nèi)部的像素,而邊界上的像素保持不變,,因此需要在FPGA系統(tǒng)中加上對邊界點(diǎn)的處理并選取有效信號的輸出,,此處理由控制模塊完成。對于選定的512×512像素的圖像,,其4條邊界上有2044個(gè)邊界點(diǎn),,系統(tǒng)需要對這些邊界點(diǎn)進(jìn)行判定,并完成有效數(shù)據(jù)的正確輸出,。
4 測試結(jié)果及分析
實(shí)驗(yàn)采用了Altera的具有高密度低成本Cyclone系列的EP2C70F896C6N芯片,,利用DSP-builder11.1實(shí)現(xiàn)算法設(shè)計(jì),并通過Quartusii11.1對設(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)不同算法的效果對比情況,,如表1所示。
由表1可知,對于一幅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í)處理的要求,。
本文通過對快速中值濾波算法的改進(jìn),,能夠減少算法排序量,更好地保護(hù)圖像的細(xì)節(jié)信息,。改進(jìn)的算法具有較高的內(nèi)在并行性,,易于在FPGA上實(shí)現(xiàn)。硬件實(shí)現(xiàn)的算法對圖像的處理能達(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ī)測量與控制,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.