?
小波分析理論以其良好的時頻區(qū)域性和多分辨率分析能力,開辟了圖像處理的嶄新領(lǐng)域。小波變換是一種很好的圖像分解方法,非常適合于分析突變信號而用于靜止圖像邊緣的提取和壓縮。高階小波變化還可以用于實(shí)時處理視頻圖像信號,在減少編碼時間、提高壓縮比和降低失真度方面,都有很好的效果。因此,小波變換在圖像處理中具有十分優(yōu)越的性能。
國際標(biāo)準(zhǔn)化組織和國際電子技術(shù)聯(lián)盟聯(lián)合推出的新一代靜止圖像壓縮標(biāo)準(zhǔn)JPEG2000采用了基于提升算法的離散小波變換。JPEG2000標(biāo)準(zhǔn)中用到了兩種方式來提升小波:一種是可逆的整數(shù)型5/3小波變換,主要用于實(shí)現(xiàn)無損圖像壓縮,也可用于有損圖像壓縮;另一種是浮點(diǎn)型9/7小波變換,用于高質(zhì)量的有損圖像壓縮。其中整數(shù)5/3小波變換在很多領(lǐng)域有著重要應(yīng)用,如醫(yī)學(xué)圖像、衛(wèi)星傳輸圖像等。本文將實(shí)現(xiàn)基于FPGA的圖像二維5/3提升小波變換,采用FPGA芯片實(shí)現(xiàn)計(jì)算量十分復(fù)雜的二維提升小波變換,可以大大提高圖像壓縮運(yùn)算速度,保證系統(tǒng)的實(shí)時性要求。
1 5/3提升小波變換算法原理
小波提升算法的基本思想是通過基本小波(lazy wavelet)逐步構(gòu)建出一個具有更加良好性質(zhì)的新小波,它的實(shí)現(xiàn)步驟有三個:分裂(split)、預(yù)測(predict)和更新(update)。分裂是將輸入數(shù)據(jù)分為偶數(shù)序列和奇數(shù)序列二個部分;預(yù)測是用分裂的偶數(shù)序列預(yù)測奇數(shù)序列,得到的預(yù)測誤差為變換的高頻分量;更新是由預(yù)測誤差來更新偶數(shù)序列,得到變換的低頻分量。典型的單步小波提升結(jié)構(gòu)如圖1所示。
?
在JPEG2000中,5/3提升小波變換的算法為:
?
相應(yīng)的原理框圖如圖2所示。
?
2 對5/3提升小波變換硬件實(shí)現(xiàn)特點(diǎn)的分析
在提升算法的實(shí)現(xiàn)中,它的系數(shù)分布存在的特點(diǎn),可以簡化設(shè)計(jì)的實(shí)現(xiàn)。
(1)對輸入數(shù)據(jù)的處理,只牽涉到了兩兩相鄰的數(shù)據(jù)(圓圈中的數(shù)字表示執(zhí)行的時鐘序號),數(shù)據(jù)相關(guān)性圖如圖3所示。對圖像數(shù)據(jù)進(jìn)行行/列變換時,只需要得到該數(shù)據(jù)以及同一行(列)的相鄰兩個數(shù)據(jù),就可以進(jìn)行當(dāng)前數(shù)據(jù)的行/列變換,而與其他數(shù)據(jù)無關(guān),其本質(zhì)是將奇序列數(shù)據(jù)與偶序列數(shù)據(jù)順次逐一輸入。因此,對數(shù)據(jù)輸入部分的處理可以通過構(gòu)建兩個地址生成模塊,實(shí)現(xiàn)對奇偶地址數(shù)據(jù)的讀取。
?
(2)提升算法具有原位計(jì)算的特點(diǎn),因此計(jì)算的系數(shù)可以直接替代原始數(shù)據(jù)而不需要附加數(shù)據(jù)存儲空間。對于它的行、列變換都可以只使用同一個存儲器RAM進(jìn)行原始數(shù)據(jù)、中間數(shù)據(jù)和變換后數(shù)據(jù)的存儲。由圖4可以清楚地看到,二維提升小波變換后的系數(shù)在存儲空間的分布情況。原位存儲的特點(diǎn)大大地節(jié)省了片上資源,最有效地提高了系統(tǒng)利用率。
?
(3)行方向與列方向的提升小波變換是一樣的,因此可以將一維提升小波變換設(shè)計(jì)成一個獨(dú)立的模塊,之后對它進(jìn)行反復(fù)調(diào)用。這也是簡化系統(tǒng)的有效途徑之一。
3 圖像的二維提升小波變換的總體設(shè)計(jì)
一維小波變換是二維小波變換的前提,對于它的FPGA實(shí)現(xiàn),由圖2可以看出,5/3提升小波變換中主要計(jì)算是加、減運(yùn)算,而除法運(yùn)算是除以2和除以4,這在硬件實(shí)現(xiàn)中可通過“右移”操作實(shí)現(xiàn)快速運(yùn)算。因此在設(shè)計(jì)中只需將圖2中的乘法器模塊用相應(yīng)的移位操作模塊代替。而圖2中乘以-1/2模塊被替代為右移1位模塊之后,便少了一個負(fù)號,因此再將此乘法器后面的加法器模塊改為減法器,同樣達(dá)到了乘以-1/2的效果。這樣的改進(jìn)還簡化了負(fù)數(shù)在硬件電路中的運(yùn)算。改進(jìn)后的硬件實(shí)現(xiàn)框圖如圖5所示。
?
二維小波變換的硬件原理結(jié)構(gòu)如圖6所示,其工作原理如下:采用RAM1功能模塊來實(shí)現(xiàn)圖像數(shù)據(jù)的存儲;通過地址生成模塊來實(shí)現(xiàn)對存儲器中奇偶地址數(shù)據(jù)的分裂操作,先進(jìn)行行方向的奇偶序列地址分裂,并做一維小波變換;行方向的操作一結(jié)束,立即進(jìn)行列方向的奇偶序列地址分裂,并做一維小波變換。以上兩步反復(fù)進(jìn)行,便可完成圖像的多級二維小波變換,最終的小波變換系數(shù)將被存儲在RAM2中。
?
4 二維5/3提升小波變換的FPGA實(shí)現(xiàn)
4.1 主要功能模塊的設(shè)計(jì)
(1)RAM模塊。要實(shí)現(xiàn)對同一個數(shù)據(jù)塊的雙輸出,以便進(jìn)行一維提升小波變換,因此選擇了具備雙端口功能的宏模塊,用來存儲行小波變換系數(shù)和存儲列小波變換系數(shù),這樣的結(jié)構(gòu)能更加清晰地反映算法的實(shí)現(xiàn)流程,能夠?qū)崿F(xiàn)算法中對奇偶地址數(shù)據(jù)的同時讀取。
(2)行方向奇地址發(fā)生模塊和行方向偶地址發(fā)生模塊。行方向奇地址發(fā)生模塊實(shí)現(xiàn)功能是在每個時鐘周期內(nèi),依次輸出如圖7所示的白色圓圈所示存儲器行方向奇數(shù)單元的地址,這實(shí)際上是一個計(jì)數(shù)功能。行方向偶地址發(fā)生模塊實(shí)現(xiàn)的功能與行方向奇地址發(fā)生模塊類似,不同的是在每個時鐘周期內(nèi)按行輸出圖7所示的灰色圓圈的序號。
?
(3)列方向奇地址發(fā)生模塊和列方向偶地址發(fā)生模塊。在計(jì)數(shù)結(jié)束時,列方向奇地址發(fā)生模塊在每個時鐘周期內(nèi)依次輸出如圖8所示的白色圓圈所示的存儲器列方向奇數(shù)單元的地址。列方向偶地址發(fā)生模塊實(shí)現(xiàn)的功能與列方向奇地址發(fā)生模塊類似,不同的是在每個時鐘周期內(nèi)按列輸出圖8所示的灰色圓圈的序號。
?
4.2 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)頂層原理如圖9所示(圖中略去了時鐘信號控制線)。在系統(tǒng)結(jié)構(gòu)中添加delay延時寄存器,從調(diào)整系統(tǒng)的時序;RAM1、RAM2是沒有被放入初始化文件的兩個相同的存儲器;sel1、sel2、sel3是三類相似功能的數(shù)據(jù)選擇器,完成整個結(jié)構(gòu)的基本控制功能。sel1實(shí)現(xiàn)的功能是當(dāng)行變換結(jié)束后,切換RAM1的地址輸入為列方向地址;sel2實(shí)現(xiàn)的功能是當(dāng)行變換結(jié)束后,將“小波變換”模塊的輸入數(shù)據(jù)從行變換地址尋址得到的數(shù)據(jù)切換到列變換地址尋址得到的數(shù)據(jù);sel3實(shí)現(xiàn)的功能是通過行變換標(biāo)志信號和列變換標(biāo)志信號來實(shí)現(xiàn)對RAM2的讀寫控制,當(dāng)系統(tǒng)進(jìn)行列變換時,RAM2模塊寫無效;當(dāng)系統(tǒng)進(jìn)行列變換時,RAM2模塊寫有效;當(dāng)列變換完成時,RAM2模塊再次寫無效,此時RAM2中已經(jīng)寫入數(shù)據(jù)。
?
系統(tǒng)工作過程如下:首先是行方向一維小波變換:圖像的灰度值數(shù)據(jù)預(yù)存在“Video RAM”模塊中,時鐘信號一來,便立即啟動水平奇地址模塊和水平偶地址模塊,開始奇偶地址分裂,進(jìn)行行方向的一維小波變換,同時將行變換的數(shù)據(jù)存到RAM1中。其次再進(jìn)行行、列變換切換時控制:當(dāng)一次行方向地址奇偶分裂一結(jié)束,水平奇地址模塊和水平偶地址模塊將發(fā)出一個結(jié)束的標(biāo)志信號,它將啟動sel1、sel2、sel3開始工作。最后再進(jìn)行列變換的過程,RAM2中存儲列變換的結(jié)果數(shù)據(jù)。此時即完成了圖像二維提升小波變換。
采用QuartusⅡ軟件對系統(tǒng)進(jìn)行了綜合、仿真,系統(tǒng)在FPGA芯片中(EP2C70F672C6)實(shí)現(xiàn),結(jié)果顯示系統(tǒng)耗時為163.85μs。完全能夠保證圖像壓縮系統(tǒng)的實(shí)時性要求,它的值正是二維小波系數(shù)。
本文分析了提升算法的系數(shù)分布存在的特點(diǎn),提出了5/3二維提升小波變換硬件實(shí)現(xiàn)的簡化方案,并在FPGA芯片中實(shí)現(xiàn)了對圖像的5/3二維提升小波變換。采用FPGA芯片實(shí)現(xiàn)計(jì)算量十分復(fù)雜的二維提升小波變換,可以大大提高圖像壓縮的運(yùn)算速度,保證系統(tǒng)的實(shí)時性要求。本方法在很多領(lǐng)域的圖像處理中有著廣闊的應(yīng)用前景。
評論
查看更多