基于FPGA的實(shí)時(shí)中值濾波器硬件實(shí)現(xiàn)
高清視頻監(jiān)控逐漸成為市場的熱點(diǎn),視頻監(jiān)控不僅要求把現(xiàn)場圖像捕獲并保存,而且還要盡可能清晰。在高清圖像的生成和采集過程中,往往會(huì)受到各種噪聲的干擾,使高清圖像的質(zhì)量變差,因此必須對圖像進(jìn)行濾波、平滑等預(yù)處理來消除噪聲。中值濾波作為一種非線性濾波方法,既可以消除隨機(jī)噪聲和脈沖干擾,又可以很大程度地保留圖像的邊緣信息,得到了廣泛的運(yùn)用。在許多實(shí)際應(yīng)用場合,如高清視頻監(jiān)控、X光圖像的降噪等,需要快速且實(shí)時(shí)地進(jìn)行中值濾波,軟件實(shí)現(xiàn)達(dá)不到實(shí)時(shí)處理的要求,因此選用硬件實(shí)現(xiàn)。
在硬件實(shí)現(xiàn)上,文獻(xiàn)[1]、[2]等采用行延遲的方法形成鄰域數(shù)據(jù),以實(shí)現(xiàn)3×3的中值濾波。文獻(xiàn)[7]為了提高紅外成像跟蹤器設(shè)計(jì)了大窗口的中值濾波器。文獻(xiàn)[3]、[4]提出了鄰域圖像幀存的存儲(chǔ)結(jié)構(gòu),該結(jié)構(gòu)充分利用了圖像幀存的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換特性,并行高速提供鄰域圖像數(shù)據(jù),配以FPGA作為并行處理器,高速實(shí)時(shí)地實(shí)現(xiàn)了中值濾波。但是以上研究都是基于標(biāo)清圖像的中值濾波器,處理的圖像大小一般為256×256、512×512的灰度圖等,很少有實(shí)現(xiàn)高清圖像的中值濾波器。本文在文獻(xiàn)[3]、[4]的理論基礎(chǔ)上,在蘇光大主持研制成功的NIPC-3鄰域圖像并行處理機(jī)上實(shí)時(shí)實(shí)現(xiàn)了1 920×1 080×8 bit的高清圖像的中值濾波器。該系統(tǒng)的硬件是基于一個(gè)標(biāo)準(zhǔn)的PCI板卡,Altera公司的CycloneII FPGA是圖像處理系統(tǒng)的核心,此外,該板卡還包括了若干片SRAM、視頻采集轉(zhuǎn)換芯片、CPLD和PCI接口芯片。NIPC-3硬件處理的結(jié)果由PCI傳到計(jì)算機(jī)做后續(xù)處理,是軟硬件結(jié)合的系統(tǒng)。
1 快速二維中值濾波器算法
本文中值濾波器排序算法用文獻(xiàn)[2]提出的快速排序算法。如圖1,將3×3窗口內(nèi)的各個(gè)像素分別定義為M11、M12、M13、M21、M22、M23、M31、M32、M33。首先分別對窗口中的每一行計(jì)算最大值、中值,最小值不難判斷。9個(gè)數(shù)值中,3個(gè)最大值中的最大值和3個(gè)最小值中的最小值一定是9個(gè)像素中的最大值和最小值;3個(gè)中值中的最大值至少大于5個(gè)像素:即本行中的最小值和其他2行的中值及最小值;而3個(gè)中值中的最小值至少小于5個(gè)像素:即本行中的最大值和其他兩行中的中值及最小值。最后,比較3個(gè)最大值中的最小值Min_of_Max,3個(gè)中值中的中值Med_of_Med,3個(gè)最小值中的最大值Max_of_Min,得到中間值即為濾波的最后結(jié)果Med_of_Nine。
利用這種排序法的中值濾波運(yùn)算僅需17次比較,且該算法十分適用于在FPGA上做并行處理,大大提高了濾波的速度。
2 FPGA硬件實(shí)現(xiàn)
鄰域圖像并行處理機(jī)是一種以鄰域圖像幀存提供鄰域圖像數(shù)據(jù)、以鄰域圖像處理器并行鄰域圖像處理的圖像并行處理機(jī),其本質(zhì)是鄰域數(shù)據(jù)(即多數(shù)據(jù))的并行處理[4]。中值濾波系統(tǒng)框圖如圖2所示,主機(jī)通過PCI接口將待處理數(shù)據(jù)寫入共享RAM,數(shù)據(jù)再由共享RAM轉(zhuǎn)入鄰域存儲(chǔ)體,利用行順序鄰域生成方法[3],將數(shù)據(jù)由串行轉(zhuǎn)化為并行,實(shí)現(xiàn)處理并行,達(dá)到數(shù)據(jù)的高速處理。鄰域存儲(chǔ)體是由4片SRAM組成,型號(hào)是IS61SP6464,位寬為64 bit,一次可以存取8個(gè)字節(jié),4片SRAM并行排列,一個(gè)時(shí)鐘周期最多可以吞吐32個(gè)字節(jié)。見圖3,考慮一個(gè)N1×1的隨機(jī)鄰域,N2個(gè)時(shí)鐘周期就可以得到N1×N2大小的鄰域。然后再將中值濾波模塊結(jié)果通過FIFO緩存寫入共享RAM,傳到PC機(jī)顯示。
濾波器相關(guān)文章:濾波器原理
fpga相關(guān)文章:fpga是什么
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
評論