李動(dòng)節(jié),朱仲杰,王玉兒
(1. 浙江萬里學(xué)院 寧波市DSP重點(diǎn)實(shí)驗(yàn)室,浙江 寧波 315100;2. 鄭州大學(xué) 物理工程學(xué)院,河南 鄭州 450001)
嵌入式編碼能夠?qū)崿F(xiàn)一次壓縮,而解壓重建出多幅不同質(zhì)量和分辨率要求的圖像,近年來受到廣泛關(guān)注,是當(dāng)前圖像編碼領(lǐng)域的一個(gè)研究熱點(diǎn)。其中,EBCOT算法是最新的一種基于小波變換的嵌入式圖像編碼方法[1,2]。它具有較高的壓縮效率并支持 SNR可伸縮性和分辨率可伸縮性編碼。EBCOT算法一般包括2個(gè)階段:T1編碼和T2編碼。 在T1階段,主要完成小波變換、位平面建模和自適應(yīng)二進(jìn)制算術(shù)編碼。在T2階段,根據(jù)給定碼率基于率失真優(yōu)化理論對壓縮碼流進(jìn)行優(yōu)化截取和重新組裝以得到最終壓縮碼流。但傳統(tǒng)EBCOT算法是以碼塊為基本編碼單元,對圖像內(nèi)所有碼塊采用相同的編碼策略,沒有考慮圖像中不同對象的視覺感知特性。然而,一般來說,圖像中不同對象對人眼的視覺重要性是不相同的,在實(shí)際應(yīng)用中,觀察者常常只對圖像的某些或某類對象感興趣。例如,在醫(yī)學(xué)研究中,醫(yī)生只對病理特征對象感興趣;在遙感圖像分析中,觀察者只對特定目標(biāo)感興趣等。因此,在圖像編碼中,如果考慮人的視覺感知特性,將圖像分割成具有不同視覺興趣的對象,以視覺對象為編碼單元,對不同視覺對象采用不同的編碼策略進(jìn)行獨(dú)立編碼,就可以提高編碼后重構(gòu)圖像的主觀視覺感效果。
同時(shí),在實(shí)際應(yīng)用中,由于受存儲空間和傳輸帶寬的限制,往往要在給定碼率下對圖像進(jìn)行編碼和傳輸。因此,碼率控制是圖像編碼中的一個(gè)關(guān)鍵問題。傳統(tǒng) EBCOT算法采用壓縮后率失真優(yōu)化(PCRD)算法對T1編碼后的碼流進(jìn)行優(yōu)化截取和重裝[3,4]。但PCRD算法存儲量和計(jì)算量比較大,系統(tǒng)實(shí)時(shí)性差。因此,許多學(xué)者針對這方面進(jìn)行研究,提出了一些改進(jìn)方法,主要包括:基于率失真斜率模型的算法[5]、基于預(yù)測的實(shí)時(shí)截?cái)嗨惴╗6,7]、基于動(dòng)態(tài)調(diào)整的控制算法[8,9]等。這些算法在減少編碼計(jì)算量和存儲量方面有一定的貢獻(xiàn),但它們?nèi)匀皇腔趬K基的碼率控制算法,沒有考慮人的視覺感知特性和圖像重要對象的優(yōu)先編碼和傳輸問題,不能應(yīng)用于對象基的編碼算法。
本文在分析EBCOT算法的特點(diǎn)和人眼視覺特性的基礎(chǔ)上,提出一種面向?qū)ο蠡度胧骄幋a的碼率控制算法。算法首先基于平均熵理論估計(jì)各視覺對象的重要性并確定編碼優(yōu)先級,依據(jù)優(yōu)先級對視覺對象進(jìn)行編碼,得到各自獨(dú)立的碼流。最后,以小波子帶為碼率控制單元,在給定碼率下以對對象碼流進(jìn)行優(yōu)化截取和重裝。實(shí)驗(yàn)結(jié)果表明,所提算法可以對不同重要對象進(jìn)行差異化編碼和傳輸,與基于PCRD算法的碼率控制方法相比,新算法能提高重構(gòu)圖像的整體視覺效果。
本文首先提出了對象基嵌入式圖像編碼方案(EOCOT)。該方案將圖像分割成具有不同視覺興趣的對象,對不同視覺對象進(jìn)行獨(dú)立編碼,生成各自獨(dú)立的碼流。EOCOT算法系統(tǒng)框架如圖1所示。算法首先將原圖像分割為不同的視覺對象Oi(i= 1,2,3,…,n),然后對圖像進(jìn)行 DC變換和三級離散小波變換(DWT),得到各視覺對象在各子帶內(nèi)的小波系數(shù)分布。接下來以每個(gè)視覺對象為基本編碼單元,按照分辨率由低到高的順序依次對各子帶內(nèi)所有視覺對象進(jìn)行獨(dú)立位平面建模和二進(jìn)制算術(shù)編碼,得到各個(gè)對象的嵌入式碼流。最后根據(jù)給定碼率、對象優(yōu)先級等參數(shù)指標(biāo)對所有對象壓縮碼流進(jìn)行優(yōu)化截取和重新組裝,得到給定碼率下的最終壓縮碼流。
在實(shí)際應(yīng)用中,由于受存儲空間和傳輸帶寬的限制,往往要在給定碼率下對圖像進(jìn)行編碼和傳輸。因此,碼率控制是圖像編碼中的一個(gè)關(guān)鍵問題。本文基于EOCOT算法的特點(diǎn),結(jié)合人眼視覺感知特性,提出一種新的嵌入式碼率控制算法。算法基于平均熵理論估計(jì)各視覺對象的重要性和編碼優(yōu)先級,依據(jù)優(yōu)先級對視覺對象進(jìn)行編碼和碼率控制,實(shí)現(xiàn)重要對象的優(yōu)先編碼和傳輸,從而提高重建圖像的質(zhì)量。算法的具體流程如圖2所示。整個(gè)算法可以分為預(yù)處理、子帶目標(biāo)碼率分配、熵編碼和率失真優(yōu)化截取4個(gè)主要步驟。對每個(gè)主要步驟簡介如下。
圖1 EOCOT系統(tǒng)
1) 預(yù)處理
在預(yù)處理階段,首先將圖像分割成不同的視覺對象Oi(i= 1 ,2,3,… ,n)。本文使用語義對象分割算法進(jìn)行分割[10]。然后,基于平均熵理論對視覺對象進(jìn)行平均熵估計(jì)以確定其編碼優(yōu)先級。
圖2 碼率控制算法流程
視覺生理學(xué)和視覺心理學(xué)的研究成果顯示,圖像編碼中的主要人眼視覺特性包括[11]:人眼對圖像平滑區(qū)信息的失真比較敏感;人眼對圖像邊緣區(qū)信息的失真很敏感;人眼對圖像紋理區(qū)信息的失真不敏感。而圖像的平滑區(qū)、邊緣區(qū)、紋理區(qū)的敏感程度與其信息熵緊密相關(guān)。因此,各視覺對象的重要性可以通過分析其信息熵來確定。理論上,信息熵可以根據(jù)香農(nóng)定理進(jìn)行精確計(jì)算,但計(jì)算量大。在實(shí)際中通常采用近似方法進(jìn)行熵估計(jì),比較實(shí)用的熵估計(jì)方法有2種[12]:一種是基于預(yù)測模板的熵估計(jì)法,一種是基于邊緣檢測的熵估計(jì)法。前者是在圖像域加一個(gè)預(yù)測模板,對像素預(yù)測值與原值進(jìn)行差值,然后用累加的差值表示圖像的熵值大小,該方法運(yùn)算量小,適合實(shí)時(shí)操作。后者是在邊緣檢測的基礎(chǔ)上進(jìn)行熵估計(jì),檢測出的邊緣越豐富,其圖像熵就越大。該方法運(yùn)算量也很大,不宜實(shí)時(shí)操作。所以本文采用第一種方法,預(yù)測公式為
其中,xm,n為圖像域內(nèi)點(diǎn)[m,n]處的像素值,為點(diǎn)[m+ 1 ,n+ 1 ]處的預(yù)測像素值。如果預(yù)測的像素為圖像的第一行或第一列,預(yù)測值為前一個(gè)像素點(diǎn)的值。此時(shí),對象的平均熵為
其中,M為對象iO包含的像素點(diǎn)數(shù)。整個(gè)圖像的平均熵為
令iOP表示對象iO的優(yōu)先級,由式(4)給出:
2) 子帶目標(biāo)碼率分配
為了給子帶分配目標(biāo)碼率,首先計(jì)算小波子帶重要性權(quán)值 []W j:
其中,j為子帶標(biāo)號,N為圖像所有像素點(diǎn)集合,xm,n為點(diǎn)[m,n]的像素值。然后,基于圖像總目標(biāo)碼率Rtarget,預(yù)分配當(dāng)前子帶的目標(biāo)碼率:
3) 熵編碼
對子帶分配目標(biāo)碼率后,對子帶內(nèi)的視覺對象按照優(yōu)先級依次進(jìn)行位平面建模和二進(jìn)制算術(shù)編碼,并確定候選截取點(diǎn)集合。對每個(gè)視覺對象,按照從最高位平面到最低位平面的順序進(jìn)行位平面建模。在每個(gè)位平面內(nèi)依次按照重要性傳播通道、幅值細(xì)化通道和清除通道的順序進(jìn)行掃描編碼。為減少對非編碼對象區(qū)域零位的編碼,只對編碼對象的位置信息掩模圖內(nèi)的系數(shù)進(jìn)行掃描編碼。在進(jìn)行通道編碼時(shí),每編碼一個(gè)系數(shù),查失真估計(jì)表得到該位的編碼失真增量[13],累加通道內(nèi)的所有系數(shù)的失真增量得到該通道失真增量。
位平面建模后只是得到每個(gè)小波系數(shù)比特的上下文和二進(jìn)制比特符號,并沒有實(shí)現(xiàn)壓縮。要實(shí)現(xiàn)壓縮必須對二進(jìn)制符號及其上下文進(jìn)行進(jìn)一步的熵編碼。本文以對象通道為單位進(jìn)行算術(shù)編碼。完成一個(gè)對象的所有通道編碼后,采用只剔除當(dāng)前奇異點(diǎn)的方法確定候選截取點(diǎn)集合[14],同時(shí)存儲率失真斜率。
4) 率失真優(yōu)化截取
設(shè)子帶j內(nèi)對象Oi在T1編碼產(chǎn)生的內(nèi)嵌比特流的碼率截止到,ni是某個(gè)截取點(diǎn),則子帶j內(nèi)總的碼率為
設(shè)對象Oi的系數(shù)在恢復(fù)圖像中產(chǎn)生的失真為,同時(shí)假設(shè)對象小波系數(shù)的失真測度是加性的,即
其中,Dj為子帶j的失真大小。通常失真可以用加權(quán)均方差(MSE)進(jìn)行計(jì)算:
其中,[m,n]為重建的視覺對象的系數(shù)值,為子帶j的加權(quán)系數(shù)。
其中,λ為拉格朗日乘子。率失真優(yōu)化截取的關(guān)鍵是尋找一個(gè)合適的λ使得式(10)最小,并滿足本文采用二分法尋找最佳斜率門限子帶內(nèi)所有對象的率失真斜率不小于的編碼通道碼字被包含進(jìn)最終碼流,而其余編碼通道的碼字則被丟棄。完成一個(gè)子帶編碼和最終碼流截取后,以子帶為單位存儲對象最優(yōu)截?cái)啻a流。然后,進(jìn)行下一個(gè)未編碼子帶的編碼和優(yōu)化截取,直到完成整幅圖像所有子帶的編碼。最終碼流按子帶分辨率從低頻到高頻,按優(yōu)先級由高到低對對象碼流依次存儲。最低分辨率子帶碼流出現(xiàn)在結(jié)果碼流的起始部分。在子帶內(nèi),視覺對象的碼流按優(yōu)先級大小排序,最高優(yōu)先級的對象碼流出現(xiàn)在子帶碼流的起始部分。
為驗(yàn)證本文算法的可行性和有效性,基于VC6.0軟件平臺,進(jìn)行了仿真測試,并與PCRD算法結(jié)果進(jìn)行對比分析。測試圖像從 Google圖像庫中隨機(jī)搜索得到,離散小波變換采用三級雙正交9/7小波。實(shí)驗(yàn)中重點(diǎn)分析不同碼率下圖像的重構(gòu)質(zhì)量,采用信噪比增量指標(biāo),定義如下:其中, 1psnr為PCRD算法下重構(gòu)圖像的峰值信噪比, 2psnr為本文算法重構(gòu)圖像的峰值信噪比。
圖3 圖像Cell在不同壓縮比下PCRD算法重構(gòu)圖像
圖4 圖像Cell在不同壓縮比下用本文算法重構(gòu)圖像
圖5 PCRD算法下Flower中重要視覺對象在不同壓縮比下的編碼重建結(jié)果
圖6 本文算法下Flower中重要視覺對象在不同壓縮比下的編碼重建結(jié)果
表1 部分測試圖像的重建圖像質(zhì)量對比實(shí)驗(yàn)結(jié)果
表2 部分重要視覺對象重構(gòu)圖像質(zhì)量對比結(jié)果
在分析研究現(xiàn)有塊基嵌入式編碼碼率算法的基礎(chǔ)上,結(jié)合人眼視覺感知特性,提出一種面向?qū)ο蠡度胧骄幋a的碼率控制算法。算法以視覺對象為基本編解碼單元,可以根據(jù)視覺重要性對不同重要的視覺對象進(jìn)行差異化編碼,可以優(yōu)先編碼和傳輸重要視覺對象。算法可以在給定碼率下對圖像進(jìn)行精確地碼率控制,與傳統(tǒng)的 PCRD碼率控制算法相比,新算法能提高重構(gòu)圖像的整體視覺效果。
[1] ZHU W W, LIU L Z. Optimization of the EBCOT algorithm in JPEG 2000[J]. Computer Applications, 2008, 28(6):210-212.
[2] TAUBMAN D. High performance scalable image compression with EBCOT[J]. IEEE Transactions on Image Processing, 2000, 9(7):1158-1170.
[3] HSIN H C, SUNG T Y. A simple rate distortion estimation for embedded block coding[A]. Proceedings of the 9th WSEAS International Conference on Multimedia Systems & Signal Processing[C]. Wisconsin, USA, 2009.43-48.
[4] TAUBMAN D, MARCELLIN M. JPEG 2000:Image Compression Fundamentals, Standards and Practice[M]. Massachusetts, USA: Kluwer Academic Publishers, 2002.
[5] VIKRAM K N, VASUDEAVN V, SRINIVASAN S. Rate-distortion estimation for fast JPEG 2000 compression at low bit-rates[J]. Electronics Letters, 2005, 41(1):16-18.
[6] AMINGOU A, FATEMI O. A novel efficient rate control algorithm for hardware implementation in JPEG 2000[A]. Proceedings of the International Conference on Acoustics Speech and Signal Processing[C].Philadelphia, PA, USA, 2005.21-24.
[7] 徐勇, 徐智勇, 趙汝進(jìn)等. JPEG 2000的一種編碼前碼率分配算法[J].光電工程, 2008, 35(10):81-85.XU Y, XU Z Y, ZHAO R J,et al. Pre-coding RDO rate allocation algorithm for JPEG 2000[J]. Opto-Electronic Engineering, 2008, 35(10):81-85.
[8] 鄭啟棗,劉鵬. 基于線性預(yù)測的動(dòng)態(tài)閾值 JPEG 2000 碼率控制算法[J]. 浙江大學(xué)學(xué)報(bào)(工學(xué)版), 2008, 42(8):1335-1339.ZHENG Q Z, LIU P. Dynamic threshold JPEG 2000 rate control algorithm based on linear prediction[J]. Journal of Zhejiang University(Engineering Science), 2008, 42(8):1335-1339.
[9] YEUN G Y M, AUO C. Efficient rate control for JPEG 2000 image coding[J]. IEEE Transactions on Circuits and System, Video Technology, 2005, 15(3):335-344.
[10] ZHU Z J, WANG Y E, JIANG G Y. Statistical image modeling for semantic segmentation [J]. IEEE Trans on Consumer Electronics,2010, 56(2): 777-782.
[11] 王向陽, 楊紅穎. 基于人眼視覺特性的快速圖像編碼算法[J]. 軟件學(xué)報(bào), 2003, 14(11):1964-1970.WANG X Y, YANG H Y. A fast image coding algorithm based on human visual system[J]. Journal of Software, 2003, 14(11):1964-1970.
[12] 孔繁鏘, 李云松, 王柯儼等. 基于碼率預(yù)分配的JPEG 2000自適應(yīng)率控制算法[J]. 電子與信息學(xué)報(bào), 2009, 31(1): 66-70.KONG F Q, LI Y S, WANG K Y,et al. An adaptive rate control algorithm for JPEG 2000 based on rate pre-allocation[J]. Journal of Electronics & Information Technology, 2009, 31(1): 66-70.
[13] 易愛清. JPEG 2000中碼率控制算法研究及硬件實(shí)現(xiàn)[D]. 西安: 西安理工大學(xué), 2008.YI A Q. Research on Rrate-Control Algorithm and Hardware Realization for JPEG 2000[D]. Xi’an: Xi’an University of Technology , 2008.
[14] 王菊花. JPEG 2000中MQ算術(shù)編譯碼器的研究[J].空間電子技術(shù),2003, 1:27-38.WANG J H. Research on MQ arithmetic encoder and decoder for JPEG 2000[J]. Space Electronic Technology, 2003, 1:27-38.