JPEG XL

自由且開放原始碼的點陣圖檔案格式

JPEG XL是一種免版稅點陣圖檔案格式,支援有損無失真壓縮。它旨在超越現有的點陣圖格式,並成為它們的通用替代。[5]JPEG XL格式規範的主要作者有Jyrki Alakuijala、Jon Sneyers和Luca Versari。

JPEG XL
副檔名
.jxl
網路媒體型式
image/jxl[a]
開發者
格式類型有損無失真柵格圖像格式
延伸自
標準ISO/IEC 18181[3]
自由格式是(免版稅
網站

名稱

  • JPEG指設計了JPEG格式的聯合影像專家小組(Joint Photographic Experts Group)。
  • X指2000年以來的多個JPEG標準的名稱:JPEG XTJPEG XRJPEG XS英語JPEG XS
  • L代表「長期」,建立這種格式是為替換舊的JPEG檔案格式,並使用足夠長的時間。

歷史

2017年,JTC1 / SC29 / WG1 (JPEG) 發起下一代圖像編碼標準(JPEG XL)提案徵集。[6]所有提案在2018年9月前提交,隨後2019年7月形成委員會草案。[7]草案是由谷歌提交的PIK[8]Cloudinary英語Cloudinary提交的基於FLIF的FUIF[9]結合而來。

2020年12月25日,伴隨著參考軟體實現libjxl的0.2版本發布,JPEG XL的位元流格式被最終敲定,這意味著未來的版本將保證對此版本的解碼相容性[10]此後檔案格式與核心編碼系統分別於2021年10月13日和2022年3月30日正式標準化。[3][11]

描述

JPEG XL的提案徵集[6]提及了下一代圖像壓縮標準對大幅提升壓縮效率(60%)的需求。新標準應該有優於HEICAVIFWebPJPEG 2000這些靜態圖像編碼的表現,同時提供對傳統JPEG格式的無失真再壓縮選項。

JPEG XL最高能夠提供對甚高解析度圖像(每邊1像素)、4099個32位元深通道(包含alpha通道)的靜態或動態圖像及其嵌入預覽的失真壓縮無失真壓縮。它支援針對網路傳輸的漸進式解碼[12]和最小化信頭開銷特性,以及針對圖像編輯數位印刷圖層CMYK專色英語Spot color支援。它還針對無縫處理Rec. 2100英語Rec. 2100廣色域感知量化器英語Perceptual quantizer混合對數伽馬校正英語Hybrid log–gamma轉換曲線進行了特別設計。

特點

主要特點有:[13][14][15]

  • 更多功能:與傳統圖像格式(例如JPEG、GIF和PNG)相比,有著更佳的效率與更豐富的功能;
  • 更大尺度:長寬可超過十億( )個像素;[16]
  • 更多通道:最多4099個通道,包括主通道(單連結的灰度、三通道的RGB或四通道的CMYK)、可選的多達4096個可用於透明度深度英語Depth map熱成像等的額外通道; [16]
  • 多訊框支援:支援用於動畫的非零時長訊框和類似圖像軟體中圖層的零時長訊框,且訊框的大小不受圖像畫布大小影響,並支援多種混合模式;
  • 獨立圖塊:允許圖像分多圖塊儲存,以支援分塊解碼大幅圖像;
  • 漸進式解碼:專為支援不同顯示解析度的回應式載入;
  • 可逆JPEG轉碼:可實現約20%的資料流壓縮;
  • 無失真編碼:包括無失真alpha編碼;
  • 類型感知:可根據圖像內容使用分別為攝影圖像和合成圖像最佳化的兩種模式;
  • 低位元速率最佳化:在低位元速率下相較舊格式品質更可接受;
  • 感知最佳化:參考編碼器預設使用感知色彩空間、自適應量化和保守的預設設定;
  • 色域支援:內建廣色域、轉移曲線HDR支援;
  • 動畫支援:但編碼真實影片時仍建議使用常規的影片編碼
  • 高效編解碼:無需專用硬體,JPEG XL的編解碼速度即可與使用libjpeg-turbo的JPEG相當,比使用x265HEIC速度快一個數量級,[16]並可以並列
  • 開源免費:具有使用三條款版BSD許可證開源參考實現的免版稅格式。[17]

技術細節

 
JPEG XL 編解碼器架構圖

JPEG XL基於Google的PIK格式和Cloudinary的FUIF格式(基於FLIF)。[18]

JPEG XL主要有兩種編碼模式:

  • VarDCTvariable-blocksize DCT,可變分塊大小離散餘弦變換)模式基於與JPEG相同的離散餘弦變換演算法,但分塊不再限定為8×8,而是允許不同大小(2×2到256×256)、非正方形塊(如16×8、8×32、32×64)乃至其他變換函式(4種「邊角」變種AFV,以及非離散餘弦變換的Hornuss變換)。此模式限於三通道色彩,通常使用LMS色彩空間英語LMS color space衍生的XYB色彩空間(但為支援重壓縮傳統JPEG仍支援YCbCr),基於PIK格式的有損模式。[19]
  • Modular(模組化)模式是回應式的,用於高效的無失真內容壓縮以及近無失真壓縮。它可被VarDCT在內部用於儲存二維資料,即除了交流(高頻)離散餘弦變換係數之外的所有資料,包括直流圖像(1:8抽樣圖像)、自適應量化權值、濾鏡強度。所有附加通道(如透明度英語Transparency (graphic)深度英語Depth map熱成像專色英語spot color等)總是使用此模式儲存。此模式基於FUIF,並結合了無失真PIK、無失真WebP和標準化過程中的其他合作成果。[20]藉助哈爾變換的「擠壓」(squeeze),此模式也支援失真壓縮,並實現漸進式特性:圖像的品質會隨著資料載入過程逐漸改善。

