摘 要: 介紹了JPEG圖像壓縮" title="圖像壓縮">圖像壓縮編碼技術(shù)的總體框架,提出了一種基于JPEG的分層漸進(jìn)圖像壓縮編碼" title="壓縮編碼">壓縮編碼方法,并通過實驗對該方法和傳統(tǒng)的JPEG圖像壓縮編碼方法進(jìn)行了比較。
關(guān)鍵詞: 圖像壓縮編碼技術(shù)? JPEG? 分層漸進(jìn)
?
實現(xiàn)圖像的漸進(jìn)壓縮編碼是目前靜止圖像壓縮編碼技術(shù)的必然要求。JPEG是當(dāng)前應(yīng)用最為廣泛的靜止圖像壓縮編碼標(biāo)準(zhǔn)。
1 JPEG基本框架
JPEG(Joint Photographic Experts Group)是一個由國際標(biāo)準(zhǔn)組織(ISO)和國際電信電報咨詢委員會(CCITT)聯(lián)合組成的從事靜態(tài)圖像壓縮標(biāo)準(zhǔn)制定的委員會[1],它制定了第一套國際靜態(tài)圖像壓縮標(biāo)準(zhǔn):ISO 10918-1,即JPEG。由于JPEG優(yōu)良的品質(zhì),使得它在短短的幾年內(nèi)就獲得極大的成功,目前網(wǎng)站上百分之八十的圖像都是采用JPEG的壓縮標(biāo)準(zhǔn)。JPEG標(biāo)準(zhǔn)的基本框架分為編碼部分和解碼部分,其基本流程分別如圖1和圖2所示。
JPEG標(biāo)準(zhǔn)定義了四種編碼方式[2]:順序編碼、無損編碼、分級編碼和漸進(jìn)編碼。漸進(jìn)編碼模式是JPEG標(biāo)準(zhǔn)的選項。傳統(tǒng)的JPEG漸進(jìn)編碼模式的基本原理是[3]:將高頻DCT系數(shù)塊寫入壓縮碼流(掃描),解碼讀取和處理每個掃描得到的圖像的輪廓,即利用前面的掃描快速產(chǎn)生一幅模糊的低質(zhì)量圖像預(yù)覽,然后根據(jù)需要再決定是繼續(xù)掃描還是停止。這種模式的特點是可以根據(jù)壓縮圖像的質(zhì)量隨時中止壓縮和傳送,可以提高圖像的壓縮和傳輸效率。傳統(tǒng)的JPEG漸進(jìn)編碼模式比較適合中高碼率的圖像壓縮和傳送,但是在中低碼率" title="低碼率">低碼率的情況下,不適合圖像的壓縮效率和圖像壓縮質(zhì)量的需求,特別是在0.25bpp碼率以下時,圖像質(zhì)量將出現(xiàn)嚴(yán)重失真[4]。這是由于在中低碼率下,JPEG采用的DCT變換方法的細(xì)節(jié)分辨能力減弱,使得數(shù)據(jù)之間還存在比較多的冗余,成為JPEG漸進(jìn)編碼模式發(fā)展的一個重大瓶頸。本文針對傳統(tǒng)的JPEG漸進(jìn)編碼模式的問題,在保留JPEG框架的基礎(chǔ)上,提出了一種新的、適合于中低碼率的靜止圖像編碼方法——分層漸進(jìn)圖像壓縮編碼方法MPCC(Multilayer & Progressive Compression & Coding Method For Still Image)。
2 MPCC的設(shè)計與實驗
2.1 MPCC方法的總體設(shè)計
MPCC方法仍然采用了JPEG的基本流程模型,其總體設(shè)計框架如圖3所示。
從圖3可以看出,MPCC方法總體設(shè)計流程是:(1)對經(jīng)過顏色轉(zhuǎn)換和采樣的原始圖像進(jìn)行MDCT變換,得到具有層次結(jié)構(gòu)的MDCT系數(shù)。(2)根據(jù)MDCT系數(shù)的空間層次等特點進(jìn)行SPIHT編碼,逐步得到包含圖像信息的壓縮碼流。(3)對壓縮碼流進(jìn)行熵編碼" title="熵編碼">熵編碼(行程編碼),得到最終的壓縮碼流,再進(jìn)行傳送。同時,在解碼端同步進(jìn)行解碼(步驟與編碼端相反),根據(jù)圖像的質(zhì)量隨時可以中止圖像的傳送。下面將詳細(xì)論述MPCC設(shè)計流程的主要步驟。
2.1.1 MDCT變換
為了能夠減少圖像數(shù)據(jù)的冗余性,以達(dá)到有效壓縮圖像的目的,先要對圖像數(shù)據(jù)進(jìn)行空間-頻率的轉(zhuǎn)換。傳統(tǒng)的JPEG漸進(jìn)模式采用的是DCT變換[5-6],其變換公式如下:
考慮到在后續(xù)SPIHT編碼中的嵌入式編碼的特點以及進(jìn)一步增強(qiáng)圖像的細(xì)節(jié)分辨能力和減少圖像數(shù)據(jù)之間的冗余性,本文采用了以下的改進(jìn)變換方法,即多層MDCT(Multilayer-DCT)變換,如圖4所示。
(1)對輸入M×N大小的原始圖像的數(shù)據(jù)進(jìn)行第一次DCT變換。經(jīng)過第一次DCT變換后,原始圖像的數(shù)據(jù)被分解成四個子帶域:LL1、LH1、HL1、HH1。其中,LL1域是圖像的低頻系數(shù),圖像的能量主要集中在這一部分;LH1、HL1、HH1域是圖像的高頻系數(shù),分別表示圖像的水平、垂直和對角線部分的能量。每個子帶域經(jīng)過DCT逆變" title="逆變">逆變換后都可以還原成一幅完整的圖像,但是反映了原始圖像的不同細(xì)節(jié)信息。
(2)取LL1域做DCT逆變換,還原成原始圖像數(shù)據(jù),然后再對其進(jìn)行第二次DCT變換。經(jīng)過第二次DCT變換后,LL1同樣被分解成四個子帶域:LL2、LH2、HL2、HH2。每個子帶域經(jīng)過DCT逆變換后也都是一幅完整的圖像。
(3)取LL2域做DCT逆變換,同樣也還原成原始圖像的數(shù)據(jù),然后對其進(jìn)行第三次DCT變換。經(jīng)過第三次DCT變換后,LL2同樣被分解成四個子帶域:LL3、LH3、HL3、HH3。每個子帶域經(jīng)過DCT逆變換后也都是一幅完整的圖像。
通過上述MDCT變換得到的圖像系數(shù),具有了這樣的特征:較低層子帶對應(yīng)較高的圖像頻率分量;較高層子帶對應(yīng)較低的圖像頻率分量,并集中了圖像的大部分能量。從數(shù)據(jù)的數(shù)值來看,從高層往低層移動時,能夠預(yù)料到細(xì)節(jié)系數(shù)會顯著變小。
2.1.2 SPIHT編碼算法
分層樹中的集分割SPIHT(Set Partioning In Hierarchical Trees)編碼算法[7],首先是和小波變換相結(jié)合的,非常適合具有空間層次相似性的變換方法。SPIHT的重要特點就是在解碼的任意時刻,所顯示的圖像質(zhì)量都是當(dāng)時解碼器輸入位數(shù)所能得到的最佳圖像。
SPIHT的基本思想是:假設(shè)原始圖像P的像素為Pi,j,其經(jīng)過某種適當(dāng)變換T后的系數(shù)為Ci,j,變換后的圖像為C。該步驟可表示為:C=T(P)。在漸進(jìn)傳輸方法中,解碼器首先將重建圖像C′設(shè)置為零,然后輸入并解碼接收到的經(jīng)過變換的系數(shù),生成改進(jìn)的重建圖像C′,再用C′生成更好質(zhì)量的圖像P′。該步驟可以表示為:P′=T-1(C′)。
空間方向樹是SPIHT中使用的一個數(shù)據(jù)結(jié)構(gòu),它類似于子帶金字塔結(jié)構(gòu)。圖4是一個32×32的系數(shù)方塊。在最高層的LL3中有16個系數(shù),被分成4個2×2的小組,每個小組中除了第一個系數(shù)外,其他3個系數(shù)都在其他層有子孫對應(yīng)。例如:圖4 LL3中第2號系數(shù),在HL3中有2×2=4個子孫,對應(yīng)在HL2中有4×4=16個子孫,在HL1中則對應(yīng)有16×16=256個子孫。假設(shè)2號系數(shù)坐標(biāo)為(i,j),則直接子孫的坐標(biāo)對應(yīng)為(2i,2j)、(2i,2j+1)、(2i+1,2j)、(2i+1,2j+1),下層子孫依次類推。由此對應(yīng)產(chǎn)生了一棵以(i,j)為根,以其他層對應(yīng)系數(shù)為子孫的樹。將系數(shù)(i,j)對應(yīng)的所有子孫的坐標(biāo)集合定義為D(i,j),即D類樹。將系數(shù)(i,j)對應(yīng)的所有孫子(不包含4個子系數(shù))的坐標(biāo)集合定義為L(i,j),即L類樹。限于篇幅,SPIHT編碼詳細(xì)算法在后面一并介紹,并可以參見參考文獻(xiàn)[6]。
2.2 MPCC方法的編碼器設(shè)計
MPCC方法的編碼器的基本流程見圖3,其具體算法流程如下:
(1)對經(jīng)過顏色轉(zhuǎn)換和采樣的原始圖像P進(jìn)行MDCT變換,得到具有層次結(jié)構(gòu)的MDCT系數(shù)。根據(jù)需要,MPCC可以是對整幅圖P進(jìn)行MDCT變換,也可以是先劃分為一個32×32的圖像塊B,之后再進(jìn)行MDCT變換。本文采用后一種方式。經(jīng)過MDCT變換后的系數(shù)見圖4。
(2)依次對32×32分塊進(jìn)行SPIHT編碼。
?、僭O(shè)定初始閾值為2n,并傳輸n到解碼端。令:LIP為所有根節(jié)點系數(shù)(3/4個LL3中的系數(shù)),LIS為所有樹,LSP為空集合(用坐標(biāo)代替各系數(shù))。
?、趯τ贚L3中的另外1/4個系數(shù),判定是否顯著,如果顯著,則輸出1和該系數(shù)的符號位;否則輸出0。
?、叟判蜻^程:檢測LIP中的系數(shù)是否顯著。如果顯著,則輸出1和該系數(shù)的符號位,并將系數(shù)移入LSP中;否則輸出0。
?、芨鶕?jù)樹的類型檢測LIS中所有樹是否顯著。
(a)對于D類樹:如果不顯著,就輸出0;如果顯著,就輸出1,并編碼它的子節(jié)點。如果子節(jié)點顯著,就輸出1和符號位,并移入LSP中;如果不顯著,就輸出0,并將其加到LIP的末尾。如果子節(jié)點有子孫,就將樹作為L類移入LIS中;否則從LIS中移出。
(b)對于L類樹:如果不顯著,就輸出0;如果顯著,就輸出1,并將每個子節(jié)點作為D類的一項加到LIS末尾,從LIS中移去父樹。
?、蒽鼐幋a:考慮到輸出的位流具有的分布特點,可以對其進(jìn)行熵編碼(行程編碼)后,再傳輸給解碼器。
?、扪h(huán):閾值減半,即n減1,如果需要則循環(huán)上述步驟;如果收到解碼端中止傳輸?shù)男盘?,則停止循環(huán),結(jié)束編碼。
2.3 MPCC方法的解碼器設(shè)計
MPCC方法的解碼器與編碼器的設(shè)計時必須考慮同步工作的問題,這是SPIHT編碼的關(guān)鍵,其基本流程可參見圖3,具體算法流程如下:
(1)接收編碼器傳送的n,并確定2n為閾值。采用和編碼器一樣的方法初始化:令LIP為所有根節(jié)點系數(shù)(3/4個LL3中的系數(shù)),LIS為所有樹,LSP為空集合(同樣用坐標(biāo)代替各系數(shù))。
(2)依次接收編碼器傳送的各分塊的有效信息。
?、賹邮盏囊粋€分塊的信息流進(jìn)行熵編碼(解碼),得到還原的一次迭代的信息。②根據(jù)信息組織進(jìn)行編碼器同樣的變化(步驟同編碼器的第2步)。③根據(jù)LSP中的坐標(biāo)進(jìn)行系數(shù)第n位的重建。注意:隨著n的減小,重建的位數(shù)也在減小,但前幾次的位數(shù)都保留下來了。由此才能夠?qū)崿F(xiàn)漸進(jìn)的圖像傳輸。④根據(jù)圖像還原的質(zhì)量,決定中止編碼器繼續(xù)編碼還是繼續(xù)接受編碼信息。本文采用均方差(MSE)失真(公式2)來判定圖像質(zhì)量。
2.4 MPCC方法的實驗結(jié)論
按照上面所述的MPCC方法,在matlab環(huán)境下對MPCC方法和傳統(tǒng)的JPEG漸進(jìn)模式進(jìn)行了對比仿真實驗。實驗結(jié)果如下:
在0.25bpp的低碼率下,兩者的實驗結(jié)果如圖5所示。在低碼率下,傳統(tǒng)的JPEG漸進(jìn)模式“方塊”效應(yīng)十分明顯,但圖像效果幾乎不可以接受;而MPCC方法“方塊”效應(yīng)不明顯,但圖像質(zhì)量卻明顯優(yōu)于傳統(tǒng)的JPEG漸進(jìn)模式。
MPCC方法的漸進(jìn)仿真實驗結(jié)果如圖6所示。漸進(jìn)效果明顯,非常適合網(wǎng)絡(luò)上圖像的傳輸。
最后用著名的512×512×8的灰度圖Lena作為原始圖像進(jìn)行峰值壓縮比(PSNR)的比較,實驗結(jié)果參考值如表1所示。由表1可知,MPCC也優(yōu)于傳統(tǒng)的JPEG漸進(jìn)模式。
?
表1 實驗結(jié)果參考值
碼率(bpp) | MPCC(dB) | 傳統(tǒng)的JPEG漸進(jìn)模式(dB) |
0.25 | 31.9 | 31.6 |
0.75 |
37.4 |
36.5 |
1.00 | 39.7 | 37.9 |
MPCC是為了適應(yīng)網(wǎng)絡(luò)圖像漸進(jìn)傳輸而提出的一種綜合了MDCT、SPIHT和熵編碼等多項技術(shù)的新的編碼方法,它依然采用了廣泛應(yīng)用的JPEG框架。從實驗結(jié)果來看,MPCC方法在中低碼率時,圖像的壓縮效果明顯優(yōu)于傳統(tǒng)的JPEG漸進(jìn)模式。在超低碼率時(一般指0.25bpp以下),MPCC的圖像壓縮效果遜于基于小波變換的JPEG2000(該標(biāo)準(zhǔn)正在完善之中,尚未廣泛應(yīng)用);但是在中低碼率時,在圖像質(zhì)量接近的情況下,MPCC的圖像壓縮速度卻優(yōu)于JPEG2000。
參考文獻(xiàn)
[1] 吳樂南,徐孟俠.數(shù)據(jù)壓縮[M].北京:電子工業(yè)出版社,2000
[2] 精英科技.視頻壓縮與音頻壓縮編碼技術(shù)[M].北京:中國電力出版社,2001
[3] SALOMON D.Data compression-the complete reference,second edition[M].New York:Springer-Verlag Inc.,2000.
[4] 丁貴廣.新一代靜止圖像壓縮編碼標(biāo)準(zhǔn):JPEG2000概述[EB/OL].http://xllw.cn/n175c13.aspx,2006.
[5] PENNEBAKER W B,MITCHELL J L.JPEG still image data compression standard[S].New York:Van Nostrand,1992.IEEE Trans.Circuits Syst.Video Technol.1995,6(8).
[6] Rao K R,Yip P.Discrete cosine transform-algorithms,advantages,application[M].London:Academic Press,1999.
[7] Siad A,Pearlman W A.A new fast and efficient image codec based on set partioning in hierarchical trees[J].IEEE Trans-actions on Circuits and Systems for Video Technology,1996,6(6).
[8] 何斌,馬天予,王運堅,等.數(shù)字圖像處理[M].北京:人民 郵電出版社,2001.(收稿日期:2006-12-20)