Studi Kompresi WebP

Pengantar

Kami melakukan evaluasi komparatif terhadap kompresi gambar WebP dan JPEG berdasarkan encoder baru yang kami rilis pada libwebp. Tujuannya adalah untuk menjalankan serangkaian eksperimen yang dapat diulang dengan mudah menggunakan alat yang tersedia secara publik dan membandingkan kompresi gambar yang dicapai oleh WebP dan JPEG.

Studi komparatif WebP sebelumnya yang berfokus pada mengevaluasi sejumlah besar gambar dan dilakukan pada sumber JPEG yang di-crawl dari web. JPEG adalah format kompresi lossy dan memasukkan artefak kompresi ke sumber. Selain itu, awalnya kami menggunakan Peak Signal-to-Noise Ratio atau PSNR sebagai metrik kualitas. PSNR memiliki beberapa kekurangan saat digunakan sebagai metrik kualitas gambar. Berdasarkan masukan dari komunitas, kami melakukan eksperimen pada gambar PNG, termasuk gambar yang tersedia di beberapa paket pengujian standar. Dalam studi ini, kami menggunakan StructuralSimilarity atau SSIM sebagai metrik kualitas untuk studi ini. SSIM dianggap sebagai metrik kualitas visual yang lebih baik.

Metodologi

Kami menjelaskan dua jenis evaluasi. Dalam kasus pertama, kita mempelajari kompresi tambahan yang dicapai oleh WebP pada tingkat kualitas JPEG yang sama. Secara khusus, kami membuat gambar WebP dengan kualitas yang sama (sesuai indeks SSIM) dengan gambar JPEG, lalu membandingkan ukuran file WebP dan gambar JPEG. Dalam kasus kedua, kami menganalisis plot SSIM vs bit per piksel (bpp) untuk WebP dan JPEG. Plot ini menunjukkan kompromi distorsi tingkat untuk WebP dan JPEG.

Set data untuk eksperimen terdiri dari gambar PNG. Gambar ini diperoleh dari rangkaian gambar pengujian standar yang dapat diakses secara publik serta koleksi gambar PNG yang di-crawl dari web.

Setiap eksperimen terdiri dari menjalankan serangkaian perintah. Hanya alat command line yang tersedia untuk umum yang digunakan agar eksperimen tetap dapat diproduksi ulang secara wajar oleh orang lain. Alat command line yang digunakan untuk eksperimen ini adalah:

  • identify dan convert adalah alat command line yang merupakan bagian dari ImageMagick. Kami menggunakan versi 6.5.7 untuk analisis ini. Kami menggunakan convert untuk mengonversi antara format PNG dan PPM. Kita menggunakan identify untuk mengekstrak informasi lebar dan tinggi sebuah gambar.

  • cwebp dan dwebp adalah alat command line yang merupakan bagian dari library libwebp yang kami rilis pada Kuartal 1 2011. Kami menggunakan library versi 0.1.2. Kami menggunakan cwebp dan dwebp untuk mengenkode dan mendekode gambar WebP. Kami menggunakan parameter encoding dan decoding default pada alat ini.

  • cjpeg dan djpeg adalah alat command line yang merupakan bagian dari library libjpeg. Kami menggunakan library versi 6b. Kami menggunakan cjpeg dan djpeg untuk mengenkode dan mendekode gambar JPEG. Kami menggunakan cjpeg dengan tanda -optimize untuk mengoptimalkan ukuran file. Kami menetapkan semua parameter lain ke nilai defaultnya.

Kualitas gambar diukur menggunakan SSIM. Seperti disebutkan sebelumnya, SSIM secara umum diterima sebagai metrik kualitas yang lebih baik daripada PSNR. Untuk komputasi indeks SSIM, kami menggunakan implementasi yang tersedia secara publik di C++. Pembaca dapat mendownload skrip Python yang kami gunakan dalam eksperimen dari repositori kode sebagai referensi.

Set Data Gambar