VarDCT模式的圖像可藉由模組化「擠壓」的獨立「直流訊框」儲存的直流係數實現漸進式載入,支援1:16、1:32等抽樣比例。「擠壓」變換也可以用於將alpha通道和VarDCT模式的色彩通道一同漸進式編碼,使兩種模式協同工作。

JPEG XL預設使用視覺無失真下仍有較好壓縮效果的設定。[16]

這些模式可由單獨的圖像特徵模型協助:

JPEG XL編碼可以無失真地轉碼JPEG最常用的子類型的檔案,實現方式是將JPEG的DCT系屬直接拷貝到8×8的VarDCT塊,並藉助JPEG XL更好的熵壓縮演算法實現更小的檔案大小。此過程是可逆的,可以從轉換結果中逐位重建原始JPEG圖像,儘管有一些限制條件[21]

預測是基於逐像素、無輔助資訊的去相關器運作的,包括參數化的自校正加權預測器集合。上下文模型英語Context model包括特化的靜態模型和強大的元自適應模型,它們考慮局部錯誤,具有訊號樹結構和分上下文的預測器選擇。熵編碼基於LZ77,可使用非對稱數字系統英語Asymmetric numeral systems字首碼(適用於低複雜度的編碼器,或減少短資料流的開銷)。[來源請求]

動畫(多訊框)圖像不執行進階訊框間預測,儘管有一些基本的訊框間編碼工具可用:

  • 訊框可以小於畫布大小,只更新畫布的一部分;
  • 除了替換前序訊框外,還支援數種混合模式,如相加或相乘;[22]
  • 在後面的訊框中使用「修補程式」編碼工具最多可以「記住」並參照四訊框。

軟體

JPEG XL受到了許多科技公司與組織的公開支援,如Facebook[23][24]Adobe[25][26]IntelVESA[27][28]衛報[29][30]FlickrSmugMug[31]Shopify[32]Krita基金會[33]Serif Europe英語Serif Europe[34]

編解碼器實現

