PDFMove
Warum sind GIFs so groß? 256 Farben, LZW und der Bildaufbau
Ratgeber

Warum sind GIFs so groß? 256 Farben, LZW und der Bildaufbau

7 Min. Lesezeit

GIF ist ein 1987 entworfenes Format und hat sich seither so gut wie nicht verändert. Es ist heute immer noch weit verbreitet, im Vergleich zu modernen Alternativen aber dramatisch ineffizient. In diesem Beitrag sehen wir uns den inneren Aufbau des Formats an und erklären, warum es so große Dateien erzeugt und wo es dennoch sinnvoll bleibt.

Das palettenbasierte Farbmodell

Das prägendste Merkmal von GIF ist die Art, wie es Farben speichert.

In modernen Bildformaten trägt jedes Pixel seinen eigenen Farbwert: 8 Bit Rot, 8 Bit Grün, 8 Bit Blau – rund 16,7 Millionen mögliche Farben.

GIF arbeitet anders. Es führt eine Farbtabelle (Palette) und speichert für jedes Pixel einen Index in diese Tabelle. Die Palette kann höchstens 256 Einträge enthalten.

Palette:
  0 → #000000 (Schwarz)
  1 → #FF0000 (Rot)
  2 → #00FF00 (Grün)
  ...
  255 → #FFFFFF (Weiß)

Pixeldaten: 0, 0, 1, 1, 2, 0, 255, ...

Der Vorteil: Jedes Pixel belegt statt 24 Bit nur 8 Bit. Unter den Speicherbedingungen von 1987 war das ein erheblicher Gewinn.

Der Nachteil: Ein Bild kann höchstens 256 verschiedene Farben enthalten.

Der bildliche Preis der 256 Farben

Ein Videobild enthält typischerweise Zehntausende verschiedener Farben. Diese auf 256 zu reduzieren erfordert eine Farbquantisierung (Color Quantization) – der Algorithmus analysiert die Farben im Bild, wählt die 256 repräsentativsten aus und ordnet jedes Pixel dem nächstgelegenen Paletteneintrag zu.

Die sichtbaren Folgen davon:

Streifenbildung (Banding). Ein weicher Verlauf – Himmel, Lichtübergang, Schatten – wird zu Streifen gleichmäßiger Farbe. Die Kontinuität geht verloren, es entsteht ein stufiges Erscheinungsbild.

Verfälschung von Hauttönen. Menschliche Gesichter enthalten viele eng benachbarte Töne, und die Palette tut sich schwer, diese zu unterscheiden. Das Ergebnis ist ein fleckiges, kränkliches Aussehen.

Farbverschiebung. Farben, für die es in der Palette keine exakte Entsprechung gibt, werden auf den nächsten Nachbarn gerundet; das Unternehmensblau Ihrer Marke kann so in einen leicht abweichenden Blauton rutschen.

Das Ergebnis hängt von der Inhaltsart ab:

| Inhalt | Ergebnis bei 256 Farben | |---|---| | Bildschirmaufnahme, Benutzeroberfläche | Meist gut (enthält ohnehin wenige Farben) | | Zeichentrick, Illustration | Gut | | Text und Grafik | Sehr gut | | Naturaufnahme | Deutliche Streifenbildung | | Menschliches Gesicht, Haut | Fleckig | | Nachtszene, Verlauf | Schlecht |

Dithering: ein optischer Trick

Um die Streifenbildung abzumildern, wird Dithering eingesetzt. Die Idee: Zwei Palettenfarben werden auf benachbarte Pixel verteilt, sodass aus der Distanz der Eindruck entsteht, man sähe den Ton dazwischen.

Nach demselben Prinzip erzeugen Zeitungsfotos mit schwarzen Punkten Grautöne.

Dithering verbessert die Bildqualität deutlich – Streifen verschwinden, Verläufe werden weicher. Doch es hat einen Preis, und dieser schlägt sich direkt in der Dateigröße nieder.

Der Widerspruch zwischen LZW-Kompression und Dithering

GIF verwendet eine verlustfreie Kompression namens LZW (Lempel-Ziv-Welch). LZW sucht in den Daten wiederkehrende Muster und ersetzt sie durch kurze Codes. Eine Folge wie "0,0,0,0,0,0" wird beispielsweise sehr knapp kodiert.

Das funktioniert bei Bildern mit gleichmäßigen Farbflächen hervorragend – Logos, Grafiken, Bildschirmaufnahmen von Oberflächen.

Denken Sie nun an die Wirkung des Ditherings: Es macht gleichmäßige Flächen absichtlich verrauscht. Statt "0,0,0,0,0,0" entsteht ein Muster wie "0,1,0,1,1,0".

In diesem Rauschen findet LZW keine Wiederholungen. Die Kompressionseffizienz sinkt, die Datei wächst.

