WebP 壓縮研究

簡介

我們會依據我們在 libwebp 中發布的新編碼器,對 WebP 和 JPEG 圖片壓縮進行比較。我們的目標是使用公開可用的工具執行一組可輕鬆重複執行的實驗,並比較 WebP 和 JPEG 的圖片壓縮效果。

我們之前的 WebP 比較研究,著重於評估大量圖片,並以檢索網路的 JPEG 來源執行。JPEG 是一種有損壓縮格式,會對來源引入壓縮成果。此外,我們一開始使用「峰值訊號降噪」或「PSNR」做為品質指標。使用 PSNR 做為圖片品質指標時,有一些缺點。我們會根據社群的意見回饋,針對 PNG 圖片進行實驗,包括數個標準測試套件提供的圖片。我們在本研究中使用結構相似度或 SSIM 做為本研究的品質指標。我們將 SSIM 視為更優質的視覺品質指標

研究方法

我們會說明兩種評估類型。在第一個案例中,我們研究了 WebP 在和 JPEG 相同的品質等級進行的額外壓縮。特別要注意的是,我們會產生與 JPEG 圖片具有相同品質 (根據 SSIM 索引) 的 WebP 圖片,然後比較 WebP 和 JPEG 圖片的檔案大小。在第二個案例中,我們會分析 WebP 和 JPEG 的 SSIM 與每像素位元數 (bpp) 圖。這些圖表顯示 WebP 和 JPEG 的速率扭曲取捨。

實驗資料集是由 PNG 圖片組成。這些映像檔來自可公開存取的標準測試映像檔套件,以及從網路上檢索到的大量 PNG 圖片。

每項實驗都是由執行一組指令組成。只有公開的指令列工具的用途,是確保實驗對他人可合理調整。這項實驗使用的指令列工具包括:

  • identifyconvertImageMagick 的指令列工具。我們使用 6.5.7 版進行這項分析。我們使用 convert 轉換 PNG 和 PPM 格式。我們使用 identify 擷取圖片的寬度和高度資訊,

  • cwebpdwebp 是指令列工具,屬於我們在 2011 年第 1 季發布的 libwebp 程式庫中。我們使用 0.1.2 版的程式庫。我們使用 cwebpdwebp 對 WebP 圖片進行編碼及解碼。我們使用了這些工具的預設編碼和解碼參數。

  • cjpegdjpeglibjpeg 程式庫中的指令列工具。我們使用了程式庫 6b 版。我們使用 cjpegdjpeg 對 JPEG 圖片進行編碼及解碼。我們使用 cjpeg 搭配 -optimize 旗標來最佳化檔案大小。我們會將所有其他參數設為預設值。

圖片畫質是使用 SSIM 進行測量。如前所述,SSIM 的品質指標通常都比 PSNR 更好。針對 SSIM 索引運算,我們使用 C++ 中公開發布的實作。讀取器可能會從程式碼存放區下載實驗中使用的 Python 指令碼,以供參考。

圖片資料集

我們選擇了用來評估標準測試圖片集合與大量圖片的資料集。以下是實驗中使用的資料集清單。

  1. Lenna:廣泛使用的智慧鏡頭圖片 (512 x 512 像素)。

  2. KodakKodak 實際色彩圖片套件中的 24 張圖片。

  3. Tecnick:Tecnick.com 提供的 100 張圖片,我們使用 100 張原始大小的 RGB 顏色圖片。

  4. Image_crawl:為測試大量圖片,我們從 Google 圖片搜尋的網頁檢索資料庫隨機收集 PNG 圖片。大多數經過檢索的 PNG 圖片都是圖示、圖形、圖表、掃描文件等。不過,標準測試集合中的大多數圖片都是照片,而非電腦產生的圖片。為了讓這個資料集和標準測試套件的性質相似,我們針對這些 PNG 圖片執行臉部偵測演算法,只將這些圖片 (約 11,000 張) 視為通過這項偵測測試的實驗。

實驗 1:在均等 SSIM 指數中,WebP 與 JPEG 的比較

在這個實驗中,我們會以相近的 SSIM 值產生 JPEG 和 WebP 圖片,並測量檔案大小的比例。實驗步驟如下:

  1. 使用固定品質參數 Q 將來源 PNG 圖片壓縮為 JPEG,然後記錄來源 PNG 圖片與壓縮的 JPEG 圖片之間的 SSIM。

  2. 使用品質參數盡可能達到上述 SSIM 記錄的品質參數,將相同的來源圖片壓縮到 WebP 中。

我們對資料集中的所有圖片執行了上述兩個步驟,然後測量 JPEG 和 WebP 圖片的平均檔案大小和 SSIM。

下表顯示 JPEG 品質參數 Q 的三個不同值 (50、75 和 95) 的實驗結果。品質參數 50 和 95 分別代表位元率低和高的圖片壓縮。我們也包含 JPEG 品質參數 75,因為這是 JPEG 圖片的建議品質等級。

