WebP Sıkıştırma Çalışması

Giriş

libwebp ayında kullanıma sunduğumuz yeni kodlayıcı temelinde WebP ve JPEG resim sıkıştırması için karşılaştırmalı bir değerlendirme yapıyoruz. Amaç, herkese açık araçları kullanarak kolayca tekrarlanabilir bir dizi deneme yapmak ve WebP ile JPEG'nin sağladığı görüntü sıkıştırmayı karşılaştırmaktır.

Daha önce yaptığımız karşılaştırmalı WebP çalışmamız, çok sayıda resmi değerlendirmeye odaklıydı ve web'den taranan JPEG kaynakları üzerinde yürütüldü. JPEG, kayıplı bir sıkıştırma biçimidir ve kaynağa sıkıştırma yapıları getirir. Ayrıca, kalite metriği olarak başlangıçta En Yüksek Sinyal-Gürültü Oranı'nı veya PSNR'yi kullandık. PSNR, resim kalitesi metriği olarak kullanıldığında bazı dezavantajlara sahiptir. Topluluktan aldığımız geri bildirimler doğrultusunda, birkaç standart test paketinde bulunan resimler de dahil olmak üzere PNG resimleri üzerinde denemeler yapıyoruz. Bu çalışmada, bu çalışmanın kalite metriği olarak Yapısal Benzerlik veya SSIM metriklerini kullanıyoruz. SSIM'nin daha iyi bir görsel kalite metriği olduğu düşünülür.

Metodoloji

İki tür değerlendirme açıklanır. İlk örnekte, WebP'nin aynı kalite düzeyinde JPEG ile elde ettiği ek sıkıştırmayı inceliyoruz. Özellikle, JPEG resimleriyle aynı kalitede (SSIM dizinine göre) WebP resimler oluşturur, ardından WebP ve JPEG resimlerinin dosya boyutlarını karşılaştırırız. İkinci örnekte, WebP ve JPEG için SSIM ve piksel başına bit (bpp) grafiklerini karşılaştırıyoruz. Bu grafikler WebP ve JPEG'de hız-bozulma dengesini gösterir.

Denemeler için veri kümeleri PNG resimlerden oluşur. Bu resimler, herkesin erişebileceği standart test görüntüsü paketlerinin yanı sıra web'den taranan büyük bir PNG resim koleksiyonundan da elde edilmiştir.

Her deneme, bir dizi komutun çalıştırılmasından oluşur. Denemelerin diğerleri için makul ölçüde yeniden üretilebilir olmasını sağlamak amacıyla yalnızca herkese açık komut satırı araçları kullanılır. Bu deneme için kullanılan komut satırı araçları şunlardır:

  • identify ve convert, ImageMagick'in parçası olan komut satırı araçlarıdır. Bu analiz için 6.5.7 sürümünü kullandık. PNG ve PPM biçimleri arasında dönüşüm yapmak için convert kullandık. Bir resmin genişlik ve yükseklik bilgilerini ayıklamak için identify parametresini kullandık.

  • cwebp ve dwebp, 2011'in 1. çeyreğinde kullanıma sunduğumuz libwebp kitaplığının bir parçası olan komut satırı araçlarıdır. Kitaplığın 0.1.2 sürümünü kullandık. WebP görüntülerini kodlamak ve kodunu çözmek için cwebp ve dwebp araçlarını kullandık. Bu araçların varsayılan kodlama ve kod çözme parametrelerini kullandık.

  • cjpeg ve djpeg, libjpeg kitaplığının bir parçası olan komut satırı araçlarıdır. Kitaplığın 6b sürümünü kullandık. JPEG görüntüsünü kodlamak ve kodunu çözmek için cjpeg ve djpeg parametrelerini kullandık. Dosya boyutunu optimize etmek için -optimize işaretiyle birlikte cjpeg değerini kullandık. Diğer tüm parametreleri varsayılan değerlerine ayarlıyoruz.

Bir resmin kalitesi SSIM kullanılarak ölçülmüştür. Daha önce de belirtildiği gibi, SSIM genellikle PSNR'den daha iyi bir kalite metriği olarak kabul edilir. SSIM dizin hesaplaması için C++'ta herkese açık bir uygulama kullandık. Okuyucu, referans olması için deneylerde kullandığımız Python komut dosyalarını kod deposundan indirebilir.

