JPEG 2000

圖像壓縮標準和編碼系統

JPEG 2000是基於小波變換圖像壓縮標準,由聯合圖像專家小組英語Joint Photographic Experts Group創建和維護。JPEG 2000曾獲認為是未來取代JPEG(基於離散餘弦變換)的下一代圖像壓縮標準。JPEG 2000文件的副檔名通常為.jp2MIME類型image/jp2

JPEG 2000
JPEG 2000 與原始 JPEG 格式的比較
副檔名
.jp2, .j2k, .jpf, .jpm, .jpg2, .j2c, .jpc, .jpx, .mj2
網路媒體型式
image/jp2, image/jpx, image/jpm, video/mj2
統一類型標識public.jpeg-2000
開發者聯合圖像專家小組英語Joint Photographic Experts Group
格式類型圖形文件格式
延伸自JPEG
標準ISO/IEC 15444
自由格式
免費格式?參見§ JPEG 2000版權專利問題
網站jpeg.org/jpeg2000/ 編輯維基數據鏈接

JPEG 2000的壓縮比更高,而且不會產生原先的基於離散餘弦變換的JPEG標準產生的塊狀模糊瑕疵。JPEG 2000同時支持破壞性資料壓縮非破壞性資料壓縮。另外,JPEG 2000也支持更複雜的漸進式顯示和下載。

JPEG 2000是國際標準化組織(ISO)發佈的標準,文檔代碼為ISO/IEC 15444-1:2000。雖然JPEG 2000在技術上有一定的優勢,但是到目前為止(2006年),互聯網上採用JPEG 2000技術製作的圖像文件數量仍然很少,並且大多數的瀏覽器仍然不支持JPEG 2000圖像文件的顯示。但是,由於JPEG 2000在非破壞性壓縮下仍然能有比較好的壓縮率,所以JPEG 2000在圖像品質要求比較高的醫學圖像的分析和處理中已經有了一定程度的廣泛應用。

技術目標

 
JPEG 2000與JPEG XR及JPEG的壓縮結果比較。

JPEG 2000的目標不僅僅是性能要超越JPEG,而且增加和增強了如可縮放性和可編輯性這樣的特性。JPEG 2000最大的特色在於,與JPEG等技術在資料編碼上採取了不一樣的思維,同樣的資料編碼可以使用多種手段解碼以應付不同需求。JPEG 2000的編碼內容具有可縮放性(Scaling)。其編碼內容可以在任意位置截斷,從頭至此的編碼片段可受解碼回一張較低解像度的圖片。編碼片段越長,解碼後的解像度越高(或說放大到相同解像度時,其峰值信噪比(PSNR)較佳)。這意味了當需要更高壓縮率時,直接丟棄後方的編碼資料即可達成;或者,可以視需求只解碼頭一部分而得到縮圖。不過這樣的特徵也使得編碼解碼單元必須更複雜。

相關標準

已經發佈的JPEG 2000標準包括ISO/IEC 15444-1:2000。另外,和JPEG 2000相關的一些額外標準也正在制定和討論中,比如JPEG 2000安全圖像傳輸(JPSEC)以及基於連接的JPEG 2000圖像瀏覽JPIP)等。

在JPEG 2000標準的幾個其他部分存在;他們當中有ISO / IEC 15444-2:2000,JPEG 2000的擴展定義.jpx文件格式,具有例如網格量化,擴展的文件格式和附加的色彩空間, ISO / IEC 15444-4:2000年,參考測試和ISO / IEC 15444-6:2000,化合物的圖像文件格式(.jpm),使化合物文本/圖像圖形壓縮擴展安全圖像傳輸,JPSEC(ISO / IEC 15444-8),為無線應用增強的糾錯機制,JPWL(ISO / IEC 15444-11)和擴展體積圖像編碼,JP3D(ISO / IEC 15444-10 )也已經可以從ISO。

流媒體JPEG 2000圖像JPIP協議

在2005年,一個JPEG 2000基於圖像瀏覽協議,稱為JPIP已出版作為ISO / IEC 15444-9。在此框架下,潛在的巨大圖像的選定區域已受從圖像伺服器上的請求而發送一個客戶端,從而減少所需的帶寬。JPEG 2000的數據也可以使用ECWP和ECWPS協議ERDAS ECW / JP2的SDK中發現流。

Motion JPEG格式2000

主要文章:Motion JPEG格式2000 動態JPEG 2000,(MJ2),在ISO標準的第3部分最初定義為JPEG2000(ISO / IEC 15444-3:2002,)作為一個獨立的文件,現在已經表達了ISO / IEC 15444-3:2002 / AMD 2:2003在ISO基格式方面,ISO / IEC 15444-12和在ITU-T建議T.802 它指定使用的JPEG 2000格式的影像定時序列(運動序列),可能結合音頻,並組合成一個整體呈現。它還定義了文件格式,基於ISO基礎媒體文件格式(ISO 15444-12)。檔案格式為Motion JPEG格式2000的圖片檔案,像是RFC 3745的.mj2和.mjp2。

