WebP-Komprimierungsstudie

Einführung

Wir vergleichen die WebP- und JPEG-Bildkomprimierung anhand des neuen Encoders, den wir im libwebp veröffentlicht haben. Das Ziel besteht darin, eine Reihe einfacher wiederholbarer Tests mit öffentlich verfügbaren Tools durchzuführen und die Bildkomprimierung von WebP und JPEG zu vergleichen.

In unserer früheren Vergleichsstudie zu WebP ging es vor allem um die Bewertung einer großen Anzahl von Bildern. Die Studie wurde mit JPEG-Quellen durchgeführt, die aus dem Web gecrawlt wurden. JPEG ist ein verlustbehaftetes Komprimierungsformat, bei dem Komprimierungsartefakte in die Quelle aufgenommen werden. Darüber hinaus haben wir anfangs das Spitzensignal-Rausch-Verhältnis oder PSNR als Qualitätsmesswert verwendet. PSNR hat einige Nachteile, wenn es als Qualitätsmesswert von Bildern verwendet wird. Auf Grundlage des Feedbacks der Community führen wir die Tests mit PNG-Images durch, einschließlich Bildern, die in einigen Standard-Testsuiten verfügbar sind. In dieser Studie haben wir die strukturelle Ähnlichkeit oder SSIM als Qualitätsmesswert für diese Studie verwendet. SSIM gilt als besserer Messwert für die visuelle Qualität.

Methodik

Wir beschreiben zwei Arten von Bewertungen. Im ersten Fall untersuchen wir die zusätzliche Komprimierung, die von WebP bei derselben JPEG-Qualität erreicht wird. Insbesondere generieren wir WebP-Bilder von derselben Qualität (gemäß SSIM-Index) wie die JPEG-Bilder und vergleichen dann die Dateigrößen der WebP- und JPEG-Bilder. Im zweiten Fall analysieren wir SSIM- und Bit-per-Pixel-Diagramme (bpp) für WebP und JPEG. Diese Diagramme zeigen den Kompromiss zwischen Ratenverzerrung und WebP und JPEG.

Die Datensätze für die Tests bestehen aus PNG-Bildern. Diese Bilder wurden aus öffentlich zugänglichen Standard-Test-Image-Suites und einer großen Sammlung von PNG-Bildern bezogen, die aus dem Web gecrawlt wurden.

Jeder Test besteht aus einer Reihe von Befehlen. Nur öffentlich verfügbare Befehlszeilentools werden verwendet, damit die Tests für andere in angemessener Weise reproduziert werden können. Die für diesen Test verwendeten Befehlszeilentools sind:

  • identify und convert sind Befehlszeilentools, die Teil von ImageMagick sind. Für diese Analyse wurde Version 6.5.7 verwendet. Wir haben convert verwendet, um zwischen den Formaten PNG und PPM zu konvertieren. Wir haben identify verwendet, um die Breiten- und Höheninformationen eines Bildes zu extrahieren.

  • cwebp und dwebp sind Befehlszeilentools, die Teil der libwebp-Bibliothek sind, die wir im 1. Quartal 2011 veröffentlicht haben. Wir haben Version 0.1.2 der Bibliothek verwendet. Wir haben cwebp und dwebp verwendet, um die WebP-Bilder zu codieren und zu decodieren. Wir haben die Standardparameter für Codierung und Decodierung dieser Tools verwendet.

  • cjpeg und djpeg sind Befehlszeilentools, die Teil der libjpeg-Bibliothek sind. Wir haben Version 6b der Bibliothek verwendet. Wir haben cjpeg und djpeg verwendet, um ein JPEG-Bild zu codieren und zu decodieren. Zur Optimierung der Dateigröße wurde cjpeg mit dem Flag -optimize verwendet. Für alle anderen Parameter setzen wir die Standardwerte fest.

Die Qualität eines Bildes wurde mit SSIM gemessen. Wie bereits erwähnt, wird SSIM im Allgemeinen als qualitativ besserer Messwert als PSNR anerkannt. Für die Berechnung des SSIM-Index haben wir eine öffentlich verfügbare Implementierung in C++ verwendet. Das Lesegerät kann die in den Experimenten verwendeten Python-Skripts zu Referenzzwecken aus dem Code-Repository herunterladen.

Bilddatensätze

