WebP、JPEG 和 JPEG 2000 比較研究,2010 年 9 月
注意:我們曾以第一個 WebP 版本 (使用 libvpx
程式庫) 進行這項初步研究。此外,來源圖片是我們從網路上檢索到的 JPEG 圖片。根據社群的意見回饋,我們現在已展開新研究,使用 libwebp
0.1.2 版,並以無損圖片 (PNG) 做為來源。新研究取代了這項研究。
WebP 團隊針對 100 萬張隨機圖片,比較了三種圖片壓縮方法。這項研究的目標是評估這些方法的壓縮效果,並分析圖片大小和壓縮之間的取捨。
我們將三種壓縮方法 (WebP、JPEG 2000 和 Re-JPEG) 套用至資料集中的 900,000 張 JPEG 圖片。我們使用 Re-JPEG 重新壓縮 JPEG 圖片,讓每張圖片盡可能接近目標峰值訊噪比 (PSNR) 值。團隊在圖片經過壓縮後進行分析。
除了大規模研究外,研究團隊也手動檢查了 100 張隨機圖片,發現在大多數情況下,WebP 都能提供可接受的視覺品質。
結論
WebP 的整體壓縮效果優於 JPEG 或 JPEG 2000。對於網站上最常見的小型圖片,檔案大小縮減的效果特別顯著。
資料集
這項研究使用的資料集,是從從網路爬取的圖像存放區隨機抽樣的 100 萬張圖片。下表顯示資料集中不同類型圖片的分布情形。
類型 | 數量 |
---|---|
JPEG | ~900K |
PNG | 約 47 公斤 |
GIF | 約 47 公斤 |
其他 | 約 6,000 美元 |
實驗設計
實驗分為兩個階段進行:
團隊在圖片上執行 WebP,目標 PSNR 為 42。他們調整 WebP 編碼器的品質參數 (QP),直到所得結果與特定圖片的 42 值盡可能接近為止。因此,每張圖片實際達到的 PSNR 不一定會精確到 42。
團隊使用 WebP 壓縮圖片的 PSNR 值,做為 JPEG 2000 和 Re-JPEG 圖片的目標 PSNR。他們也針對 JPEG 2000 和 JPEG 圖片的品質參數執行了線搜尋,以便盡可能接近目標 PSNR。
實際壓縮結果是以百分比計算,公式如下:
compression_percentage = 100 * (original_image.length - compressed_image.length) / original_image.length
結果
在負壓縮增益和非負壓縮增益的情況下,測試產生了以下結果:
非負數壓縮增益
如果某種方法在壓縮後增加圖片大小,團隊就不會對該方法處罰。也就是說,當 compressed_image.length 大於 original_image.length 時,compression_percentage 會視為 0。
負壓縮增益
團隊允許負壓縮百分比結果,以便進一步瞭解各種壓縮器的原始效能。
以下是三種方法各自達到的平均壓縮百分比。
類型 | 平均 PSNR 值 | 平均壓縮率 (%) (非負壓縮增益) |
平均壓縮率 (%) (負壓縮增益) |
---|---|---|---|
WebP | 39.38 | 41.30 | 39.80 |
JPEG 2000 | 39.49 | 27.67 | 9.71 |
Re-JPEG | 39.36 | 22.37 | 14.62 |
允許負壓縮增益時,JPEG 2000 的平均效能低於 JPEG。這可能是因為 JPEG 圖片中出現高頻率的假影,而這些假影可能會導致壓縮效果不如預期。
實驗中用於轉換為 JPEG 2000 的 Kakadu 實作項目無法轉換約 240,000 張圖片。
JPEG 2000 的壓縮百分比低於 Re-JPEG,主要是因為 JPEG 2000 的結果對許多圖片來說是負壓縮。因此,JPEG 圖片的整體壓縮分數較低。
以下圖表顯示這三種方法的分布圖:
圖 1:圖片大小人口分布
圖表顯示大部分圖片都很小。大小超過 500 KB 的圖片頻率通常低於 100。
圖 2:WebP、JPEG 和 JPEG 2000 圖片的壓縮百分比
這張圖表顯示,使用 WebP 壓縮的圖片主體,其壓縮效果優於 re-jpeg 和 JPEG 2000。此外,使用 WebP 壓縮的圖片比其他圖片的壓縮效果更好。
圖 3:圖片大小和壓縮百分比比較
這張圖表顯示 WebP 的壓縮效果比其他格式更好,尤其是較小的圖片。