林文浩
摘 要:為節(jié)省有限的存儲資源及傳輸帶寬,高效的圖像編碼方案尤為重要。KLT是Karhunen-Loeve Transform的縮寫,具有最理想的能量聚集特性,變換核基于源數(shù)據(jù)統(tǒng)計特性計算得出,可以適應(yīng)圖像多樣性。JPEG 全稱Joint Photographic Experts Group(聯(lián)合圖像專家小組),是第一個國際圖像壓縮標準,因其高效的編碼性能且易于實現(xiàn)而被廣泛應(yīng)用。JPEG圖像變換編碼采用DCT(Discrete Cosine Transform)。DCT是固定核,不適應(yīng)圖像的多樣性,在圖像編碼上有一定局限性。為此,提出了一種更為有效的變換方法——KLT與DCT自適應(yīng)變換,有效利用了圖像的統(tǒng)計特性,提高了編碼性能。經(jīng)驗證,該方法比主流的JPEG圖像編碼標準性能提高3.1%。
關(guān)鍵詞:JPEG;變換編碼;DCT;KLT;編碼性能
DOI:10.11907/rjdk.171268
中圖分類號:TP317.4 文獻標識碼:A 文章編號:1672-7800(2017)009-0192-03
Abstract:In order to save limited storage resources and transmission bandwidth, efficient image coding method is very important. KLT is the abbreviation of Karhunen-Loeve Transform, which has the best energy compaction characteristics. The transform kernel of KLT is calculated based on the statistical properties of the source data and can be adapted to the image diversity. JPEG (Joint Photographic Experts Group), is the first international image compression standard.Because of its efficient coding performance,easy to implement and widely used,JPEG image transform coding using DCT (Discrete Cosine Transform). DCT is a fixed kernel, not to adapt to the diversity of images, which has some limitations on image coding. A more effective transformation method-KLT and DCT adaptive transform is proposed, which effectively utilizes the statistical characteristics of the image and improves the coding performance. It is proven that the performance of this method is 3.1% higher than that of the mainstream JPEG image coding standard.
Key Words:JPEG; transform coding; DCT; KLT; coding performance
0 引言
變化編碼是圖像視頻編碼的重要步驟,原理是把圖像數(shù)據(jù)從時域轉(zhuǎn)換到頻域,使圖像的大部分信息聚集在低頻,也就是能量聚集性[1]。經(jīng)過后續(xù)量化處理,去除高頻少量信息,設(shè)置合適的量化參數(shù),熵編碼后數(shù)據(jù)比原始數(shù)據(jù)大大減少,經(jīng)解碼后覺察不到信息損失,與原圖像差別不大。KLT具有理想的能量聚集特性,是其它變換編碼性能的評判標準[2],在變換編碼應(yīng)用上一直是研究熱點。一般來說,KLT要在編碼時變換核,開銷較大,且沒有快速算法,所以使用受到限制。DCT是固定變換核,有相應(yīng)的快速算法,且能在Markov-1模型下接近KLT[3],成為目前應(yīng)用最廣泛的變換編碼。并非所有圖像符合Markov-1模型,現(xiàn)實世界中符合Markov-1模型的圖像大概只有50%[4]。
如何將KLT應(yīng)用在圖像視頻編碼系統(tǒng)是眾多研究者致力解決的問題[3-9]。茅一民、高西奇[5]用一類典型的指紋圖像樣本訓(xùn)練KLT矩陣;方凌江等[6]對高光譜圖像進行無監(jiān)督分類,針對波段對每一類進行KLT;牛萬紅等[7]根據(jù)KLT在多光譜遙感圖像中的應(yīng)用原理,分別設(shè)計了大分塊KLT算法和小分塊KLT算法;Matthias Kramm[8]基于分類KLT在群體圖像編碼上的應(yīng)用,Miaohui Wang等[9]在H.264中對采樣訓(xùn)練KLT矩陣,使編解碼端計算出一致結(jié)果,避免了KLT變換核的編碼傳送而造成的額外開銷;Moyuresh Biswas等[10]采用運動補償塊平移,旋轉(zhuǎn)計算KLT變換核,同樣避免了KLT變換核的編碼。
本文提出了一種在圖像上應(yīng)用KLT自適應(yīng)變換編碼方法,有效運用KLT特性,避免了編碼KL變換核帶來的額外開銷,顯著提高了圖像編碼性能。
編碼流程:首先采集大量樣本圖像,然后對圖像的每個塊分類,把相同類的塊聚集,訓(xùn)練KLT變換核。在圖像編碼系統(tǒng)中,編碼塊自適應(yīng)選擇相應(yīng)類的KLT或DCT進行變換編碼。圖1是編碼系統(tǒng)流程。
1 分類方法
本文采用的分類方法是一種類H.264幀內(nèi)預(yù)測簡化方案。H.264的幀內(nèi)預(yù)測是根據(jù)當前塊的左鄰塊與上鄰塊預(yù)測方向[11],而JPEG沒有幀間預(yù)測。KLT是一種基于數(shù)據(jù)統(tǒng)計特性的變換,本文利用塊的自身數(shù)據(jù)進行分類,能有效應(yīng)用于KLT。endprint
如圖2所示,中間的白色點是當前像素點,四周8個黑色點是其鄰近點,對于邊緣塊,不存在的鄰近點用像素值的量級平均值,即128代替。按照圖示的16個方向分類。用鄰域點及鄰域插值點(也就是不在整像素上的點,如b、c、d)來估算當前點u的值。估算方法:如s-i方向,u′ = (s+i)/2。為了方便,本文將這種估算稱作預(yù)測。插值點(如b、c、d)像素值用相鄰整像素a、e插值計算得出,離整像素越近權(quán)值越大。
c = 1/2a + 1/2e;
d = 3/4a + 1/4e;
d = 1/4a + 3/4e。
其它非整像素值f、g、h、k、m、n、p、q、r用相同方法算出。在某個方向上預(yù)測塊的所有像素點,16個方向都預(yù)測之后,使用MSE(Mean squared error)算法選擇最接近原始塊的方向作為塊的類。
2 KLT變換核訓(xùn)練
2.1 KLT原理
KLT是對向量x做的一個正交變換:y=ΦTx,目的是變換到y(tǒng)后去除數(shù)據(jù)相關(guān)性。其中,ΦT是x特征向量組成的矩陣,滿足ΦTΦ=I。當x都是實數(shù)時,ΦT是正交矩陣[12-14]。
用mx、my分別表示向量x、y的平均值,x、y的協(xié)方差矩陣分別記為∑x,∑y,y的協(xié)方差計算方法見式(1):∑y=E(yyT)-mymTy
(1) 將y=ΦTx帶入式(1),推導(dǎo)得:∑y=E[(ΦTx)(ΦTx)T]-(ΦTmx)(ΦTmx)T
=E[ΦT(xxT)Φ]-ΦTmxmTxΦ
=ΦT[E(xxT)-mxmTx]Φ
=ΦT∑xΦ
(2) 要使∑x對角化,矩陣ΦT由∑x的特征矢量組成,接下來求∑x特征值及特征向量。完成KLT變換后,∑y成為對角陣,也就是對于任意i≠j,有cov(xi,yj)=0;當i=j時,有cov(xi,yj)=λi,去除數(shù)據(jù)相關(guān)性。yi的方差σ2i與x協(xié)方差矩陣的第i個特征值相等,即σ2i=λi。
2.2 KLT訓(xùn)練
本文利用塊的方向特性訓(xùn)練KL變換核。訓(xùn)練樣本的每個塊分類之后,每個類都是含有若干塊的集合,每個集合都看作相同維度的矩陣,按照KLT原理,計算矩陣協(xié)方差,使協(xié)方差對角化,即去除了編碼塊各個像素之間的相關(guān)性。根據(jù)矩陣理論,矩陣對角化就是求矩陣的特征值和特征向量,為了變換域能量分布量化方便,這些特征值按從大到小順序排列,特征向量按照特征值順序排列,得到一個正交矩陣T,這個矩陣就是KL變換核。使用相同方法,計算出所有類的KL變換核。KLT計算復(fù)雜,但整個訓(xùn)練過程并不在編解碼過程中,所以不會對編解碼速度產(chǎn)生影響。這樣得到的是浮點KLT,將其縮放取整,可在變換編碼時保證精度,提高運算速度。
3 自適應(yīng)變換編碼
在JPEG標準中,DCT采用可分離變換,即先進行(列)變換,再進行列(行)變換。Y=M·X·MT,M·MT=I
(3) Y為變換系數(shù),X為源數(shù)據(jù),M為可分離DCT矩陣,MT為M的轉(zhuǎn)置,I為單位矩陣。本文KLT采用不可分離變換:Y=KX
(4) K為不可分離的KLT。但是不可分離的變換矩陣要比可分離矩陣大很多。比方說一個大小為N×N的可分離矩陣,對應(yīng)的不可分離矩陣大小會達到N2×N2 。
按照常規(guī)方法使用KLT時,先計算塊的分類,用相應(yīng)的KLT變換核進行變換編碼。這種方法弊端很大,塊的分類信息需要編碼,總共有16個類,每個塊的分類需要4比特編碼,以便解碼端用相應(yīng)的KLT變換核解碼。相對固定核DCT來說,每個塊多編碼4比特,很可能使結(jié)果產(chǎn)生負增益。
圖像的相鄰塊往往相關(guān)性很高,完全可以考慮從相鄰塊獲取分類信息。編碼時不能直接從相鄰塊獲取分類信息,因為解碼出的圖像與原始圖像存在誤差。為了保持編解碼端的一致性,在編碼一個塊后繼而重構(gòu)這個塊,作為下一個塊的分類依據(jù)。用預(yù)測分類相應(yīng)的KL變換核對下一塊進行變換編碼,但這樣預(yù)測得到的分類比較粗略,不能保證是否最適合KL變換核,也不能保證比DCT有更好的編碼性能??紤]到這一點,利用RDO(Rate Distortion Optimization)從KLT和DCT中選擇表現(xiàn)最佳者進行變換編碼。RDO公式見式(5): J=D+λ·R
(5) J為率失真代價,D為塊失真,R為塊編碼比特數(shù),λ為拉格朗日系數(shù)。失真就是重構(gòu)圖像與原始圖像的偏差,用MSE計算,見式(6):D=1N∑Ni=1(xi-x′i)2
(6) N為像素數(shù),xi為原始數(shù)據(jù),x′i為重構(gòu)數(shù)據(jù)。失真越小,重構(gòu)圖像與原始圖像偏差越小, D值就越小。較小的失真往往需要更多比特,RDO權(quán)衡了失真和比特率,是一種評價圖像視頻編碼性能的主流方法。比較失真代價,如果JKLT 4 重構(gòu) 圖像解碼是編碼的反過程,也可以稱作圖像重構(gòu)。圖像編碼后的大小及解碼后對原圖像的復(fù)原度是評價圖像編碼性能的重要指標,兩者很難同時達到要求。BD-Rate是綜合這兩個因素判斷圖像編碼性能的一個重要算法[16-17],本文實驗采用這種方法。 本文的編碼系統(tǒng)用到了重構(gòu)過程,每個塊在量化之后,進行反量化、反變換得到重構(gòu)塊,作為下一個塊的分類依據(jù)。在解碼系統(tǒng)中,根據(jù)解碼信息確定使用DCT或KLT反變換。 5 實驗結(jié)果 本文的編解碼系統(tǒng)除了變換編碼,其它部分均與JPEG標準相同,測試樣本及訓(xùn)練樣本為標準序列,均來自于網(wǎng)絡(luò)[10],樣本命名為kodim01~24。前7張圖像序列kodim01~07作為測試樣本,后面17張圖像序列kodim08~24為訓(xùn)練樣本。表1是自適應(yīng)變換,以JPEG為參考的BD碼率和PSNR的比較結(jié)果。
從結(jié)果可以看出,本文應(yīng)用的KLT自適應(yīng)變換編碼比目前主流的圖像編碼標準JPEG在性能上有明顯提升。
6 結(jié)語
本文訓(xùn)練了大量圖像序列以獲得適應(yīng)各種統(tǒng)計特性的KLT,在變換編碼時利用相鄰塊的相關(guān)性巧妙避免了分類信息的編碼,從而避免了大量碼流開銷,并自適應(yīng)選擇表現(xiàn)最佳的變換。從實驗結(jié)果看,本文的自適應(yīng)變換比固定DCT有明顯的改善。
參考文獻:
[1] R C GONZALEZ, R E WOODS.Digital image processing [C].Addison-Wesley Publishing Co, Boston, MA,1992.
[2] 翁默穎,奚寧.使用K-L變換進行圖像壓縮的一種新方法[J].華東師范大學(xué)學(xué)報:自然科學(xué)版,1996(3):63-71.
[3] R J CLARKE.Relation between the karhunen-loève and cosine transforms[J].Proc Inst Electr Eng F, 1981,128(6):359-360.
[4] TORRES-URGELL L, KIRLIN R L. Adaptive image compression using karhunen-loeve transform[J]. Signal Processing, 1990,21(4):303-313.
[5] 高西奇,茅一民.基于KLT的指紋圖像壓縮[J].通信學(xué)報,1994(1):113-115.
[6] 方凌江,粘永健,王迎春.基于分類KLT的高光譜圖像壓縮[J].計算機技術(shù)與發(fā)展,2013(11):82-85.
[7] 牛萬紅,趙靜,葛永斌.基于K-LT的高分辨率圖像的分塊算法[J].濟南大學(xué)學(xué)報:自然科學(xué)版,2014(3):198-203.
[8] KRAMM A M. Compression of image clusters using karhunen loeve transformations[J]. Proc Spie, 2007(6492):101-106.
[9] WANG M, NGAN K N, XU L. Efficient H.264/AVC video coding with adaptive transforms[J]. IEEE Transactions on Multimedia, 2014,16(4):933-946.
[10] BISWAS M, PICKERING M R, FRATER M R. Improved H.264-based video coding using an adaptive transform[C]. IEEE International Conference on Image Processing. IEEE, 2010:165-168.
[11] TEW Y, WONG K S. An overview of information hiding in H.264/AVC compressed video[J]. Circuits & Systems for Video Technology IEEE Transactions on, 2014, 24(2):305-319.
[12] MAYCOCK J, ELHINNEY C P M, MCDONALD J B, et al. Independent component analysis applied to digital holograms of three-dimensional objects[J]. Optical Information Systems III, 2005(5908):42-50.
[13] ZENG R, WU J, SHAO Z, et al. Color image classification via quaternion principal component analysis network[J]. Neurocomputing, 2015(216):416-428.
[14] SHI J, SONG W. Sparse principal component analysis with measurement errors[J]. Journal of Statistical Planning & Inference, 2016(175):87-99.
[15] WALDEMAR P, T A RAMSTAD.Hybrid KLT-SVD image compression[C]. IEEE International Conference on Acoustics, 2007:79-89.
[16] WANG Q, JI X, DAI Q, et al. Free viewpoint video coding with rate-distortion analysis[J]. IEEE Transactions on Circuits & Systems for Video Technology, 2012, 22(6):875-889.
[17] M KARCZEWICZ, Y YE, I CHONG. Rate distortion optimized quantization[C].document VCEG-AH21, ITU-T Q.6/SG16 VCEG, Antalya,Turkey,2008.
[18] KODAK.Kodak lossless true color image suite[EB/OL].http://r0k.us/graphics/kodak/.
(責任編輯:杜能鋼)endprint