王 博,安軍社
(1.中國科學院大學 北京 100190;2.中國科學院 國家空間科學中心,北京100190)
基于FPGA的中值濾波系統(tǒng)設計及仿真測試
王 博1,2,安軍社2
(1.中國科學院大學 北京 100190;2.中國科學院 國家空間科學中心,北京100190)
針對傳統(tǒng)中值濾波算法獲取濾波窗口中值時排序比較次數(shù)多,時間代價大的問題,在FPGA平臺上實現(xiàn)了一種基于歸并插入排序算法的中值濾波系統(tǒng),有效地減少了獲取中值的比較次數(shù),提高了圖像處理速度。測試結果表明:獲取5×5濾波窗口中值時,歸并插入算法僅需90次比較,相對于冒泡法減少了35次比較操作。同時,該系統(tǒng)加入了閾值比較電路,有效保持了圖像細節(jié),解決了中值濾波帶來的圖像模糊問題。
中值濾波;FPGA;歸并插入排序;閾值比較
圖像在生成、采集和傳輸?shù)倪^程中,往往會疊加進各種不同的噪聲,其中脈沖噪聲是尤為重要的一類噪聲,該噪聲使圖像質量變差,并給圖像識別、特征提取等帶來很大困難,因此在圖像處理系統(tǒng)中,必須對其進行濾波處理。中值濾波作為一種空域非線性濾波技術,其優(yōu)勢體現(xiàn)在它能保留圖像的邊緣信息并且能在不損壞圖像細節(jié)的情況下抑制脈沖噪聲[1]。傳統(tǒng)中值濾波器在獲取濾波窗口中值時,排序算法比較次數(shù)多,時間代價大,不能滿足高實時性的要求,基于此,本文設計了一種基于歸并插入排序算法的中值濾波系統(tǒng),以5× 5的濾波窗口為例,能將獲取中值的比較次數(shù)降低至90次,同時,加入了閾值比較電路,通過調節(jié)閾值提高濾波后圖像的清晰度,解決了中值濾波算法本身帶來的圖像模糊問題。
中值濾波是通過對滑動濾波窗口中的像素灰度級進行排序,然后選擇排序后的中間值作為輸出像素值來實現(xiàn)的[2],其公式定義為:
公式(1)中,xij為(i,j)位置處像素的灰度值,A為濾波窗口,其維度由r、s決定。
獲取中值的關鍵在于對窗口像素的排序,而排序的過程就是對像素進行比較和交換的過程。為了減少像素間的比較次數(shù),提高排序速度,文中采用了Priyadarshan Kolte和Roger Smith等人提出的快速中值濾波算法[3],對于5×5的濾波窗口計算過程如圖1所示(箭頭所指方向為升序方向)。
圖1 5×5窗口中值獲取流程
1)將5×5濾波窗口中每列像素按照箭頭方向做升序排列;
2)在(1)的基礎上將每行元素按箭頭方向做升序排列;
3)在(2)的基礎上把45度對角線方向上的3列元素按箭頭方向做升序排列;
4)在(3)的基礎上將(4)中3個元素按箭頭方向做升序排列,所得中值即為整個窗口的中值。
上述過程中,對于行、列及45度主對角線上5個元素的排序和兩副對角線上4個元素的排序使用了歸并插入排序算法,其過程如下[4]:
4個元素比較時,以a、b、c、d為例,首先進行分組比較a、b,c、d,假設所得結果為a>b、c>d,然后將兩個結果中的較大值進行比較,假設所得結果為a>c,如圖2(1)所示(箭頭所指方向為升序方向)。
圖2 歸并插入排序過程
此時,只需確定b所在的位置并將其插入到{d、c、a}這段有序數(shù)列中。這里采用二分的思想,首先將b與c比較,如果b>c,則確定順序為d 開始時,同4個元素排序一樣,首先分組比較a、b,c、d,然后把每對的較大者再比較,假設前3次的比較結果是a>c> d和a>b,可以找到如圖2(1)所示的有序關系,接下來將e插入到{d、c、a}中適當?shù)奈恢?,利用二分的思想僅需比較兩次,可得到如圖2(2)(3)(4)(5)所示4種情況中的一種。對以上任意一種情況,總可以再次利用二分的思想通過兩次比較把b插入到合適的位置。以圖2(2)為例,將b與c比較可確定b位于{c、a、e}段還是{d、c}段,若b>c則位于{c、a、e}段,可得e> a>b>c>d,若b 綜合上述算法來看,獲取一個滑動窗口的中值,需要11次5值排序,兩次4值排序和一次3值排序,總共需比較11× 7+2×5+1×3=90次。對于25個元素的冒泡排序需要300次比較,如果使用5值和4值冒泡排序實現(xiàn)上述算法則需要125次比較,而文獻[5]采用的基于分組排序網(wǎng)絡算法和文獻[6]采用的基于插入排序算法設計的5×5快速中值濾波器[5-6],比較次數(shù)均為125次,由此可見使用歸并插入排序實現(xiàn)上述快速中值濾波算法可進一步減少比較次數(shù),提高中值計算速度。 本設計采用5×5滑動濾波窗口實現(xiàn)一幅350×256像素的圖像中值濾波,每個像素灰度等級0~255,占用8比特,像素數(shù)據(jù)逐行逐個輸入FPGA,系統(tǒng)主要實現(xiàn)模塊如下: 2.1滑動窗口模塊 中值濾波是鄰域操作,本設計中使用5×5的滑動窗口構造中心像素點的鄰域[7]?;瑒哟翱谀K由5個深度為256,位寬8比特的行緩存LineBuffer和25個寄存器實現(xiàn),LineBuffer使用FPGA的IP核基于雙口RAM的移位寄存器實現(xiàn),其首尾相接用來緩存5行圖像數(shù)據(jù)。25個寄存器形成5行5列的陣列結構,作為濾波窗口,其實現(xiàn)原理如圖3所示: 圖3 濾波窗口結構 2.2中值計算模塊 圖像像素在時鐘驅動下逐行輸入,當LineBuffer被填滿的時候,接下來的每一個時鐘5個LineBuffer的輸出口都將把一列像素移入5×5的濾波窗口。當濾波窗口被像素填滿,則啟動中值計算模塊計算此刻窗口中值,計算所得中值與此刻窗口中心值進行閾值比較,其結果則為此時滑動窗口的濾波輸出數(shù)據(jù)。與此同時,滑動窗口在每一個時鐘向右移動一列,當窗口移動至邊緣的時候,窗口向下移動一行,直到遍歷所有像素,如圖4所示。需要注意的是,邊緣像素由于不存在鄰域,所以窗口移至邊緣時,應換行繼續(xù)訪問像素,邊緣像素則可以保持原樣輸出,或者使用一維中值濾波處理后再輸出等操作方法[8-9]。 圖4 中值濾波過程 2.3閾值比較模塊 標準中值濾波能在一定程度上濾除脈沖噪聲,尤其是椒鹽噪聲,但卻幾乎改變了原圖像中所有的像素值,除邊緣像素外所有像素均被中值替代,因此濾波后的圖像存在一定程度的模糊。由于受椒鹽噪聲損壞的像素值一般趨近高低兩級,且滑動窗口中的中值不會是噪聲像素(噪聲濃度過大除外),因此如果中心點像素值和中值差別不大時,可認為中心點非受損像素,此時可以原樣輸出像素值,只有中心點像素為噪聲點時,其值取得了較高或較低的像素值時才與中值相距甚遠,此時就可以使用中值替代中心值。綜上所述,本設計在標準中值濾波的基礎上增加一級閾值比較電路,每次求得一個滑動窗口中值的時候就將其與中心值做絕對比較[10],如圖4所示,設f(x,y)為滑動窗口的中值,g(x,y)為滑動窗口的中心點像素值,閾值為T,則中值濾波電路的輸出值為: 閾值T的取值與圖像的受損程度及圖像處理的要求等都有密切的關系,實際應用中應跟據(jù)情況選擇閾值,如果閾值設置較大,則會有更多的噪聲不能被濾除,從而降低圖像質量,但是此時的圖像卻具有較高的清晰度,另一方面,如果閾值設置較小,圖像去噪效果明顯,能夠去除很大一部分噪聲,但此時圖像的清晰度卻降低,實際應用中可根據(jù)不同的應用場合設置相應的閾值。 本設計使用Xilinx公司的VC4VLX80芯片實現(xiàn),并在ISE 14.6環(huán)境下使用Verilog HDL完成電路設計、綜合、布局布線及程序下載。為了能夠對系統(tǒng)進行仿真測試,首先利用MATLAB將一幅350×256像素的圖像轉化為*.txt格式的數(shù)據(jù)文件,然后使用Modelsim SE 10.1C仿真測試平臺將圖像數(shù)據(jù)讀入并在時鐘的驅動下輸出給系統(tǒng)電路,經(jīng)過濾波的圖像數(shù)據(jù)輸出給Modelsim平臺并保存為*.txt文本,最終由MATLAB讀入濾波后圖像數(shù)據(jù)并完成圖像轉化[11]。系統(tǒng)仿真波形如圖5所示,圖像數(shù)據(jù)進入模板窗口后,在時鐘驅動下逐列移動,當模板填滿之后,開始計算中值med_out,并與中心值做閾值比較,最終輸出濾波后數(shù)據(jù)data_out。測試結果如圖6所示,圖示中分別給出了原始圖像、椒鹽噪聲系數(shù)30%的加噪圖像、MATLAB使用5×5濾波窗口的中值濾波函數(shù)處理的濾波圖像、FPGA無閾值比較的中值濾波圖像以及FPGA中值濾波處理的閾值分別為10、25、40、80的濾波圖像。 圖5 系統(tǒng)仿真波形 圖6 測試結果 可以很明顯地看出,利用MATLAB中值濾波函數(shù)(5×5窗口)處理的圖像與利用FPGA無閾值比較濾波電路處理的圖像去噪效果基本一致,但圖像都存在一定程度的模糊,這是由中值完全替代了窗口中心值,而引起圖像所有像素更改造成的;加入閾值比較電路后,如圖閾值T分別取10、25、40、80時可以看到,隨著閾值的增大,圖像也越來越清晰,但濾波效果卻在下降,當T=80時,明顯觀測到未濾除的鹽噪聲。相反,閾值減小時,濾波效果越好,但圖像模糊程度加重,經(jīng)過精細調節(jié)發(fā)現(xiàn),本設計中閾值設置為40時濾波效果最好,圖像也最為清晰。 本文從中值濾波器運算速度、去噪性能及圖像清晰度等多方面綜合考慮,在FPGA平臺上實現(xiàn)了一套快速中值濾波系統(tǒng),該系統(tǒng)中應用了Priyadarshan Kolte和Roger Smith等人提出的快速中值濾波算法、歸并插入排序算法。相比于傳統(tǒng)算法,該算法對于每個5×5窗口僅需要90次比較就可得出中值,進一步減少了比較次數(shù),提高了運算速度,適合于實時圖像處理。同時,閾值比較電路的應用,使得該系統(tǒng)在保持圖像清晰度的情況下能最大限度地濾除噪聲,保證了圖像質量,也增加了系統(tǒng)的靈活性和通用性。 [1]王英,曾光宇.圖像去噪算法研究[J].電腦與信息技術,2011,19(4):8-12. [2]李彥軍,蘇紅旗,楊峰,等.改進的中值濾波圖像去噪方法研究[J].計算機工程與設計,2009(12):2995-2997. [3]Priyadarshan Kolte,Roger Smith,Wen Su.A fast median filter using altiVec[C].IEEE International Conference on Computer Design(ICCD'99).1999.384-391. [4]董恩增,吳東東,佟吉鋼.快速二維中值濾波算法及其FPGA硬件設計[J].計算機工程與設計,2015,36(7):1752-1756. [5]羅海波,史澤林,惠穎,等.基于多級分組排序網(wǎng)絡的實時大窗口二維中值濾波器設計 [J].紅外與激光工程,2008,37(5):935-939. [6]薄振桐.基于FPGA的實時圖像自適應中值濾波器設計[J].電子科技,2014,27(1):121-124. [7]師廷偉,金長江,張坡.基于FPGA圖像處理快速統(tǒng)計排序濾波實現(xiàn)[J].電光系統(tǒng),2013(1):35-37. [8]候法柱,彭楚武,方亮.圖像中值濾波算法及其FPGA的實現(xiàn)[J].微計算機信息,2011,27(1):69-71. [9]姚西文,郭雷,趙天云,等.比較編碼的中值濾波快速算法及FPGA實現(xiàn)[J].西安工業(yè)大學學報,2012,32(5):367-372. [10]李飛飛,劉偉寧,王艷華.改進的中值濾波算法及其FPGA快速實現(xiàn)[J].計算機工程,2009,35(14):175-177. [11]張望,常青,喻小虎.應用TEXTIO和MATLAB進行復雜數(shù)字系統(tǒng)仿真[J].電子設計工程,2006(1):4-7. Design and simulation test ofmedian filtering system based on FPGA WANG Bo1,2,AN Jun-she2 Aiming at the problem that traditionalmedian filtering algorithm performs lots of comparison operations of pixels and has high time cost to obtain themedian value of the filtering window,this paper implements amedian filtering system based on the merging insertion sort algorithm on FPGA platform,which effectively reduces the number of comparison operations and improves the image processing speed.The test results show that:merge insertion algorithm takes only 90 times comparison operationswhich reduces 35 times compared with bubble sortalgorithm when obtaining themedian value ofa 5*5 filteringwindow.At the same time,the system adds the threshold comparison circuit,effectivelymaintains the image details,and solves the problem of image blur caused by themedian filter. median filter;FPGA;merge insertion sort algorithm;threshold comparison TN911.73 A 1674-6236(2016)19-0167-04 2015-11-04稿件編號:201511039 王 博(1991—),男,四川閬中人,碩士研究生。研究方向:計算機應用技術。2 FPGA實現(xiàn)
3 仿真測試結果及分析
4 結 論
(1.University of Chinese Academy of Sciences,Beijing 100190,China;2.National Space Science Center,CAS,Beijing 100190,China)