基于JPEG2000通過估計率失真信息來控制碼率的方法
0 引言
隨著多媒體和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,在傳輸圖像或視頻信息時,如何有效地運用信道帶寬已經(jīng)成為現(xiàn)今討論的主要話題之一。率控制是圖像或視頻編碼中控制比特率必須采用的方法,其最終目標就是將目標比特率合理的分配到圖像或視頻中去,以求得到最小的失真。
JPEG2000是一種新的靜止圖像壓縮編碼國際標準。由于其采用了與其他圖像壓縮標準不同的全新結(jié)構(gòu),因此,JPEG2000擁有壓縮比高,同時支持有損和無損壓縮,碼流可隨機存取和處理等優(yōu)點。JPEG2000的編碼算法包括離散小波變換(DWT)和位平面熵編碼。在JPEG2000中可通過嘗試不同的量化步長來進行率控制:而通過位平面MQ編碼器,JPEG2000則可以精確簡單的控制比特率,以達到需要的比特率。JPEG2000的核心編碼方式是嵌入式碼塊編碼(EBCOT)。其最優(yōu)截斷是使圖像失真最小化的一種率控制方法。這一過程是在小波系數(shù)經(jīng)過熵編碼(壓縮)后,所以也稱為壓縮后的率失真優(yōu)化(PCRD)。
根據(jù)所有壓縮后數(shù)據(jù)的實際率失真信息,PCRD技術(shù)就能計算出目標碼流的圖像最小化失真。但是這還需要圖像所有的碼流數(shù)據(jù),事實
上,很多數(shù)據(jù)是不會被輸出的,這一過程還會占用很多內(nèi)存和計算量。為此,本文提出了一種新的率控制方法,可以有效減少計算量和內(nèi)存使用量,同時可以獲得相似的效果。
1 JPEG2000簡介
作為一種新的國際壓縮標準,通??梢园袹PEG2000看作小波變換(DWT)、標量量化、比特系數(shù)建模、算術(shù)編碼、壓縮后率失真優(yōu)化和碼流組織等六個部分。
小波變換可將圖像分解為LL、HL、LH和HH四種子帶,并可以進行多級分解。LL是圖像低頻信息所在,其他的三種子帶包含的是圖像高頻信息。這些小波系數(shù)經(jīng)過量化后,即可進入EBCOT編碼過程。
1.1 熵編碼
熵編碼過程一般包括系數(shù)建模和算術(shù)編碼。它本質(zhì)上是一個位平面編碼的過程。在這個過程中,每個編碼塊都被獨立編碼,并且都經(jīng)過三個編碼通道,這三個編碼通道分別是重要性通道、幅值精煉通道和清零通道。這些編碼通道將會根據(jù)比特系數(shù)模型尋找每個比特系數(shù)的上下文,然后對這個比特系數(shù)進行基于上下文的算術(shù)編碼(MQ)。
1.2 碼率控制
碼率控制涉及量化、熵編碼和碼流組織三個部分。量化就是量化步長根據(jù)要求的壓縮率反復調(diào)整以達到目標碼率,這是一種交互式控制方式。另外一種采用壓縮后處理的方法是在碼流數(shù)據(jù)中對每個編碼塊設(shè)置一個截斷點,這個截斷點可決定每個碼塊的編碼通道編碼的數(shù)據(jù)量。這就是JPEG2000的壓縮后率失真優(yōu)化。其具體算法如下:
首先設(shè)編碼塊Bi的碼率為、失真為,最終壓縮數(shù)據(jù)的目標碼率為Rmax,則每個編碼塊的截斷點可以自由選擇,它只需要最后的碼率滿足下式即可:
如果用每個編碼塊的失真之和來表示重建圖像的失真,則重建圖像的失真為:
這樣,在截點ni,其率失真斜率為:
然后,利用拉格朗日乘子法,就可以求出最優(yōu)截斷點λ,從而實現(xiàn)最優(yōu)截斷編碼。
2 新的率控制方法
最優(yōu)截斷點λ只能通過所有截斷點實際的率失真斜率來求得,這就需要熵編碼過程編碼所有的位平面數(shù)據(jù)和所有編碼過的碼流都存儲在存儲器中,而且,即使是那些在碼流控制后不需要傳輸?shù)拇a流,也要編碼和存儲。然而,通過研究發(fā)現(xiàn):如果將每個截斷點的率失真斜率按遞減的方式進行整理,這個排列順序便與位平面層數(shù)有關(guān)。一般情況下,位平面高的率失真斜率大于位平面低的;其次,先編碼的通道的率失真斜率大于后編碼的通道。
基于以上兩點,可先掃描圖像的位平面信息,在編碼那些率失真斜率大的。而后面不重要的比特就可以不進行編碼。這個方法的過程首先是根據(jù)下式計算出每個碼塊Bi的最高位平面數(shù)Pi;
其中是碼塊Bi中的最大系數(shù)。之后,在求出最大的平面數(shù):
掃描每一個碼塊的順序圖如圖l所示。對于每一個掃描的碼塊,一般有如下三個條件:
(1)首先要判斷Pi=Pmax是否成立,如果成立,編碼這個編碼塊未編碼的位平面通道,然后Pi減1,之后檢查條件(2)。否則檢查條件(3);
(2)如果累計的碼率大于目標碼率,則立即退出編碼。否則,檢查條件(3);
(3)如果這是最后一個編碼塊,那么Pmax減1,然后進入下一個層的編碼。否則繼續(xù)掃描下個編碼塊。
由于上述條件(2)滿足的條件,故不會使碼率超過壓縮率的限制。而條件(1)、(3)則充分考慮了位平面和編碼通道的重要性,因而可確保得到最佳的圖像質(zhì)量。
3 實驗結(jié)果
這里,我們用512x512的lena圖像進行測試,表1記錄了PCRD與新方法在計算量和內(nèi)存使用量上的對比。表2所列是兩種方法在PSNR上的對比。兩種方法的解壓圖像效果如圖2所示。
4 結(jié)束語
通過對JPEG2000的分析,本文提出了一種通過估計率失真信息來控制碼率的方法。該方法由于不需要對所有的數(shù)據(jù)進行編碼,因此,可在保持圖像質(zhì)量的同時,還可以有效減少冗余計算量和內(nèi)存占用量。
歡迎轉(zhuǎn)載,本文來電子發(fā)燒友網(wǎng)(www.elecfans.com)