JPEG XL
JPEG XL 是一种免版税 的位图 文件格式 ,支持有损 和无损 压缩。它旨在超越现有的位图格式,并成为它们的通用替代。[ 5] JPEG XL格式规范的主要作者有Jyrki Alakuijala、Jon Sneyers和Luca Versari。
名称
历史
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 等广色域 的感知量化器 、混合对数伽马校正 和转换曲线 进行了特别设计。
特点
主要特点有:[ 13] [ 14] [ 15]
更多功能:与传统图像格式(例如JPEG、GIF和PNG)相比,有着更佳的效率与更丰富的功能;
更大尺度:长宽可超过十亿(
2
30
− − -->
1
{\displaystyle 2^{30}-1}
)个像素;[ 16]
更多通道 :最多4099个通道,包括主通道(单通道的灰度 、三通道的RGB 或四通道的CMYK )、可选的多达4096个可用于透明度 、深度 、热成像 等的额外通道; [ 16]
多帧支持:支持用于动画的非零时长帧和类似图像软件 中图层的零时长帧,且帧的大小不受图像画布大小影响,并支持多种混合模式;
独立图块:允许图像分多图块保存,以支持分块解码大幅图像;
渐进式解码:专为支持不同显示分辨率的响应式 加载;
可逆JPEG 转码 :可实现约20%的数据流压缩;
无损编码:包括无损alpha编码;
类型感知:可根据图像内容使用分别为摄影图像和合成图像优化的两种模式;
低码率优化:在低比特率下相较旧格式质量更可接受;
感知优化 :参考编码器默认使用感知色彩空间、自适应量化和保守的默认设置;
色域 支持:内置广色域、转移曲线 和HDR 支持;
动画 支持:但编码真实视频时仍建议使用常规的视频编码 ;
高效编解码:无需专用硬件,JPEG XL的编解码速度即可与使用libjpeg-turbo 的JPEG相当,比使用x265 的HEIC 速度快一个数量级,[ 16] 并可以并行 。
开源免费:具有使用三条款版BSD许可证 的开源 参考实现的免版税格式。[ 17]
技术细节
JPEG XL 编解码器架构图
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] 。
编解码器实现
JPEG XL参考软件(libjxl)
三条款版BSD许可证 (曾为Apache许可证 2.0)
包含组件
编解码库libjxl
编码器cjxl
解码器djxl
快速无损编码器fjxl
图像编码质量基准测试工具benchmark_xl
GIMP 和Gtk pixbuf插件file-jxl
官方支持
非官方支持
初步支持
标准化状态
注释
参考
^ 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) (英语) .
外部链接