JPEG XL
JPEG XL是一種免版稅的點陣圖檔案格式,支援有損和無失真壓縮。它旨在超越現有的點陣圖格式,並成為它們的通用替代。[5]JPEG XL格式規範的主要作者有Jyrki Alakuijala、Jon Sneyers和Luca Versari。
副檔名 |
.jxl |
---|---|
網路媒體型式 |
image/jxl[a] |
開發者 | |
格式類型 | 有損或無失真柵格圖像格式 |
延伸自 | |
標準 | ISO/IEC 18181[3] |
自由格式? | 是(免版稅) |
網站 |
|
名稱
- JPEG指設計了JPEG格式的聯合影像專家小組(Joint Photographic Experts Group)。
- X指2000年以來的多個JPEG標準的名稱:JPEG XT、JPEG XR、JPEG XS。
- L代表「長期」,建立這種格式是為替換舊的JPEG檔案格式,並使用足夠長的時間。
歷史
2017年,JTC1 / SC29 / WG1 (JPEG) 發起下一代圖像編碼標準(JPEG XL)提案徵集。[6]所有提案在2018年9月前提交,隨後2019年7月形成委員會草案。[7]草案是由谷歌提交的PIK[8]和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%)的需求。新標準應該有優於HEIC、AVIF、WebP和JPEG 2000這些靜態圖像編碼的表現,同時提供對傳統JPEG格式的無失真再壓縮選項。
JPEG XL最高能夠提供對甚高解像度圖像(每邊1兆像素)、4099個32位元深通道(包含alpha通道)的靜態或動態圖像及其嵌入預覽的失真壓縮和無損壓縮。它支援針對網絡傳輸的漸進式解碼[12]和最小化信頭開銷特性,以及針對圖像編輯和數碼印刷的圖層、CMYK和專色支援。它還針對無縫處理Rec. 2100等廣色域的感知量化器、混合對數伽馬校正和轉換曲線進行了特別設計。
特點
- 更多功能:與傳統圖像格式(例如JPEG、GIF和PNG)相比,有着更佳的效率與更豐富的功能;
- 更大尺度:長寬可超過十億( )個像素;[16]
- 更多通道:最多4099個通道,包括主通道(單連結的灰度、三通道的RGB或四通道的CMYK)、可選的多達4096個可用於透明度、深度、熱成像等的額外通道; [16]
- 多幀支援:支援用於動畫的非零時長幀和類似圖像軟件中圖層的零時長幀,且幀的大小不受圖像畫布大小影響,並支援多種混合模式;
- 獨立圖塊:允許圖像分多圖塊儲存,以支援分塊解碼大幅圖像;
- 漸進式解碼:專為支援不同顯示解像度的響應式載入;
- 可逆JPEG轉碼:可實現約20%的數據流壓縮;
- 無失真編碼:包括無失真alpha編碼;
- 類型感知:可根據圖像內容使用分別為攝影圖像和合成圖像最佳化的兩種模式;
- 低位元速率最佳化:在低位元速率下相較舊格式質素更可接受;
- 感知最佳化:參考編碼器預設使用感知色彩空間、自適應量化和保守的預設設置;
- 色域支援:內建廣色域、轉移曲線和HDR支援;
- 動畫支援:但編碼真實影片時仍建議使用常規的影片編碼;
- 高效編解碼:無需專用硬件,JPEG XL的編解碼速度即可與使用libjpeg-turbo的JPEG相當,比使用x265的HEIC速度快一個數量級,[16]並可以並列。
- 開源免費:具有使用三條款版BSD許可證的開源參考實現的免版稅格式。[17]
技術細節
JPEG XL基於Google的PIK格式和Cloudinary的FUIF格式(基於FLIF)。[18]
JPEG XL主要有兩種編碼模式:
- VarDCT(variable-blocksize DCT,可變分塊大小離散餘弦變換)模式基於與JPEG相同的離散餘弦變換演算法,但分塊不再限定為8×8,而是允許不同大小(2×2到256×256)、非正方形塊(如16×8、8×32、32×64)乃至其他變換函數(4種「邊角」變種AFV,以及非離散餘弦變換的Hornuss變換)。此模式限於三通道色彩,通常使用LMS色彩空間衍生的XYB色彩空間(但為支援重壓縮傳統JPEG仍支援YCbCr),基於PIK格式的有損模式。[19]
- Modular(模組化)模式是響應式的,用於高效的無失真內容壓縮以及近無損壓縮。它可被VarDCT在內部用於儲存二維數據,即除了交流(高頻)離散餘弦變換係數之外的所有數據,包括直流圖像(1:8抽樣圖像)、自適應量化權值、濾鏡強度。所有附加通道(如透明度、深度、熱成像和專色等)總是使用此模式儲存。此模式基於FUIF,並結合了無失真PIK、無失真WebP和標準化過程中的其他合作成果。[20]藉助哈爾變換的「擠壓」(squeeze),此模式也支援失真壓縮,並實現漸進式特性:圖像的質素會隨着數據載入過程逐漸改善。
VarDCT模式的圖像可藉由模組化「擠壓」的獨立「直流幀」儲存的直流係數實現漸進式載入,支援1:16、1:32等抽樣比例。「擠壓」變換也可以用於將alpha通道和VarDCT模式的色彩通道一同漸進式編碼,使兩種模式協同工作。
JPEG XL預設使用視覺無失真下仍有較好壓縮效果的設置。[16]
這些模式可由單獨的圖像特徵模型協助:
- 向心卡特姆–羅姆樣條用於編碼頭髮等(參考編碼器暫未實現);
- 重複的「修補程式」,如文字、點和「精靈」;
- 噪聲合成:由於噪聲難以壓縮,將其剝離然後由解碼器重新生成可能更佳。這類似於AV1等現代影片編碼的膠片顆粒合成,儘管JPEG XL噪聲合成的目的不是模仿模擬攝影膠片的顆粒,而是在像素層級建模數碼相機在高感光度設置下的光子噪聲。
JPEG XL編碼可以無失真地轉碼JPEG最常用的子類型的檔案,實現方式是將JPEG的DCT系屬直接拷貝到8×8的VarDCT塊,並藉助JPEG XL更好的熵壓縮演算法實現更小的檔案大小。此過程是可逆的,可以從轉換結果中逐位重建原始JPEG圖像,儘管有一些限制條件[21]。
預測是基於逐像素、無輔助資訊的去相關器運作的,包括參數化的自校正加權預測器集合。上下文模型包括特化的靜態模型和強大的元自適應模型,它們考慮局部錯誤,具有訊號樹結構和分上下文的預測器選擇。熵編碼基於LZ77,可使用非對稱數字系統或字首碼(適用於低複雜度的編碼器,或減少短數據流的開銷)。[來源請求]
動畫(多幀)圖像不執行進階幀間預測,儘管有一些基本的幀間編碼工具可用:
- 幀可以小於畫布大小,只更新畫布的一部分;
- 除了替換前序幀外,還支援數種混合模式,如相加或相乘;[22]
- 在後面的幀中使用「修補程式」編碼工具最多可以「記住」並參照四幀。
軟件
JPEG XL受到了許多科技公司與組織的公開支援,如Facebook[23][24]、Adobe[25][26]、Intel與VESA[27][28]、衛報[29][30]、Flickr和SmugMug[31]、Shopify[32]、Krita基金會[33]和Serif Europe[34]。
編解碼器實現
首次發佈 | 2019年12月27日[35] |
---|---|
目前版本 | 0.7(2022年9月21日 | )
原始碼庫 | https://github.com/libjxl/libjxl[36] |
程式語言 | C++ |
作業系統 | |
許可協定 | 三條款版BSD許可證(曾為Apache許可證2.0) |
網站 | jpeg |
- JPEG XL參考軟件(libjxl)
- J40:獨立、自包含的JPEG XL解碼器[1] (頁面存檔備份,存於互聯網檔案館)
- libjxl-tiny:簡化的JPEG XL編碼器實現,針對無透明度的攝影圖像[37]
- 三條款版BSD許可證
- jxlatte:Java JPEG XL解碼器[38]
- pyjxl:Python JPEG XL解碼器[39]
- jpeg-xl-encode:PHP JPEG XL編碼器[40]
官方支援
- 網頁圖像轉換器Squoosh (頁面存檔備份,存於互聯網檔案館)[41]
- 數碼相機圖像匯入匯出工具Adobe Camera Raw[42]
- 點陣圖編輯器Affinity Photo[43]
- 點陣圖編輯器Chasys Draw IES[44]
- 元數據編輯器ExifTool[45]
- 多媒體框架FFmpeg[46]
- 點陣圖編輯器GIMP[47]
- 圖像檢視器、相片管理應用gThumb[48]
- 點陣圖處理工具包ImageMagick[49]
- 圖像檢視編輯器IrfanView[50]
- Linux發行版KaOS[51]
- 點陣圖編輯器Krita[52][53]
- Qt和KDE應用[54]
- 點陣圖檢視編輯器XnView MP[55]
- 網絡瀏覽器Pale Moon[56]
非官方支援
- Microsoft Windows[57]:通過第三方Windows圖像處理組件外掛程式,即用於在相片檢視器、檔案檔案總管等中檢視。
- macOS[58]:通過獨立應用程式和Quick Look外掛程式。
- GTK和GNOME圖像檢視應用(Eye of GNOME、GNOME Files等):通過GDK pixbuf外掛程式。[59]
初步支援
標準化狀態
通用名稱 | 部分 | 首次公開發布日期 (第一版) |
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部分:參考軟件 |
註釋
參考
- ^ Media Types. IANA. [2022-10-21]. (原始內容存檔於2022-10-21).
- ^ 2.0 2.1 fuif/README.md. GitHub. [2019-04-04]. (原始內容存檔於2021-04-24).
- ^ 3.0 3.1 3.2 ISO/IEC 18181-1:2022 Information technology — JPEG XL image coding system — Part 1: Core coding system.
- ^ libjxl/doc/format_overview.md. GitHub. [2022-10-20]. (原始內容存檔於2022-10-20).
- ^ Can JPEG XL Become the Next Free and Open Image Format? - Slashdot. [2021-12-30]. (原始內容存檔於2021-12-30).
- ^ 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).
- ^ 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].
- ^ PIK, A new lossy/lossless image format for photos and the internet. [2022-10-17]. (原始內容存檔於2022-11-13).
- ^ FUIF, Free Universal Image Format. [2022-10-17]. (原始內容存檔於2022-11-12).
- ^ v0.2 JPEG XL Reference Software. GitLab. [2021-12-30]. (原始內容存檔於2021-10-20) (英語).
- ^ 11.0 11.1 ISO/IEC 18181-2:2021 Information technology — JPEG XL image coding system — Part 2: File format.
- ^ Using Saliency in progressive JPEG XL images. [2022-10-17]. (原始內容存檔於2023-01-09).
- ^ 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.
- ^ JPEG XL White Paper (PDF). JPEG.org. 2021-01-29 [2021-03-17]. (原始內容存檔 (PDF)於2 May 2021).
- ^ JPEG XL vs. AVIF - Page 6. encode.su. [2022-10-22]. (原始內容存檔於2022-10-18).
- ^ 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).
- ^ jpeg / JPEG XL Reference Software. GitLab. [2021-12-30]. (原始內容存檔於2021-12-30) (英語).
- ^ FLIF - Free Lossless Image Format. [2021-12-30]. (原始內容存檔於2021-12-21).
- ^ 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 .
- ^ FLIF, 3 Sep 2021, jonsneyers comment. [2022-12-07]. (原始內容存檔於2022-12-17).
- ^ 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).
- ^ JPEG XL reference implementation. GitHub. 3 December 2021 [24 June 2021]. (原始內容存檔於30 December 2021).
- ^ Andre, Erik. Statement of support by Facebook on Chromium's issue #1178058. bugs.chromium.org. 2021-04-20 [2022-11-03]. (原始內容存檔於2021-12-30).
- ^ Andre, Erik. Statement of support by Facebook on Firefox's issue #1539075. bugzilla.mozilla.org. 2021-05-24 [2022-11-03]. (原始內容存檔於2022-01-04) (英語).
- ^ Rosenthol, Leonard. Statement of support by Adobe on Firefox's issue #1539075. bugzilla.mozilla.org. 2021-06-07 [2022-11-03]. (原始內容存檔於2022-01-04) (英語).
- ^ Chan, Eric. Statement of support by Adobe on Chromium's issue #1178058. bugs.chromium.org. 2022-08-23 [2022-11-03]. (原始內容存檔於2021-12-30).
- ^ 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).
- ^ 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).
- ^ 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).
- ^ 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) (英語).
- ^ 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) (英語).
- ^ Bendell, Colin. Statement of support by Shopify on Chromium's issue #1178058. bugs.chromium.org. 2022-10-17 [2022-11-03]. (原始內容存檔於2021-12-30).
- ^ 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).
- ^ 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).
- ^ Update JPEG-XL with latest changes.. GitHub. 2019-12-27 [10 October 2022]. (原始內容存檔於2022-10-10).
- ^ PLEASE DO NOT OPEN NEW ISSUES HERE. [2021年5月27日].
- ^ libjxl-tiny. [2022-12-07]. (原始內容存檔於2022-12-09).
- ^ jxlatte. [2022-12-07]. (原始內容存檔於2022-12-04).
- ^ pyjxl. [2022-12-07]. (原始內容存檔於2022-11-12).
- ^ Siipola, Johannes, JPEG XL Encode, 2022-10-31 [2022-11-29], (原始內容存檔於2022-11-29)
- ^ Codec to consider: JPEG XL · Issue #721 · GoogleChromeLabs/squoosh. GitHub. [2022-11-26]. (原始內容存檔於2022-11-26) (英語).
- ^ HDR Output in Camera Raw. [2022-10-21]. (原始內容存檔於2022-10-21).
- ^ Affinity V2: What's new (JPEG XL import/export). [2022-11-09]. (原始內容存檔於2022-12-14) (英語).
- ^ Online Help for Chasys Draw IES: History. 2022-07-17 [2022-07-18]. (原始內容存檔於2022-12-07).
- ^ ExifTool by Phil Harvey. [2022-01-19]. (原始內容存檔於2022-01-26).
- ^ FFmpeg Lands JPEG-XL Support. www.phoronix.com. [2022-04-24]. (原始內容存檔於2022-07-03) (英語).
- ^ GIMP 2.10.32 Released. 2022-06-14 [2022-06-15]. (原始內容存檔於2023-01-06).
- ^ GThumb Image Viewer 3.11.3 Adds JPEG XL (.JXL) Support [Ubuntu PPA] | UbuntuHandbook. [2021-05-17]. (原始內容存檔於2021-12-30).
- ^ ImageMagick. [2021-03-01]. (原始內容存檔於2022-01-02).
- ^ IrfanView PlugIns. [2021-12-03]. (原始內容存檔於2021-12-28).
- ^ KaOS 2021.06. [2022-01-31]. (原始內容存檔於2021-06-29).
- ^ Krita 5.1.0 Released!. krita.org. 2022-08-18 [2022-08-20]. (原始內容存檔於2023-01-20) (英語).
- ^ Statement of support by the Krita project on Chromium's issue #1178058. bugs.chromium.org. [2022-11-03]. (原始內容存檔於2021-12-30).
- ^ KDE Ships Frameworks 5.89.0. KDE Community. 2021-12-11 [2022-04-28]. (原始內容存檔於2022-12-07) (英語).
- ^ 0001845: JPEG XL - MantisBT. [2021-03-01]. (原始內容存檔於2021-11-07).
- ^ Pale Moon 31.4.0 released! - Pale Moon forum. forum.palemoon.org. [2022-11-22]. (原始內容存檔於2023-01-05).
- ^ Jpeg Xl Wic. GitHub. 27 November 2021 [2021-12-30]. (原始內容存檔於2021-12-30).
- ^ JXLook. GitHub. December 2021 [2021-12-30]. (原始內容存檔於2021-12-30).
- ^ libjxl gdk-pixbuf plugin. GitHub. [2022-11-26]. (原始內容存檔於2023-01-18) (英語).
- ^ 1178058 - chromium - an open-source project to help move the web forward. - Monorail. [2021-12-30]. (原始內容存檔於2021-12-30).
- ^ 1539075 - (JPEG-XL) Implement support for JPEG XL (Image/JXL). [2021-12-30]. (原始內容存檔於2022-01-04).
- ^ 1806525 - Unable to view jpegxl images when setting image.jxl.enabled = true in about:config. bugzilla.mozilla.org. [2024-03-18]. (原始內容存檔於2024-05-22) (英語).