李志遠,雙 凱,胡林陶
(中國石油大學(北京)北京 102249)
在微電阻率成像測井儀中,系統要求能準確的反映出地層裂隙中的油層情況。由于地層中復雜性質,信號中存在諸多的噪聲干擾,所以應該采用更好的濾波模板來消除地層噪聲的干擾。由于FPGA具有很強大的并行快速處理大量數據的能力,同時也具有靈活的可編程性,所以FPGA是圖像濾波處理的常用選擇[1]。
文獻[2]對濾波算法進行比較和分析,文獻[3-4]是一系列的改進的濾波算法,中值濾波是常用的去除噪聲算法。應根據不同的應用需要選擇不同的濾波窗口。本文采用了菱形濾波窗口,并給出了基于FPGA的濾波器總體結構設計方案。
中值濾波[5]的本質是排序統計理論,是抑制噪聲的非線性處理技術。用模板中的數據進行排序,暗點或者亮點在排序的過程中被排在數據的前段或者后端,由中間值取代噪聲點,從而達到抑制噪聲。二維情況下的中值濾波定義如下:

A 為窗口,g(m,n)為窗口中心的灰度值;f(m-k,n-l)為窗口A的像素灰度值。一般都選取窗口內像素數位奇數,以便產生中間值。
常用的二維中值濾波窗口形狀有直線形、方形、圓形、十字形及圓環形等,如圖1所示。

圖1 中值濾波常用的窗口圖形Fig.1 Windows commonly used by median filter
濾波窗口形狀和尺寸對濾波的影響很大,根據不同的應用需要選擇不同的窗口形狀和尺寸。而文獻都是基于3×3或者5×5的方形窗[1][5-6]。一般來說,對于有緩變的較長輪廓線物體的圖像,采用方形或者圓形為宜;對于包含有尖頂角物體的圖像,適用十字形窗口,窗口的大小則以不超過圖像中最有效物體的尺寸為宜[6]。通過研究,不少文獻認為十字中值濾波的效果優于方形的中值濾波[7],而菱形窗口不僅具有十字形窗口的特點,而且菱形濾波器的平滑性比十字形的窗口更好,所以成像測井儀中需要去除地層中的噪聲,采用的是菱形模板。
文獻[1]提出一種改進的中值濾波算法,對輸入進來的灰度圖像數據經過兩次升序排序后,再通過三輸入的比較器就可得出中間值。為了提高中值濾波的效果,Nieminen和Neuvo提出了“多級中值濾波”[8]。
多級中值濾波的原理即是分別沿水平、垂直、和水平方向成45°及135°角取4個一維窗口,對4個一維窗口分別取中值,把4個中值排序,取出最大值和最小值,再把最大值和最小值和濾波點進行排序,取出中值作為中值輸出值[6]。
設 f(i,j)為圖像在(i,j)處的灰度值,W 是一個(2N+1)×(2N+1)的濾波窗口。在W內定義4個子窗口:

令:

其中,med[]、min[]和 max[]分別表示對方括號內的所有元素取中值、最小值和最大值。則多級中值濾波的輸出可表示為:

多級中值濾波經過4個方向上的中值濾波,提高了中心像素點有邊緣性的像素的權重,同時由于進行了最大值與最小值濾波,使第三次濾波時中心像素的權重相對于標準中值濾波算法得到了增強[5]。
圖2是3×3模板的多級中值濾波的分塊圖解:直線1、2經過的像素點取中間值后,再比較兩個中值的大小;直線3、4經過的像素點取中間值后,也做同樣的操作。再將兩組的最小值、最大值和原來的像素點R22比較,得出的中間值取代原來的像素點。

圖2 3×3模板的分塊比較模型Fig.2 Block comparison model of 3*3 template
這樣結構的多級中值濾波算法也特別適用在菱形和十字形的濾波模板,如圖3所示的菱形窗口:直線1、2都經過5個像素點,求取出中值后,比較兩個中值的大小;而直線3、4只經過3個像素點,操作同3×3模板一樣。

