PicScrub logoPicScrub
Zurück zu den Formaten

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)

RIFF
Size
WEBP
VP8X
EXIF/XMP
VP8/VP8L
RIFF
4 Bytes
Container-Signatur
Size
4 Bytes
Dateigröße - 8
WEBP
4 Bytes
Formatkennung
VP8X
18 Bytes
Flags für erweiterte Funktionen
EXIF/XMP
100 Bytes
Metadaten-Chunks
VP8/VP8L
Variable Länge
Bilddaten

WebP-Header

RIFF-Signatur
Dateigröße - 8
WEBP-Kennung
VP8X-Chunk-Typ
VP8X-Größe (10)
VP8X-Flags
Canvas-Größe
OffsetHexASCII
0000
52494646241A00005745425056503858
RIFF$...WEBPVP8X
0010
0A00000010000000FF0000FF00000000
..............

Aufbau eines RIFF-Chunks

FourCCGrößeDaten
4 Bytes4 Bytes (LE)Variabel

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

Bit 0Reserviert (muss 0 sein)
Bit 1Animations-Flag
Bit 2XMP-Metadaten vorhanden
Bit 3EXIF-Metadaten vorhanden
Bit 4Alphakanal vorhanden
Bit 5ICC-Profil vorhanden

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

1

RIFF-Header prüfen

Auf die Signatur RIFF....WEBP testen

2

Chunks auslesen

Alle RIFF-Chunks durchlaufen und FourCC sowie Größe lesen

3

Metadaten-Chunks entfernen

EXIF- und XMP-Chunks beim Schreiben der Ausgabe überspringen

4

VP8X-Flags aktualisieren

EXIF-/XMP-Flag-Bits im VP8X-Chunk zurücksetzen

5

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.

RIFF + WEBP + VP8/VP8L

Erweitertes WebP

Hat einen VP8X-Chunk und ermöglicht Metadaten, Alpha und Animation.

RIFF + WEBP + VP8X + [ICCP] + [ANIM] + [EXIF] + [XMP] + VP8/VP8L