簡介
我們會依據我們在 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 圖片。
每項實驗都是由執行一組指令組成。只有公開的指令列工具的用途,是確保實驗對他人可合理調整。這項實驗使用的指令列工具包括:
identify
和convert
是 ImageMagick 的指令列工具。我們使用 6.5.7 版進行這項分析。我們使用convert
轉換 PNG 和 PPM 格式。我們使用identify
擷取圖片的寬度和高度資訊,cwebp
和dwebp
是指令列工具,屬於我們在 2011 年第 1 季發布的libwebp
程式庫中。我們使用 0.1.2 版的程式庫。我們使用cwebp
和dwebp
對 WebP 圖片進行編碼及解碼。我們使用了這些工具的預設編碼和解碼參數。cjpeg
和djpeg
是libjpeg
程式庫中的指令列工具。我們使用了程式庫 6b 版。我們使用cjpeg
和djpeg
對 JPEG 圖片進行編碼及解碼。我們使用cjpeg
搭配-optimize
旗標來最佳化檔案大小。我們會將所有其他參數設為預設值。
圖片畫質是使用 SSIM 進行測量。如前所述,SSIM 的品質指標通常都比 PSNR 更好。針對 SSIM 索引運算,我們使用 C++ 中公開發布的實作。讀取器可能會從程式碼存放區下載實驗中使用的 Python 指令碼,以供參考。
圖片資料集
我們選擇了用來評估標準測試圖片集合與大量圖片的資料集。以下是實驗中使用的資料集清單。
Lenna:廣泛使用的智慧鏡頭圖片 (512 x 512 像素)。
Kodak:Kodak 實際色彩圖片套件中的 24 張圖片。
Tecnick:從 Tecnick.com 提供的 100 張圖片,我們使用 100 張原始大小的 RGB 顏色圖片。
Image_crawl:為測試大量圖片,我們從 Google 圖片搜尋的網頁檢索資料庫隨機收集 PNG 圖片。大多數經過檢索的 PNG 圖片都是圖示、圖形、圖表、掃描文件等。不過,標準測試集合中的大多數圖片都是照片,而非電腦產生的圖片。為了讓這個資料集和標準測試套件的性質相似,我們針對這些 PNG 圖片執行臉部偵測演算法,只將這些圖片 (約 11,000 張) 視為通過這項偵測測試的實驗。
實驗 1:在均等 SSIM 指數中,WebP 與 JPEG 的比較
在這個實驗中,我們會以相近的 SSIM 值產生 JPEG 和 WebP 圖片,並測量檔案大小的比例。實驗步驟如下:
使用固定品質參數 Q 將來源 PNG 圖片壓縮為 JPEG,然後記錄來源 PNG 圖片與壓縮的 JPEG 圖片之間的 SSIM。
使用品質參數盡可能達到上述 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
圖 2:Kodak 資料集的 SSIM 與 BPP 的 kodim19.png
圖 3:Tecnick 資料集的 RGB_OR_1200x1200_061.png 的 SSIM 與 BPP
此外,我們還研究了 Kodak 和 Tecnick 資料集的 SSIM 與 bpp 圖,為了繪製平均行為,我們會使用 WebP 和 JPEG 壓縮資料集中的所有圖片 (使用 100 個不同品質值)。接著,我們會繪製每個品質值的 SSIM 和 bpp 平均值。圖片檢索資料集是由異質圖片組成,這些圖片本身並不適合匯總資料。以下圖顯示 Kodak 和 Tecnick 資料集的 SSIM 和 bpp 平均行為。
圖 4:Kadak 資料集的 SSIM 與 BPP
圖 5: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。