比較 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 個 |
實驗設計
實驗分為兩個階段:
團隊在圖片上執行 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
成果
測試結果為負和非負壓縮壓縮帶來的下列結果:
非負數壓縮
如果該方法在壓縮後增加圖片大小,並不會對方法做出懲處。也就是說,當 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 的壓縮效果更好,比其他格式更低,尤其是在較小的圖片上。