基于FPGA的實時中值濾波器硬件實現(xiàn)
2.1 分塊存儲方法和并行運算結(jié)構(gòu)
如圖4,以256×256大小的圖像為例,將其劃分為8個256行32列的圖像塊,中值濾波運算就是按照塊的順序,對每塊圖像從上到下進行[5]。每一次存儲體訪問讀出一行鄰域后,通過流水線隊列即可形成n×32的鄰域,對于中值濾波算法n為3。為了最大化地提高圖像處理速度,采取了32個3×3鄰域的并行計算。但是構(gòu)造32個3×3鄰域,需要額外增加2列數(shù)據(jù),組成3行34列的運算矩陣。這額外的2列數(shù)據(jù)正是前一圖像塊的最右端的2列,為了后續(xù)運算的需要,已經(jīng)保存在RAMa或RAMb中了。RAMa、RAMb的作用是實現(xiàn)乒乓RAM操作,例如向RAMa中寫當(dāng)前圖像塊的最右端2列時,處理單元同時從RAMb中取出前一個圖像塊的最右端2列數(shù)據(jù)參與運算。運算單元架構(gòu)如圖5,這樣每一次并行計算就得到了32個8 bit的結(jié)果,對應(yīng)32個結(jié)果像素,即圖5中的result為256 bit。
2.2 FIFO緩存
共享RAM芯片采用了Cypress公司的CY7C1380,這是一款32 bit位寬、2 MB容量的同步SRAM。因為系統(tǒng)采用流水線結(jié)構(gòu),一個clk即可產(chǎn)生256 bit的結(jié)果,需要寫入到32 bit的SRAM,如果不加入緩沖器,必定會有結(jié)果數(shù)據(jù)的丟失,為此,加入一個FIFO,將256 bit結(jié)果分8次寫入共享RAM,每次寫32 bit,這樣,F(xiàn)IFO完成了寫快讀慢的緩沖過程。FIFO的深度取決于需要緩沖的數(shù)據(jù)量,緩沖的數(shù)據(jù)量取決于寫速率和讀速率,見式(1)。
3 FPGA實驗結(jié)果
圖6(a)是從高清攝像機隨機采得的帶噪圖像,從圖6(b)可看出本文設(shè)計的針對大圖像(1 920×1 080)的中值濾波器有較好的去噪效果。
整個電路結(jié)構(gòu)采用Verilog編寫,該中值濾波器能達到的最大工作頻率為60 MHz,該中值濾波器對如圖6所示的1 920×1 080灰度圖執(zhí)行中值濾波的時間約為10 ms,這個速度要比實時快4倍。為了突出本文設(shè)計的中值濾波器的性能,本文采用512×512的灰度圖做實驗。將本文設(shè)計的中值濾波器與文獻[1]、[3]設(shè)計的中值濾波器的性能比較,可以看出,本文設(shè)計的中值濾波器的處理速度約為文獻[1]方法的8倍,約為文獻[3]方法的20倍,如表1所示。
本文針對NIPC-3的特點,用適合并行處理的存儲方法,成功實現(xiàn)了1 920×1 080大小圖像的實時中值濾波系統(tǒng)。該系統(tǒng)有較好的去噪效果,同時在速度上完全滿足實時需要,是一個高速且完整的系統(tǒng)。該系統(tǒng)可以用于高清視頻圖像的預(yù)處理,有很大的實用價值。
參考文獻
[1] 石婷,張紅雨,黃自立.基于Stratix II EP2S60的改進中值濾波器的設(shè)計實現(xiàn)[J].國外電子元器件,2007(1):12-15.
[2] 徐大鵬,李從善.基于FPGA的數(shù)字圖像中值濾波器設(shè)計[J].電子器件,2006,29(4):1114-1117.
[3] 蘇光大.實時中值濾波器的實現(xiàn)[J].電視技術(shù),1999(5):25-27.
[4] 蘇光大.鄰域圖像處理機中的新型鄰域功能流水線結(jié)構(gòu)[J].電子學(xué)報,2000,27(2):1-4.
[5] 劉炯鑫.NIPC-3鄰域圖像并行處理機的軟件設(shè)計[D].清華大學(xué)電子工程系,2007.
濾波器相關(guān)文章:濾波器原理
fpga相關(guān)文章:fpga是什么
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
評論