WebP, JPEG ve JPEG 2000 karşılaştırmalı çalışması, Eylül 2010
Not: Bu ilk çalışmayı, yayınladığımız WebP'nin libvpx
kitaplığının kullanıldığı ilk sürümüyle gerçekleştirdik. Ayrıca, kaynak görseller web'den taradığımız JPEG görsellerdi. Topluluktan gelen geri bildirimler doğrultusunda, kaynak olarak kayıpsız resimler (PNG) kullanılarak libwebp
'nin 0.1.2 sürümüyle yeni bir çalışma başlattık. Yeni çalışma, bu çalışmanın yerini alır.
WebP ekibi, 1 milyon rastgele resimden oluşan bir grup üzerinde üç resim sıkıştırma yöntemi hakkında karşılaştırmalı bir çalışma yaptı. Çalışmanın hedefleri, bu yöntemlerle elde edilen sıkıştırmayı ölçmek ve resim boyutları ile sıkıştırma arasındaki dengeleri analiz etmekti.
Veri kümesinde bulunan 900.000 JPEG resmine WebP, JPEG 2000 ve Re-JPEG olmak üzere üç sıkıştırma yöntemi uygulandı. JPEG resimleri, her biri hedef tepe sinyal-gürültü oranına (PSNR) olabildiğince yakın olacak şekilde Re-JPEG ile yeniden sıkıştırıldı. Ekip, sıkıştırılmış resimler üzerinde analiz yaptı.
Ekip, büyük ölçekli çalışmaya ek olarak 100 rastgele resmi manuel olarak inceledi ve çoğu durumda WebP'nin kabul edilebilir görsel kalite sağladığını tespit etti.
Sonuçlar
WebP, JPEG veya JPEG 2000'e kıyasla genel olarak daha yüksek sıkıştırma sağlar. Dosya boyutunu küçültmeyle elde edeceğiniz kazanımlar, özellikle web'de en yaygın olarak bulunan küçük resimler için çok yüksektir.
Veri Kümesi
Çalışmada kullanılan veri kümesi, web'den taranan resim deposundan rastgele örneklenmiş 1 milyon resimden oluşuyordu. Aşağıdaki tabloda, veri kümesindeki farklı resim türlerinin dağılımı gösterilmektedir.
Tür | Sayı |
---|---|
JPEG | ~900 bin |
PNG | ~47 bin |
GIF | ~47 bin |
Diğer | ~6 bin |
Deneme Tasarımı
Deneyler iki aşamada yürütüldü:
Ekip, 42 hedef PSNR ile resimlerde WebP çalıştırmıştır. Belirli bir resim için 42'ye olabildiğince yakın bir sonuç elde edene kadar WebP kodlayıcının kalite parametresini (QP) ayarladılar. Bu nedenle, her resim için elde edilen gerçek PSNR tam olarak 42 değildi.
Ekip, JPEG 2000 ve yeniden JPEG resimler için hedef PSNR olarak WebP sıkıştırılmış resimlerin PSNR değerini kullandı. Ayrıca, hedef PSNR'ye mümkün olduğunca yaklaşmak için JPEG 2000 ve JPEG resimlerinin kalite parametreleri üzerinde satır araması da yaptılar.
Gerçek sıkıştırma sonucu, aşağıdaki formül kullanılarak yüzde olarak ölçülmüştür:
compression_percentage = 100 * (original_image.length - compressed_image.length) / original_image.length
Sonuçlar
Testler, negatif ve negatif olmayan sıkıştırma kazancı için aşağıdaki sonuçları verdi:
Negatif Olmayan Sıkıştırma Kazancı
Ekip, sıkıştırma işleminden sonra resim boyutunu artıran bir yöntemi cezalandırmadı. Yani compressed_image.length, original_image.length değerinden büyük olduğunda compression_percentage değerinin 0 olduğu kabul edildi.
Negatif Sıkıştırma Kazancı
Ekip, çeşitli sıkıştırıcıların ham performansını daha iyi anlamak için negatif sıkıştırma yüzdesi sonuçlarına izin verdi.
Aşağıda, üç yöntemin her biri tarafından elde edilen ortalama sıkıştırma yüzdeleri verilmiştir.
Tür | Ortalama Elde Edilen PSNR | Ortalama sıkıştırma yüzdesi (negatif olmayan sıkıştırma kazancı) |
Ortalama Sıkıştırma Yüzdesi (negatif sıkıştırma kazancı) |
---|---|---|---|
WebP | 39,38 | 41,30 | 39,80 |
JPEG 2000 | 39,49 | 27,67 | 9,71 |
Yeniden JPEG | 39,36 | 22,37 | 14,62 |
Negatif sıkıştırma kazancına izin verildiğinde, JPEG 2000'in ortalama performansı JPEG'den daha düşüktü. Bu durum, JPEG resimlerde bulunan yüksek frekanslı artefaktlardan kaynaklanabilir. Bu artefaktlar, ideal olmayan bir sıkıştırma durumuna neden olabilir.
JPEG 2000'e dönüştürmek için denemede kullanılan Kakadu uygulaması yaklaşık 240.000 resmi dönüştüremedi.
JPEG 2000'ün sıkıştırma yüzdeleri, Re-JPEG'e kıyasla daha düşüktü. Bunun başlıca nedeni, JPEG 2000 sonucunun birçok resim için negatif sıkıştırma olmasıydı. Bu nedenle, JPEG resimleri daha düşük bir genel sıkıştırma puanı elde etti.
Aşağıdaki şekillerde, üç yöntemin dağılım grafikleri verilmiştir:
Şekil 1: Resim Boyutu Popülasyon Dağılımı
Grafik, resimlerin çoğunun küçük olduğunu gösteriyor. 500 KB'tan büyük resimlerin sıklığı genellikle 100'den azdır.
Şekil 2: WebP, JPEG ve JPEG 2000 Resimleri İçin Sıkıştırma Yüzdeleri
Bu grafikte, WebP ile sıkıştırılan resimlerin gövdesinin, re-jpeg ve jpeg 2000'den daha iyi sıkıştırıldığı gösterilmektedir. Ayrıca, WebP ile sıkıştırılan resimler diğerlerinden daha olumlu bir sıkıştırma elde etti.
Şekil 3: Resim Boyutları ve Sıkıştırma Yüzdesinin Karşılaştırılması
Bu grafik, WebP'nin özellikle küçük resimler için diğer biçimlere kıyasla daha iyi sıkıştırma sağladığını gösterir.