荀燕琴,任國(guó)鳳,田竹梅,吳瑩瑩
(忻州師范學(xué)院 電子系,山西 忻州 035000)
信息時(shí)代,圖像是獲取信息的一個(gè)重要途徑。隨著數(shù)碼電子產(chǎn)品的快速發(fā)展,人們對(duì)日常生活中各種數(shù)字圖像的清晰度要求越來越高,給人們的生活帶來了許多的樂趣,但同時(shí)也會(huì)有一些問題出現(xiàn)。數(shù)字圖像的數(shù)據(jù)量很大,而現(xiàn)如今的硬件技術(shù)所能提供的存儲(chǔ)空間有限,這給多媒體的存儲(chǔ)和傳輸帶來了很大的壓力。盡管存儲(chǔ)硬件的容量不斷增加,傳輸器的速度也不斷發(fā)展,但信息數(shù)據(jù)量是爆炸式增長(zhǎng)的,僅僅依靠增加硬件的存儲(chǔ)能力或是增加帶寬并不能從根本上解決問題,它永遠(yuǎn)也跟不上信息的增長(zhǎng)速度。因此,為了最大程度地解決問題,需要對(duì)圖像的數(shù)據(jù)信息進(jìn)行壓縮。[1]
本文基于圖像的壓縮背景、研究現(xiàn)狀及壓縮理論,描述了圖像壓縮算法的評(píng)價(jià)指標(biāo)及相關(guān)算法,詳細(xì)分析了小波變換原理、典型算法及應(yīng)用。在此基礎(chǔ)上研究了嵌入式小波零樹編碼算法的基本理論和算法的實(shí)現(xiàn)過程,并通過MATLAB進(jìn)行圖例仿真及數(shù)據(jù)分析。
1.1.1 主觀評(píng)價(jià)方法
對(duì)于圖像的好壞,首先是從人的視覺來感知的,圖像的質(zhì)量若按5分制[2]來評(píng)分,具體情況如表1所示。
表1 圖像主觀性能評(píng)價(jià)表
1.1.2 客觀評(píng)價(jià)方法
一般來說,常見的客觀評(píng)價(jià)方法[3]有以下幾種:
均方誤差的計(jì)算方法見式(1)
(1)
信噪比的計(jì)算方法見式(2)
(2)
峰值信噪比的計(jì)算方法見式(3)
(3)
圖像編碼的主要目的是完成圖像的壓縮,使儲(chǔ)存和傳輸更加方便。圖像壓縮編碼可分為無損編碼和有損編碼。
圖1 哈夫曼的編碼步驟
1.2.1 無損編碼
(1)哈夫曼編碼
哈夫曼編碼是一種常用的編碼算法。它的特點(diǎn)是簡(jiǎn)單、高效且長(zhǎng)度不同。若它的碼子長(zhǎng)度和符號(hào)概率大小的擺列是逆序排列,則其平均碼長(zhǎng)就是最短的,被稱作最佳碼。
該編碼算法的編碼流程如圖1所示(設(shè)概率為P)。
(2)算數(shù)編碼
20世紀(jì)80年代出現(xiàn)的算數(shù)編碼是一種能夠逼近熵極限的最優(yōu)編碼算法。它和哈夫曼編碼不一樣,哈夫曼編碼不能用小數(shù)表示信源符號(hào),但算數(shù)編碼可以。將需要編碼的符號(hào)流看作一個(gè)范圍在[0,1)上的實(shí)數(shù)區(qū)間,區(qū)間會(huì)隨著信源符號(hào)逐漸進(jìn)入信源流中而減小,新進(jìn)入的信源信號(hào)的先驗(yàn)概率越大,區(qū)間減少就越慢。符號(hào)流越長(zhǎng)代表區(qū)間越短,編碼所需的比特?cái)?shù)也會(huì)隨之增多。因此,算數(shù)編碼會(huì)得到一個(gè)數(shù)a(0≤a<1),在解碼時(shí)能進(jìn)行準(zhǔn)確的重構(gòu)。
在信源概率散布均勻的情況下,相對(duì)于哈夫曼編碼來說,算數(shù)編碼的效率更高,也不需要對(duì)數(shù)據(jù)進(jìn)行分塊。
1.2.2 有損編碼
(1)變換編碼
變換編碼就是為了壓縮數(shù)據(jù)而對(duì)正交交換后的數(shù)據(jù)進(jìn)行編碼的一種方法。[4]不管圖像是不是彩色的,也不管是不是動(dòng)態(tài)圖,都可用變換編碼。變換編碼的模型如圖2所示。
圖2 變換編碼的基本流程
(2)小波變換編碼
近年來,小波變換被廣泛地運(yùn)用在圖像編碼、語(yǔ)音處理等領(lǐng)域。它對(duì)圖像信息進(jìn)行處理時(shí),能夠精細(xì)地對(duì)高頻成分進(jìn)行取樣,從而可以對(duì)圖像任意局部進(jìn)行分析。
小波分析最早由法國(guó)的數(shù)學(xué)家提出,20世紀(jì)30年代到80年代間出現(xiàn)了小波分析思想。法國(guó)物理學(xué)家Jean Morlet通過對(duì)Fourier變換和短時(shí)Fourier變換的研究,給出了小波分析的概念,后來經(jīng)過無數(shù)人的研究出現(xiàn)了多分辨分析的基本理念。在該理念的基礎(chǔ)上,Mallat給出了著名的Mallat算法,推動(dòng)小波變換逐漸運(yùn)用到現(xiàn)實(shí)中。
通過小波變換可對(duì)時(shí)頻域進(jìn)行局部分析,經(jīng)過伸縮平移不斷變化多尺度細(xì)化信號(hào),最后可對(duì)低頻處的頻率進(jìn)行細(xì)化,可對(duì)信號(hào)的任意細(xì)節(jié)進(jìn)行處理。因?yàn)樾〔ㄗ儞Q具有這些優(yōu)點(diǎn),所以它能被應(yīng)用于圖像壓縮等多媒體領(lǐng)域中。
2.2.1 小波及小波變換
小波就是表示小范圍的波。
小波函數(shù)[5]是指函數(shù)φ(x)在空間L2(R)中滿足公式(4):
(4)
將小波母函數(shù)φ(x)伸縮和平移,假設(shè)其尺度因子為α,平移因子為τ,令其伸縮平移后的小波基函數(shù)為φα,τ(t)見式(5)
(5)
其中:α和τ是小波基的兩個(gè)重要系數(shù),φ(x)具有振蕩和衰減的性質(zhì)。
小波連續(xù)變換就是在任意空間L2(R)中,在小波基下展開后的函數(shù)f(t),小波變換系數(shù)的表達(dá)式見式(6)
(6)
2.2.2 小波基的選取
圖像經(jīng)小波分解后的總能量不會(huì)減少,但圖像的能量會(huì)重新分布,能量主要聚集到低頻部分。陽(yáng)婷等[6]提出圖像兩層小波分解:其中LL2是最低頻也是最重要的,最低頻的小波系數(shù)有3個(gè)子孫系數(shù),除最低頻以外的小波系數(shù)有4個(gè)子孫系數(shù)外,最高頻沒有子孫系數(shù)。兩層小波分解如圖3所示。
圖3經(jīng)小波分解的圖像示意圖
盡管圖像經(jīng)小波變換得到了新的小波圖像,但是和原始圖像的數(shù)據(jù)量是相同的。由此可知:通過小波變換不能實(shí)現(xiàn)對(duì)圖像的壓縮,還需再經(jīng)過其他的方法才能對(duì)圖像進(jìn)行壓縮。但是在圖像壓縮中依然使用小波變換的原因是因?yàn)樽儞Q后生成的小波圖像的特征和原始圖像不同,雖然變換后的總能量沒有發(fā)生變化,但能量分布發(fā)生了變化。變換后的圖像能量主要集中在低頻部分。
在基于小波變換的圖像編碼壓縮方法中,對(duì)小波基的選取非常重要。小波基[7]須具有如下的一些特征:
(1)正交性
經(jīng)小波變換處理的圖像會(huì)分解成攜帶數(shù)據(jù)的一些子帶,正交性會(huì)使這些數(shù)據(jù)落入互相正交的子空間中。這樣,會(huì)減少各子帶數(shù)據(jù)間的相關(guān)性。
(2)對(duì)稱性
在圖像壓縮中,尺度函數(shù)和小波函數(shù)的對(duì)稱或反對(duì)稱是十分重要的,因?yàn)樗蓸?gòu)建出緊支的正則小波基,且它的相位具有線性特征。
(3)正則性和消失距
消失距可以表示小波變換后的能量集中程度。消失距越大,圖像經(jīng)過小波分解后的能量越集中,則它的壓縮比就越有可能被提高。
嵌入式零樹小波編碼算法[8]是一種高效的小波圖像壓縮算法,是指基于圖像小波變換的數(shù)學(xué)結(jié)構(gòu),EZW是采用Z字形掃描,由零樹結(jié)構(gòu)結(jié)合逐次量化逼近來實(shí)現(xiàn)的。
3.1.1 嵌入式編碼
在碼流的開始部分插入一個(gè)低比特的碼流,把包括這段低碼流的碼流段截取出來后得到一段不缺失的更低碼率的碼流,這段碼流可參與重構(gòu)圖像。嵌入式編碼就是指編碼器輸送出的碼流有以上的特征。
3.1.2 零樹
零樹結(jié)構(gòu)就是指圖像經(jīng)過小波變換后,分解成為不同尺度的一系列子圖。根據(jù)閾值找到小于閾值的小波系數(shù),若與其有關(guān)的子孫小波系數(shù)也小于閾值,則這些系數(shù)就可以構(gòu)成零樹。構(gòu)建示意圖如圖4所示。
圖4零樹構(gòu)建示意圖
小波變換編碼中,根據(jù)給定的閾值T,若當(dāng)前小波系數(shù)絕對(duì)值大于給定的閾值T,此小波系數(shù)就為重要系數(shù)。小波系數(shù)一般可以分成4類:
(1)ZTR:當(dāng)前小波系數(shù)是重要系數(shù),子孫后代無重要系數(shù)。
(2)IZ:當(dāng)前小波系數(shù)是重要系數(shù),子孫后代有重要系數(shù)。
(3)POS:當(dāng)前小波系數(shù)是正重要系數(shù)。
(4)NEG:當(dāng)前小波系數(shù)是負(fù)重要系數(shù)。
3.1.3 Z字形掃描
零樹掃描根據(jù)人眼視覺的特性,以從上到下、從左到右的順序按低頻率到高頻率進(jìn)行掃描。具體Z字形掃描如圖5所示。
EZW算法主要包括以下3個(gè)重要的步驟:零樹預(yù)測(cè)、用零樹結(jié)構(gòu)編碼重要圖以及逐次逼近量化。
3.2.1 零樹預(yù)測(cè)
遲洋[9]提出零樹預(yù)測(cè)的概念:若一個(gè)小波系數(shù)X不重要,在更高頻率上相應(yīng)位置的小波系數(shù)也不重要,那么這些小波系數(shù)就會(huì)參與構(gòu)成一棵零樹。由于這種零樹結(jié)構(gòu)的存在,其子孫系數(shù)就不用參與編碼,位置信息就會(huì)大幅度減少,在一定程度上就可完成對(duì)數(shù)據(jù)的壓縮。
圖5 EZW的Z字形掃描順序
3.2.2 用零樹結(jié)構(gòu)編碼重要圖
首先確定初始T,然后經(jīng)過Z字形掃描來構(gòu)成零樹。利用上述提到的4種符號(hào)(ZTR、IZ、POS和NEG)按Z字形順序掃描小波系數(shù)形成有效值映射。具體流程圖如圖6所示。
圖6 有效值流程圖
3.2.3 逐次量化編碼
劉忠元[10]對(duì)逐次量化編碼進(jìn)行了介紹:初始閾值T0要滿足|Xmax|<2T0,Xmax是小波變換系數(shù)矩陣的最大絕對(duì)值,閾值序列的選取是按照Ti=Ti-1/2來選取的。SAQ和零樹結(jié)構(gòu)結(jié)合后,其工作方法為:先確定T,進(jìn)行第一遍主掃描,進(jìn)而形成主表;再進(jìn)行副掃描,細(xì)化有效值。按照閾值選取公式確定新的閾值,再進(jìn)行主掃描,這時(shí)已是有效值的位置無須再掃描,為了方便發(fā)現(xiàn)零樹只要將它們?cè)O(shè)為0;再進(jìn)入新一輪的副掃描,細(xì)化之前發(fā)現(xiàn)的所有有效值。然后一直按這種方法進(jìn)行處理,直至達(dá)到要求。
EZW編碼算法流程圖如圖7所示。
圖7 EZW編碼算法流程
實(shí)驗(yàn)在MATLAB 7.0的操作環(huán)境中進(jìn)行仿真。
對(duì)標(biāo)準(zhǔn)測(cè)試lena圖像進(jìn)行基于小波變換的圖像壓縮,根據(jù)閾值不同所得數(shù)據(jù)及選取的仿真圖像分別如表2及圖8所示。
表2 仿真所得部分?jǐn)?shù)據(jù)
由圖像質(zhì)量評(píng)價(jià)方法知道,對(duì)于圖像壓縮有主觀評(píng)價(jià)方法和客觀評(píng)價(jià)方法兩種。
按照主觀評(píng)價(jià)方法,可以直觀地去觀察圖像,通過人眼的觀看去判斷圖像質(zhì)量的好壞。通過對(duì)EZW算法進(jìn)行仿真所得的圖像來看:圖8(d)視覺效果明顯比圖8(a)的視覺效果要好,圖8(a)的許多細(xì)節(jié)非常模糊,不便于人眼的觀看;而圖8(d)的呈現(xiàn)就非常清晰,對(duì)于人眼視覺的觀看幾乎沒有影響。同樣,圖8(e)相對(duì)于圖8(b)來說,閾值在減少的同時(shí)人眼觀看效果也更好。
按照客觀評(píng)價(jià)方法,MSE和PSNR是圖像重要的評(píng)價(jià)參數(shù)。但由于均方誤差的計(jì)算公式相對(duì)簡(jiǎn)單,所以依靠均方誤差的評(píng)價(jià)結(jié)果并不可靠。由表2中所得仿真數(shù)據(jù)結(jié)果分析得出:隨著閾值的減小,均方誤差的變化沒有什么規(guī)律,不能作為圖像質(zhì)量的評(píng)價(jià)依據(jù)。而PSNR是最廣泛使用的評(píng)價(jià)畫質(zhì)的客觀測(cè)量法,PSNR值越大表示圖像失真越小。由表2明顯可以看出,圖8(e)的PSNR比圖8(c)的PSNR大,說明圖8(e)的畫質(zhì)更好,由仿真所得的圖像也可以直觀地感受到圖8(e)的圖像質(zhì)量更好。圖8(d)相對(duì)于圖8(a)也是這樣,在表2中的PSNR更大,在仿真圖像中的質(zhì)量也更好。
(a)T=256的重構(gòu)圖像 (b)T=128的重構(gòu)圖像 (c)T=64的重構(gòu)圖像
(d)T=4的重構(gòu)圖像 (e)T=2的重構(gòu)圖像
綜上所述,圖像經(jīng)過小波分解重構(gòu)后的質(zhì)量?jī)?yōu)良,說明經(jīng)過小波變換所損失的一些數(shù)據(jù)并沒有對(duì)圖像質(zhì)量造成損壞,也驗(yàn)證了基于小波變換的圖像壓縮算法的有效性。
嵌入式零樹小波編碼算法(EZW)在圖像壓縮中是一個(gè)優(yōu)良的算法,優(yōu)點(diǎn)很多。小波變換雖沒有直接地對(duì)圖像進(jìn)行壓縮,但經(jīng)過變換的圖像性質(zhì)發(fā)生改變,為圖像壓縮做了前期準(zhǔn)備。嵌入式編碼可以是截取碼流從開始到任意部分的碼流,方便控制圖像的壓縮程度。而其具有的零樹結(jié)構(gòu)因不參與編碼,所以也可對(duì)圖像進(jìn)行壓縮。
渭南師范學(xué)院學(xué)報(bào)2020年2期