Kami memilih set data untuk mengevaluasi koleksi gambar pengujian standar serta pada serangkaian gambar yang besar. Berikut adalah daftar set data yang digunakan dalam eksperimen.

  1. Lenna: gambar Lenna yang banyak digunakan (512 x 512 piksel).

  2. Kodak: 24 gambar dari rangkaian gambar warna asli Kodak.

  3. Tecnick: 100 gambar dari koleksi yang tersedia di Tecnick.com. Kami menggunakan 100 gambar warna RGB ukuran asli.

  4. Image_crawl: Untuk menguji gambar dalam jumlah besar, kami mengumpulkan sampel acak gambar PNG dari database crawl web Google Penelusuran Gambar. Sebagian besar gambar PNG yang di-crawl berupa ikon, grafik, diagram, dokumen yang dipindai, dll. Namun, sebagian besar gambar dalam koleksi pengujian standar mirip seperti foto, bukan gambar yang dihasilkan komputer. Agar set data ini serupa dengan rangkaian pengujian standar, kami menjalankan algoritma deteksi wajah pada gambar PNG ini dan hanya mempertimbangkan gambar tersebut (sekitar 11.000) untuk eksperimen ini, yang lulus uji deteksi ini.

Eksperimen 1: WebP vs. JPEG dengan Indeks SSIM yang Sama

Dalam eksperimen ini, kami menghasilkan gambar JPEG dan WebP dengan nilai SSIM yang sebanding dan mengukur rasio ukuran file. Langkah-langkah eksperimen adalah sebagai berikut:

  1. Kompresi gambar PNG sumber ke JPEG dengan parameter kualitas tetap Q dan catat SSIM antara gambar PNG sumber dan gambar JPEG yang dikompresi.

  2. Kompresi gambar sumber yang sama ke WebP dengan parameter kualitas yang mencapai SSIM yang direkam di atas sedekat mungkin.

Kami menjalankan dua langkah di atas pada semua gambar dalam set data, lalu mengukur rata-rata ukuran file dan SSIM untuk gambar JPEG dan WebP.

Tabel berikut menunjukkan hasil eksperimen ini untuk tiga nilai yang berbeda (50, 75, dan 95) dari parameter kualitas JPEG Q. Parameter kualitas 50 dan 95 menunjukkan kompresi gambar pada kecepatan bit rendah dan tinggi. Kami juga menyertakan parameter kualitas JPEG 75 karena merupakan tingkat kualitas yang direkomendasikan untuk gambar JPEG.

Tabel 1: Ukuran file rata-rata untuk WebP dan JPEG untuk indeks SSIM yang sama terkait dengan JPEG Q=50

Lenna Kodak Tecnik Image_crawl
WebP: Ukuran File Rata-Rata
(SSIM Rata-Rata)
17,4 KB
(0,841)
31,0 KB
(0,898)
92,4 KB
(0,917)
6,5 KB
(0,901)
JPEG: Ukuran File Rata-Rata
(SSIM Rata-Rata)
23,5 KB
(0,840)
42,7 KB
(0,897)
124,6 KB
(0,916)
9,9 KB
(0,899)
Rasio ukuran file WebP ke JPEG 0.74 0,72 0.74 0.66

Tabel 2: Ukuran file rata-rata untuk WebP dan JPEG untuk indeks SSIM yang sama terkait dengan JPEG Q=75

Lenna Kodak Tecnik Image_crawl
WebP: Ukuran File Rata-Rata
(SSIM Rata-Rata)
26,7 KB
(0,864)
46,5 KB
(0,932)
139,0 KB
(0,939)
9,9 KB
(0,930)
JPEG: Ukuran File Rata-Rata
(SSIM Rata-Rata)
37,0 KB
(0,863)
66,0 KB
(0,931)
191,0 KB
(0,938)
14,4 KB
(0,929)
Rasio ukuran file WebP ke JPEG 0,72 0,70 0.73 0,69

Tabel 3: Ukuran file rata-rata untuk WebP dan JPEG untuk indeks SSIM yang sama terkait dengan JPEG Q=95

