Das quelloffene Grafikformat WebP (ausgesprochen „weppy“) ist ein Datenformat von Google, welches verlustbehaftete sowie verlustlose Bilddatenkomprimierung für Webanwendungen anbietet. Das Versprechen dabei ist laut Google, dass bei vergleichbarer Qualität zu JPG die Dateigröße rund 30 % geringer ausfallen soll. Dabei wird als Vergleichsfaktor der SSIM-Qualitätsindex herangezogen. Ich habe mir im Praxistest angesehen, ob WebP als Ersatz für die etablierten Web-Grafikformate PNG, GIF und JPEG tauglich ist.
Laut den Google-Papers zu WebP wird der SSIM-Index zum Vergleich der Qualität zwischen einem Referenzbild und der WebP-Version herangezogen, um das Verhältnis von Bildqualität zu Komprimierungseffizienz einzuschätzen, was grundsätzlich ein sinnvoller Ansatz ist. Damit werden individuelle Faktoren der Wahrnehmung unterschiedlicher Betrachter minimiert, da ein auf Algorithmen basierender Ansatz gewählt wird. Somit kann weitgehend objektiv beurteilt werden, ob zB. eine JPEG-komprimierte Datei bei Dateigröße X qualitativ besser/schlechter zu beurteilen ist als eine WebP-komprimierte Datei bei gleicher Dateigröße.
Geringere Dateigröße bei gleicher visueller Qualität
Im Gegensatz zu älteren Methoden wie dem Peak Signal-to-Noise Ratio (PSNR), die hauptsächlich auf pixelbasierte Differenzen abzielen, berücksichtigt SSIM die visuelle Wahrnehmung des Menschen und soll somit eine qualitative Einschätzung aus Sicht eines menschlichen Betrachters ermöglichen.
SSIM basiert auf der These, dass die menschliche Wahrnehmung besonders empfindlich für bestimmte strukturelle Informationen in einem Bild ist. Diese sind die Luminanz, der Tonwertkontrast und die im Bild enthaltenen Pixelmuster. Ein SSIM-Test kann beispielsweise mit Software von Imatest durchgeführt werden. Es gibt auch eine Matlab-Implementierung. Wichtig beim Vergleich ist, dass Referenzbild und Vergleichsbild vom gleichen Originalbild abgeleitet sind und exakte die gleiche Anzahl an Pixel aufweisen – beispielsweise eine JPEG-komprimierte und eine WebP-komprimierte Version einer TIFF-Dateivorlage. Wenn Referenz- und Vergleichsbild denselben SSIM-Index aufweisen, kann anhand der Dateigröße die Komprimierungseffizienz eingeschätzt werden.
Es ist zu beachten, dass die Komprimierungsraten je nach Bildinhalt und verwendetem Encoder schwanken können. Beispielsweise sind die Komprimierungsvorteile von weppy gegenüber modernen JPEG-Encodern wie mozjpeg geringer. Siehe hier: Vergleich
Im obigen Vergleich wird die Formel der CIEDC2000 als Metrik benutzt, welche Farbunterschiede mathematisch beschreibt und exakter als der übliche Delta-E-Vergleich sein soll.
Open Source
Google hat WebP quelloffen unter der BSD-Lizenz veröffentlicht, was eine stetige Verbesserung, Peer Review und Implementierung in eigene Projekte durch die Community ermöglicht. Der Quellcode kann auf der google Developerplattform heruntergeladen werden.
Die Datenformat-Features
Wie schneidet die holy-trinity der Web-Grafikformate JPEG, GIF, PNG nun im direkten Feature-Vergleich ab? Die folgende Tabelle vergleicht für Webgrafiken relevante Eigenschaften.
Eigenschaft | WebP | JPEG, PNG, GIF |
---|---|---|
Animationen | ja | nur GIF relevant, PNG möglich |
Transparenz | ja | nur PNG, GIF |
Verlustbehaftet | ja | nur JPEG |
Verlustlos | ja | nur PNG relevant |
Metadaten | ja | ja |
Farbprofile | ja | nur JPEG, PNG |
Indizierte Palette | ja | nur PNG, GIF |
Anzeige vor dem vollständigen Laden im Browser (progressive, interlace) | ja | ja |
Farbmodelle | RGBA, YUV | RGBA, YUV, CMYK |
Transparenz bei verlustbehafteter Komprimierung | ja | nein |
Weitere Datenformat-Eigenschaften:
- WebP ist Bitstream-kompatibel mit dem ebenfalls lizenzgebührfreien Videoformat VP8/WebM.
- Die maximale Größe einer WebP-Grafik beträgt 16383 x 16383 px (14 bit für Breite und Höhe, 2^14 bit).
- Verlustbehaftetes WebP nutzt einen 8-Bit-Y’CbCr Farbraum mit 4:2:0 Farbunterabtastung.
- Nicht verlustbehaftet komprimiert kommt das RGBA Format zum Einsatz.
- Es gibt keine progressive oder Zeilensprungdarstellung wie bei JPEG oder PNG, damit der Arbeitsspeicher und CPU-Auslastung minimiert werden. Eine inkrementelle Dekodierung ist möglich, damit eine weppy-Grafik schnell in mehreren Durchgängen im Viewport des Browsers angezeigt wird.
- Für die Entropiekodierung kommt eine Variante von LZ77-Huffman zum Einsatz.
- Durch die Dateigrößeneinsparung lädt eine Website potenziell schneller.
- SEO von Webseiten wird durch schnellere Ladezeiten verbessert.
- Liegt die Zahl der Pixelfarbwerte unter 256, wird ein Farbindex erstellt, wie bei GIF.
- Verlustbehaftete Komprimierung mit Alphakanal ist möglich. Dieses stellt einen eindeutigen Vorteil gegenüber den klassischen Webformaten dar. Dabei wird der Alphakanal in einem lossy weppy nicht-verlustbehaftet komprimiert mitgespeichert. Im Vergleich zu PNG mit Transparenz bietet weppy mit lossy Komprimierung und Alphakanal eine Dateigrößenersparnis von ca. 60 – 70 %. JPEG bietet keine Möglichkeit, einen Alphakanal zu speichern.
- Browserunterstützung: https://caniuse.com/webp
- Das Containerformat ist RIFF. https://de.wikipedia.org/wiki/Resource_Interchange_File_Format
- WordPress unterstützt WebP ohne Plugin.
- Typo3 unterstützt WebP ab Version 13. Eine Extension zur Konvertierung bestehender Bilddaten ist erhältlich.
- Photoshop, Affinity Photo und GIMP unterstützen WebP ohne Plugin.
- WebP2 ist bereits in Entwicklung bei Google, wird aber laut Repository-Hinweis nicht veröffentlicht.
- Tiling ist möglich (zusammengesetzte Grafiken)
- Ein Kommandozeilentool für die Konvertierung nach weppy ist hier erhältlich: Download
Kritik
- Keine 4:2:2 und 4:4:4 Farbunterabtastung wie bei JPEG möglich.
- Das Format ist ein Delivery-Format für Webseiten. Für die Offline-Anwendung (zB. Fotoarchiv) ist es nicht gedacht.
- Nur RGBA und Y’CbCr möglich.
- Die verlustbehaftete Komprimierung äußert sich in einem Weichzeichnungseffekt, der den Detailgrad von Aufnahmen bei hohen Komprimierungsraten deutlich verringert.
- WebP ist ein reines Rastergrafikformat, Vektorgrafiken werden nicht unterstützt.
- WebP hat Schwierigkeiten bei der Qualität von detailreichem Bildmaterial bzw. Fotos mit hoher Akutanz.
- Moderne JPEG-Encoder erreichen ähnliche Ergebnisse.
- AVIF als potenzieller Nachfolger ist seit 2019 veröffentlicht und erzielt tendenziell noch bessere Komprimierungsraten als WebP.
JPEG vs. WebP: Praxistest in Affinity Photo
Für den Praxistest verwende ich eine subjektive Auswahl an Testbildern der SIPI und Stockfotos von Pixabay. Die Bilder werden verlustbehaftet auf gleiche Dateigröße komprimiert und visuell verglichen. Metadaten werden eingebettet, aber keine Farbprofile. Es ist zu beachten, dass der Test mit der Affinity Version 2.1.1 und der internen Exportfunktion durchgeführt wurde und somit keine allgemeingültige Aussagekraft abgeleitet werden kann.
Links: Original TIFF, Mitte: JPEG, Rechts: WebP
Fazit: Die Vorteile von WebP überwiegen meiner Meinung nach deutlich – auf Basis einer visuellen Beurteilung der Testbilder. Da mit diesem Datenformat JPEG, PNG und GIF ersetzt werden können, reduziert es den Aufwand beim Datenexport. Die Verbreitung im Web liegt laut Wikipedia im Januar 2024 bei 12 % der von w3techs untersuchten Websites – mit steigender Tendenz. Datensparsamkeit und weniger nötige Rechenleistung beim Kodieren und Dekodieren sprechen nicht zuletzt als ökologischer Aspekt für weppy. Abzuwarten bleibt, ob AVIF die Nachfolge von WebP antritt.
Weitere Infos
- Vergleich von verschiedenen Encodern mit niedriger Bitrate anhand von Abbildungen: https://jmvalin.ca/daala/revisiting/compare.html
- Studie zur verlustfreien Transpazenzkodierung in WebP: https://developers.google.com/speed/webp/docs/webp_lossless_alpha_study?hl=de
- Studie zur Komprimierungseffizienz gegenüber JPEG: https://developers.google.com/speed/webp/docs/webp_study?hl=de