JPEG2000

**JPEG 2000** 是基於小波變換的圖像壓縮標準，由聯合圖像專家小組創建和維護。JPEG 2000 曾獲認為是未來取代 JPEG（基於離散餘弦變換）的下一代圖像壓縮標準。JPEG 2000 文件的副檔名通常為**.jp2**，MIME 類型是 **image/jp2**。

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，而且增加和增強了如可縮放性和可編輯性這樣的特性。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（或兆焦耳），這是基於傳統的 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 為了達成可適性的效果，將圖片的編碼分為眾多層級（由大至小）：圖片（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）

詳見離散小波變換條目。 
係以階層式的採樣（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 委員會已經承認，未申報的專利潛艇可能仍然存在危險：
當然，還是有可能的，其他組織或者個人不得聲稱影響執行標準的智慧財產權，任何實施者都敦促開展自己的搜索和調查在這個區域。

## 外部連結

* 官方網站 （頁面存檔備份，存於網際網路檔案館）
* Jasper 編碼器 （頁面存檔備份，存於網際網路檔案館）
* https://web.archive.org/web/20020811020128/http://www.crc.ricoh.com/~gormish/jpeg2000.html
* http://webarchive.loc.gov/all/20020914232357/http://jj2000.epfl.ch/
* JPEG 和 JPEG 2000 的失真效果
* J2K-Codec （頁面存檔備份，存於網際網路檔案館） - An easy-to-use JPEG 2000 decoder