表 1:與 JPEG Q=50 對應的相同 SSIM 索引的 WebP 和 JPEG 平均檔案大小

蘭納 Kodak 德克尼克 Image_crawl
WebP:平均檔案大小
(平均 SSIM)
17.4 KB
(0.841)
31.0 KB
(0.898)
92.4 KB
(0.917)
6.5 KB
(0.901)
JPEG:平均檔案大小
(平均 SSIM)
23.5 KB
(0.840)
42.7 KB
(0.897)
124.6 KB
(0.916)
9.9 KB
(0.899)
WebP 與 JPEG 檔案大小的比率 0.74 0.72 0.74 0.66

表 2:與 JPEG Q=75 對應的相同 SSIM 索引的 WebP 和 JPEG 平均檔案大小

蘭納 Kodak 德克尼克 Image_crawl
WebP:平均檔案大小
(平均 SSIM)
26.7 KB
(0.864)
46.5 KB
(0.932)
139.0 KB
(0.939)
9.9 KB
(0.930)
JPEG:平均檔案大小
(平均 SSIM)
37.0 KB
(0.863)
66.0 KB
(0.931)
191.0 KB
(0.938)
14.4 KB
(0.929)
WebP 與 JPEG 檔案大小的比率 0.72 0.70 0.73 69 萬

表 3:與 JPEG Q=95 對應的相同 SSIM 索引的 WebP 和 JPEG 平均檔案大小

蘭納 Kodak 德克尼克 Image_crawl
WebP:平均檔案大小
(平均 SSIM)
74.3 KB
(0.910)
118.0 KB
(0.978)
356.0 KB
(0.970)
23.4 KB
(0.969)
JPEG:平均檔案大小
(平均 SSIM)
104 KB
(0.907)
162 KB
(0.976)
492 KB
(0.970)
31.3 KB
(0.968)
WebP 與 JPEG 檔案大小的比率 0.71 0.73 0.72 0.75

從上表中,我們發現比起在 SSIM 索引為相同或更佳的 JPEG,WebP 可以額外獲得 25% 至 34% 的壓縮。

實驗 2:SSIM 與 BPP 繪製 (WebP 和 JPEG)

我們研究了 JPEG 和 WebP 的速率失真。我們尤其需要研究 JPEG 和 WebP 的 SSIM 與每像素位元數 (bpp) 圖。我們會使用來源 PNG 圖片,並用所有可能的品質值 (0-100) 壓縮為 JPEG 和 WebP。接著,我們會依據每個品質值,繪製 JPEG 和 WebP 的 SSIM 和 bpp。下圖顯示從我們用過的 3 個公開資料集選出的 3 張圖片,以此方式顯示 SSIM 和 bpp 圖。

圖 1:Lenna 的 SSIM 與 BPP

Lenna 的 Sim 與 bpp

圖 2:Kodak 資料集的 SSIM 與 BPP 的 kodim19.png

Kodim19 ssim 與 bpp

圖 3:Tecnick 資料集的 RGB_OR_1200x1200_061.png 的 SSIM 與 BPP

RGB_OR_1200x1200 的 SIM 卡與 bpp

此外,我們還研究了 Kodak 和 Tecnick 資料集的 SSIM 與 bpp 圖,為了繪製平均行為,我們會使用 WebP 和 JPEG 壓縮資料集中的所有圖片 (使用 100 個不同品質值)。接著,我們會繪製每個品質值的 SSIM 和 bpp 平均值。圖片檢索資料集是由異質圖片組成,這些圖片本身並不適合匯總資料。以下圖顯示 Kodak 和 Tecnick 資料集的 SSIM 和 bpp 平均行為。

圖 4:Kadak 資料集的 SSIM 與 BPP

Kodak 的模擬與 bpp

圖 5:Tecnick 資料集的 SSIM 與 BPP

Tecnick 資料集 ssim 與 bpp

整體而言,我們可以觀察到,WebP 的每像素位元數一直比 JPEG 更少,才能達到相同的 SSIM 索引。

結語

研究評估 WebP 壓縮與 JPEG 之間的差異。我們發現,與同等 SSIM 索引的 JPEG 檔案大小相比,WebP 平均檔案大小少了 25% 至 34%。SSIM 與 bpp 圖表顯示,針對同一個 SSIM 索引,WebP 所需的每像素位元數一直比 JPEG 更少。這些結果指出 WebP 可大幅提升 JPEG 的壓縮效能。


1 Huynh-Thu,問:迦巴里, M. (2008)。「在圖片/影片品質評估中,PSNR 的有效性範圍」。電子產品信件 44: 800-801.doi:10.1049/el:20080522。

2 Z. Wang, A. C. Bovik, H. 加州理工學院的 Sheikh 和 E. 製作人 P. Simoncelli,「Image Quality 評估:從錯誤測量到結構相似度」,圖片處理、IEEE 交易、第 13 卷,問題 4,第 600-612 頁,2004。