它是一個開放的ISO標準和先進的更新MJPEG(或MJ),這是基於傳統的JPEG格式。不像普通的圖片格式,如MPEG-4部分2,WMV和H.264,MJ2不採用時間或幀間壓縮。相反,每個幀是由任一種有損或JPEG 2000及其物理結構的無損變體不依賴於時間順序編碼一個獨立的實體,但它確實使用一個單獨的配置文件,以補充數據。對於音頻,它支持的LPCM編碼,以及各種MPEG-4的變體,如「原始」或補充的內容

動態JPEG 2000(常引用為MJ2或MJP2)認為是數字檔案格式,由美國國會圖書館。 2013年6月,從美國國會圖書館為紐約時報雜誌,關於「小貼士歸檔家庭史」,就像FFV1編解碼採訪伯特倫里昂,H264或蘋果公司的ProRes有提及,但JPEG 2000是沒有的。

ISO基本媒體文件格式

ISO / IEC 15444-12相同與ISO / IEC 14496-12(MPEG-4第12部分),並且它定義了ISO基本媒體文件格式。例如,動態JPEG 2000文件格式,MP4文件格式或3GP文件格式也基於此的ISO基礎媒體文件格式

GML JP2地理參考

開放地理空間聯盟(OGC)定義的地理參考JPEG元數據標準2000的圖像與使用地理標記語言(GML)格式嵌入的XML:在GML JPEG 2000地理編碼影像(GMLJP2),1.0.0版。01-18 2.0版,題為GML在JPEG 2000(GMLJP2)編碼標準第1部分:核心獲批准2014-06-30。

含有GMLJP2標記JP2的JPX文件可以位於與顯示在由一個合適的地理信息系統(GIS)上的地球表面上的正確位置,以類似的方式來的GeoTIFF圖像。

JPEG 2000與原有技術比較

技術優勢

 
壓縮率再高只有模糊失真.

較佳的壓縮率及品質

尤其在低壓縮比情形下,JPEG 2000優勢尤其明顯。主要因為其基於小波轉換並搭配更強的熵編碼小波轉換避免了離散餘弦轉換區塊化時(如JPEG的8×8網格)造成的馬賽克失真熵編碼也從JPEG的霍夫曼編碼改用效能更佳的算術編碼。(JPEG 2000在後續編碼時仍需要區塊化的動作,不過其區塊通常都遠比JPEG的8×8區塊來的大。)

遞進性與可縮放性

遞進性(Progressive)與可適性(Scaling)在此可以算是一體的兩面。JPEG 2000在編碼技術上使用了不同的思維,類似於從低解像度的資訊慢慢遞進排列到高解像度的資訊。

  • 從遞進性的角度來看,解碼的過程會先去擷取前端低解像度資訊,先解得低解像度圖片;再一步步擷取更多資訊,逐步增進解像度。這代表了使用者可以視需求只解碼部分而得到縮圖,節省計算量。
  • 可適性的角度來看,其編碼內容可以在任意位置截斷,從頭至此的編碼片段可受解碼回一張較低解像度的圖片。編碼片段越長,解碼後的解像度越高(或說放大到同樣解像度時,其峰值信噪比(PSNR)較佳)。這意味了當需要更高壓縮率時,直接丟棄後方的編碼資料即可達成。

區域解碼(Random Access)

JPEG 2000的編碼除了在大小∕品質上有遞進性或可適性,在圖片的空間區域上也同樣有特別的安排。當使用者只想解碼取用圖片中特定區域時,可以依特定規律找出該區域的編碼資料,而不需預先解碼整張圖片。

重點區塊處理(Region of Interest)

類似可適性與區域解碼的綜合結果,不同的區域可以挑選不同的壓縮品質。通常圖片中特定部分的重要性遠大於其他部位,此時可利用重點區塊處理達到差異化處理的效果。

失真與非失真壓縮方法相同

JPEG 2000可以採用同一套編碼方式產生失真非失真的壓縮結果。可以粗略想像為利用可縮放性直接把非失真的結果截斷為失真的結果。而JPEG的失真壓縮非失真壓縮作法差異較大。

錯誤容忍(Error Resilience)

JPEG 2000與JPG同樣有錯誤容忍的特性。若傳輸過程中出現些許位元錯誤,由於在編碼過程會切分許多階層結構,可以避免該錯誤影響範圍的擴大。

其他

支援高動態範圍成像、支援圖片透明度。

與JPEG比較

