WebP-Format
Googles modernes Bildformat
RIFF-Container
Google hat für WebP keinen neuen Container erfunden, sondern RIFF genommen: dasselbe Format, das seit den frühen 90ern WAV-Audio und AVI-Video transportiert. Wer schon einmal eine WAV-Datei ausgelesen hat, weiß auf Container-Ebene bereits, wie WebP funktioniert.
Das Format nutzt verschachtelte Chunks mit vier Zeichen langen Kennungen (den FourCC-Codes). Ein einfaches, robustes Design, das sich über die Jahre bewährt hat.
Struktur einer WebP-Datei (RIFF-Container)
WebP-Header
| Offset | Hex | ASCII | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0000 | 52494646241A00005745425056503858 | RIFF$...WEBPVP8X | |||||||||||||||
| 0010 | 0A00000010000000FF0000FF00000000 | .............. | |||||||||||||||
Aufbau eines RIFF-Chunks
Hinweis: Chunk-Daten werden bei Bedarf mit einem Null-Byte auf eine gerade Länge aufgefüllt.
Wichtige Offsets
- • Beginn der Sub-Chunks: 12 Bytes (nach RIFF + Größe + WEBP)
- • Chunk-Header: 8 Bytes (4 Byte FourCC + 4 Byte Größe)
- • Offset des Größenfelds: +4 ab Chunk-Beginn (Little-Endian)
Bild-Chunks
WebP sind eigentlich drei Formate in einem: verlustbehaftet (VP8), verlustfrei (VP8L) und erweitert (VP8X). Der Chunk-Typ verrät dir, welches Kompressionsverfahren verwendet wurde.
VP8:Verlustbehaftete Kompression
Nutzt den VP8-Videocodec zur Kompression. Ähnliches Verhältnis von Qualität und Größe wie bei JPEG. Einfache WebP-Dateien enthalten nur diesen Chunk.
VP8L:Verlustfreie Kompression
Verlustfreie Kompression mit Prädiktion, Farbtransformation und Entropiekodierung. Meist 25-34 % kleiner als PNG.
VP8X:Erweitertes Format
Zeigt an, dass optionale Funktionen vorhanden sind: Animation, Alphakanal, ICC-Profil, EXIF oder XMP. Erforderlich, sobald eine dieser Funktionen genutzt wird.
ALPH:Alphakanal
Separate Daten für den Alphakanal. Können unabhängig von den Farbdaten verlustfrei oder verlustbehaftet komprimiert sein.
ANIM/ANMF:Animation
ANIM enthält die globalen Animationsparameter. ANMF-Chunks enthalten die einzelnen Frames samt Timing-Informationen.
Metadaten-Chunks
Anders als einfache WebP-Dateien, die nur Bilddaten enthalten, können erweiterte WebP-Dateien Metadaten mitführen. Die gute Nachricht: Diese Chunks sind sauber von den Bilddaten getrennt und lassen sich deshalb leicht erkennen und entfernen.
EXIF:EXIF-Metadaten
Enthält EXIF-Daten im selben Format wie JPEG (rohe TIFF-Struktur). Dazu gehören Kamerainfos, GPS-Koordinaten, Zeitstempel und Vorschaubilder. Das größte Datenschutzrisiko.
XMP:XMP-Metadaten
XML-basierte Metadaten. Können EXIF-Daten duplizieren und zusätzlich Bearbeitungsverlauf, Software-Infos und eigene Felder enthalten.
ICCP:ICC-Farbprofil
ICC-Farbprofil für das Farbmanagement. PicScrub behält es standardmäßig bei, damit die Farben stimmen.
VP8X-Flags
Der VP8X-Chunk funktioniert wie ein Inhaltsverzeichnis: Er sagt dem Decoder, was ihn in der Datei erwartet. Wenn wir Metadaten-Chunks entfernen, müssen wir deshalb auch diese Flags aktualisieren. Sonst sucht der Decoder nach Daten, die es nicht mehr gibt.
Flag-Bits
Warum die Flags wichtig sind
Wenn PicScrub EXIF-/XMP-Chunks entfernt, muss es auch die VP8X-Flags entsprechend anpassen. Sonst erwarten Decoder Daten, die gar nicht mehr vorhanden sind.
So verarbeitet PicScrub WebP
RIFF-Header prüfen
Auf die Signatur RIFF....WEBP testen
Chunks auslesen
Alle RIFF-Chunks durchlaufen und FourCC sowie Größe lesen
Metadaten-Chunks entfernen
EXIF- und XMP-Chunks beim Schreiben der Ausgabe überspringen
VP8X-Flags aktualisieren
EXIF-/XMP-Flag-Bits im VP8X-Chunk zurücksetzen
Dateigröße neu berechnen
Den RIFF-Header mit der neuen Gesamtgröße aktualisieren
Erhalten
- • VP8-/VP8L-Bilddaten
- • ALPH-Alphakanal
- • ANIM-/ANMF-Animationsdaten
- • ICCP-Farbprofil (optional)
Entfernt
- • EXIF-Metadaten
- • XMP-Metadaten
Einfaches und erweitertes WebP
Fehlt einer WebP-Datei der VP8X-Chunk, handelt es sich um ein „einfaches“ WebP: nur die RIFF-Hülle um einen einzelnen VP8- oder VP8L-Chunk. In einfachen WebP-Dateien sind gar keine Metadaten möglich. Wenn dir Datenschutz wichtig ist, sind sie also ideal.
Einfaches WebP
Enthält nur einen VP8- oder VP8L-Chunk. Metadaten sind nicht möglich.
Erweitertes WebP
Hat einen VP8X-Chunk und ermöglicht Metadaten, Alpha und Animation.