Dithering steigert also die Bildqualität, vergrößert aber zugleich die Datei. Bei der GIF-Erstellung müssen Sie zwischen diesen beiden ein Gleichgewicht finden.

Optimierung zwischen Einzelbildern: ein begrenzter Mechanismus

GIF speichert die Animation als Folge aufeinanderfolgender Einzelbilder. Jedes Bild kann eine eigene Anzeigedauer (Verzögerungswert) und eine eigene Palette haben.

Das Format bietet ein gewisses Maß an Optimierung:

Teilbild. Ein Einzelbild kann statt des gesamten Bildes nur einen veränderten rechteckigen Bereich enthalten. Bei einer Animation mit festem Hintergrund bringt das erheblichen Gewinn.

Transparente Pixel. Unveränderte Pixel können als transparent markiert werden, sodass das vorherige Bild durchscheint.

Entsorgungsmethode (Disposal Method). Legt fest, was vor dem nächsten Einzelbild mit dem aktuellen geschieht: bestehen bleiben, auf den Hintergrund zurückgesetzt werden oder auf den vorherigen Zustand zurückkehren.

Das funktioniert, bleibt aber neben modernen Videocodecs primitiv. Der Grund: GIF kennt den Begriff der Bewegung nicht.

Ein Videocodec kann erkennen, dass sich ein Objekt um 12 Pixel nach rechts verschoben hat, und sagen: "Nimm diesen Block aus dem vorherigen Bild und verschiebe ihn 12 Pixel nach rechts" – ein paar Bytes. GIF kann nur sagen: "Dieser rechteckige Bereich hat sich geändert, hier sind die neuen Pixel" – Tausende Bytes.

Sobald sich die Kamera bewegt oder ein Szenenwechsel stattfindet, wird die Teilbildoptimierung völlig wirkungslos; in jedem Bild ändert sich jedes Pixel.

Der Vergleich in Zahlen

Für denselben Inhalt mit 5 Sekunden, 480 × 270 Pixel und 15 fps grob geschätzt:

| Format | Typische Größe | Farbe | |---|---|---| | GIF | 3–8 MB | 256 | | Animiertes WEBP | 800 KB – 2 MB | Volle Farbe | | APNG | 2–5 MB | Volle Farbe + Alpha | | MP4 (H.264) | 200–500 KB | Volle Farbe | | WEBM (VP9) | 150–400 KB | Volle Farbe |

MP4 trägt denselben Inhalt in etwa einem Zehntel der GIF-Größe und in deutlich besserer Farbqualität. Dieser Unterschied ist keine kleine Optimierung, sondern eine kategorische Überlegenheit.

Die drei Faktoren, die die Dateigröße bestimmen

Die GIF-Größe wächst mit dem Produkt dreier Größen:

Dauer × Bildrate = Gesamtzahl der Einzelbilder. 10 Sekunden × 20 fps = 200 Bilder. 5 Sekunden × 12 fps = 60 Bilder. Ein Drittel.

Auflösung = Pixel pro Einzelbild. Die Breite zu halbieren senkt die Gesamtpixelzahl auf ein Viertel.

Multipliziert ergibt das:

  • 10 s, 20 fps, 800 × 450: 200 Bilder × 360.000 Pixel = 72 Millionen Pixel
  • 5 s, 12 fps, 400 × 225: 60 Bilder × 90.000 Pixel = 5,4 Millionen Pixel

Rund 13-facher Unterschied. Deshalb muss man beim Verkleinern eines GIFs nicht an einer einzigen Einstellung drehen, sondern alle drei zugleich betrachten.

Vierter Faktor: die Bewegungsmenge. Eine statische Szene profitiert von der Teilbildoptimierung und wird sehr klein. Eine Szene mit Kamerabewegung wird bei denselben Einstellungen um ein Vielfaches größer.

Warum sich moderne Alternativen nicht durchsetzen

Animiertes WEBP und APNG sind GIF in jeder Hinsicht überlegen: volle Farbe, Alphatransparenz, deutlich bessere Kompression. Alle modernen Browser unterstützen sie.

Was ihre Verbreitung bremst, ist nicht technischer Natur, sondern die Gewohnheit des Ökosystems:

  • Messenger behandeln GIF als eigenen Typ und bieten Suchbibliotheken dafür an.
  • Forensoftware und Wikisysteme kennen GIF-Auszeichnungen.
  • E-Mail-Programme zeigen GIF-Animationen an (Videos spielen sie nicht ab).
  • Menschen sagen "schick mir ein GIF", nicht "schick mir ein animiertes WEBP".

Dabei gibt es eine Ironie: Viele Plattformen wandeln das von Ihnen hochgeladene GIF im Hintergrund in MP4 um und präsentieren es Ihnen als GIF. Wenn Sie also sagen "ich teile ein GIF", teilen Sie in Wirklichkeit ein Video.