破壞性壓縮下,JPEG 2000一個比較明顯的優點就是沒有JPEG壓縮中的馬賽克失真效果。JPEG 2000的失真主要是模糊失真模糊失真產生的主要原因是在編碼過程中高頻量一定程度的衰減。傳統的JPEG壓縮也存在模糊失真的問題。

就圖像整體壓縮性能來說,目前有一些文章可能誇大JPEG 2000的性能。事實上,在低壓縮比情形下(比如壓縮比小於10:1),傳統的JPEG圖像質量有可能要比JPEG 2000要好。JPEG 2000在壓縮比比較高的情形下,優勢才開始明顯。整體來說,和傳統的JPEG相比,JPEG 2000仍然有很大的技術優勢,通常壓縮性能大概可以提高20%以上。一般在壓縮比達到100:1的情形下,採用JPEG壓縮的圖像已經嚴重失真並開始難以識別了,但JPEG 2000的圖像仍可識別。破壞性壓縮圖像質量或失真程度一般用峰值信噪比(PSNR)指標來衡量。雖然峰值信噪比不能完全反映人類視覺效果,但是它仍是一個目前比較流行的量化指標。

與PNG比較

雖然JPEG 2000也支持無失真的編碼方式,但是它並不企圖完全取代今日主要的無失真影像檔格式。例如圖表之類的影像,如果圖檔之中有許多像素是同一顏色,那麼PNG(Portable Network Graphics)格式仍然會有更小的儲存空間,而且有一些JPEG 2000所沒有的特殊壓縮功能。

編碼技術

 
此圖標示出JPEG 2000(品質50%模式)與原始圖片有差異之處。

概論

JPEG 2000為了達成可適性的效果,將圖片的編碼分為眾多層級(由大至小):圖片(Image)、區塊(Tile)、頻塊(Sub-band)、編碼區段(Code-block)、位元層(Bit-plane)、分流(Pass)。依照壓縮編碼動作可以粗略分為:

  • 單元處理(Word Level Processing):負責圖片、區塊、頻塊層級,主要以「小波轉換」將圖片信號轉換至頻率世界,以利後續壓縮。
  • 位元處理(Bit Level Processing):負責編碼區段、位元層、位元條層級,以「內嵌區段編碼」方式壓縮資料。以下將簡單解釋各個分段步驟

轉換(Transform)

前處理

  • 區塊化(Tiling):對影像作分割,把完整的影像分割為數個相同大小(邊界的區塊除外)、彼此間沒有重疊且為長方形的區塊,作為小波轉換的基本單位。此處的區塊通常遠大於JPEG的8×8區塊,甚至整張圖片也可作為一個區塊。(JPEG 2000的區塊大小非固定值)
  • 零頻位移(或翻直流位移,DC shifting):對於區塊中的資料平移其數值,使區塊內的資料(如色彩數值)成為以0為中心,帶有正負號的數值資料。
  • 色彩空間轉換(Color Transformation):將傳統的RGB(紅綠藍)色域轉換至其他色彩空間
  1. 對於失真壓縮,採用不可完全回復色彩空間轉換(Irreversible Color Transform),轉換至一般熟悉的YCbCr色彩空間。
  2. 對於非失真壓縮,採用可完全回復色彩空間轉換(Reversible Color Transform),使用簡化後的YCbCr色彩空間。理由是人眼對於明暗(YCbCr中的Y)較色度敏感(YCbCr中的CbCr),分開處理可以較單純的RGB更有視覺上的意義。簡化後的YCbCr色彩空間因為不需要小數計算,不會有運算上精確度的失真,但因為其系數較粗略,後續壓縮效果可能會稍差一些。

離散小波轉換(Discrete Wavelet Transform)

 
非失真壓縮所採用的CDF 5/3離散小波濾波器。
 
離散小波變換應用於JPEG 2000的例子。此圖為二階CDF 9/7離散小波濾波器之結果。

詳見離散小波變換條目。
係以階層式的採樣(down sampling)、升採樣(up sampling)、相減(取差異部分)的方式來取得階層狀的頻率資訊。把影像區塊分為多層次的高頻頻塊和低頻頻塊:其中低頻頻塊是直接採樣的結果,可以視為影像的近似,反映影像的大略情形;高頻頻塊則是剩餘部分,反映了影像的高頻資訊,可以理解為影像的細節。此處的濾波器選擇主要有兩種:Daubechies 9-tap/7-tap filter(用於失真壓縮)和Le Gall 5tap/3-tap filter(用於非失真壓縮)。

量化(Quantization)

