Chrome 155 正式支持 JPEG XL 图像格式
我们很高兴地宣布,从 Chrome 155 开始,Chrome 正式支持 JPEG XL(.jxl)图像格式的解码。JPEG XL 是一种下一代图像格式,旨在满足现代 Web 开发人员和摄影师的需求。与 JPEG 相比,它的压缩率可提高 30% 到 50%,支持无损压缩、内置 HDR、无损 JPEG 转码等更多特性。
总体而言,我们建议同时尝试 AVIF 和 JPEG XL 以获得最佳效果。我们预计 JPEG XL 在保真度或无损压缩方面最为有用,特别是用于摄影图像,或在偏好细粒度渐进解码的场景中。
在这篇文章中,我们将分享将 JPEG XL 引入 Chrome 的原因、如何使用 Rust 确保安全优先、为提升速度所做的广泛性能优化工作,以及这段旅程揭示的关于开发者反馈和 Web 标准生态系统的洞察。
安全优先:用 Rust(jxl-rs)重新实现解码器
图像解码器是任何现代 Web 浏览器中最关键、也最常被攻击的目标之一。它们直接处理来自网络的复杂且不可信的二进制结构,并在渲染器进程中运行。历史上,使用 C++ 等内存不安全语言编写的解码器容易发生越界读取、堆溢出和释放后使用等漏洞。
我们的安全模型依赖于沙箱和纵深防御,遵循二元规则。然而,沙箱只是第二道防线。为了从根源上消除这些安全风险,我们集成了 jxl-rs,这是 JPEG XL 解码器的纯 Rust 实现。
为速度设计,同时不妥协安全性
内存安全至关重要,但一个内存安全且速度接近最佳非内存安全替代方案的解码器,显然比一个存在显著性能代价的选择更具吸引力。
现代编解码器性能的一个基本组成部分是充分利用现代设备上可用的 SIMD 硬件。为了安全地做到这一点,target_feature_11 Rust 特性必须稳定,这使得使用 SIMD 指令时无需编写 unsafe 代码。
下一步是构建一个 SIMD 抽象层(jxl_simd),设计灵感来自 C++ 的 Highway 库(该库最初也是为 libjxl——JPEG XL 的 C++ 参考实现——开发的)。这些工作让我们得以编写一个不牺牲 SIMD 性能优化、同时把不安全操作限制在少数经过严格审查位置的多平台库。
jxl-rs 的性能优化建立在 libjxl 的基础上,包括一个可处理跨区域边界步骤的通用处理管线,同时尽量减少数据拷贝,以充分发挥硬件性能。我们一直在 jxl-rs 性能仪表板上跟踪 Rust 重写版本在不同硬件平台上的性能表现。
我们用多种前沿技术验证了 jxl-rs 的实现,包括 fuzzing 和 AI 代码审查,整个开发过程中没有发现任何内存安全漏洞——这再次印证了 Rust 在内存安全方面带来的巨大改进。
开发者反馈与 Interop Project
Chrome 团队会通过多种渠道收集 Web 开发者的反馈,例如 bug 报告、问卷调查、Developer Signals Project 和 Interop Project。此次决定发布 JPEG XL,正是基于 Web 开发者持续的反馈和请求——在 Interop 流程中,它连续多年都是热门提案,2026 年也不例外。
为确保该格式在各浏览器间可互操作,我们参与了 Interop 2026 JPEG XL Investigation,保证 JPEG XL 的所有特性在浏览器中都有测试覆盖,并且这些测试都能在 Chrome 中通过。
亲自体验
随着 JPEG XL 正式登陆 Chrome,Web 变得更快、更丰富、也更安全。我们鼓励开发者、内容创作者和平台方在自己的流程中开始使用 .jxl 图像和动画。
快来体验,提交 Bug,帮助我们持续构建更快、更安全的网络环境。
致谢
感谢所有为 jxl-rs 及其在 Chrome 中的集成做出贡献的人,特别是 Helmut Januschka,他对 Chrome 集成和 jxl-rs 都做出了巨大贡献;同时感谢 Martin Bruse、Zoltan Szabadka、Sami Boukortt 和 Wonwoo Choi 对 jxl-rs 本身的显著贡献。