發布日期:2026 年 10 月 6 日
我們很高興宣布,Chrome 155 以上版本將支援解碼 JPEG XL (.jxl) 圖片格式。JPEG XL 是新一代的圖片格式,可滿足現代網頁開發人員和攝影師的需求。WebP 格式的壓縮效果比 JPEG 更好 (30% 至 50%),而且支援無失真壓縮、內建 HDR、無失真 JPEG 轉碼等功能。
一般來說,我們建議同時嘗試 AVIF 和 JPEG XL,以獲得最佳結果。 我們預期 JPEG XL 最適合用於高保真度或無損壓縮,特別是攝影圖像,或偏好細緻漸進式解碼的情況。
在這篇文章中,我們將說明在 Chrome 中導入 JPEG XL 的原因、如何使用 Rust 確保記憶體安全,以及如何透過大量效能工作提升速度,並分享這段歷程帶給我們的啟示,包括開發人員意見回饋和網路標準生態系統。
安全至上:以 Rust 重新實作解碼器 (jxl-rs)
圖片解碼器是任何現代網路瀏覽器中最重要且最容易遭受針對性攻擊的介面之一。這些結構會直接從網路處理複雜的不受信任二進位結構,並在轉譯器程序中執行。以 C++ 等記憶體不安全語言編寫的解碼器,過去一直容易發生超出範圍讀取、堆積溢位和使用已釋放記憶體等錯誤。
我們的安全模型以沙箱和縱深防禦為基礎,並遵循「二」原則。不過,沙箱是第二層防禦機制。為從源頭杜絕這些安全風險,我們整合了 jxl-rs,這是以純 Rust 實作的 JPEG XL 解碼器。
速度至上,安全無虞
記憶體安全至關重要,但如果記憶體安全解碼器與最佳非記憶體安全替代方案的速度差不多,那麼與效能大幅降低的替代方案相比,前者顯然是更好的選擇。
現代編解碼器效能的基礎,是充分運用現代裝置上的 SIMD 硬體。為確保安全,target_feature_11 Rust
功能必須穩定,才能使用 SIMD 指令,無須 unsafe 程式碼。
下一步是建構 SIMD 抽象層 (jxl_simd),靈感來自 C++ Highway 程式庫 (該程式庫本身最初是為 libjxl 開發,也就是 JPEG XL 的 C++ 參考實作)。這些發展共同促成了多平台程式庫的編寫,不僅不會影響 SIMD 效能最佳化,還能將不安全的操作限制在少數經過嚴格審查的位置。
jxl-rs 的效能最佳化功能是以 libjxl 為基礎,包括跨越區域邊界的步驟通用處理管道,同時盡量減少資料副本,以發揮硬體效能。我們一直在 jxl-rs 效能資訊主頁上,追蹤不同硬體平台上的 Rust 重新實作效能。
我們使用各種最先進的技術 (包括模糊測試和程式碼的 AI 審查) 驗證了 jxl-rs 實作項目,在整個實作歷程中,並未發現任何記憶體安全錯誤,這進一步驗證了 Rust 在記憶體安全方面帶來的巨大進步。
開發人員意見回饋和互通性專案
Chrome 團隊會透過各種管道收集網頁開發人員的意見回饋,例如錯誤、問卷調查、開發人員信號計畫和 Interop 計畫。我們決定推出 JPEG XL,是根據網頁開發人員持續提供的意見和要求,這在 Interop 程序中最為明顯,因為 JPEG XL 是 2026 年的熱門提案,且在之前幾年也是如此。
為確保格式可在各瀏覽器間互通,我們參與了 Interop 2026 JPEG XL 調查,確保瀏覽器中所有 JPEG XL 功能都有測試涵蓋範圍,且這些測試在 Chrome 中通過。
試試看
隨著 JPEG XL 正式登陸 Chrome,網路將變得更快、更豐富且更安全。我們鼓勵開發人員、內容創作者和平台擁有者開始在管道中使用 .jxl 圖片和動畫。
歡迎試用、回報錯誤,並協助我們持續為所有人打造更快速安全的網路。
特別銘謝
我們衷心感謝所有為 Chrome 整合 jxl-rs 做出貢獻的人,特別是 Helmut Januschka,他對 Chrome 整合和 jxl-rs 本身都做出了重大貢獻;以及 Martin Bruse、Zoltan Szabadka、Sami Boukortt 和 Wonwoo Choi,他們對 jxl-rs 本身做出了重大貢獻。