Resim Veri Kümeleri

Veri kümelerini, standart test resmi koleksiyonlarını ve büyük bir resim grubunu değerlendirmek için seçtik. Aşağıda, denemelerde kullanılan veri kümelerinin listesi verilmiştir.

  1. Lenna: Yaygın olarak kullanılan Lenna resmi (512 x 512 piksel).

  2. Kodak: Kodak gerçek renkli resim paketinden 24 resim.

  3. Tecnick: Tecnick.com adresinde bulunan koleksiyondan 100 resim. Orijinal boyutlu 100 RGB renkli resmi kullandık.

  4. Image_crawl: Çok sayıda resmi test etmek için Google Görsel Arama web tarama veritabanından PNG resimlerinin rastgele bir örneğini topladık. Taranan PNG resimlerinin çoğu simge, grafik, grafik, taranmış belge vb.dir. Bununla birlikte, standart test koleksiyonlarındaki çoğu resim bilgisayar tarafından oluşturulan değil, fotoğrafa benzer. Bu veri kümesinin standart test paketlerine benzer bir yapıda olması için bu PNG görüntülerinin üzerinde bir yüz algılama algoritması çalıştırdık ve denemede yalnızca bu algılama testinden geçen görüntüleri (yaklaşık 11.000) dikkate aldık.

1. Deneme: Eşit SSIM Dizininde WebP ve JPEG

Bu deneyde, karşılaştırılabilir SSIM değerlerinde JPEG ve WebP resimleri oluşturuyor ve dosya boyutlarının oranını ölçüyoruz. Denemenin adımları aşağıdaki gibidir:

  1. Kaynak PNG resmini, sabit kalite parametresi Q ile JPEG olarak sıkıştırın ve SSIM'i kaynak PNG resmi ile sıkıştırılmış JPEG resmi arasında kaydedin.

  2. Aynı kaynak görüntüyü, yukarıda kaydedilen SSIM'ye mümkün olduğunca yakın bir şekilde ulaşan bir kalite parametresiyle WebP'ye sıkıştırın.

Yukarıdaki iki adımı bir veri kümesindeki tüm görüntüler üzerinde çalıştırdık ve ardından JPEG ve WebP görüntüleri için ortalama dosya boyutunu ve SSIM'yi ölçtük.

Aşağıdaki tablolarda, JPEG kalite parametresi Q'nun üç farklı değeri (50, 75 ve 95) için bu denemenin sonuçları gösterilmektedir. Kalite parametreleri 50 ve 95, sırasıyla düşük ve yüksek bit hızlarında resim sıkıştırmayı temsil eder. Ayrıca, JPEG resimleri için genellikle önerilen kalite seviyesi 75 olduğundan JPEG kalite parametresi 75'i de ekledik.

Tablo 1: JPEG Q=50 değerine karşılık gelen aynı SSIM dizini için WebP ve JPEG için ortalama dosya boyutu

Lenna Kodak Teknik Image_crawl
WebP: Ortalama Dosya Boyutu
(Ortalama SSIM)
17,4 KB
(0,841)
31,0 KB
(0,898)
92,4 KB
(0,917)
6,5 KB
(0,901)
JPEG: Ortalama Dosya Boyutu
(Ortalama SSIM)
23,5 KB
(0,840)
42,7 KB
(0,897)
124,6 KB
(0,916)
9,9 KB
(0,899)
WebP'nin JPEG dosya boyutuna oranı 0.74 0,72 0.74 0.66

Tablo 2: JPEG Q=75 değerine karşılık gelen aynı SSIM dizini için WebP ve JPEG için ortalama dosya boyutu

Lenna Kodak Teknik Image_crawl
WebP: Ortalama Dosya Boyutu
(Ortalama SSIM)
26,7 KB
(0,864)
46,5 KB
(0,932)
139,0 KB
(0,939)
9,9 KB
(0,930)
JPEG: Ortalama Dosya Boyutu
(Ortalama SSIM)
37,0 KB
(0,863)
66,0 KB
(0,931)
191,0 KB
(0,938)
14,4 KB
(0,929)
WebP'nin JPEG dosya boyutuna oranı 0,72 0,70 0.73 0,69

Tablo 3: JPEG Q=95 durumuna karşılık gelen aynı SSIM dizini için WebP ve JPEG için ortalama dosya boyutu