Wir haben die Datasets ausgewählt, um Standard-Testbildsammlungen sowie eine große Anzahl von Bildern zu bewerten. Im Folgenden finden Sie die Liste der in den Tests verwendeten Datasets.

  1. Lenna: weit verbreitetes Lenna-Bild (512 × 512 Pixel).

  2. Kodak: 24 Bilder aus der Echtfarben-Bildersuite von Kodak.

  3. Tecnick:100 Bilder aus der auf Tecnick.com verfügbaren Sammlung. Wir haben die 100 RGB-Farbbilder in Originalgröße verwendet.

  4. Image_crawl::Um eine große Anzahl von Bildern zu testen, haben wir eine zufällige Auswahl von PNG-Bildern aus der Web-Crawling-Datenbank der Google Bildersuche erfasst. Die meisten gecrawlten PNG-Bilder sind Symbole, Grafiken, Diagramme, gescannte Dokumente usw. Die meisten Bilder in den Standard-Testsammlungen sind jedoch Fotos und keine computergenerierten Bilder. Damit dieses Dataset den Standard-Testsuites ähnlich ist, haben wir einen Gesichtserkennungsalgorithmus über diese PNG-Bilder ausgeführt und nur die Bilder (etwa 11.000) für dieses Experiment berücksichtigt, die diesen Erkennungstest bestanden haben.

Test 1: WebP vs. JPEG bei gleichem SSIM-Index

In diesem Experiment generieren wir JPEG- und WebP-Bilder mit vergleichbaren SSIM-Werten und messen das Verhältnis der Dateigrößen. Der Test umfasst folgende Schritte:

  1. Komprimieren Sie das PNG-Quellbild mit dem festen Qualitätsparameter Q in JPEG und notieren Sie die SSIM zwischen dem PNG-Quellbild und dem komprimierten JPEG-Bild.

  2. Komprimieren Sie dasselbe Quell-Image mit einem Qualitätsparameter in WebP, mit dem die oben aufgezeichnete SSIM möglichst genau erreicht wird.

Wir haben die beiden oben genannten Schritte für alle Bilder in einem Dataset ausgeführt und dann die durchschnittliche Dateigröße und die SSIM für JPEG- und WebP-Bilder gemessen.

Die folgenden Tabellen zeigen die Ergebnisse dieses Tests für drei verschiedene Werte (50, 75 und 95) des JPEG-Qualitätsparameters Q. Die Qualitätsparameter 50 und 95 stellen die Bildkomprimierung bei niedriger bzw. hoher Bitrate dar. Wir haben auch den JPEG-Qualitätsparameter 75 eingefügt, da dies die allgemein empfohlene Qualitätsstufe für JPEG-Bilder ist.

Tabelle 1: Durchschnittliche Dateigröße für WebP und JPEG für denselben SSIM-Index, der JPEG Q=50 entspricht

Logo: Lenna Kodak Tecnik Image_crawl
WebP: Durchschnittliche Dateigröße
(Durchschnittliche SSIM)
17,4 KB
(0,841)
31,0 KB
(0,898)
92,4 KB
(0,917)
6,5 KB
(0,901)
JPEG: durchschnittliche Dateigröße
(Durchschnittliche SSIM)
23,5 KB
(0,840)
42,7 KB
(0,897)
124,6 KB
(0,916)
9,9 KB
(0,899)
Verhältnis der Dateigröße von WebP zu JPEG 0.74 0,72 0.74 0.66

Tabelle 2: Durchschnittliche Dateigröße für WebP und JPEG für denselben SSIM-Index, der JPEG Q=75 entspricht

Logo: Lenna Kodak Tecnik Image_crawl
WebP: Durchschnittliche Dateigröße
(Durchschnittliche SSIM)
26,7 KB
(0,864)
46,5 KB
(0,932)
139,0 KB
(0,939)
9,9 KB
(0,930)
JPEG: durchschnittliche Dateigröße
(Durchschnittliche SSIM)
37,0 KB
(0,863)
66,0 KB
(0,931)
191,0 KB
(0,938)
14,4 KB
(0,929)
Verhältnis der Dateigröße von WebP zu JPEG 0,72 0,70 0.73 0,69

Tabelle 3: Durchschnittliche Dateigröße für WebP und JPEG für denselben SSIM-Index, der JPEG Q=95 entspricht

