JPEG 2000
JPEG 2000是基于小波变换的图像压缩标准,由聯合圖像專家小組创建和维护。JPEG 2000曾獲认为是未来取代JPEG(基于离散余弦变换)的下一代图像压缩标准。JPEG 2000文件的副檔名通常为.jp2,MIME类型是image/jp2。
扩展名 | .jp2 , .j2k , .jpf , .jpm , .jpg2 , .j2c , .jpc , .jpx , .mj2 |
---|---|
互联网媒体类型 | image/jp2 , image/jpx , image/jpm , video/mj2 |
统一类型标识 | public.jpeg-2000 |
开发者 | 聯合圖像專家小組 |
格式类型 | 图形文件格式 |
扩展自 | JPEG |
标准 | ISO/IEC 15444 |
自由格式? | 是 |
免费格式? | 參見§ JPEG 2000版权专利问题 |
网站 | jpeg |
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(或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為了達成可適性的效果,將圖片的編碼分為眾多層級(由大至小):圖片(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(紅綠藍)色域轉換至其他色彩空間。
- 對於失真壓縮,採用不可完全回復色彩空間轉換(Irreversible Color Transform),轉換至一般熟悉的YCbCr色彩空間。
- 對於非失真壓縮,採用可完全回復色彩空間轉換(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委員會已經承認,未申報的專利潛艇可能仍然存在危險: 當然,還是有可能的,其他組織或者個人不得聲稱影響執行標準的知識產權,任何實施者都敦促開展自己的搜索和調查在這個區域。