文章目錄
照片放上網站之前,我最不喜歡的步驟之一就是壓縮。原本看起來好好的,壓完開始盯著樹葉、頭髮和天空看:這裡是不是糊了?那邊是不是有色帶?再把品質往上調一點,檔案又變大。來回幾次,很容易覺得自己到底在忙什麼。
所以看到 Chrome 開始支援 JPEG XL,我是滿有興趣的。尤其是放照片的網站,如果能少傳一點資料,又不用一直對畫質退讓,這件事就值得看看。
Chrome 在 2026 年 10 月 6 日宣布,從 Chrome 155 起加入 JPEG XL 解碼支援。也就是瀏覽器可以直接讀取 .jxl 圖片,不必另外在網頁裡安排解碼程式。
已經有 WebP 和 AVIF,還要再多一種嗎?#
我第一個想到的也是這件事。網站圖片格式已經不少,每多一種,轉檔、儲存和相容性就又多一個要考慮的地方。如果只是「也能把圖片壓小」,好像沒有非用不可的理由。
JPEG XL 比較值得注意的地方,是它對高畫質照片、無損壓縮和漸進式載入的考量。Chrome 官方也建議 AVIF 和 JPEG XL 都試,尤其把高保真、無損與細緻的漸進式解碼列為 JPEG XL 值得使用的情境。
例如一張很大的照片,漸進式解碼可以先呈現較粗略的畫面,再隨著資料進來補上細節。對正在等圖片的人來說,先看到整張照片,跟看著空白等它載完,感受就不太一樣。
另一個比較特別的能力,是它能把既有 JPEG 無損重新壓縮,再還原成原本的 JPEG 檔案。對已經存了大量照片的系統,這提供了一條保留既有資料、同時減少儲存空間的路。JPEG XL 也支援廣色域、HDR 和高位元深度,照顧到專業攝影的需求。
所以我覺得,多這個選項是有意義的。一般縮圖可能用現有格式就很夠了,但如果網站放的是讓人放大看的攝影作品,或必須保留完整像素資訊的圖片,需求就不太一樣。也不能直接說 JPEG XL 一定比 AVIF 小;圖片內容、畫質要求和編碼設定,都會影響結果。
JPEG 可以無損轉過去,但畫質不會長回來#
這裡的「無損」,我覺得值得再講清楚一點。第一次看到,很容易以為原本壓壞的 JPEG,轉完就能變得比較清楚。
它保留的是手上那份 JPEG 已經有的資訊。原本壓成 JPEG 時丟掉的細節,不會因為換成 .jxl 就重新出現。比較像是把現有東西換個方式收好,省下一些空間,也避免又做一次有損壓縮。
參考實作提供既有 JPEG 的無損重新壓縮與重建流程;在保留必要資訊的情況下,可以還原原本的 JPEG 檔案。
如果手上已經有很多 JPEG,這個能力就滿吸引我。不用先決定「為了省空間,這次可以再犧牲多少畫質」,至少少了一個讓人猶豫的地方。
為什麼瀏覽器支援一種圖片格式,要花這麼多工夫?#
我以前比較容易把圖片當成靜態資料。放進網頁,瀏覽器把它顯示出來,好像就這樣。
但解碼器得處理從網路送來、內容不一定可信的二進位資料。圖片的結構很複雜,解析出錯也可能變成安全漏洞。Chrome 這次採用 Rust 實作的 jxl-rs 解碼器,官方特別說明了記憶體安全、效能最佳化,以及 fuzzing 等測試工作。
想到這裡,就比較能理解為什麼「這個格式壓縮效果很好」,還不足以讓瀏覽器直接加進去。下載省下來的資料量、裝置解碼需要花的資源,以及處理惡意檔案的風險,都得一起考慮。
我滿喜歡這種從一張圖片往下挖的感覺。原本只是在想照片能不能小一點,後面卻牽到編碼、載入方式、記憶體安全,還有瀏覽器願意長期維護什麼。最後顯示在畫面上的還是那張照片,只是讓它順利出現,背後真的沒有看起來那麼簡單。