Logo: Lenna Kodak Tecnik Image_crawl
WebP: Durchschnittliche Dateigröße
(Durchschnittliche SSIM)
74,3 KB
(0,910)
118,0 KB
(0,978)
356,0 KB
(0,970)
23,4 KB
(0,969)
JPEG: durchschnittliche Dateigröße
(Durchschnittliche SSIM)
104 KB
(0,907)
162 KB
(0,976)
492 KB
(0,970)
31,3 KB
(0,968)
Verhältnis der Dateigröße von WebP zu JPEG 0.71 0.73 0,72 0,75

Aus den obigen Tabellen lässt sich ablesen, dass WebP im Vergleich zu JPEG zusätzliche 25–34 % Komprimierungsgewinne bei gleichem oder etwas besserem SSIM-Index bietet.

Test 2: SSIM- und BPP-Diagramme für WebP und JPEG

Wir untersuchen den Kompromiss zwischen Ratenverzerrung bei JPEG und WebP. Insbesondere untersuchen wir die SSIM- im Vergleich zu Bits pro Pixel-Diagrammen (bpp) für JPEG und WebP. Wir nehmen das PNG-Quellbild und komprimieren es mit allen möglichen Qualitätswerten (0–100) in JPEG und WebP. Dann werden für jeden Qualitätswert die SSIM- und bpp-Werte für JPEG und WebP grafisch dargestellt. Die folgenden Abbildungen zeigen solche SSIM-/BPP-Diagramme für die drei Bilder, die aus den drei von uns verwendeten öffentlichen Datasets ausgewählt wurden.

Abbildung 1: SSIM und BPP für Lenna

ssim vs. bpp für Lenna

Abbildung 2: SSIM im Vergleich zu BPP für kodim19.png aus dem Kodak-Dataset

ssim vs. bpp für Kodim19

Abbildung 3: SSIM und BPP für RGB_OR_1200x1200_061.png aus dem Tecnick-Dataset

sim vs. bpp für RGB_OR_1200x1200

Außerdem haben wir das durchschnittliche Verhalten des SSIM-im-bpp-Diagramms für die Datasets von Kodak und Tecnick untersucht. Um das durchschnittliche Verhalten darzustellen, komprimieren wir alle Bilder in einem Dataset mit WebP und JPEG bei 100 verschiedenen Qualitätswerten. Anschließend stellen wir den Durchschnitt von SSIM und BPP für jeden Qualitätswert dar. Das Bild-Crawling-Dataset besteht aus heterogenen Bildern, die nicht für diese Datenaggregation geeignet sind. Die folgenden Diagramme zeigen das durchschnittliche Verhalten von SSIM und bpp für die Kodak- und Tecnick-Datasets.

Abbildung 4: SSIM und BPP für das Kodak-Dataset

SIM-Karte vs. BPP für Kodak

Abbildung 5: SSIM im Vergleich zu BPP für das Tecnick-Dataset

ssim vs. bpp für Tecnick-Dataset

Aus den obigen Diagrammen lässt sich insgesamt feststellen, dass WebP durchweg weniger Bits pro Pixel benötigt als JPEG, um denselben SSIM-Index zu erreichen.

Fazit

In der Studie wurde die WebP-Komprimierung mit der JPEG-Datei verglichen. Wir haben beobachtet, dass die durchschnittliche WebP-Dateigröße bei entsprechendem SSIM-Index 25–34 % kleiner ist als die JPEG-Dateigröße. Die SSIM- im Vergleich zu bpp-Diagrammen zeigten, dass bei demselben SSIM-Index bei WebP durchweg weniger Bits pro Pixel als bei JPEG erforderlich waren. Diese Ergebnisse deuten darauf hin, dass WebP gegenüber JPEG erhebliche Verbesserungen bei der Komprimierung bieten kann.


1 Huynh-Thu, Q.; Ghanbari, M. (2008). „Gültigkeitsbereich des PSNR in der Bewertung der Bild-/Videoqualität“. Electronics Letters 44: 800-801.doi:10.1049/el:20080522.

2 Z. Wang, A. C. Bovik, H. R. Sheikh und E. Tel. Simoncelli, „Image quality rating: From error measurement to structural similarity“, Image Processing, IEEE Transactions, Volume 13, Issue 4, S. 600–612, 2004.