Rust 实现渐进渲染:谷歌官宣 Chrome 155 浏览器支持解码 JPEG XL 图片格式
文章目录
Rust 实现渐进渲染:谷歌官宣 Chrome 155 浏览器支持解码 JPEG XL 图片格式
Rust 实现渐进渲染:谷歌官宣 Chrome 155 浏览器支持解码 JPEG XL 图片格式 — ithome.com · 46 分钟前 · ⚙️ 工程

谷歌开发者博客于 10 月 6 日发布博文,宣布 Chrome 155 浏览器将正式加入对 JPEG XL(.jxl)图片格式的解码支持,官方把这一格式定位为面向现代 Web 开发者与摄影师的新一代图像标准。相比传统 JPEG,它在同等画质下可带来 30% 至 50% 的压缩率提升,同时具备无损压缩、内建 HDR 支持,以及把既有 JPEG 无损转码为 .jxl 的能力,这意味着存量图库不必重新编码、不必损失画质就能逐步迁移。谷歌并未把 JPEG XL 与 AVIF 视为非此即彼的选择,而是建议开发者按场景取舍:带宽紧张、加载速度关键、图片数量庞大的页面更适合 AVIF;追求高保真或无损压缩的摄影图像,以及需要细粒度渐进式解码的场合,则更适合 JPEG XL。渐进式解码是此次演示的重点,示例图片的完整文件为 146.7 KB,用户在仅下载数 KB 数据后就能辨认出图像主体。安全层面,谷歌强调图片解码器是浏览器中最关键也最易被定向攻击的环节之一,它直接处理来自网络的不可信二进制结构,并运行在渲染器进程中;历史上用 C++ 编写的解码器常出现越界读取、堆溢出与释放后使用等漏洞。为此 Chrome 集成了纯 Rust 实现的 jxl-rs,并借助安全 SIMD 指令与自建 SIMD 抽象层维持解码速度,同时叠加多项性能优化。谷歌称该实现经过自动化审查与模糊测试,开发过程中未发现内存安全问题。相关阅读显示,Firefox 157 也将开放支持该格式。
核心信息
- 在 Chrome 155 中落地的 JPEG XL 解码支持,把这项格式的核心卖点一次性带进了主流浏览器:官方给出的数字是相比 JPEG 可节省 30% 到 50% 的体积,同时原生支持无损压缩、内建 HDR 显示,以及把现有 JPEG 无损转码为 .jxl 的能力,后者意味着存量图库既不必重新编码、也不必接受画质折损就能逐步迁移到新格式,对内容量大、历史素材多的站点尤其关键。
- 谷歌对两种现代格式给出了明确分工:AVIF 凭借更高的压缩效率、更丰富的功能集与更广泛的浏览器支持,适合带宽敏感、加载速度关键、图片数量庞大的场景;JPEG XL 则更适合高保真或无损压缩需求,尤其是摄影图像,以及需要细粒度渐进式解码的场合,官方建议开发者两种格式都实际尝试,而不是做简单替换。
- 渐进式解码是此次演示中最直观的证据:示例图像的完整文件大小为 146.7 KB,用户在只下载了数 KB 数据之后就已经能够辨认出图像主体,这意味着在慢速网络下首屏可以先呈现可识别的低清画面,再逐步补全细节,而不必等到较大比例的数据到位后才能读出内容。
- 安全层面,Chrome 把 JPEG XL 解码器换成了纯 Rust 实现的 jxl-rs:图片解码器直接解析来自网络的不可信二进制结构并运行在渲染器进程中,历史上 C++ 解码器反复出现越界读取、堆溢出与释放后使用等漏洞,而 jxl-rs 通过安全 SIMD 指令与自建的 SIMD 抽象层保住速度,并配合自动化审查与模糊测试,开发过程中未发现内存安全问题。
💡 为什么值得读: 它不只是宣布一个新格式上线,更给出了压缩率、渐进式解码效果与内存安全重写三条硬线索,让人看清浏览器图片管线接下来会往哪走。
✍️ 小编看法: Chrome 155 与 Firefox 157 前后脚把 JPEG XL 重新拉回牌桌,意义不在于又多了一种文件后缀,而在于浏览器厂商终于承认图片格式之争没有唯一答案。过去几年行业几乎一边倒押注 AVIF,结果摄影、印刷、存档这类对保真度敏感的场景始终缺一个既省体积又不丢信息的选项,而无损转码恰好补上这块空白:老图库可以原地升级,不必重编码,也不必接受画质折损。更值得留意的是渐进式解码带来的体验变化。数 KB 就能看清主体,对弱网、移动端和长图文页面是实打实的收益,但它同时把压力转移到了编码端——服务端要生成并维护多套码流,分发网络要理解新的分段方式,图片处理流水线的复杂度与成本都会上升,这部分代价很少出现在发布公告里。安全叙事同样值得单独看待。把一个用 C++ 写的解码器换成内存安全语言重写,并且保住 SIMD 性能,这条路一旦跑通,会迅速复制到字体、音视频、压缩等所有直接吞食不可信数据的模块上,浏览器攻击面有望被系统性收窄。接下来该盯三件事:编码工具链是否足够成熟、主流分发网络与图片服务是否默认支持、以及 Safari 与硬件解码的跟进节奏。格式的胜负从来不由浏览器单独决定,而是由整条生产链路投票。
🏷️ Chrome, JPEG XL, Rust, image compression
本文由 AI 辅助生成,内容为原文摘要与编辑点评,原文版权归原作者所有,欢迎点击上方链接阅读完整内容。
留下一点回声