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