Lenna Kodak Teknik Image_crawl
WebP: Ortalama Dosya Boyutu
(Ortalama SSIM)
74,3 KB
(0,910)
118,0 KB
(0,978)
356,0 KB
(0,970)
23,4 KB
(0,969)
JPEG: Ortalama Dosya Boyutu
(Ortalama SSIM)
104 KB
(0,907)
162 KB
(0,976)
492 KB
(0,970)
31,3 KB
(0,968)
WebP'nin JPEG dosya boyutuna oranı 0.71 0.73 0,72 0,75

Yukarıdaki tablolardan, WebP'nin eşit veya biraz daha iyi bir SSIM endeksine sahip JPEG'e kıyasla %25-%34 ek sıkıştırma kazanımı sağladığını görebiliriz.

2. Deneme: WebP ve JPEG için SSIM ve BPP Grafikleri

JPEG ve WebP'nin hız-distorsiyon dengesini araştırıyoruz. Özellikle, JPEG ve WebP için SSIM ve piksel başına bit (bpp) grafiklerini karşılaştırıyoruz. Kaynak PNG resmini alır ve mümkün olan tüm (0-100) kalite değerlerini kullanarak JPEG ve WebP olarak sıkıştırırız. Daha sonra, her kalite değeri için JPEG ve WebP için elde edilen SSIM ve bpp'yi çizeriz. Aşağıdaki şekillerde, kullandığımız 3 herkese açık veri kümesinden seçilen 3 görüntü için bu tür SSIM ve Bpp grafikleri gösterilmektedir.

Şekil 1: Lenna için SSIM ve BPP karşılaştırması

Lenna için ssim ve bpp

Şekil 2: Kodak veri kümesinden kodim19.png için SSIM ve BPP karşılaştırması

s Kodim ve bpp için (19)

Şekil 3: Tecnick veri kümesinden RGB_OR_1200x1200_061.png için SSIM ve BPP karşılaştırması

RGB_OR_1200x1200 için ssim ve bpp

Buna ek olarak, Kodak ve Tecnick veri kümeleri için SSIM ve bpp grafiğinin ortalama davranışını inceledik. Ortalama davranışın grafiğini çizmek için bir veri kümesindeki tüm görüntüleri WebP ve JPEG kullanarak 100 farklı kalite değerinde sıkıştırırız. Daha sonra, her kalite değeri için SSIM ve Bpp ortalamasını çizeriz. Resim tarama veri kümesi, bu veri toplama kapsamına girmeyen heterojen resimlerden oluşur. Aşağıdaki grafiklerde, Kodak ve Tecnick veri kümeleri için sırasıyla SSIM ve bpp'in ortalama davranışı gösterilmektedir.

Şekil 4: Kodak veri kümesi için SSIM ve BPP karşılaştırması

s Kodim ile bppak karşılaştırması

Şekil 5: Tecnick veri kümesi için SSIM ve BPP karşılaştırması

Tecnick veri kümesi için ssim ve bpp

Genel olarak, yukarıdaki grafiklerden WebP'nin aynı SSIM dizinini elde etmek için sürekli olarak JPEG'den daha az bit gerektirdiğini gözlemleyebiliriz.

Sonuç

Çalışmada, WebP sıkıştırması JPEG ile karşılaştırılarak değerlendirilmiştir. Eşdeğer SSIM dizinindeki JPEG dosya boyutuna kıyasla ortalama WebP dosya boyutunun %25-%34 daha küçük olduğunu gözlemledik. SSIM ve bpp grafikleri, WebP'nin aynı SSIM dizini için sürekli olarak JPEG'den daha az bit gerektirdiğini göstermiştir. Bu sonuçlar, WebP'nin JPEG üzerinde önemli miktarda sıkıştırma iyileştirmeleri sağlayabileceğini göstermektedir.


1 Huynh-Thu, Q; Ghanbari, M. (2008). "Resim/video kalitesi değerlendirmesinde PSNR'nin geçerlilik kapsamı". Elektronik Mektuplar 44: 800-801.doi:10.1049/el:20080522.

2 Z. Wang, A. C. Bovik, H. R. Sheikh ve E. P. Simoncelli, "Resim kalitesi değerlendirmesi: Hata ölçümünden yapısal benzerliğe," Resim İşleme, IEEE İşlemleri, Cilt 13, Sayı 4, s. 600-612, 2004.