袁建亮,朱遠平
(天津師范大學(xué)計算機與信息工程學(xué)院,天津300387)
在實際應(yīng)用中,觀察者往往只對圖像的某一部分感興趣,如圖片中的文字區(qū)域、醫(yī)學(xué)圖像中的病理部位、遙感圖像中的目標物體以及交通圖像中的汽車牌照等,這些區(qū)域統(tǒng)稱為感興趣區(qū)域(regions of interest,ROI),而感興趣以外的區(qū)域稱為背景區(qū)域(background,BG).感興趣區(qū)域壓縮重構(gòu)質(zhì)量的高低直接決定了對重構(gòu)圖像的整體評價.而JPEG2000是基于離散小波變換(discrete wavelet transform,DWT)的最新靜態(tài)圖像壓縮標準[1],它支持對ROI編碼.ROI壓縮編碼技術(shù)對圖像中的ROI進行無損壓縮或近似無損壓縮(不影響視覺觀察),對BG進行有損壓縮,既可以滿足人們對圖像的質(zhì)量要求,又可以降低圖像傳輸時間和節(jié)約存儲空間.圖像壓縮研究的主要方向有壓縮編碼結(jié)合人眼生理和心理視覺特性、基于分形幾何的分形編碼壓縮、基于模型的編碼技術(shù)、小波編碼以及基于人工神經(jīng)網(wǎng)絡(luò)的編碼等[2].目前關(guān)于圖像ROI提取的研究主要有2種方法:(1)利用圖像分割技術(shù)提取ROI;(2)從人眼視覺特性出發(fā),通過模擬人眼視覺特點,尋找特定的視覺敏感區(qū)域,并將這些視覺敏感區(qū)域排序作為ROI.根據(jù)人眼的視覺特性,Claudio[3]提出提取局部極大值的6種圖像處理算法.對ROI進行編碼的研究也非常多,最基本的是對圖像ROI采用(5/3)小波變換,對BG部分采用(9/7)小波變換的方法[4].近年來,針對ROI部分系數(shù)改進方法的研究成果較多.如Liu等提出的PSBshift[5]和MSBshift[6]就是利用JPEG2000標準中規(guī)定的2種ROI編碼方法的優(yōu)點,對ROI系數(shù)進行提升.還有一些針對ROI在不同領(lǐng)域應(yīng)用的研究,將ROI編碼用于圖像檢索[7]、身份證圖像的壓縮[8]以及圖像車牌識別系統(tǒng)的圖像存儲系統(tǒng)[9]等,但這些研究只單純地將ROI編碼思想與實際應(yīng)用相結(jié)合,沒有對算法本身進行改進.本研究首先對JPEG2000壓縮編碼原理進行系統(tǒng)分析,然后用改進的EBCOT方法實現(xiàn)了基于JPEG2000的ROI有損壓縮編碼,最后采用混合編程進行算法仿真.
JPEG2000壓縮過程主要包括圖像預(yù)處理、小波變換、量化和熵編碼4部分,首先對原始圖像進行預(yù)處理,然后進行小波變換得到小波系數(shù),再對小波系數(shù)進行量化和熵編碼.在解碼端,采用相反過程來重構(gòu)圖像.圖1和圖2分別為JPEG2000圖像編碼的編解碼流程[10-11].
圖2 基于DWT的JPEG2000解碼器流程Fig.2 Flowchart of JPEG2000decoder based on DWT
JPEG2000圖像編碼的具體流程為:
(1)DC電位平移.將原始圖像進行區(qū)域劃分,劃分為互不重疊的區(qū)域稱為片,將片中數(shù)據(jù)進行DC系數(shù)平移,將無符號數(shù)據(jù)轉(zhuǎn)換為有符號數(shù).
(2)分量變換.對具有多個分量的圖像先通過某種變換降低幾個分量之間的相關(guān)性,提高壓縮效率.目前JPEG2000主要是對RGB分量采用ICT(irreversible color transform)或 RCT(reversible color transform)將色彩信息轉(zhuǎn)換為頻道信息,解壓縮時進行相應(yīng)的逆變換恢復(fù)原分量的值.
ICT的定義為
式(1)中:Y為亮度分量;Ch為藍色色度分量;Cr為紅色色度分量.
RCT的定義為
式(2)中:Y為亮度分量;U和V均為色度分量.
(3)小波變換.不同于離散余弦變換(discrete cosine transform,DCT),小波變換具有對信號進行多分辨率分析(multi-resolution analysis,MRA)和反映信號局部特征的優(yōu)點.通過“變尺度”和“平移”運算,小波變換在空間域和頻域上為圖像提供大小可變的滑動窗口,在不同的尺度上對圖像進行分析,獲取圖像在不同空間域和頻域上的局部特征.對圖像信號進行多級小波變換,可得到不同空間分辨率的圖像逼近,使得壓縮碼流具有空間分辨率可分級的特性.這一特點允許壓縮碼流在不同的分辨率解碼器上解碼顯示[12].
JPEG2000采用的小波算法為小波提升算法,利用5/3或9/7濾波器組對分塊的圖像進行提升運算,前者可用于有損或無損圖像壓縮;后者只能用于有損圖像壓縮,其基本思想是將每一級濾波運算分解為分裂、預(yù)測和更新3個過程.二維Mallat算法采用了可分離的濾波器設(shè)計,相當(dāng)于分別對圖像數(shù)據(jù)的行和列作一維小波變換,對圖像(m×n)進行1次離散小波變換分解(式(3)~式(6))得到 4個子頻帶 a(LL)、v(LH)、h(HL)和 d(HH),其中 a(LL)表示圖像中的低頻信息,v(LH)表示垂直方向上的高頻信息,h(HL)表示水平方向上的高頻信息,d(HH)表示對角線方向上的高頻信息,N層小波分解就是不斷地對低頻信息a(LL)進行分解的過程.3層離散小波變換的頻率分布情況如圖3所示.
式(3)~式(6)中:a1代表低頻信息;h1代表水平方向上的高頻信息;v1代表垂直方向上的高頻信息;d1代表對角線上的高頻信息.
圖3 3層離散小波變換的頻率分布情況Fig.3 Frequency distribution of 3-layer DWT
(4)量化.經(jīng)過N級小波變換,得到(3N+1)個子帶.由于每個子帶的小波系數(shù)反映了圖像在不同頻域的特征,具有不同的統(tǒng)計和視覺特性,因此對每個子帶采用不同的量化步長進行量化.量化后的小波系數(shù)用符號和幅度值來表示.
(5)熵編碼.熵編碼在JPEG2000里實現(xiàn)的是優(yōu)化截斷的嵌入式塊編碼算法(embeded block coder with optimized truncation,EBCOT).該算法采用2層編碼結(jié)構(gòu),tile1編碼分為位平面編碼和基于上下文的算術(shù)編碼2部分,tile2編碼是分層、打包和形成碼流的過程.這層編碼完成了JPEG2000標準具有的許多優(yōu)良性能,如壓縮質(zhì)量和分辨率可分級性.分層裝配的目的是按率失真最優(yōu)的原則,選取合適的截斷點截斷每一分塊的壓縮碼流,裝配成具有分辨率可伸縮性(RLCP)或質(zhì)量可伸縮性(LRCP)的滿足預(yù)定編碼長度的最終碼流[13],如圖4所示.
圖4 熵編碼形成的碼流結(jié)構(gòu)Fig.4 Code-stream structure formed by entropy coding
在實際的處理過程中,要實現(xiàn)ROI以高于BG的質(zhì)量和優(yōu)先級編解碼,就要通過提升ROI對應(yīng)的小波系數(shù)或降低BG對應(yīng)的小波系數(shù)來實現(xiàn).實現(xiàn)ROI編碼就是在圖像編碼的基礎(chǔ)上增加ROI區(qū)域的確定過程、ROI模板生成過程、小波系數(shù)調(diào)整和ROI形狀及位置信息的編解碼過程以及由此引起對原算法的相應(yīng)調(diào)整過程.
最大偏移法實現(xiàn)ROI的編碼原理如下:(1)在空間域確定ROI區(qū)域;(2)在小波域生成ROI模板;(3)判斷所有屬于BG的小波系數(shù),確定其最大值max(bg)和 S,使 S=INT[log2|max(bg)|],INT 表示取整;(4)對所有屬于ROI的系數(shù)進行提升,即乘以2S使對于任意屬于ROI的小波系數(shù)都大于等于2S,然后對處理后的小波系數(shù)進行編碼.在解碼端,首先解碼S值,然后解碼所有的小波系數(shù),那些大于2S的ROI系數(shù)被平移到它們最初的值[14].
Max shift法與一般方法的比較情況如圖5所示.
圖5 Max shift法與一般方法的比較Fig.5 Compression of Max shift method and general method
與一般的基于尺度方法相比,Max shift方法的優(yōu)點是不用編碼ROI的形狀和位置信息(因為ROI系數(shù)被完全提升),可以對任意子帶進行提升,實現(xiàn)任意形狀的ROI編碼.但它也有對應(yīng)的不足之處,如在解碼BG之前必須完全解碼ROI,不能隨意調(diào)節(jié)S值以獲得相對ROI不同的優(yōu)先級.可以將此ROI編碼思想用于其他編碼算法以實現(xiàn)ROI編碼.
本研究采用改進的EBCOT方法來實現(xiàn)ROI的有損壓縮編碼,算法流程如圖6所示.
圖6 基于EBCOT方法實現(xiàn)ROI有損壓的碼流程圖Fig.6 Flowchart of ROI lossy compression based on EBCOT method
算法的具體步驟為:
(1)確定縮放比例S和圖像的ROI模板,找出屬于ROI區(qū)域的小波系數(shù).
(2)將小波系數(shù)表示成比特平面,然后對最高有效的S個位平面用EBCOT算法進行編碼.對于BG區(qū)域,始終編碼為0,并且重要性標志一直設(shè)為0;對于ROI區(qū)域,按照正常的編碼方法進行編碼.
(3)在前S個比特平面編碼完成后,再次從第1個比特平面開始編碼,對前S個比特平面進行第2次編碼.對ROI區(qū)域內(nèi)的小波系數(shù)跳過編碼,對其余小波系數(shù)采用正常的編碼方法進行編碼.
(4)對S比特平面以下的所有小波系數(shù)(包括ROI區(qū)域和BG區(qū)域)按照EBCOT編碼方法進行編碼.
在解碼端,由于沒有BG系數(shù)的移位,只需要按照碼流的順序進行解碼即可.因為ROI的編碼優(yōu)先于BG區(qū)域的編碼,所以當(dāng)碼流被截斷時,ROI的解碼質(zhì)量肯定高于BG的解碼質(zhì)量.
在有損編碼的算法中,由于刪除信息冗余度的同時也將不相干信息刪除,因此在解碼時不能精確恢復(fù)原始圖像,只能對原始圖像進行近似重構(gòu).假設(shè)原始圖像的像素個數(shù)為m×n,灰度f(xi,yi),i=(1,2,…,n),j=(1,2,…,m),經(jīng)過壓縮后重構(gòu)圖像的灰度為f′(xi,yi),通用的評價重構(gòu)圖像指標有MSE和PSNR.MSE是衡量“平均誤差”的一種較方便的方法,可以用于評價數(shù)據(jù)的變化程度,在圖像中反映的是壓縮圖像與原圖像對應(yīng)像素差值的累積和,在實際中,經(jīng)常用到的是峰值信噪比(PSNR).當(dāng)PSNR超過30db時,人的視覺很難分辨出原始圖像與重構(gòu)圖像的差別[15].
對于實際生活中的大量文本圖像,感興趣區(qū)域通常僅為文本內(nèi)容,對圖像信息要求并不高,所以在盡量保持文本內(nèi)容可讀的前提(低倍率壓縮ROI)下,高倍率壓縮BG信息,用最小的存儲空間來保存和傳輸文本圖像.基于此目標,在Visual Studio 2010和MATLAB R2011a環(huán)境下,對基于JPEG2000的ROI壓縮編碼算法進行實驗測試,選擇不同的圖像,手工指定圖像上的ROI,即文本區(qū)域,然后在壓縮時對ROI和BG分別指定不同的壓縮率獲得重構(gòu)圖像.將不同壓縮率的ROI與BG自由組合,得到不同壓縮率的重構(gòu)圖像.實驗中,選用大小為1600×1200×3的彩色圖像作為實驗圖像,假定文字部分作為ROI,其余部分為BG,如圖7所示,對其按不同的壓縮率進行壓縮處理.
圖7 原圖像和分割部分Fig.7 Original image and segment part
采用本研究提出的方法,對BG、ROI和最終的壓縮重構(gòu)圖像分別進行測試,得到不同壓縮率與PSNR之間的關(guān)系如表1所示.
表1 不同壓縮率與PSNR對比Tab.1 Comparison of different compression ratio and PSNR
由表1可以得出,本研究提出的算法對BG進行高倍率壓縮,對ROI進行低倍壓縮,使壓縮圖像在保持較高PSNR的前提下,提高壓縮倍率,達到了預(yù)期的效果.為進一步考察算法的準確性,本研究采用一般壓縮方法對圖7進行處理,2種方法的對比結(jié)果如圖8所示.
圖8 壓縮率與PSNR的關(guān)系圖Fig.8 Relationship diagram of compression ratio and PSNR
同時,分別采用一般壓縮方法和本研究方法,對6幅其他文本圖像進行處理,得到平均PSNR,結(jié)果如圖9所示.
圖9 多幅壓縮圖像壓縮率與PSNR的關(guān)系圖Fig.9 Relationship diagram of many reconstructed images compression ratio and PSNR
由圖8和圖9可以得出:(1)基于ROI壓縮方法的性能優(yōu)于一般壓縮方法,無論是高壓縮還是低壓縮,PSNR值均高0~2db.(2)隨著壓縮率的不斷提高,重構(gòu)圖像的PSNR值逐漸減低.對于BG,壓縮200~300倍后,依然具有很高的PSNR值;對于ROI區(qū)域,在允許部分信息損失的前提下,壓縮100~200倍后,視覺觀察變化不大;對于整幅圖像,壓縮50~200倍后,依然可以得到很好質(zhì)量的壓縮重構(gòu)圖像.
本研究提出一種基于JPEG2000感興趣區(qū)域圖像壓縮方法.該方法對不同區(qū)域采用不同的壓縮率,對ROI進行低倍率有損壓縮,對BG進行高倍率有損壓縮,可以保證重要信息不丟失的前提下,高倍率地壓縮BG圖像.仿真實驗結(jié)果表明:基于ROI壓縮方法的性能優(yōu)于一般壓縮方法,在獲得更高壓縮率的情況下,壓縮重構(gòu)圖像可以保持較高的峰值信噪比,很好地解決了壓縮率和圖像質(zhì)量之間的矛盾.
[1]CHRISTOPOULOS C A,SKODRAS A N,EBRAHIMI T.The JPEG 2000still image coding system:an overview[J].Trans Consumer Electron,2000,46(4):1103-1127.
[2] 沈蘭蓀.圖像編碼與異步傳輸[M].北京:人民郵電出版社,1998:87-122.
[3]PRIVITERA C M,STARK L W.Evaluating image processing algorithms that predict region of interest[J].Pattern Recognition Letters,1998,19(11):1037-1043.
[4] WATANABE O,KIYA H.ROI-based scalability for progressive transmission in JPEG2000coding[J].Circuits and Systems,2003,2:416-419.
[5]FUKUMA S,IKUTA S,ITO M,et al.An ROI image coding based on switching wavelet transform[J].Circuits and Systems,2003,2:420-423.
[6] LIU L J,F(xiàn)AN G L.A new method for JPEG2000region-of-interest image coding:most significant bitplanes shift[J].Circuits and Systems,2002,2:176-179.
[7] 唐俊華,閻保平.基于用戶定義感興趣區(qū)域的圖像檢索算法[J].計算機應(yīng)用,2002,22(11):20-22.
[8] 闕大順,李占,高勇.基于EZW與ROI混合編碼的身份照片壓縮算法研究[J].武漢理工大學(xué)學(xué)報:交通科學(xué)與工程版,2005,29(3):429-431.
[9] 劉海林,李燦平,王緒本.ROI技術(shù)在車牌識別系統(tǒng)中圖像存儲方面的應(yīng)用研究[J].物探化探計算技術(shù),2002,24(4):362-366.
[10]吳賢宇.基于EBCOT的JPEG2000壓縮方法概述[J].計算機與現(xiàn)代化,2008,157(9):106-109.
[11]岡薩雷斯,伍茲.?dāng)?shù)字圖像處理[M].3版.北京:電子工業(yè)出版社,2010:334-398.
[12]張旭東,盧國棟,馮?。畧D像編碼基礎(chǔ)和小波壓縮技術(shù)——原理、算法和標準[M].北京:清華大學(xué)出版社,2004.
[13]馮前進,陳武凡.基于內(nèi)嵌塊優(yōu)化等級樹(EBCOT)算法的圖像編碼[J].計算機學(xué)報,2002,25(11):1170-1174.
[14]魏琳.基于感興趣區(qū)域(ROI)圖像的壓縮編碼研究[D].重慶:重慶大學(xué),2007.
[15]張錚,王艷平,薛桂香.?dāng)?shù)字圖像處理與機器視覺:Visual C++與Matlab實現(xiàn)[M].北京:人民郵電出版社,2010.