韓劍輝++葛++威
摘 要:為降低硬件資源占用提高濾波速度,介紹了一種改進的位級中值濾波設(shè)計,并且運用改進的位級中值濾波設(shè)計構(gòu)造一個3x3模板改進型位級中值濾波器,應用于降低灰度圖像的椒鹽噪聲.著重介紹改進后位級中值濾波的中間值計算邏輯電路的簡化設(shè)計及相應求大多值計算模塊的改進.整個設(shè)計均在FPGA和Modelsim SE 10. la軟件仿真的基礎(chǔ)上實現(xiàn)驗證.實驗數(shù)據(jù)比較證明改進型位級中值濾波大幅度降低硬件資源占用,且在一個時鐘周期內(nèi)快速的完成一次位級中值濾波并輸出結(jié)果.
關(guān)鍵詞:中值濾波;椒鹽噪聲;FPGA;Modelsim
DOI:IO.15938/j.jhust.2015.03.007
中圖分類號:TP39
文獻標志碼:A
文章編號:1007-2683 (2015)03-0035-05
O 引 言
在圖像采集和生成的過程中被引入噪聲,而中值濾波依靠本身的非線性特點在圖像預處理方面被廣泛運用.但是大多數(shù)中值濾波算法如加權(quán)中值濾波等,在軟件實現(xiàn)時需要運用多次的排序,使得程序很繁雜,不僅在硬件實現(xiàn)時需要占用大量的硬件資源,而且消耗較長的時間影響濾波速度.而位級中值濾波充分發(fā)揮Verilog HDL硬件描述語言優(yōu)點,構(gòu)造特定的邏輯電路占用相對較少的硬件資源,在極短的時間內(nèi)快速完成濾波,不論是硬件資源占用,還是濾波速度,位級中值濾波都優(yōu)于需要排序的中值濾波算法.文已提出了一種位級中值濾波的電路結(jié)構(gòu),但該電路結(jié)構(gòu)仍有改進的空間,為此,本文給出一種改進型位級中值濾波的電路設(shè)計.
1 位級中值濾波原理
整個位級中值濾波由中間值計算模塊和求大多值模塊組成,
輸入進來的圖像數(shù)據(jù)以二進制數(shù)形式,按最高位到最低位的順序,對各圖像數(shù)據(jù)相同位上的數(shù)值觀察比較,如果數(shù)值為l的個數(shù)多于或等于數(shù)值為0的個數(shù),那么濾波結(jié)果將會在相應位的數(shù)值為1的圖像數(shù)據(jù)集合中產(chǎn)生,該集合記作A,并且將A集合中各圖像數(shù)據(jù)的標志位M置1,而相應位數(shù)值為O的數(shù)據(jù)集合記作B,B集合中各數(shù)據(jù)的標志位M置0,其中標志位M為是否允許進入下一位中間值計算的標志;如果數(shù)值為1的個數(shù)少于數(shù)值為0的個數(shù),則相應位的數(shù)值為0的圖像數(shù)據(jù)集合記作A,相應位的數(shù)值為1的圖像數(shù)據(jù)集合記作B.只有標志位M置1的圖像數(shù)據(jù)才可以進入下一位的中間值計算,如果M被置0,則該圖像數(shù)據(jù)不能進入下一位的中間值計算并且不會再出現(xiàn)在A集合中,即M不能再被置為1直至濾波結(jié)束,從次高位開始,每執(zhí)行完一位數(shù)值計算,A集合中的元素就減少一些,直至A集合中只有最后一個數(shù)據(jù),該數(shù)據(jù)便是位級中值濾波的輸出結(jié)果.值得說明的是,在上述過程中還需保持數(shù)據(jù)的階數(shù)順序,以確保濾波結(jié)果的精確.
2 改進型位級中值濾波電路設(shè)計
2.1 中間值計算模塊的改進設(shè)計
中間值計算模塊由單個位的中間值計算電路作為基礎(chǔ)單元組成,因此,著重介紹單個位的中間值計算電路的改進,文提供了單個位的中間值計算電路設(shè)計,設(shè)計中為了保持數(shù)據(jù)的階數(shù)順序需要有si[j]和sri[j -1]兩個輸入信號,從而增大了單個位的中間值計算的電路結(jié)構(gòu),隨著位寬的增大,所需的單個位的中間值計算電路的數(shù)量在增多,使得硬件資源占用迅速增多;例如:對于3x3濾波窗口的位寬輸入,就需要3x3x8 =72個單個位的中間值計算電路單元,很明顯如果單個位的中間值計算電路單元結(jié)構(gòu)相對復雜,硬件資源占用就會大大增多.為了緩解已有位級中值濾波設(shè)計的硬件資源占用隨著位寬增加而迅速增多的壓力,本論文對單個位的中間值計算電路單元做了改進:將保持數(shù)據(jù)階數(shù)順序的功能轉(zhuǎn)移到求大多值模塊中,去除原有…的si[j]和sri[j-1]兩個輸入信號,只保留數(shù)據(jù)相應位數(shù)值Sr、大多值Sout、標志位M的比較判斷的功能,簡化了單個位的中間值計算電路單元.簡化前后的電路比較如圖l(a)為文[1]提供的中間計算電路,圖1(b)為本文簡化后的電路.
2.2 求大多值計算模塊改進設(shè)計
求大多值模塊也做出相應改進,為增加保持數(shù)據(jù)階數(shù)順序的功能,運用了一種新的計算方法求一組數(shù)值的大多值:先計算出該組數(shù)值中數(shù)值為1的個數(shù)h,如果該組數(shù)值的總個數(shù)為Z,則該組數(shù)值中數(shù)值為0的個數(shù)w=Z-h,如果h≥w,那么大多值為1;如果h 為保持數(shù)據(jù)的階數(shù)順序,首先必須了解為什么需要保持數(shù)據(jù)的階數(shù)順序,位權(quán)的概念在二進制數(shù)值運算中最為關(guān)鍵,即某一位上的“1”所表示的數(shù)值的大小.而構(gòu)成位級中值濾波的邏輯電路只是對數(shù)字信號“0”和“1”做單純的邏輯變換,不能與一般中值濾波的程序一樣,理解每一位的位權(quán)意義并依據(jù)數(shù)據(jù)的數(shù)值大小對數(shù)據(jù)進行排序.因此,如果不保持數(shù)據(jù)的階數(shù)順序,位級中值濾波的結(jié)果是不精確的.以表1內(nèi)的數(shù)據(jù)為例,表1中黑色填充部分是位級中值濾波在沒有保持數(shù)據(jù)階數(shù)順序的情況下產(chǎn)生的濾波結(jié)果,而正確的中間值是81,很明顯濾波結(jié)果錯誤,為保持數(shù)據(jù)的階數(shù)順序,假設(shè)某組數(shù)值為第i組數(shù)值,其中O 2.2.1 求大多值模塊改進設(shè)計的硬件實現(xiàn) 整個電路以計算數(shù)字信號“1”的個數(shù)為主要方法,這便于邏輯判斷,易于硬件實現(xiàn).通過一個n位的減法器sl和一個n位的加法器al來實現(xiàn)保持數(shù)據(jù)階數(shù)順序的功能,通過一個Q位輸入、n位輸出的運算器v來計算M=1且數(shù)字信號為“1”的數(shù)值的個數(shù).最終經(jīng)過一個n位的加法器a2將v的輸出與al的輸出求和后輸出給一個2n位輸入的比較器求出大多值.其中Q為位寬,n滿足2n≥Q.通過Quar-tus II 11.0生成改進的3x3濾波窗口位寬輸入的求大多值RTL級電路如圖2.式中變量d(t)為第i組數(shù)值中的第t個數(shù)值;變量M(t)為第i組數(shù)值中的第t個數(shù)值的標志位M.
3 構(gòu)造3x3模板改進型位級中值濾波器
3x3模板改進型位級中值濾波器由3x3模板生成模塊和3 x3濾波窗口位寬輸入的改進型位級中值濾波模塊組成,其RTL級模塊如圖3.
3.1 3x3模板生成模塊
該模塊由7個移位寄存器(SR)、2個FIFO緩存器構(gòu)成,3x3模板生成模塊結(jié)構(gòu)如圖4.模板生成模塊利用FPCA的并行特性,將移位寄存器與FIFO緩存器構(gòu)造成串行流水結(jié)構(gòu),以提高處理速度.2個FIFO緩存器由FPGA的IP核生成,深度均為(G-2),其中G為圖像的一行所含像素點的個數(shù),1個FIFO和2個移位寄存器正好存儲圖像的一行數(shù)據(jù),以圖像的第1、2、3行為例,隨著數(shù)據(jù)的不斷左移,當SR一11、SR一12存儲第1行的前兩個圖像數(shù)據(jù)時,SR_21、SR _22和SR一31、SR一32、SR_33正好分別存儲第2行的前2個圖像數(shù)據(jù)、第3行的前3個圖像數(shù)據(jù),于是D11、D12、D13、D21、D22、D23、D31、D32、D33構(gòu)成3x3模板,再隨著下一個圖像數(shù)據(jù)的左移,3x3模板便整體右移一個數(shù)據(jù)寬度,值得說明的是:兩個FIFO緩存器的讀寫時序必須控制好,在第4個時鐘周期時FIFOI的寫有效;在第(G+4)個時鐘周期時FIF02的寫有效;在第G個時鐘周期時FIF01的讀有效;在第(Gx2)個時鐘周期時FIF02的讀有效.通過QuartusⅡ11.0生成的3 x3模板生成模塊的RTL級主要電路如圖5.
3.2 3x3濾波窗口位寬輸入的改進型位級中值濾
波模塊
第2節(jié)介紹了改進型位級中值濾波處理單組數(shù)值的電路設(shè)計,其功能結(jié)構(gòu)如圖6.但這只是處理一組數(shù)值,因此對于一個8位字長的圖像數(shù)據(jù)則需要8組這樣的結(jié)構(gòu),值得說明的是:在濾波開始時,所有標志位M的初始值均為1.通過QuartusⅡ11.0生成的3x3濾波窗口位寬輸入的改進型位級中值濾波處理單組數(shù)值的RTL級電路如圖7.
4 FPGA硬件實驗結(jié)果及比較
為驗證3x3模板改進型位級中值濾波器模塊對受污染的灰度圖像的處理效果,本文通過Model-sim SE 10. la軟件對模塊進行時序仿真,并且將一幅256×256像素由Matlab生成的加入椒鹽噪聲的灰度圖像作為輸入數(shù)據(jù).圖8為3x3模板改進型位級中值濾波器的時序仿真.最后,通過Matlab將時序仿真產(chǎn)生的數(shù)據(jù)矩陣轉(zhuǎn)換成灰度圖像,直觀的顯示3x3模板改進型位級中值濾波器模塊的圖像處理效果,圖9為處理效果比較,3x3模板改進型位級中值濾波器的圖像處理效果良好.根據(jù)Quar-tus 11 11.0生成的資源占用報表,表2為資源占用結(jié)果比較,數(shù)據(jù)顯示本文3x3模板改進型位級中值濾波器所占用的寄存器資源遠少于文提供的3×3模板中值濾波算法所占用的寄存器資源.
本文介紹的改進型位級中值濾波,簡化原有位級中值濾波的邏輯電路結(jié)構(gòu).實驗數(shù)據(jù)說明:3×3模板改進型位級中值濾波器所占用的寄存器資源遠少于文的中值濾波器,同時依據(jù)Modelsim SE10. la的時序仿真結(jié)果,3x3模板改進型位級中值濾波器能夠在1.32 ms內(nèi)處理完一副256×256像素的圖像且圖像處理效果良好.