Lenna Kodak Tecnik Image_crawl
WebP: Ukuran File Rata-Rata
(SSIM Rata-Rata)
74,3 KB
(0,910)
118,0 KB
(0,978)
356,0 KB
(0,970)
23,4 KB
(0,969)
JPEG: Ukuran File Rata-Rata
(SSIM Rata-Rata)
104 KB
(0,907)
162 KB
(0,976)
492 KB
(0,970)
31,3 KB
(0,968)
Rasio ukuran file WebP ke JPEG 0.71 0.73 0,72 0,75

Dari tabel di atas, kita dapat mengamati bahwa WebP memberikan peningkatan kompresi tambahan sebesar 25%-34% dibandingkan dengan JPEG pada indeks SSIM yang sama atau sedikit lebih baik.

Eksperimen 2: Plot SSIM vs. BPP untuk WebP dan JPEG

Kami mempelajari kompromi distorsi laju pada JPEG dan WebP. Secara khusus, kami mempelajari plot SSIM vs. bit per piksel (bpp) untuk JPEG dan WebP. Kita mengambil gambar PNG sumber, mengompresinya ke JPEG dan WebP menggunakan semua nilai kualitas yang memungkinkan. Kemudian, untuk setiap nilai kualitas, kita memplot SSIM dan bpp yang dicapai untuk JPEG dan WebP. Gambar berikut menunjukkan plot SSIM vs bpp tersebut untuk 3 gambar yang dipilih dari 3 set data publik yang telah kita gunakan.

Gambar 1: SSIM vs. BPP untuk Lenna

ssim vs. bpp untuk Lenna

Gambar 2: SSIM vs. BPP untuk kodim19.png dari set data Kodak

ssim vs. bpp untuk Kodim19

Gambar 3: SSIM vs. BPP untuk RGB_OR_1200x1200_061.png dari set data Tecnick

ssim vs. bpp untuk RGB_OR_1200x1200

Selain itu, kami mempelajari perilaku rata-rata plot SSIM vs bpp untuk set data Kodak dan Tecnick. Untuk memetakan perilaku rata-rata, kami mengompresi semua gambar dalam set data menggunakan WebP dan JPEG pada 100 nilai kualitas yang berbeda. Kemudian, kita memplot rata-rata SSIM dan bpp untuk setiap nilai kualitas. Set data crawl gambar terdiri dari gambar heterogen yang tidak cocok dengan agregasi data ini. Plot berikut menunjukkan perilaku rata-rata SSIM dan bpp untuk set data Kodak dan Tecnick.

Gambar 4: SSIM vs. BPP untuk set data Kodak

ssim vs. bpp untuk Kodak

Gambar 5: SSIM vs. BPP untuk set data Tecnick

ssim vs. bpp untuk set data Tecnick

Secara keseluruhan, dari plot di atas, kita dapat mengamati bahwa WebP secara konsisten memerlukan lebih sedikit bit per piksel daripada JPEG untuk mencapai indeks SSIM yang sama.

Kesimpulan

Studi ini mengevaluasi kompresi WebP dibandingkan dengan JPEG. Kami mengamati bahwa ukuran file WebP rata-rata 25%-34% lebih kecil dibandingkan dengan ukuran file JPEG pada indeks SSIM yang setara. Plot SSIM vs bpp menunjukkan bahwa WebP secara konsisten memerlukan lebih sedikit bit per piksel daripada JPEG untuk indeks SSIM yang sama. Hasil ini menunjukkan bahwa WebP dapat memberikan peningkatan kompresi yang signifikan dibandingkan JPEG.


1 Huynh-Thu, Q.; Ghanbari, M. (2008). "Cakupan validitas PSNR dalam penilaian kualitas gambar/video". Surat Elektronik 44: 800-801.dpi:10.1049/el:20080522.

2 Z. Wang, A C. Bovik, H R. Sheikh, dan E. P. Simoncelli, "Image kualitas penilaian: Dari pengukuran error ke kesamaan struktural", Image Processing, IEEE Transactions, Volume 13, Issue 4, pp. 600-612, 2004.