比較研究

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

注意:我們已透過首次發布的 WebP 版本使用 libvpx 程式庫進行初步研究。此外,來源圖片就是我們從網路檢索的 JPEG 圖片。根據社群的意見,我們目前已進行新研究,第 0.1.2 版的 libwebp 以無損圖片 (PNG) 做為來源。這項新研究會取代這項研究。

WebP 團隊針對超過 100 萬張隨機圖片,進行了三張圖片壓縮方法的比較研究。研究目標是評估這些方法所壓縮的壓縮量,並分析圖片大小與壓縮之間的取捨。

三種壓縮方法 WebP、JPEG 2000 和 Re-JPEG 已套用至資料集中的 900,000 個 JPEG 圖片。系統會使用 Re-JPEG 重新壓縮 JPEG 圖片,讓每張圖像盡可能接近目標峰值訊號強度 (PSNR) 的值。團隊在壓縮後對圖片進行分析。

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

結論

WebP 的整體壓縮率高於 JPEG 或 JPEG 2000。檔案尺寸最小化,因為尺寸較小的圖片,這是網路上最常用的圖片。

資料集

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

類型 數量
JPEG 約 90 萬次
PNG 約 47,000 個
GIF 約 47,000 個
其他 約 6000 個

實驗設計

實驗分為兩個階段:

  1. 團隊在圖片上執行 WebP,並將 PSNR 設為 42。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

成果

測試結果為負和非負壓縮壓縮帶來的下列結果:

非負數壓縮

如果該方法在壓縮後增加圖片大小,並不會對方法做出懲處。也就是說,當 zip_image.length 大於 original_image.length 時,壓縮_percentage 會顯示為 0。

負壓縮增益

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

以下為這三種方法的平均壓縮百分比。

類型 獲得的平均 PSNR 平均壓縮百分比
(非負數壓縮)
平均壓縮百分比
(負值壓縮)
WebP 39.38 41.30 39.80
JPEG 2000 39.49 27.67 7.71
重新 JPEG 39.36 22.37 14.62

在允許負評的情況下,JPEG 2000 的平均效能低於 JPEG 檔案的平均效能。這可能是因為 JPEG 圖片中出現了高頻率的構件;這些構件可能會導致導致壓縮不夠理想的情況。

在實驗中採用的 Kakadu 實作項目會轉換為 JPEG 2000,並且無法轉換大約 240,000 張圖片。

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

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

圖 1:圖片大小人口分佈情形

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

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

此圖顯示,使用 WebP 壓縮的圖片內文壓縮大於 re-jpeg 和 jpeg 2000 壓縮。此外,使用 WebP 壓縮的圖片獲得較高的壓縮效果。

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

此圖表顯示 WebP 的壓縮效果更好,比其他格式更低,尤其是在較小的圖片上。