近年來的影像無損壓縮(Lossless)、有損壓縮(Lossy)格式比較 — PNG, JPEG, WebP, AVIF, JXL

張家銘
4 min readDec 14, 2022
image source: https://drive.google.com/file/d/1k6Y2UUJWxOyT3JqTFZkmWMqPCK0SvlPl/view

近年來人們要求較好的觀看品質,因此追求影像畫質好並且容量小,在觀影時就可以有較快的加載時間,常見的 JPEG 格式顯然不足以應付現代人的需求,因此近世代的圖片轉換格式需要支援無損壓縮以及更高的有損壓縮率,像是 Google 在 2010 年推出的 WebP、AOMedia 在 2019 年推出的 AVIF,這是由 Netflix 主導推動的影像格式以及 2021 年由 JPEG 推出的 JPEG XL,而 Google 也在 2021 年更新了 WebP 版本 WebP 2,但由於支援還不廣泛,因此先不列入討論中。

無損壓縮比較

在下列這個表格中,比較了多種影像種類的無損壓縮率,此作者以 JPEG XL 來當作比較標準,我們以 PNG 為基準來進行換算,當 PNG (100%) 為無損壓縮目標時,WebP 可以無損壓縮到 78.5%、AVIF 可以無損壓縮到 111%、JPEG XL 可以無損壓縮到 68.4%,也就是說當一張影像為 10 MB (.png) 時可以壓縮到 7.85 MB (.webp)、11.1 MB (.avif)、6.84 MB (.jxl)。

有損壓縮比較

在這個影片中,比較了 JPEG、WebP、JXL、AVIF 這四種格式的有損壓縮比較,可以看到 JXL 和 AVIF 都可以在壓縮率相當高的情況下保持影像的色彩、形狀、漸變。

在 表一 中將上面的內容做一個統整:

Table 1: Image Format Summary
  • WebP 無損壓縮和有損壓縮都表現優秀,但是編碼速度很慢。
  • AVIF 有損壓縮表現最好,無損壓縮表現糟糕,編碼速度也很慢。
  • JPEG XL 無損壓縮和有損壓縮和編碼速度都表現優秀。

在 MAC 中已支援 WebP, AVIF 格式,但 JXL 格式還沒支援,如 圖一 所示

Picture 1: Image format support on MAC

在 MAC 電腦上的各種影像格式轉換指令:

  1. WebP:
# install WebP
brew install webp

## Lossless
cwebp –lossless –z 9 –m 6 -q 100 –mt image.png -o image.webp

## Lossy
cwebp –q 50 image.png -o image.webp

2. AVIF:

# install AVIF
brew install libavif

## Lossless
avifenc –p - lossless -s 0 image.png image.avif

## Lossy
avifenc image.png image.avif

3. JXL:

# install JPEG XL
brew install jpeg-xl

## Lossless
cjxl image.png image.jxl –q 100

## Lossy
cjxl image.png image.jxl -q 50

相關工具體驗:

https://squoosh.app/

結論

從上述的比較中,最好的方案是把 AVIF 用在有損壓縮上,而 JPEG XL 用在無損壓縮上,而在支援度方面則是 WebP 和 AVIF 比較友善,值得一提的是 WebP 2 期望能在有損壓縮程度達到 AVIF 的水準,因此我們在未來可以期待 Google 將其發揚光大。

--

--