韓濤楊卿
(中國飛行試驗研究院 西安 710089)
JPEG2000的壓縮碼流包含且只包含一個main header和至少1個tile-part。壓縮碼流的結構如圖1所示。main header位于JPEG2000圖像壓縮碼流的開頭,緊接其后的是tile-part。Tile-part由兩部分組成:tile-part header和 tile-part位流數(shù)據(jù)[1]。Tile-part header位于每個tile-part的起始處。Main header和tile-part header的結構分別如圖2和圖3所示,圖中,實線表示的標志和標志段必須存在相應的頭中,虛線則不是必須存在的[2]。
實際中,人眼在觀察圖像時,并不是對所有的內容都感興趣,而是往往集中在圖像的某個區(qū)域[2]。在一些圖像編碼應用的特殊場合中,比如醫(yī)學圖像壓縮,醫(yī)生經(jīng)常只對圖象中一些特殊區(qū)域(病灶)感興趣,甚至是要求無損壓縮[3],而對其他區(qū)域只要達到視覺要求就可以了。這時我們可以僅對感興趣區(qū)域進行高質量直至無損編碼,對其他區(qū)域可以進行大壓縮比的編碼,這樣即達到了提高壓縮效率,又滿足處理要求的目的[4]。
圖1 JPEG2000壓縮碼流結構示意圖
圖2 Main header結構示意圖
圖3 tile part header結構示意
所謂ROI掩模實際上就是對最后重構ROI有貢獻的所有小波系數(shù)的集合。
很多人在做ROI編碼時使用的變換是S,S+P,TT(Two Ten)變換,此處根據(jù)JPEG2000系統(tǒng)的需要,采用的是5/3和9/7提升小波變換。下面以9/7小波變換為例說明ROI掩模的生成[5]。
圖4 小波變換ROI掩模生成示意圖
9/7小波變換的逆過程如下式所示:
其中的參數(shù)值是給定的[6]。在生成ROI掩模時,首先利用ROI的形狀信息,并根據(jù)所采用的小波變換的逆變換確定重構當前層ROI系數(shù)所需的上一層系數(shù),此過程重復進行,直到找到所有的ROI系數(shù)。下圖給出了W9×7濾波器逆變換的示意。
圖5 W9×7濾波器逆變換示意圖
由圖中可以看到,重構系數(shù)X(2n)需要用到:
而重構X(2n+1)則需要使用:
下圖給出了一個ROI掩模生成的過程示意。
圖6 ROI掩模生成過程示意圖
JPEG2000標準提出了基于ROI的編碼功能,即對圖象中感興趣的區(qū)域以更好的質量進行編碼,這實際上在一定程度上也體現(xiàn)了JPEG2000所具有的基于內容的編碼能力[7]。
在JPEG2000中,采用的是一種被稱作Maxshift(最大平移)的方法來進行ROI編碼,其主要思想是對所有ROI系數(shù)進行放大(或對背景系數(shù)進行縮?。?,使ROI系數(shù)與背景系數(shù)分開來,并且ROI系數(shù)所在的位平面高于背景系數(shù)所在的位平面,這樣在編碼時就可以先編碼ROI系數(shù)[8]。
Maxshift方法的主要過程如下:
1)確定ROI掩模
根據(jù)給出的ROI的形狀來確定ROI掩模,這在前面已經(jīng)說明過了。
2)確定背景系數(shù)的縮小因子
確定了ROI掩模之后,可以求出背景(即圖象中不屬于ROI掩模的部分)系數(shù)的最大值,然后根據(jù)此最大值求出背景系數(shù)的縮小因子,使得縮小后的背景系數(shù)其最大值比ROI系數(shù)中的非零最小值還要小[9]。
3)根據(jù)ROI掩模和背景系數(shù)的縮小因子對背景系數(shù)進行縮小操作。如圖7所示。
圖7 背景系數(shù)進行縮小操作
本文主要解決JPEG2000圖像壓縮的編碼系統(tǒng)的設計,本文中將JPEG2000圖像編碼系統(tǒng)分為兩個子系統(tǒng):JPEG2000編碼系統(tǒng)與解碼系統(tǒng)。在編碼時,將圖像首先分塊,經(jīng)過小波變換后量化,然后采用嵌入式碼塊編碼。解碼系統(tǒng)對讀入的壓縮碼流進行算術熵解碼,經(jīng)過反量化、反小波變換、反向DC電平位移后得到原圖像[10]。本系統(tǒng)速度較快,運算復雜度低,所需存儲空間少。本系統(tǒng)應用領域可包括兩部分,一為傳統(tǒng)的JPEG市場,像打印機、掃描儀、數(shù)碼相機等;一為新興應用領域,像網(wǎng)絡傳輸、無線通訊、醫(yī)療圖像等。本系統(tǒng)也存在一些不足,本系統(tǒng)還不能與目前常見的圖象處理軟件兼容,無法實現(xiàn)看圖功能。需要進一步工作做到與常用的圖像處理軟件兼容。