JPEG XL
Template:NoteTA Template:Infobox file format
JPEG XL是一种免版税的位图文件格式,支持有损和无损压缩。它旨在超越现有的位图格式,并成为它们的通用替代。[1]JPEG XL格式规范的主要作者有Jyrki Alakuijala、Jon Sneyers和Luca Versari。
名称
- JPEG指设计了JPEG格式的聯合影像專家小組(Template:Lang)。
- X指2000年以来的多个JPEG标准的名称:JPEG XT、JPEG XR、Template:Link-en。
- L代表“长期”,创建这种格式是为替换旧的JPEG文件格式,并使用足够长的时间。
历史
2017年,JTC1 / SC29 / WG1 (JPEG) 发起下一代图像编码标准(JPEG XL)提案征集。[2]所有提案在2018年9月前提交,随后2019年7月形成委员会草案。[3]草案是由谷歌提交的PIK[4]和Template:Link-en提交的基于FLIF的FUIF[5]结合而来。
2020年12月25日,伴随着参考软件实现libjxl的0.2版本发布,JPEG XL的比特流格式被最终敲定,这意味着未来的版本将保证对此版本的解码兼容性。[6]此后文件格式与核心编码系统分别于2021年10月13日和2022年3月30日正式标准化。[7][8]
描述
JPEG XL的提案征集[2]提及了下一代图像压缩标准对大幅提升压缩效率(60%)的需求。新标准应该有优于HEIC、AVIF、WebP和JPEG 2000这些静态图像编码的表现,同时提供对传统JPEG格式的无损再压缩选项。
JPEG XL最高能够提供对甚高分辨率图像(每边1-{zh-cn:太;zh-tw:兆;}-像素)、4099个32位深通道(包含alpha通道)的静态或动态图像及其嵌入预览的有损压缩和无损压缩。它支持针对网络传输的渐进式解码[9]和最小化信头开销特性,以及针对图像编辑和数码印刷的图层、CMYK和Template:Link-en支持。它还针对无缝处理Template:Link-en等广色域的Template:Link-en、Template:Link-en和转换曲线进行了特别设计。
特点
- 更多功能:与传统图像格式(例如JPEG、GIF和PNG)相比,有着更佳的效率与更丰富的功能;
- 更大尺度:长宽可超过十亿()个像素;[13]
- 更多通道:最多4099个通道,包括主通道(单通道的灰度、三通道的RGB或四通道的CMYK)、可选的多达4096个可用于透明度、Template:Link-en、热成像等的额外通道; [13]
- 多帧支持:支持用于动画的非零时长帧和类似图像软件中图层的零时长帧,且帧的大小不受图像画布大小影响,并支持多种混合模式;
- 独立图块:允许图像分多图块保存,以支持分块解码大幅图像;
- 渐进式解码:专为支持不同显示分辨率的响应式加载;
- 可逆JPEG转码:可实现约20%的数据流压缩;
- 无损编码:包括无损alpha编码;
- 类型感知:可根据图像内容使用分别为摄影图像和合成图像优化的两种模式;
- 低码率优化:在低比特率下相较旧格式质量更可接受;
- 感知优化:参考编码器默认使用感知色彩空间、自适应量化和保守的默认设置;
- 色域支持:内置广色域、转移曲线和HDR支持;
- 动画支持:但编码真实视频时仍建议使用常规的视频编码;
- 高效编解码:无需专用硬件,JPEG XL的编解码速度即可与使用libjpeg-turbo的JPEG相当,比使用x265的HEIC速度快一个数量级,[13]并可以并行。
- 开源免费:具有使用三条款版BSD许可证的开源参考实现的免版税格式。[14]
技术细节
JPEG XL基于Google的PIK格式和Cloudinary的FUIF格式(基于FLIF)。[15]
JPEG XL主要有两种编码模式:
- VarDCT(Template:Lang,可变分块大小离散余弦变换)模式基于与JPEG相同的离散余弦变换算法,但分块不再限定为8×8,而是允许不同大小(2×2到256×256)、非正方形块(如16×8、8×32、32×64)乃至其他变换函数(4种“边角”变种AFV,以及非离散余弦变换的Hornuss变换)。此模式限于三通道色彩,通常使用Template:Link-en衍生的XYB色彩空间(但为支持重压缩传统JPEG仍支持YCbCr),基于PIK格式的有损模式。[16]
- Modular(模块化)模式是响应式的,用于高效的无损内容压缩以及近无损压缩。它可被VarDCT在内部用于存储二维数据,即除了交流(高频)离散余弦变换系数之外的所有数据,包括直流图像(1:8抽样图像)、自适应量化权值、滤镜强度。所有附加通道(如Template:Link-en、Template:Link-en、热成像和Template:Link-en等)总是使用此模式存储。此模式基于FUIF,并结合了无损PIK、无损WebP和标准化过程中的其他合作成果。[17]借助哈尔变换的“挤压”(Template:Lang),此模式也支持有损压缩,并实现渐进式特性:图像的质量会随着数据加载过程逐渐改善。
VarDCT模式的图像可藉由模块化“挤压”的独立“直流帧”存储的直流系数实现渐进式加载,支持1:16、1:32等抽样比例。“挤压”变换也可以用于将alpha通道和VarDCT模式的色彩通道一同渐进式编码,使两种模式协同工作。
JPEG XL默认使用视觉无损下仍有较好压缩效果的设置。[13]
这些模式可由单独的图像特征模型协助:
- Template:Link-en用于编码头发等(参考编码器暂未实现);
- 重复的“补丁”,如文字、点和“精灵”;
- 噪声合成:由于噪声难以压缩,将其剥离然后由解码器重新生成可能更佳。这类似于AV1等现代视频编码的Template:Link-en合成,尽管JPEG XL噪声合成的目的不是模仿模拟摄影胶片的颗粒,而是在像素层级建模数字相机在高感光度设置下的Template:Link-en。
JPEG XL编码可以无损地转码JPEG最常用的子类型的文件,实现方式是将JPEG的DCT系属直接拷贝到8×8的VarDCT块,并借助JPEG XL更好的熵压缩算法实现更小的文件大小。此过程是可逆的,可以从转换结果中逐位重建原始JPEG图像,尽管有一些限制条件[18]。
预测是基于逐像素、无辅助信息的去相关器运作的,包括参数化的自校正加权预测器集合。Template:Link-en包括特化的静态模型和强大的元自适应模型,它们考虑局部错误,具有信号树结构和分上下文的预测器选择。熵编码基于LZ77,可使用Template:Link-en或前缀码(适用于低复杂度的编码器,或减少短数据流的开销)。Template:Citation needed
动画(多帧)图像不执行高级帧间预测,尽管有一些基本的帧间编码工具可用:
- 帧可以小于画布大小,只更新画布的一部分;
- 除了替换前序帧外,还支持数种混合模式,如相加或相乘;[19]
- 在后面的帧中使用“补丁”编码工具最多可以“记住”并引用四帧。
软件
JPEG XL受到了许多科技公司与组织的公开支持,如Facebook[20][21]、Adobe[22][23]、Intel与VESA[24][25]、卫报[26][27]、Flickr和SmugMug[28]、Shopify[29]、Krita基金会[30]和Template:Link-en[31]。
编解码器实现
- JPEG XL参考软件(libjxl)
- J40:独立、自包含的JPEG XL解码器[1] Template:Wayback
- libjxl-tiny:简化的JPEG XL编码器实现,针对无透明度的摄影图像[32]
- 三条款版BSD许可证
- jxlatte:Java JPEG XL解码器[33]
- pyjxl:Python JPEG XL解码器[34]
- jpeg-xl-encode:PHP JPEG XL编码器[35]
官方支持
- 网页图像转换器Squoosh Template:Wayback[36]
- 数字相机图像导入导出工具Adobe Camera Raw[37]
- 位图编辑器Affinity Photo[38]
- 位图编辑器Chasys Draw IES[39]
- 元数据编辑器ExifTool[40]
- 多媒体框架FFmpeg[41]
- 位图编辑器GIMP[42]
- 图像查看器、照片管理应用gThumb[43]
- 位图处理工具包ImageMagick[44]
- 图像查看编辑器IrfanView[45]
- Linux发行版KaOS[46]
- 位图编辑器Krita[47][48]
- Qt和KDE应用[49]
- 位图查看编辑器XnView MP[50]
- 网络浏览器Pale Moon[51]
非官方支持
- Microsoft Windows[52]:通过第三方Template:Link-en插件,即用于在照片查看器、文件资源管理器等中查看。
- macOS[53]:通过独立应用程序和Quick Look插件。
- GTK和GNOME图像查看应用(Eye of GNOME、GNOME Files等):通过GDK pixbuf插件。[54]
初步支持
- Chromium[55]:网页浏览器,自91版至110版提供测试选项。
- Firefox[56]:网页浏览器,处于测试中,自Firefox 90开始可以通过
image.jxl.enabled标志开启(仅在Nightly开发版本中生效[57])。
标准化状态
| 通用名称 | 部分 | 首次公开发布日期 (第一版) |
ISO/IEC编号 | 正式名称 |
|---|---|---|---|---|
| JPEG XL | 第1部分 | 2022年3月30日 | ISO/IEC 18181-1 Template:Wayback | JPEG XL图像编码系统-第1部分:核心编码系统[7] |
| 第2部分 | 2021年10月13日 | ISO/IEC 18181-2 Template:Wayback | JPEG XL图像编码系统-第2部分:文件格式[8] | |
| 第3部分 | 2022年10月3日 | ISO/IEC 18181-3 Template:Wayback | JPEG XL图像编码系统-第3部分:一致性测试 | |
| 第4部分 | 2022年8月5日 | ISO/IEC 18181-4 Template:Wayback | JPEG XL图像编码系统-第4部分:参考软件 |
注释
参考
外部链接
- ↑ Template:Cite web
- ↑ 2.0 2.1 Template:Cite web
- ↑ Template:Cite arXiv
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ 7.0 7.1 引用错误:
<ref>标签无效;未给name(名称)为iso-iec-18181-1的ref(参考)提供文本 - ↑ 8.0 8.1 Template:Cite ISO standard
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ 13.0 13.1 13.2 13.3 Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite journal
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Citation
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web