Der richtige Ansatz im Web

Wollen Sie auf Ihrer eigenen Website eine Animation zeigen, gibt es keinen Grund, GIF zu verwenden:

<video autoplay muted loop playsinline>
  <source src="animation.webm" type="video/webm">
  <source src="animation.mp4" type="video/mp4">
</video>

Das liefert exakt dasselbe Verhalten wie ein GIF – kein Ton, automatische Wiedergabe, Endlosschleife –, aber in einem Zehntel der Größe und in voller Farbqualität.

Das Attribut playsinline verhindert, dass das Video in mobilen Browsern in den Vollbildmodus wechselt; für ein GIF-ähnliches Verhalten ist es erforderlich.

Hinsichtlich der Seitengeschwindigkeit ist der Unterschied dramatisch: Ein Video mit 400 KB statt eines GIFs mit 5 MB verkürzt die Ladezeit spürbar.

Wo GIF nach wie vor richtig ist

  • Umgebungen ohne Videounterstützung: manche Forensoftware, ältere Wikisysteme.
  • E-Mail: Die meisten Programme spielen keine Videos ab, zeigen aber GIFs (manche nur das erste Einzelbild).
  • Die GIF-Bibliotheken von Messenger-Apps.
  • Einfache, farbarme Animationen: Ladeanzeigen, kleine Icon-Animationen – hier ist die Grenze von 256 Farben ohnehin kein Problem, und das GIF fällt vernünftig groß aus.

Zusammengefasst

GIF arbeitet mit einem palettenbasierten Modell aus 256 Farben, was bei fotografischen Inhalten zu Streifenbildung und Flecken führt; Dithering mildert das optisch ab, senkt aber die Effizienz der LZW-Kompression und vergrößert damit die Datei. Das Format nutzt die Redundanz zwischen Einzelbildern nur auf primitive Weise – es kennt keinen Bewegungsbegriff und kann lediglich veränderte rechteckige Bereiche speichern. Im Ergebnis belegt es für denselben Inhalt etwa das Zehnfache moderner Videocodecs. Weil die Dateigröße mit dem Produkt aus Dauer, Bildrate und Auflösung wächst, muss jeder Verkleinerungsversuch alle drei zugleich angehen. Und für den Einsatz im Web ist an GIF technisch nichts mehr zu verteidigen: Ein Video mit autoplay muted loop erledigt dieselbe Aufgabe weit besser.

Häufig gestellte Fragen

Ist GIF ein verlustfreies Format?

Was die Kompression angeht: ja, LZW ist verlustfrei. Farblich gibt es jedoch einen erheblichen Verlust: Die Grenze von 256 Farben vereinfacht eine Quelle mit Millionen Farben massiv. GIF 'speichert das ihm übergebene 256-farbige Bild also unbeschädigt', doch der Schritt hinunter auf diese 256 Farben ist bereits ein großer Verlust. In der Praxis verhält sich GIF bei fotografischen Inhalten wie ein verlustbehaftetes Format.

Nutzt GIF die Redundanz zwischen Einzelbildern überhaupt nicht?

Nur in begrenztem Umfang. Ein Einzelbild kann ein kleines Rechteck sein, das nur den veränderten Bereich über das vorherige Bild zeichnet, und unveränderte Pixel können transparent bleiben. Verglichen mit der Vorhersage, die moderne Videocodecs über Bewegungsvektoren leisten, ist das jedoch sehr primitiv; GIF kann nicht erkennen, dass sich ein Objekt bewegt hat, sondern nur sagen: 'Dieses Rechteck hat sich geändert.'

Warum vergrößert Dithering die Datei?

Dithering verteilt benachbarte Pixel in unterschiedlichen Farben, um mit einer begrenzten Palette den Eindruck von mehr Farben zu erzeugen. Dadurch werden gleichmäßige Farbflächen zu einer verrauschten Struktur. Weil die LZW-Kompression ihren Gewinn aus wiederkehrenden Mustern zieht, senkt dieses künstliche Rauschen die Kompressionseffizienz erheblich. Die Bildqualität steigt, die Dateigröße ebenfalls.

Können APNG und animiertes WEBP GIF ablösen?

Technisch sind beide GIF weit überlegen: Sie bieten volle Farbunterstützung, Alphatransparenz und bessere Kompression. Animiertes WEBP speichert denselben Inhalt meist in einem Drittel der GIF-Größe. Was ihre Verbreitung bremst, sind die Gewohnheiten des Ökosystems – Messenger, Foren und E-Mail-Programme behandeln GIF nach wie vor gesondert.

Probieren Sie es gleich mit Video → GIF aus.

Video → GIF ausprobieren