圖3 菱形模板的分塊比較模型Fig.3 Block comparison model of rhombic template
菱形濾波窗口,利用4個FIFO和20個寄存器實現對圖像像素值的存儲。這里以256×256的灰度圖像為例,如同3×3濾波窗口存儲圖像數據一樣,FIFO的深度為圖像的寬度,即1個FIFO存儲1行圖像數據,用于圖像行數據緩存[5]。濾波窗口設計如圖4所示:不對深色的窗口讀取的像素值進行操作,如 R11、R12、R21……R45、R54、R55 讀取的像素值,既不輸出也不進行任何存儲;將淺色的窗口讀取的像素值并行送往算法模塊進行處理。
與其他模板進行鄰域操作一樣,圖像的邊緣點的鄰域數據沒有意義,如圖5所示,菱形濾波窗口只對虛線框內圖像像素點就行中值濾波操作,對于虛線外的像素值,濾波模板直接輸出當前濾波點的數值。以256×256的圖像為例,設i,j分別為行、列計數器,當3≤i≤254和3≤j≤254,即圖 5虛線框內時,濾波窗口對讀取的像素值取中值操作;當不在這個范圍內時,濾波模板直接輸出當前濾波點的數值。
對于菱形窗口的多級中值濾波,采用圖6的比較電路。為了便于綜合器綜合,第一級的2個五輸入比較器,調用三輸入的比較器模塊,然后輸出中間值;第二級和第三級都是2個兩輸入的比較器構成;第四級是一個三輸入的比較器,將最小值、最大值和圖像元像素值比較,輸出中間值取代原像素值。為了保證數據的同步,插入兩個存儲原像素值的寄存器。
設 a,b,c,d,e為 8位位寬的輸入數據。 對于三點比較器a,b,c 來說,只有 6 種情況:①a≤b≤c②a≤c≤b③b≤a≤c④b≤c≤a⑤c≤a≤b⑥c≤b≤a輸出最小值、中間值和最大值即可。對于五點比較器,調用三點比較器模塊之后,設最小值、中間值和最大值分別為a,b,c,其余兩個值也算出最小值和最大值,設為d,e,則共有10種比較情況,按升序排列為①deabc②daebc③dabec④dabce⑤adeb⑥adbec⑦adbce⑧abdec⑨abdce⑩abcde。
本文設計的菱形濾波模板采用的是ALTERA的CycloneⅣEP4CE115F29C7 FPGA實現的,該芯片有將近11.5萬個基本的邏輯單元、266個18×18的乘法器、20個全局時鐘網絡等。整個濾波模板的輸出波形如圖7所示。

圖4 菱形濾波窗口的FPGA實現Fig.4 FPGA implementation of rhombic template

圖5 被處理像素的范圍Fig.5 The range of pixels to be processed
由圖7可以看出,算法濾波模塊經過兩個時鐘周期后就輸出當前窗口的像素點的中值。這種多級中值濾波算法也非常適合菱形和十字形窗口濾波模板。但是兩種模板所消耗的FPGA資源不同,如表1所示:兩個模板的4輸入查找表和2輸入查找表相差不大,但是3輸入查找表大有不同,主要區別就在于菱形窗口比十字形窗口多了6個比較器和2個寄存器。

圖6 菱形窗口的多級中值濾波結構Fig.6 Rhombic window`s structure of multi-level median filter

圖7 多級中值濾波時序圖Fig.7 Timing diagram of multi-level median filter

表1 FPGA資源消耗情況Tab.1 Consum ption of FPGA resources
本文分析了基于FPGA的中值濾波算法的基本原理和并行處理。與傳統的3×3方形窗口不同,本文采用了更適合尖頂角物體的菱形窗口,進行了實驗仿真驗證。從Modelsim得到的仿真波形與理論波形相吻合,驗證了算法和程序的正確性,還在FPGA上實現了菱形窗口和十字形窗口的多級中值濾波算法的硬件結構,對比了兩者的資源消耗。菱形窗口雖然在資源上有略多的消耗,但是處理了更多的數據,并且保證了系統的實時性。由于FPGA大容量和可編程的特點,系統消耗的基本邏輯單元不及FPGA全部的1%,預留了大量空間;同時增加了靈活性,稍加修改可適用于3×3或者5×5方形窗,有很強的通用性。所以,本文提出的菱形濾波器設計有很強的實用性。
[1]李新春,趙璐.基于中值濾波算法濾波器的FPGA實現[J].計算機系統應用,2011,20(9):72,82-85.LI Xin-chun,ZHAO Lu.Implementation of FPGA based on median filtering algorithms filter[J].Computer Systems&Applications,2011,20(9):72,82-85.
[2]寧媛,李皖.圖像去噪的幾種方法分析比較[J].貴州工業大學學報:自然科學版,2005,34(4):63-66.NING Yuan,LI Wan.Analysis and comparison of some techniques on image denoising[J].Journal of GuiZhou University of Technology:National Science Edition,2005,34(4):63-66.
[3]Chang J J.Modified 2D median filter for impulse noise suppression in a real-time system[J].IEEE Transactions on Consumer Electronics, 1995, 41(1):73-80.
[4]NG P E,MA K K.A switching median filter with boundary discriminative noise detection for extremely corrupted images[J].IEEE Transactions on Image Processing,2006,15 (6):1506-1516.
[5]胡越黎,計慧杰,吳頻,等.圖像的中值濾波算法及其FPGA實現[J].計算機測量與控制,2008,16(11):1672-1675.HU Yue-li,JI Hui-jie,WU Pin,et al.Research on image filtering algorithm and its FPGA implementation[J].Computer Measurement&Control,2008,16(11):1672-1675.
[6]楊恩澤.基于FPGA的圖像處理算法及壓縮編碼的研究與實現[D].成都:西南交通大學,2007.
[7]楊輝.基于中值濾波和小波變換的圖像去噪研究[D].長沙:湖南師范大學,2008.
[8]NIEMINEN A,NEUVO Y.Comments on theoretical analysis of the Max/median filter[J].IEEE Transactions on Acoustics,Speech, and Signal Processing, 1988, 36(5):826-827.