比較研究

比較 WebP、JPEG 和 JPEG 2000 的比較研究,2010 年 9 月

注意:我們使用 libvpx 程式庫發布的第一個 WebP 版本進行了這項初始研究。此外,來源圖片也是我們從網路檢索到的 JPEG 圖片。我們根據社群的意見回饋,現已針對 libwebp 的 0.1.2 版進行新研究,起初以無失真圖片 (PNG) 做為來源。這項新研究取代了這項研究

WebP 團隊對一組隨機 100 萬張圖片進行了三種圖片壓縮方法的比較研究。本研究的目標是評估這些方法達成的壓縮效果,並分析圖片大小和壓縮之間的優缺點。

資料集中有 90 萬張 JPEG 圖片套用了 WebP、JPEG 2000 和 Re-JPEG 三種壓縮方法。JPEG 圖片會以 Re-JPEG 重新壓縮,讓每張圖片盡可能接近目標峰值訊號比率 (PSNR) 值。圖片經壓縮後 就能進行分析

除了進行大規模的研究以外,團隊也手動檢查了 100 張隨機圖片,並發現在大多數情況下,WebP 可提供可接受的視覺品質。

結論

WebP 整體壓縮程度比 JPEG 或 JPEG 2000 高。以小型圖片來說,由於小型圖片是網路上最常見的圖片,因此檔案大小不足之處會特別高。

資料集

研究中使用的資料集是從從網路檢索到的圖片存放區中隨機取樣的 100 萬張圖片。下表顯示資料集內不同類型圖片的分佈情形。

類型 數量
JPEG 約 90 萬
PNG 約 4.7 萬
GIF 約 4.7 萬
其他 約 6,000

實驗設計

實驗分為兩個階段:

  1. 該團隊在目標 PSNR 為 42 的圖片上執行 WebP。他們調整了 WebP 編碼器的品質參數 (QP),直到結果達到特定圖片可獲得近 42 的結果為止。因此,每張圖片的實際 PSNR 不一定等於 42。

  2. 該團隊使用 WebP 壓縮圖片的 PSNR 值,做為 JPEG 2000 和 Re-JPEG 圖片的目標 PSNR。他們也會對 JPEG 2000 和 JPEG 圖片的品質參數執行線條搜尋,盡可能靠近目標 PSNR。

實際壓縮結果是使用以下公式,以百分比表示:

compression_percentage = 100 * (original_image.length - compressed_image.length) / original_image.length

成果

測試結果顯示,無論壓縮還是非負數的壓縮率為何,結果都是以下結果:

非負數壓縮增加

如果這個方法會在壓縮後增加圖片大小,則團隊並未對方法做出懲罰。也就是說,壓縮_image.length 大於 original_image.length 時,系統會將壓縮比例視為 0。

負面壓縮增加

團隊允許負壓縮百分比結果,以進一步瞭解各種壓縮工具的原始效能。

以下是這三種方法分別達成的平均壓縮百分比。

類型 平均取得的 PSNR 平均壓縮百分比
(非負數壓縮增加)
平均壓縮率
(負壓縮增加)
WebP 歐元 41.30 歐元
JPEG 2,000 歐元 27.67 9.71
重新 JPEG 歐元 22.37 14.62

在允許使用負壓縮增益的情況下,JPEG 2000 的平均效能低於 JPEG。這可能是因為 JPEG 圖片中有高頻率構件,因此這些構件可能導致壓縮的情況較不理想。

實驗中用於轉換為 JPEG 2000 的 Kakadu 實作作業無法轉換約 24 萬張圖片。

JPEG 2000 的壓縮百分比比 Re-JPEG 低,主要原因在於許多圖片的 JPEG 2000 結果是負的壓縮。因此,JPEG 圖片的整體壓縮分數較低。

下圖提供三種方法的分佈圖:

圖 1:圖片大小人口分佈

圖表顯示大部分的圖片都很小。大小超過 500K 的圖片頻率通常小於 100。

圖 2:WebP、JPEG 和 JPEG 2000 圖片的壓縮百分比

這張圖表顯示,使用 WebP 壓縮的圖片內文,壓縮效果比 re-jpeg 和 jpeg 2000 更好。此外,使用 WebP 壓縮的圖片壓縮率比其他圖片更多。

圖 3:比較圖片大小和壓縮百分比

這張圖表顯示,WebP 的壓縮效果比其他格式更好,特別是對較小的圖片而言。