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