本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別涉及硬件語言描述導(dǎo)向?yàn)V波算法及其優(yōu)化,具體是一種硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)和方法,可應(yīng)用于數(shù)字圖像在采集與顯示過程的降噪處理,高動(dòng)態(tài)圖像壓縮,以及圖像增強(qiáng)。
背景技術(shù):
hekaiming在ieeetransactionsonpatternanalysis&machineintelligence2013,35(6):1397-409.上發(fā)表了“guidedimagefiltering”的論文,文中提出了一種新的濾波算法,稱為導(dǎo)向?yàn)V波,導(dǎo)向?yàn)V波的輸出圖與引導(dǎo)圖之間具有局部線性傳輸特性,因此具有較好的邊緣保持效果。導(dǎo)向?yàn)V波與均值濾波,高斯低通濾波,雙邊濾波等相比,該算法具有較好的濾波效果以及較高的效率,從而廣泛應(yīng)用于圖像去噪處理,圖像細(xì)節(jié)增強(qiáng),平滑處理,高動(dòng)態(tài)圖像壓縮處理,摳圖處理,圖像羽化以及圖像去霧處理。
隨著集成電路技術(shù)的發(fā)展,人們總希望將一些算法通過硬件電路的形式移植到芯片中,從而降低處理器的負(fù)荷。導(dǎo)向?yàn)V波算法很容易在軟件中高效率地實(shí)現(xiàn),但是要以硬件電路的形式集成在圖像處理相關(guān)的芯片中,該算法依然面臨著面積,功耗以及實(shí)時(shí)要求的考驗(yàn)。2013年,金炎勝等人發(fā)明了“一種高速導(dǎo)向?yàn)V波器在fpga平臺(tái)的實(shí)現(xiàn)裝置”,該發(fā)明對導(dǎo)向?yàn)V波算法的硬件實(shí)現(xiàn)做了初步驗(yàn)證,但該發(fā)明使用了5個(gè)除法器,由于除法器采用分頻方式實(shí)現(xiàn),完成一次除法操作需要2+ndiv個(gè)系統(tǒng)時(shí)鐘周期,其中ndiv為除法器的延遲時(shí)鐘周期個(gè)數(shù),因此存在延時(shí)大,實(shí)時(shí)性差問題,此外除法器的實(shí)現(xiàn)也需要耗費(fèi)大量的面積。2014年,樸燕等人發(fā)明了“一種基于fpga的引導(dǎo)濾波器及其實(shí)現(xiàn)方法”,該發(fā)明通過尋址的方式改進(jìn)了二進(jìn)制除法運(yùn)算,便于硬件實(shí)現(xiàn),提高了系統(tǒng)運(yùn)行時(shí)間,但其精度低和面積大等問題依然存在。
目前,對于導(dǎo)向?yàn)V波的硬件實(shí)現(xiàn)而言,芯片面積大、功耗大、延時(shí)大、實(shí)時(shí)性差等問題依然存在,并具有很大的優(yōu)化價(jià)值。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明提供一種硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)和方法,使實(shí)現(xiàn)導(dǎo)向?yàn)V波功能的硬件電路具有面積小,功耗低,實(shí)時(shí)性高等優(yōu)點(diǎn)。
本發(fā)明是一種硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng),其特征在于,可采用硬件描述語言veriloghdl,vhdl進(jìn)行描述并實(shí)現(xiàn)導(dǎo)向?yàn)V波功能,根據(jù)數(shù)據(jù)流動(dòng)順序依次包括并連接有均值濾波模塊,數(shù)據(jù)同步器,方差計(jì)算模塊,一次項(xiàng)系數(shù)計(jì)算模塊,常數(shù)項(xiàng)計(jì)算模塊,一次項(xiàng)系數(shù)均值濾波模塊,常數(shù)項(xiàng)均值濾波模塊,輸出級計(jì)算模塊。
本發(fā)明還是一種硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化方法,在權(quán)利要求1-4所述的一種硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)上實(shí)現(xiàn),其特征在于,導(dǎo)向?yàn)V波中的均值濾波采用偶數(shù)濾波窗口,且滿足濾波窗口w=n*n,n=2n,其中n={1,2,3},硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波包括有如下步驟:
(1)產(chǎn)生輸入圖像的局部圖像:本發(fā)明采取流水線設(shè)計(jì),輸入圖以串行方式輸入局部圖像緩存單元ibuf,在系統(tǒng)時(shí)鐘和數(shù)據(jù)有效使能信號的控制下,將產(chǎn)生大小為n*n局部圖像;
(2)同步輸入圖像數(shù)據(jù):將局部圖像緩存單元最后一級fifo的輸出端數(shù)據(jù)寫入數(shù)據(jù)同步器fifo1;
(3)運(yùn)用右移位運(yùn)算的除法特性完成均值濾波并計(jì)算方差σ2:將輸入圖像作為導(dǎo)向?yàn)V波中的導(dǎo)向圖,運(yùn)用右移位運(yùn)算的除法特性完成均值濾波中的除法運(yùn)算,并計(jì)算方差,方差計(jì)算的具體步驟如下:
3.1計(jì)算局部圖像均值的平方
3.2計(jì)算局部圖像平方的平均值
3.3根據(jù)局部圖像均值的平方
(4)根據(jù)方差σ2和一個(gè)確定的平滑系數(shù)ε求解導(dǎo)向?yàn)V波中一次項(xiàng)系數(shù)a及常數(shù)項(xiàng)b:首先采用分段一次函數(shù)擬合方式逼近a系數(shù)曲線,然后基于多路選擇器和移位加法器完成分段一次函數(shù)的硬件實(shí)現(xiàn),最終通過輸入方差即可得到導(dǎo)向?yàn)V波中的一次項(xiàng)系數(shù)a,最后通過數(shù)據(jù)同步器fifo2輸出的局部圖像的平均值
(5)對一次項(xiàng)系數(shù)a及常數(shù)項(xiàng)b均值濾波:將a、b數(shù)據(jù)輸入到系數(shù)緩存器abuf、bbuf,緩存器結(jié)構(gòu)與ibuf相同,在系統(tǒng)時(shí)鐘和數(shù)據(jù)有效使能信號的控制下,將產(chǎn)生兩個(gè)大小為n*n系數(shù)矩陣,分別存放于abuf和bbuf的濾波窗口中,分別對濾波窗口中所有元素求和,運(yùn)用右移位運(yùn)算的除法特性,右移2n位算出對應(yīng)的出平均值
(6)計(jì)算輸出結(jié)果q完成導(dǎo)向?yàn)V波:根據(jù)數(shù)據(jù)同步器fifo1輸出的數(shù)據(jù)與一次項(xiàng)系數(shù)a及常數(shù)項(xiàng)b的局部平均值
本發(fā)明采取流水線設(shè)計(jì),添加系統(tǒng)時(shí)鐘和數(shù)據(jù)有效使能信號進(jìn)行控制,上述步驟完成一個(gè)像素的計(jì)算,在第一個(gè)輸出結(jié)果之后,每一個(gè)數(shù)據(jù)有效時(shí)鐘周期輸出一個(gè)計(jì)算結(jié)果,在系統(tǒng)時(shí)鐘和數(shù)據(jù)有效使能信號進(jìn)行控制下,最終完成整張圖像的導(dǎo)向?yàn)V波。
使用本發(fā)明的技術(shù)方案可以有效地降低實(shí)現(xiàn)硬件導(dǎo)向?yàn)V波芯片面積,提高實(shí)時(shí)性,減小功耗。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn):
(1)實(shí)現(xiàn)導(dǎo)向?yàn)V波算法需使用均值濾波共4次,現(xiàn)有的硬件實(shí)現(xiàn)方法采用奇數(shù)濾波窗口,窗口大小為(2n+1)2,其中n=1,2,3;因此在計(jì)算窗口內(nèi)像素點(diǎn)的均值時(shí),需要分別除以(2n+1)2,一般實(shí)現(xiàn)采用查表法或定點(diǎn)除法來實(shí)現(xiàn)。本發(fā)明提出偶數(shù)濾波窗口設(shè)計(jì),從硬件描述語言層次出發(fā),巧妙地運(yùn)用右移位運(yùn)算的除法特性,合理地選擇濾波窗口w=22n,其中n=1,2,3。使得均值濾波中的除法可以由右移2n位來實(shí)現(xiàn),避免使用除法器,降低算法復(fù)雜度,因此降低了實(shí)現(xiàn)導(dǎo)向?yàn)V波算法硬件電路的面積和功耗,并提了系統(tǒng)高實(shí)時(shí)性。
(2)現(xiàn)有方法計(jì)算一次項(xiàng)系數(shù)a同樣需要除法器,本發(fā)明采用分段一次函數(shù)擬合方式逼近導(dǎo)向?yàn)V波中求解一次項(xiàng)系數(shù)a的曲線,然后基于多路選擇器和移位加法器完成分段一次函數(shù)硬件實(shí)現(xiàn),從而求解一次項(xiàng)系數(shù)a。此方法再次避免使用除法器,提高了系統(tǒng)實(shí)時(shí)性。
(3)本發(fā)明在均值濾波求和過程中,當(dāng)n=1時(shí)采用直接求和方式;當(dāng)n>1時(shí),采用累加輸入總和,減去輸出總和的方式求取濾波窗口中像素和,此方法減少了加法器的使用個(gè)數(shù),可進(jìn)一步降低實(shí)現(xiàn)硬件導(dǎo)向?yàn)V波芯片面積和功耗。
附圖說明
圖1是本發(fā)明硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)結(jié)構(gòu)框圖;
圖2是本發(fā)明局部圖像緩存單元的結(jié)構(gòu)示意圖;
圖3是本發(fā)明均值濾波中求和單元結(jié)構(gòu)示意圖;
圖4是本發(fā)明本發(fā)明硬件實(shí)現(xiàn)與軟件實(shí)現(xiàn)的濾波效果對比圖。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施例,對本發(fā)明作詳細(xì)的描述。
目前,對于導(dǎo)向?yàn)V波的硬件實(shí)現(xiàn)而言,芯片面積大、功耗大、延時(shí)大、實(shí)時(shí)性差等問題依然存在,針對此現(xiàn)狀本發(fā)明提出了一種新的實(shí)現(xiàn)方案。
實(shí)施例1:
本發(fā)明首先是一種硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng),可采用硬件描述語言veriloghdl,vhdl進(jìn)行描述并實(shí)現(xiàn)導(dǎo)向?yàn)V波功能,參見圖1,根據(jù)數(shù)據(jù)流動(dòng)順序依次包括并連接有均值濾波模塊,數(shù)據(jù)同步器fifo1,數(shù)據(jù)同步器fifo2,方差計(jì)算模塊,一次項(xiàng)系數(shù)計(jì)算模塊,常數(shù)項(xiàng)計(jì)算模塊,一次項(xiàng)系數(shù)均值濾波模塊,常數(shù)項(xiàng)均值濾波模塊,輸出級計(jì)算模塊,各個(gè)模塊在時(shí)鐘信號和數(shù)據(jù)有效信號的控制下完成相應(yīng)功能。
本發(fā)明中各模塊的功能和連接方式分述如下:
均值濾波模塊:均值濾波模塊主要完成兩個(gè)任務(wù),1、完成輸入圖像的均值濾波,2、完成輸入圖平方圖的均值濾波。輸入與接外部圖像數(shù)據(jù),輸出分別與方差計(jì)算模塊和數(shù)據(jù)同步器fifo1,fifo2相連;
數(shù)據(jù)同步器fifo1:完成數(shù)據(jù)同步任務(wù),輸入與均值濾波模塊相連,輸出與輸出計(jì)算模塊相連;
數(shù)據(jù)同步器fifo2:完成數(shù)據(jù)同步任務(wù),輸入與均值濾波模塊相連,輸出與常數(shù)項(xiàng)計(jì)算模塊相連;
方差計(jì)算模塊:完成方差計(jì)算,輸入與均值濾波模塊相連,輸出與一次項(xiàng)系數(shù)計(jì)算模塊相連;
一次項(xiàng)系數(shù)計(jì)算模塊:完成一次項(xiàng)系數(shù)計(jì)算,輸入與方差計(jì)算模塊的輸出相連;輸出分別與常數(shù)項(xiàng)計(jì)算模塊和一次項(xiàng)系數(shù)均值濾波模塊相連;
常數(shù)項(xiàng)計(jì)算模塊:完成常數(shù)項(xiàng)計(jì)算,輸入分別與一次項(xiàng)系數(shù)計(jì)算模塊和數(shù)據(jù)同步器fifo2相連,輸出與常數(shù)項(xiàng)均值濾波模塊相連;
一次項(xiàng)系數(shù)均值濾波模塊:對一次項(xiàng)系數(shù)進(jìn)行均值濾波處理,輸入與一次項(xiàng)系數(shù)計(jì)算模塊相連,輸出與輸出級計(jì)算模塊相連;
常數(shù)項(xiàng)均值濾波模塊:對常數(shù)項(xiàng)進(jìn)行均值濾波處理,輸入與常數(shù)項(xiàng)計(jì)算模塊相連,輸出與輸出級計(jì)算模塊相連;
輸出級計(jì)算模塊:計(jì)算輸出結(jié)果,輸入分別與數(shù)據(jù)同步器fifo1、一次項(xiàng)系數(shù)均值濾波模塊、常數(shù)項(xiàng)均值濾波模塊相連,輸出為導(dǎo)向?yàn)V波計(jì)算結(jié)果。
任何一種算法以電路的形式集成于系統(tǒng)中有利于降低處理器負(fù)荷以及提高系統(tǒng)實(shí)時(shí)性,本發(fā)明提出偶數(shù)濾波窗口設(shè)計(jì),并結(jié)合右移位運(yùn)算的除法特,選擇濾波窗口大小w=22n,其中n={1,2,3}。使得均值濾波中的除法運(yùn)算可有右移2n位運(yùn)算來完成,此方法運(yùn)用于上述均值濾波模塊,一次項(xiàng)系數(shù)均值濾波模塊,常數(shù)項(xiàng)均值濾波模塊中實(shí)現(xiàn)除法運(yùn)算。
實(shí)施例2:
硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)的總體構(gòu)成同實(shí)施例1,均值濾波模塊依據(jù)數(shù)據(jù)流方向包括:局部圖像緩存單元,并行的兩個(gè)計(jì)算單元,兩個(gè)并行的計(jì)算單元分別為第一計(jì)算單元和第二計(jì)算單元。
局部圖像緩存單元與計(jì)算單元構(gòu)成均值濾波器,導(dǎo)向?yàn)V波算法一般輸入圖像有兩幅,一幅是導(dǎo)向圖、另一幅是需要做濾波處理圖像,本發(fā)明運(yùn)用于數(shù)字圖像在采集與顯示過程的降噪處理,高動(dòng)態(tài)圖像壓縮以及圖像增強(qiáng),所以選擇需要做濾波處理圖像作為導(dǎo)向圖,因此本發(fā)明采用兩個(gè)計(jì)算單元共享一個(gè)局部圖像緩存單元方式,從而減小了硬件資源的使用,使得最終實(shí)現(xiàn)該算法的電路面積減小,有利于以硬件電路的形式集成于圖像采集與顯示的芯片上,在圖像的采集和顯示過程中進(jìn)行相應(yīng)的處理。
實(shí)施例3:
硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)的總體構(gòu)成同實(shí)施例1,兩個(gè)并行的計(jì)算單元中,第一計(jì)算單元依據(jù)數(shù)據(jù)流方向分別包括:求和單元,除法運(yùn)算單元,平方計(jì)算單元;第二個(gè)計(jì)算單元依據(jù)數(shù)據(jù)流方向分別包括:平方計(jì)算單元,求和單元,除法運(yùn)算單元。
本發(fā)明所采用的求和單元可應(yīng)用于任意矩陣求和,參見圖3,求和過程為:1.累加輸入總和accin,2.計(jì)算輸出總和sumout,3.任意矩陣和為sum=accin-sumout,此方法應(yīng)用于n>1的情況下。
本發(fā)明提出偶數(shù)濾波窗口設(shè)計(jì),且窗口大小滿足w=22n,使得均值濾波中的除法器,即本例中除法計(jì)算單元,可以由右移位實(shí)現(xiàn),可直接舍棄低2n位即可得到平均值,為了提高計(jì)算精度也可以將低2n位作為小數(shù)位,其中n={1,2,3}。
實(shí)施例4:
硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)的總體構(gòu)成同實(shí)施例1,局部圖像緩存單元,參見圖2,由n個(gè)移位寄存器和n-1個(gè)先入先出存儲(chǔ)器fifo構(gòu)成,其連接方式為:n-1個(gè)fifo級聯(lián);其中第一個(gè)移位寄存器和第一級fifo的輸入端均與輸入圖像數(shù)據(jù)相連,第2、3、…、n個(gè)移位寄存器的輸入分別與第1、2、…、n-1級fifo的輸出端相連,其中移位寄存器的長度等于n,移位寄存器的數(shù)據(jù)位寬等于輸入圖像數(shù)據(jù)寬度;fifo的長度等于輸入圖像的寬度,fifo的數(shù)據(jù)位寬等于輸入圖像的數(shù)據(jù)位寬。
實(shí)施例5:
本發(fā)明還是一種硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化方法,在上述的一種硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)上實(shí)現(xiàn),硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)的總體構(gòu)成同實(shí)施例1-4,參見圖1,硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波包括有如下步驟:
(1)產(chǎn)生輸入圖像的局部圖像:本發(fā)明采取流水線設(shè)計(jì),以串行方式將被處理圖像輸入局部圖像緩存單元ibuf,在系統(tǒng)時(shí)鐘和數(shù)據(jù)有效使能信號的控制下,將產(chǎn)生大小為n*n局部圖像,ibuf的結(jié)構(gòu)示意圖參見圖2。
(2)同步輸入圖像數(shù)據(jù):將局部圖像緩存單元最后一級fifo的輸出端數(shù)據(jù)寫入數(shù)據(jù)同步器fifo1,將第一級輸入數(shù)據(jù)與fifo各級輸出數(shù)據(jù)構(gòu)成n個(gè)數(shù)據(jù),將這n個(gè)數(shù)據(jù)分別輸入到長度為n的串行移位寄存器的輸入端,經(jīng)過串行移位寄存器產(chǎn)生n*n個(gè)像素的局部圖像。
(3)運(yùn)用右移位運(yùn)算的除法特性完成均值濾波并計(jì)算方差σ2:將輸入圖像作為導(dǎo)向?yàn)V波中的導(dǎo)向圖,從硬件描述語言層次出發(fā),運(yùn)用右移位運(yùn)算的除法特性,選擇濾波窗口為大小w,即局部圖像大小,方差計(jì)算的具體方案:
3.1計(jì)算局部圖像均值的平方
3.2計(jì)算局部圖像平方的平均值
3.3根據(jù)局部圖像均值的平方
(4)根據(jù)方差σ2以及一個(gè)確定的平滑系數(shù)ε求解導(dǎo)向?yàn)V波中一次項(xiàng)系數(shù)a及常數(shù)項(xiàng)b:首先采用分段一次函數(shù)擬合方式逼近a系數(shù)曲線,然后基于多路選擇器和移位加法器完成分段一次函數(shù)的硬件電路設(shè)計(jì),最終通過輸入方差即可得到導(dǎo)向?yàn)V波中一次項(xiàng)系數(shù)a,最后通過數(shù)據(jù)同步器fifo2輸出的局部圖像的平均值
(5)對一次項(xiàng)系數(shù)a及常數(shù)項(xiàng)b均值濾波:將a,b數(shù)據(jù)輸入到系數(shù)緩存器abuf、bbuf,緩存器結(jié)構(gòu)與ibuf相同,在系統(tǒng)時(shí)鐘和數(shù)據(jù)有效使能信號的控制下,將產(chǎn)生兩個(gè)大小為n*n系數(shù)矩陣,分別存放于abuf和bbuf的濾波窗口中,分別對濾波窗口中所有元素求和,運(yùn)用右移位運(yùn)算的除法特性右移2n位算出平均值
(6)計(jì)算輸出結(jié)果q完成導(dǎo)向?yàn)V波:根據(jù)步驟(2)中數(shù)據(jù)同步器fifo1輸出的數(shù)據(jù)與一次項(xiàng)系數(shù)a及常數(shù)項(xiàng)b的局部平均值
上述步驟完成一個(gè)像素的計(jì)算,其中w=22n,n=2n,n={1,2,3},本發(fā)明采取流水線設(shè)計(jì),為保證計(jì)算結(jié)果的正確性本發(fā)明添加系統(tǒng)時(shí)鐘,數(shù)據(jù)有效使能信號進(jìn)行控制,每一個(gè)數(shù)據(jù)有效時(shí)鐘周期輸出一個(gè)計(jì)算結(jié)果,在系統(tǒng)時(shí)鐘的控制下,最終完成整張圖像的導(dǎo)向?yàn)V波處理。
實(shí)施例6:
硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)和方法同實(shí)施例1-5,硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化方法的步驟3.2中,計(jì)算局部圖像的平均值
其中w為濾波窗口大小,ii,j表示在濾波窗口中第i行第j列像素值,n為濾波窗口寬度,n=2n,n={1,2,3},‘>>’為右移位運(yùn)算符,所述局部圖像為濾波窗口中的圖像。
實(shí)施例7:
硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)和方法同實(shí)施例1-6,3.3中計(jì)算局部圖像的平方的平均值
其中w為濾波窗口大小,ii,j表示在濾波窗口中第i行第j列像素值,n為濾波窗口寬度,n=2n,n={1,2,3},‘>>’為右移位運(yùn)算符,所述局部圖像為濾波窗口中的圖像。
本發(fā)明在實(shí)施例6和實(shí)施例7的技術(shù)方案中采用公式格相似,輸入數(shù)據(jù)不同,能夠通過硬件描述語言來實(shí)現(xiàn),分別由局部圖像緩存單元緩存局部圖像,求和單元實(shí)現(xiàn)局部圖像的求和運(yùn)算,用右移位運(yùn)算實(shí)現(xiàn)除法運(yùn)算。
局部圖像緩存單元結(jié)構(gòu)參見圖2所示,data_in為輸入端,由n-1個(gè)先入先出存儲(chǔ)器fifo構(gòu)成和n個(gè)移位寄存器,其中每個(gè)移位寄存器的長度為n,共有n*n個(gè)寄存器,構(gòu)成大小為n*n的濾波窗口,局部圖像存放與濾波窗口中;
求和單元:n>1時(shí),求和單元結(jié)構(gòu)參見圖3,圖中accin為所有輸入串行移位寄存器值的累加,sumout為所有輸出串行移位寄存器值的和,由于所有寄存器初始化為零,所以accin減去sumout便是串行移位寄存器所有寄存器值的總和,即濾波窗口中所有元素的總和,求取平方和時(shí),通過累加輸入平法和減去輸出平方和的方式計(jì)算。
除法運(yùn)算單元中:本發(fā)明提出偶數(shù)濾波窗口設(shè)計(jì),且窗口大小滿足w=22n,使得均值濾波中的除法運(yùn)算可以由右移位運(yùn)算實(shí)現(xiàn),其操作為直接舍棄低22n位即可得到平均值,為了提高計(jì)算精度也可以將低22n位作為小數(shù)位。
實(shí)施例8:
硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)和方法同實(shí)施例1-7,本發(fā)明計(jì)算一次項(xiàng)系數(shù)a的公式如下所示:
s為分段函數(shù)段數(shù),ki表示第i段的斜率,bi表示第i段的截距,ε為平滑系數(shù),x為圖像數(shù)據(jù)位寬,σ2為局部圖像的方差。
具體實(shí)現(xiàn)步驟為:
8.1確定一個(gè)平滑系數(shù)ε,0<ε<2x;
8.2然后在用c語言或者python語言,以σ2為自變量,則a為一條單調(diào)遞增曲線,將a曲線分成s段,用分段一次函數(shù)擬合a曲線,其中s越大精度越高,但計(jì)算度越復(fù)雜;
8.3基于多路選擇器和移位加法器完成分段一次函數(shù)的硬件實(shí)現(xiàn),從而實(shí)現(xiàn)一次項(xiàng)系數(shù)a的求解,最終通過輸入方差即可得到導(dǎo)向?yàn)V波中一次項(xiàng)系數(shù)a。
實(shí)施例9:
硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)和方法同實(shí)施例1-8,一次項(xiàng)系數(shù)a及常數(shù)項(xiàng)b均值濾波公式如下所示:
其中w為濾波窗口大小,
上述公式的硬件描述包含系數(shù)緩存器,求和單元以及除法器單元,其中系數(shù)緩存器結(jié)構(gòu)如圖2所示,求和單元機(jī)構(gòu)示意圖如圖3所示。本發(fā)明濾波窗口大小滿足w=22n。使得均值濾波中的除法可以由右移2n位實(shí)現(xiàn),因此有效地降低實(shí)現(xiàn)硬件導(dǎo)向?yàn)V波電路的面積和功耗,并提高了實(shí)時(shí)性。具體實(shí)現(xiàn)步驟也可以表示為:
9.1將a,b數(shù)據(jù)分別輸入到系數(shù)緩存器abuf、bbuf中,緩存器結(jié)構(gòu)與ibuf相同,參見圖2,將產(chǎn)生兩個(gè)大小為n*n系數(shù)矩陣,分別存放于對應(yīng)濾波窗口中;
9.2對abuf、bbuf中濾波窗口里所有數(shù)據(jù)進(jìn)行求和計(jì)算,當(dāng)n>1時(shí),求和電路示意圖,參見圖3;
9.3右移2n位得到平均值相應(yīng)的均值。
以下給出一個(gè)更加完整和詳實(shí)的例子,結(jié)合附圖,對本發(fā)明作進(jìn)一步描述。
實(shí)施例10:
硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)和方法同實(shí)施例1-9,參照圖1,本發(fā)明的實(shí)現(xiàn)步驟包括如下:
步驟1,將輸入圖iin以串行方式輸入緩存器ibuf,并將緩存器中最后一級fifo的輸出端數(shù)據(jù)寫入數(shù)據(jù)同步器fifo1,本發(fā)明局部圖像緩存單元結(jié)構(gòu)如圖2所示,該緩存單元由n-1個(gè)長度為輸入圖寬度的先入先出存儲(chǔ)器fifo級聯(lián),以及由n個(gè)長度為n的移位寄存器構(gòu)成,最終產(chǎn)生像素點(diǎn)為n*n局部圖像i,其中n=2n,n={1,2,3},數(shù)據(jù)位寬為輸入圖像數(shù)據(jù)位寬。
步驟2,先對局部圖像中所有像素值求和,n=1時(shí)直接求和,n>時(shí),求和電路結(jié)構(gòu)如圖3所示,其次對其進(jìn)行右移2n位操作求得平均值
其中w為濾波窗口大小,ii,j表示在濾波窗口中第i行第j列像素值,n為濾波窗口寬度,n=2n,n={1,2,3},‘>>’為右移位運(yùn)算符,所述局部圖像濾波窗口中的圖像。然后將局部圖像的平均值
步驟3,當(dāng)n=1時(shí),先對上述局部圖像i中各像素值進(jìn)行平方運(yùn)算得到一個(gè)大小為2*2的矩陣i2,并對i2所有元素做求和運(yùn)算;當(dāng)n>1時(shí),求和電路結(jié)構(gòu)參見圖3,累加輸入平方和減去輸出平方和,然后右移2n位得到
其中w為濾波窗口大小,
步驟4,將輸入圖像iin作為導(dǎo)向?yàn)V波中的導(dǎo)向圖gin,計(jì)算方差σ2;
計(jì)算導(dǎo)向?yàn)V波中方差公式如下所示:
本發(fā)明將輸入圖像iin作為導(dǎo)向?yàn)V波中的導(dǎo)向圖gin,則有g(shù)=i,本發(fā)明計(jì)算方差公式如下所示:
步驟5,根據(jù)方差σ2以及平滑系數(shù)ε求解導(dǎo)向?yàn)V波中一次項(xiàng)系數(shù)a;
本發(fā)明采用分段一次函數(shù)擬合方式逼近導(dǎo)向?yàn)V波中的a系數(shù)曲線,其表達(dá)式如下所示:
s為分段函數(shù)段數(shù),ki表示第i段的斜率,bi表示第i段的截距,ε為平滑系數(shù),x為圖像數(shù)據(jù)位寬,σ2為局部圖像的方差。
具體實(shí)現(xiàn)步驟為:
5.1確定一個(gè)平滑系數(shù)ε,0≤ε<2x,其中x為輸入圖像數(shù)據(jù)位寬;
5.2然后在用c語言或者python語言,以方差σ2為變量并計(jì)算出0≤σ2<2x所對應(yīng)的系數(shù)a曲線,再將系數(shù)a曲線擬合成分段一次函數(shù);
5.3基于多路選擇器和移位加法器完成分段一次函數(shù)的硬件實(shí)現(xiàn),從而實(shí)現(xiàn)一次項(xiàng)系數(shù)a的求解,由于a∈(0,7)變化較大,該段采取查表法實(shí)現(xiàn),本例中x=8,s=16。
步驟6,通過數(shù)據(jù)同步器fifo2輸出局部圖像的平均值
其中a′表示一次項(xiàng)系數(shù)a的按位非運(yùn)算,‘>>’為右移位運(yùn)算符,x為圖像的數(shù)據(jù)位寬,本例中x=8。
然后將a,b數(shù)據(jù)分別輸入到系數(shù)緩存器abuf、bbuf中,緩存器結(jié)構(gòu)與局部圖像緩存單元ibuf相同,將產(chǎn)生兩個(gè)大小為n*n系數(shù)矩陣,n=2n,n={1,2,3};
步驟7,分別求出系數(shù)緩存器abuf與bbuf中濾波窗口下一次項(xiàng)系數(shù)a與常數(shù)項(xiàng)b的算數(shù)平均值
其中w為濾波窗口大小,
步驟8,將步驟(1)中數(shù)據(jù)同步器fifo1輸出i的數(shù)據(jù)與
以上8個(gè)步驟詳細(xì)介紹了獲得一個(gè)像素輸出處理的所有過程,本發(fā)明采用流水線形式,在系統(tǒng)時(shí)鐘的控制下,依次輸出導(dǎo)向?yàn)V波結(jié)果,公式如下所示:
其中iin為輸入圖像,q為導(dǎo)向?yàn)V波輸出結(jié)果,x、y為圖像坐標(biāo),iin(x,y),q(x,y),
本發(fā)明在第一個(gè)輸出結(jié)果之后,每一個(gè)有效時(shí)鐘周期輸出一個(gè)計(jì)算結(jié)果,在系統(tǒng)時(shí)鐘的控制下最終通過硬件描述語言實(shí)現(xiàn)對輸入圖像的導(dǎo)向?yàn)V波處理。
下面通過仿真結(jié)果對本發(fā)明的技術(shù)效果再做說明
實(shí)施例11:
硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波的優(yōu)化系統(tǒng)和方法同實(shí)施例1-10,
實(shí)驗(yàn)環(huán)境:軟件仿真環(huán)境為matlab2016b和modelsim-altera10.3,操作系統(tǒng)為64-bitwindows10;centos虛擬機(jī),dc綜合庫文件synopsys/dc/dc_2012/libraries/syn/class.db。
實(shí)驗(yàn)內(nèi)容:
實(shí)驗(yàn)1,去噪處理:首先在matlab中對原始圖像加高斯噪聲,得到噪聲圖;然后分別在matlab和modelsim環(huán)境下對噪聲圖進(jìn)行導(dǎo)向?yàn)V波去噪處理,并保存處理結(jié)果,其中modelsim環(huán)境下使用veriloghdl語言對本發(fā)明進(jìn)行描述;最后在matlab中計(jì)算處理結(jié)果的信噪比和信息熵,如圖4所示。
其中:圖4(a)為噪聲圖,圖4(b)為用本發(fā)明處理結(jié)果,圖4(c)為matlab處理結(jié)果局部圖,圖4(d)為噪聲圖局部圖,圖4(e)為本發(fā)明處理結(jié)果局部圖。由圖4(a)和圖4(b)對比可見本發(fā)明處理結(jié)果與噪聲圖相比畫質(zhì)明顯提高,根據(jù)局部圖4(c)、4(d)、4(e)圖可以看出本發(fā)明處理結(jié)果與matlab處理結(jié)果大致相同;但人眼的視覺效果存在偏差,表1給出信噪比和信息熵對處理結(jié)果進(jìn)行了客觀評價(jià),一般地信息熵越大圖像也好,信噪比高圖像質(zhì)量越好。
表1本發(fā)明處理結(jié)果與matlab處理結(jié)果的客觀評價(jià)
綜合看出,本發(fā)明輸出結(jié)果與原圖相比信噪比明顯提高、與matlab中實(shí)現(xiàn)效果大致相同,實(shí)現(xiàn)了導(dǎo)向?yàn)V波算法。
實(shí)驗(yàn)2,系統(tǒng)實(shí)時(shí)性驗(yàn)證:表2中分別統(tǒng)計(jì)了圖像大小為160*120、640*480、1024*768圖像的流水線級數(shù),流水線級數(shù)反應(yīng)數(shù)據(jù)從輸入到輸出所需要的系統(tǒng)時(shí)鐘周期,系統(tǒng)時(shí)鐘頻率相同情況下,流水線級數(shù)越少越具有實(shí)時(shí)性,可以看出本發(fā)明更具有實(shí)時(shí)性。
表2本發(fā)明方法與現(xiàn)有方法最小流水線級數(shù)
實(shí)驗(yàn)3,dc綜合:分別對傳統(tǒng)方法和本發(fā)明方法實(shí)現(xiàn)導(dǎo)向?yàn)V波電路進(jìn)行dc綜合,相同約束條件下,實(shí)現(xiàn)不同分辨率圖片的電路面積報(bào)告如表3所示:
表3本發(fā)明方法與現(xiàn)有方法實(shí)現(xiàn)導(dǎo)向?yàn)V波電路的面積報(bào)告(單位:um2)
由表3可見,本發(fā)明所提出的硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波優(yōu)化方案比傳統(tǒng)基于引導(dǎo)濾波方法耗費(fèi)面積較小,相同條件下功耗與面積呈正相關(guān),所以本發(fā)明功耗較傳統(tǒng)實(shí)現(xiàn)方法低,實(shí)驗(yàn)中各個(gè)均值濾波窗口為取最小值,其中本發(fā)明最小為2*2;現(xiàn)有技術(shù)最小值為3*3。
根據(jù)上述實(shí)驗(yàn)可得,本發(fā)明優(yōu)化了導(dǎo)向?yàn)V波硬件實(shí)現(xiàn)方案,具有較好的去噪效果更具有實(shí)時(shí)性、較小的面積消耗以及較低的功率損耗。
綜上所述,本發(fā)明提出的一種硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波優(yōu)化系統(tǒng)和方法。解決了導(dǎo)向?yàn)V波算法在硬件實(shí)現(xiàn)中的實(shí)時(shí)性差,面積和功耗大等問題。硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波優(yōu)化系統(tǒng)依數(shù)據(jù)流動(dòng)順序依次包括并連接有均值濾波模塊,數(shù)據(jù)同步器fifo1,數(shù)據(jù)同步器fifo2,方差計(jì)算模塊,一次項(xiàng)系數(shù)計(jì)算模塊,常數(shù)項(xiàng)計(jì)算模塊,一次項(xiàng)系數(shù)均值濾波模塊,常數(shù)項(xiàng)均值濾波模塊,輸出級計(jì)算模塊。硬件實(shí)現(xiàn)導(dǎo)向?yàn)V波優(yōu)化方法主要步驟如下:1.將圖像輸入濾波緩存器并將其作為導(dǎo)向圖;2.緩存器輸出端數(shù)據(jù)輸入數(shù)據(jù)同步器fifo1;3.對濾波緩存器中的像素值求平方值和方差,并將平均值寫入數(shù)據(jù)同步器fifo2;4.根據(jù)方差以及平滑系數(shù)求解導(dǎo)向?yàn)V波中一次項(xiàng)系數(shù)a;5.通過數(shù)據(jù)同步器fifo2輸出平均值和一次項(xiàng)系數(shù)a算出常數(shù)項(xiàng)b并寫入緩存器;6.分別求出a與b在濾波窗口中一次項(xiàng)系數(shù)a的平均值和常數(shù)項(xiàng)b的平均值;7.由同步模塊fifo1輸出數(shù)據(jù)、濾波窗口中a的平均值和b的平均值求得導(dǎo)向?yàn)V波輸出結(jié)果。本發(fā)明提高了計(jì)算精度,降低了硬件實(shí)現(xiàn)復(fù)雜度,避免使用除法器,減小了延時(shí),降低了面積和功耗。能以硬件電路的形式集成于圖像采集與顯示的芯片上,可用于數(shù)字圖像采集與顯示中的去噪處理,圖像增強(qiáng),高動(dòng)態(tài)圖像壓縮。