JPEG XL參考軟體(libjxl)
 
 
首次發布2019年12月27日,​4年前​(2019-12-27[35]
目前版本0.7(2022年9月21日,​2年前​(2022-09-21
原始碼庫https://github.com/libjxl/libjxl[36] 
程式語言C++
作業系統
許可協定三條款版BSD許可證(曾為Apache許可證2.0)
網站jpeg.org/jpegxl  
  • JPEG XL參考軟體(libjxl)
    • 三條款版BSD許可證(曾為Apache許可證2.0)
    • 包含組件
      • 編解碼庫libjxl
      • 編碼器cjxl
      • 解碼器djxl
      • 快速無失真編碼器fjxl
      • 圖像編碼品質基準測試工具benchmark_xl
      • GIMP和Gtk pixbuf外掛程式file-jxl

官方支援

非官方支援

初步支援

  • Chromium[60]:網頁瀏覽器,自91版至110版提供測試選項。
  • Firefox[61]:網頁瀏覽器,處於測試中,自Firefox 90開始可以通過image.jxl.enabled標誌開啟(僅在Nightly開發版本中生效[62])。

標準化狀態

通用名稱 部分 首次公開發布日期
(第一版)
ISO/IEC編號 正式名稱
JPEG XL 第1部分 2022年3月30日 ISO/IEC 18181-1頁面存檔備份,存於網際網路檔案館 JPEG XL圖像編碼系統-第1部分:核心編碼系統[3]
第2部分 2021年10月13日 ISO/IEC 18181-2頁面存檔備份,存於網際網路檔案館 JPEG XL圖像編碼系統-第2部分:檔案格式[11]
第3部分 2022年10月3日 ISO/IEC 18181-3頁面存檔備份,存於網際網路檔案館 JPEG XL圖像編碼系統-第3部分:一致性測試
第4部分 2022年8月5日 ISO/IEC 18181-4頁面存檔備份,存於網際網路檔案館 JPEG XL圖像編碼系統-第4部分:參考軟體

注釋

  1. ^ 非正式的事實標準[1]

參考

  1. ^ Media Types. IANA. [2022-10-21]. (原始內容存檔於2022-10-21). 
  2. ^ 2.0 2.1 fuif/README.md. GitHub. [2019-04-04]. (原始內容存檔於2021-04-24). 
  3. ^ 3.0 3.1 3.2 ISO/IEC 18181-1:2022 Information technology — JPEG XL image coding system — Part 1: Core coding system. 
  4. ^ libjxl/doc/format_overview.md. GitHub. [2022-10-20]. (原始內容存檔於2022-10-20). 
  5. ^ Can JPEG XL Become the Next Free and Open Image Format? - Slashdot. [2021-12-30]. (原始內容存檔於2021-12-30). 
  6. ^ 6.0 6.1 N79010 Final Call for Proposals for a Next-Generation Image Coding Standard (JPEG XL) (PDF). ISO/IEC JTC 1/SC 29/WG 1 (ITU-T SG16). 15 April 2018 [2022-12-08]. (原始內容存檔 (PDF)於2022-10-31). 
  7. ^ Rhatushnyak, Alexander; Wassenberg, Jan; Sneyers, Jon; Alakuijala, Jyrki; Vandevenne, Lode; Versari, Luca; Obryk, Robert; Szabadka, Zoltan; Kliuchnikov, Evgenii; Comsa, Iulia-Maria; Potempa, Krzysztof; Bruse, Martin; Firsching, Moritz; Khasanova, Renata; Ruud van Asseldonk; Boukortt, Sami; Gomez, Sebastian; Fischbacher, Thomas. Committee Draft of JPEG XL Image Coding System. 2019. arXiv:1908.03565  [eess.IV]. 
  8. ^ PIK, A new lossy/lossless image format for photos and the internet. [2022-10-17]. (原始內容存檔於2022-11-13). 
  9. ^ FUIF, Free Universal Image Format. [2022-10-17]. (原始內容存檔於2022-11-12). 
  10. ^ v0.2 JPEG XL Reference Software. GitLab. [2021-12-30]. (原始內容存檔於2021-10-20) (英語). 
  11. ^ 11.0 11.1 ISO/IEC 18181-2:2021 Information technology — JPEG XL image coding system — Part 2: File format. 
  12. ^ Using Saliency in progressive JPEG XL images. [2022-10-17]. (原始內容存檔於2023-01-09). 
  13. ^ JPEG XL reaches Committee Draft. JPEG.org. 2019-08-03 [2019-08-03]. (原始內容存檔於2019-08-03). The current contributors have committed to releasing it publicly under a royalty-free and open source license. 
  14. ^ JPEG XL White Paper (PDF). JPEG.org. 2021-01-29 [2021-03-17]. (原始內容存檔 (PDF)於2 May 2021). 
  15. ^ JPEG XL vs. AVIF - Page 6. encode.su. [2022-10-22]. (原始內容存檔於2022-10-18). 
  16. ^ 16.0 16.1 16.2 16.3 Sneyers, Jon. How JPEG XL Compares to Other Image Codecs. Cloudinary. 26 May 2020 [2021-02-19]. (原始內容存檔於2021-12-30). 
  17. ^ jpeg / JPEG XL Reference Software. GitLab. [2021-12-30]. (原始內容存檔於2021-12-30) (英語). 
  18. ^ FLIF - Free Lossless Image Format. [2021-12-30]. (原始內容存檔於2021-12-21). 
  19. ^ Alakuijala, Jyrki; van Asseldonk, Ruud; Boukortt, Sami; Szabadka, Zoltan; Bruse, Martin; Comsa, Iulia-Maria; Firsching, Moritz; Fischbacher, Thomas; Kliuchnikov, Evgenii; Gomez, Sebastian; Obryk, Robert; Potempa, Krzysztof; Rhatushnyak, Alexander; Sneyers, Jon; Szabadka, Zoltan; Vandervenne, Lode; Versari, Luca; Wassenberg, Jan. Tescher, Andrew G; Ebrahimi, Touradj , 編. JPEG XL next-generation image compression architecture and coding tools. Applications of Digital Image Processing XLII. 6 September 2019, 11137: 20. Bibcode:2019SPIE11137E..0KA. ISBN 9781510629677. doi:10.1117/12.2529237 . 
  20. ^ FLIF, 3 Sep 2021, jonsneyers comment. [2022-12-07]. (原始內容存檔於2022-12-17). 
  21. ^ Sneyers, Jon. Feature request: allow jbrd to reconstruct a part of the file when it's not possible for the whole file. GitHub. 2021-12-10 [2022-12-07]. (原始內容存檔於2022-10-18). 
  22. ^ JPEG XL reference implementation. GitHub. 3 December 2021 [24 June 2021]. (原始內容存檔於30 December 2021). 
  23. ^ Andre, Erik. Statement of support by Facebook on Chromium's issue #1178058. bugs.chromium.org. 2021-04-20 [2022-11-03]. (原始內容存檔於2021-12-30). 
  24. ^ Andre, Erik. Statement of support by Facebook on Firefox's issue #1539075. bugzilla.mozilla.org. 2021-05-24 [2022-11-03]. (原始內容存檔於2022-01-04) (英語). 
  25. ^ Rosenthol, Leonard. Statement of support by Adobe on Firefox's issue #1539075. bugzilla.mozilla.org. 2021-06-07 [2022-11-03]. (原始內容存檔於2022-01-04) (英語). 
  26. ^ Chan, Eric. Statement of support by Adobe on Chromium's issue #1178058. bugs.chromium.org. 2022-08-23 [2022-11-03]. (原始內容存檔於2021-12-30). 
  27. ^ Wooster, Roland. Statement of support on Chromium's issue #1178058 by VESA's DisplayHDR Chairman and Principal Engineer at Intel's Client Computing Group. bugs.chromium.org. 2022-08-24 [2022-11-03]. (原始內容存檔於2021-12-30). 
  28. ^ Wooster, Roland. Reinforced statement of support on Chromium's issue #1178058 by VESA's DisplayHDR Chairman and Principal Engineer at Intel's Client Computing Group". bugs.chromium.org. 2022-11-11 [2022-11-11]. (原始內容存檔於2021-12-30). 
  29. ^ Chauvin, Mariot. Statement of support by The Guardian on Chromium's issue #1178058. bugs.chromium.org. 2022-08-26 [2022-11-03]. (原始內容存檔於2021-12-30). 
  30. ^ Chauvin, Mariot. Statement of support by The Guardian on Firefox's issue #1539075. bugzilla.mozilla.org. 2022-01-13 [2022-11-03]. (原始內容存檔於2022-01-04) (英語). 
  31. ^ MacAskill, Don. Statement of support by Flickr and SmugMug on Firefox's issue #1539075. bugzilla.mozilla.org. 2022-01-04 [2022-11-03]. (原始內容存檔於2022-01-04) (英語). 
  32. ^ Bendell, Colin. Statement of support by Shopify on Chromium's issue #1178058. bugs.chromium.org. 2022-10-17 [2022-11-03]. (原始內容存檔於2021-12-30). 
  33. ^ Rempt, Rempt. Statement of support by the Krita Foundation on Chromium's issue #1178058. bugs.chromium.org. 2022-11-10 [2022-11-11]. (原始內容存檔於2021-12-30). 
  34. ^ Brightman, Tony. Statement of support by Serif Ltd.'s SerifLabs on Chromium's issue #1178058. bugs.chromium.org. 2022-11-11 [2022-11-11]. (原始內容存檔於2021-12-30). 
  35. ^ Update JPEG-XL with latest changes.. GitHub. 2019-12-27 [10 October 2022]. (原始內容存檔於2022-10-10). 
  36. ^ PLEASE DO NOT OPEN NEW ISSUES HERE. [2021年5月27日]. 
  37. ^ libjxl-tiny. [2022-12-07]. (原始內容存檔於2022-12-09). 
  38. ^ jxlatte. [2022-12-07]. (原始內容存檔於2022-12-04). 
  39. ^ pyjxl. [2022-12-07]. (原始內容存檔於2022-11-12). 
  40. ^ Siipola, Johannes, JPEG XL Encode, 2022-10-31 [2022-11-29], (原始內容存檔於2022-11-29) 
  41. ^ Codec to consider: JPEG XL · Issue #721 · GoogleChromeLabs/squoosh. GitHub. [2022-11-26]. (原始內容存檔於2022-11-26) (英語). 
  42. ^ HDR Output in Camera Raw. [2022-10-21]. (原始內容存檔於2022-10-21). 
  43. ^ Affinity V2: What's new (JPEG XL import/export). [2022-11-09]. (原始內容存檔於2022-12-14) (英語). 
  44. ^ Online Help for Chasys Draw IES: History. 2022-07-17 [2022-07-18]. (原始內容存檔於2022-12-07). 
  45. ^ ExifTool by Phil Harvey. [2022-01-19]. (原始內容存檔於2022-01-26). 
  46. ^ FFmpeg Lands JPEG-XL Support. www.phoronix.com. [2022-04-24]. (原始內容存檔於2022-07-03) (英語). 
  47. ^ GIMP 2.10.32 Released. 2022-06-14 [2022-06-15]. (原始內容存檔於2023-01-06). 
  48. ^ GThumb Image Viewer 3.11.3 Adds JPEG XL (.JXL) Support [Ubuntu PPA] | UbuntuHandbook. [2021-05-17]. (原始內容存檔於2021-12-30). 
  49. ^ ImageMagick. [2021-03-01]. (原始內容存檔於2022-01-02). 
  50. ^ IrfanView PlugIns. [2021-12-03]. (原始內容存檔於2021-12-28). 
  51. ^ KaOS 2021.06. [2022-01-31]. (原始內容存檔於2021-06-29). 
  52. ^ Krita 5.1.0 Released!. krita.org. 2022-08-18 [2022-08-20]. (原始內容存檔於2023-01-20) (英語). 
  53. ^ Statement of support by the Krita project on Chromium's issue #1178058. bugs.chromium.org. [2022-11-03]. (原始內容存檔於2021-12-30). 
  54. ^ KDE Ships Frameworks 5.89.0. KDE Community. 2021-12-11 [2022-04-28]. (原始內容存檔於2022-12-07) (英語). 
  55. ^ 0001845: JPEG XL - MantisBT. [2021-03-01]. (原始內容存檔於2021-11-07). 
  56. ^ Pale Moon 31.4.0 released! - Pale Moon forum. forum.palemoon.org. [2022-11-22]. (原始內容存檔於2023-01-05). 
  57. ^ Jpeg Xl Wic. GitHub. 27 November 2021 [2021-12-30]. (原始內容存檔於2021-12-30). 
  58. ^ JXLook. GitHub. December 2021 [2021-12-30]. (原始內容存檔於2021-12-30). 
  59. ^ libjxl gdk-pixbuf plugin. GitHub. [2022-11-26]. (原始內容存檔於2023-01-18) (英語). 
  60. ^ 1178058 - chromium - an open-source project to help move the web forward. - Monorail. [2021-12-30]. (原始內容存檔於2021-12-30). 
  61. ^ 1539075 - (JPEG-XL) Implement support for JPEG XL (Image/JXL). [2021-12-30]. (原始內容存檔於2022-01-04). 
  62. ^ 1806525 - Unable to view jpegxl images when setting image.jxl.enabled = true in about:config. bugzilla.mozilla.org. [2024-03-18]. (原始內容存檔於2024-05-22) (英語). 

外部連結