量化的意義在於將一組連續訊號對應到一組離散訊號,後續的離散訊號以單純的位元表示,可達到壓縮資料並數碼化的條件。簡言之為將頻塊帶有小數的資料分段、近似,以較為單純的位元表示。(從單元處理過渡到位元處理


內嵌區段編碼與最佳化(EBCOT)

此技術先將資料作好適當的切割、歸類後,利用搭配統計分佈模型的熵編碼法壓縮資料。由於資料經有條理的適當分割,具備可適性的特性,在最後可以衡量所需要的資料大小與品質,找出最佳分割點。捨棄該點以後的資料,仍保有高品質的特性。以下就三者分開描述

內嵌區段編碼(Embedded Block Coding)

首先對資料作適當的切割、歸類,如此有兩大好處:其一不同類型的資料其0、1位元的統計特性不同,分開處理可以增進壓縮效率;其二為依資料重要性的不同作出區隔,從最重要到不重要作排列,以達成可適性(Scaling)的效果。在切割歸類上,有以下名詞作為單位:

  • 編碼區段(Code-block):通常會將上一步動作算好的頻塊進一步切成32×32或64×64的區段,分開來平行運算,作為內嵌區段編碼的對象。
  • 位元層(Bit-plane):把編碼區段內的資料依照位元深度,從高位元(MSB)到低位元(LSB)分成數個位元層(不同於圖片水平、垂直方向,而是依位元深度的第三個維度)。如每筆數值利用P個位元(bit)來記錄,將會從高位元到低位元受分解為P個位元層面。位元層較高的通常有認為比較重要(通俗想像:一般人覺得「百位數」比「十位數」或「個位數」重要)。
  • 分流(Pass):每個位元層都再依「重要性」分為三個分流,分開套用內容統計模型(context modeling)處理。分流依據最高有效位元(對於正數,第一個從0變1的位置)的出現與否(以σ記,通俗想像:判斷一個人究竟有「幾十萬」跟「幾萬」元的那個「幾」),以及該位元鄰近的八格範圍內,是否有其他位置出現最高有效位元(以φ記,想像:鄰近處出現了,自己也很可能會出現)。
    • 分流一(Pass 1):最重要的資料,該處上一層還沒出現過最高有效位元但鄰近處出現者,將分流至此。
    • 分流二(Pass 2):該位置已經出現過最高有效位元,對於較低位元繼續記錄其位元值。
    • 分流三(Pass 3):該處上一層還沒出現過最高有效位元,且鄰近處也都不曾出現過。這些不同的分流還會依照與鄰近的八格範圍的關係,再分別查表套用不同的內容統計模型。大致上有以下四大類:
    • 零編碼(zero coding):用於分流一、三,紀錄非最高有效位元者。
    • 正負號編碼(sign coding):用於分流一、三,紀錄出現最高有效位元者。
    • 精細編碼(Magnitude refinement coding):用於分流二。
    • 遊程編碼(Run-length coding):用於分流三,紀錄全都不是最高有效位元的狀況。

算術編碼(Arithmetic coding)

詳見算術編碼條目。
算術編碼是一種無損的熵編碼法算術編碼把輸入資料視為一種0~1之間的切割,根據內容統計模型決定這次輸入資料的切割位置。當所有資料輸入畢以後,可以得到一個0~1之間的小數,該小數的數值以資料形式表示(如位元)即為壓縮編碼後的結果。算術編碼較其他的熵編碼法(如哈夫曼編碼)還要更接近熵編碼法的數學理論極限。

最佳化

由於上述壓縮後的資料,具備可適性的特性,在壓縮的最後可以視需求衡量最後資料大小與品質,找出最佳分割點。捨棄該點以後的資料,仍保有在該需求的衡量下,最高品質的特性。做到良好的壓縮率控制。

JPEG 2000缺點(相較於JPEG)

雖然避免了8X8區塊克服了塊狀模糊的問題,不過也同時失去了8X8區塊對於運算效率幫助的部分,造成需要運算時間加長,此外8X8區塊也可以幫助減少硬件的需求(需要將全影像暫存的位置),JPEG2000就不得不面對這個問題。

JPEG 2000版權專利問題

JPEG 2000存在版權專利的風險。這也許是目前JPEG 2000技術沒有得到廣泛應用的原因之一。JPEG 2000標準本身是沒有授權費用,但是,因為編碼的核心部分的各種算法被大量註冊專利,所以一般認為,不太可能避開這些專利費用開發出免授權費的商用編碼器。

且JPEG 2000是受專利保護,但貢獻的公司和組織一致認為,其第一部分 - 核心許可證編碼系統,所有貢獻者可以免費得到。 該JPEG委員會指出:

一直以來,該委員會的JPEG其標準應該是可執行其基準形式不需支付使用費和特許費強大的目標......和未來的JPEG 2000標準已經沿着這些路線準備,並達成協議超過持有多項專利在這一領域,允許在不與支付許可費或使用費的標準連接使用其知識產權的20大機構。

然而,JPEG委員會已經承認,未申報的專利潛艇可能仍然存在危險: 當然,還是有可能的,其他組織或者個人不得聲稱影響執行標準的知識產權,任何實施者都敦促開展自己的搜索和調查在這個區域。

外部連結