JPEG XL 作为下一代图像格式,在压缩效率、解码速度及功能丰富度上全面超越 WebP 和 AVIF,尤其适合浏览器环境。Chromium 项目曾于 2022 年移除其实验支持,但苹果 Safari 落地后,社区压力促使重新评估整合。当前,通过特定补丁和构建配置,已实现高效解码器重启,支持无损 JPEG 转码及渐进渲染,显著降低 Web 图像管道延迟。
重新整合的核心在于优化解码器体积与性能。原生 Chromium 移除 JPEG XL 后,Thorium 等 fork 项目采用 chromium-restore-jpeg-xl-support-120.patch 恢复 MIME 类型注册(image/jxl)和 libjxl 集成。该补丁启用模块化解码路径,避免 C++ 代码超 10 万行的安全隐患,转向 Rust 实现以提升内存安全性。证据显示,Firefox Nightly 已可选启用 Rust 解码器,Chromium 社区讨论中强调其紧凑性(jxl_decoder_libjxl_path = "//third_party/libjxl")。
性能基准证实其优势。以同等质量基准,JPEG XL 压缩率设为 100%(基准),解码速度达 85 MP/s;WebP 为 135% 压缩率、92 MP/s;AVIF 120% 压缩率、68 MP/s。“Thorium 通过补丁实现完整编解码,JPEG XL 比 WebP 高 35% 压缩率。” 实际测试中,JPEG XL 无损模式下文件减小 48%,优于 WebP 41%,尤其处理复杂图像(如 HDR)时第 75 百分位优势明显。浏览器中,渐进式加载减少视觉延迟,支持动画与 Alpha 通道,远胜 AVIF 编码慢 10 倍的问题。
无损转码是关键落地点。JPEG XL 支持直接从 JPEG 无损重编码,平均节省 20% 体积,无需解码再编码,避免质量损失。参数示例:cjxl input.jpg output.jxl -q 85 --num_threads 4,实现多线程加速。浏览器管道中,集成后图像流水线需监控解码耗时阈值 <50ms/帧,回滚至 WebP 若超标。
工程化参数清单:
- GN 配置:enable_jxl_image_decoder = true; jxl_use_system_libjxl = false; is_official_build = true。
- 构建流程:gn gen out/Default; autoninja -C out/Default chrome。
- 监控点:解码速度 >80 MP/s;内存峰值 < libjxl 基准 1.2 倍;兼容 fallback 至 AVIF/WebP( 优先级)。
- 回滚策略:A/B 测试覆盖率 10%,若用户投诉率 >1% 或加载时延 +5%,切换 flag 关闭。
- 管道优化:预热 libjxl 缓存;渐进渲染阈值 4096 像素块;HDR 通道限 32 位/通道。
挑战在于生态与安全。Chromium 默认不支持,需扩展或 fork;Rust 解码器实验中,预计 2025 Q1 稳定。管道痛点包括动画渐进不全(Safari 待优化)和多格式协商(picture 标签)。落地时,CDN 预转码 JPEG→JXL,节省带宽 60%;监控解码崩溃率 <0.01%。
资料来源:蓝点网 PDF 协会报告(Chromium 社区讨论);Thorium CSDN 构建指南(patch 与基准);IT之家 Rust 解码器进展。