Das InfoTip Kompendium

Ein kostenloser Service der InfoTip Service GmbH

Zum Anfang der
Seite scrollen

Videokompression

Inhaltsverzeichnis

6. Verlustfreie Videokompressionsverfahren

6.1. GIF

Das GIF (Graphic Interchange Format GIF = Grafikaustauschformat) ist ein Dateiformat zur Speicherung von verlustlos komprimierten Rasterbildern ("Bitmaps"). Da die Farbinformation über Farbtabellen (Paletten) gesteuert wird, ist die höchst mögliche Farbtiefe eines GIF-Bildes begrenzt (meist auf 256 verschiedene Farben aus 2563=16,7 Mio).  Durch diese Einschränkung ist der Einsatz des GIF-Formates für fotografische Darstellungen oder Videoanwendungen weniger geeignet. Der Hauptanwendungsbereich ist die Darstellung von Zeichnungen, Grafikelementen und Farbbildern (mit verminderter Farbtiefe) auf Internetseiten. In einer GIF-Datei können mehrere Einzelbilder abgespeichert sein, welche von geeigneten Wiedergabeprogrammen (z.B. von Webbrowser-Plugins) als Animation abgespielt werden können. Die maximale Größe eines GIF-Bildes darf 65.535x65.535 Pixel betragen.

Abb. 19: GIF-Animation mit 200 Einzelbildern
Abb. 19: GIF-Animation mit 200 Einzelbildern

Das GIF-Format wurde 1987 beim US-Onlinedienst CompuServe entwickelt um auch größere Bilder per Akustikmodem in einer angemessenen Zeit übertragen zu können. Durch die offene Lizenzpolitik von CompuServe wurde GIF mit dem einsetzenden Internetboom das Standardformat für Bilder und Grafikelemente. Der 1987 erschienenen Version "GIF87a" folgte zwei Jahre später die Version "GIF89a". Die zweite Version erlaubte die Darstellung von transparenten Pixeln. Bei in der Farbtabelle als transparent gekennzeichneten Pixeln wird dabei dann die Hintergrundfarbe angezeigt. Eine Teiltransparenz ist allerdings nicht möglich.

Zur Reduktion der Dateigröße wird beim GIF-Format der LZW- (Lempel-Ziv-Welch-) Algorithmus verwendet.  Dieser verwendet Wörterbücher, in denen die am häufigsten vorkommenden Bitmuster indiziert eingetragen sind. Im Datenstrom werden die Bitmuster durch die jeweiligen Indizes ersetzt. Die Wörterbücher sind nicht vorgegeben, sondern werden während der Laufzeit der Komprimierung erzeugt. Die Besonderheit am LZW-Algorithmus ist, dass nicht das komplette Wörterbuch, sondern nur das Muster des letzten Eintrages gespeichert wird. Bei der Dekompression verwendet der Decoder dieses Muster zur Initialisierung und kann hieraus dann das komplette Wörterbuch nach und nach rekombinieren.

Teile des LZW-Algorithmus wurden durch die Sperry Corporation (später in die Unisys fusioniert) patentiert, was in den 1990er Jahren zu rechtlichen Problemen bei der Verwendung von GIF-Bildern in Internet-Auftritten führte. Lizenzforderungen durch Unisys lösten die Entwicklung des PNG-Grafikformates aus, das das GIF-Format im Internet ablösen sollte. Das GIF-Format ist für Europa seit Juni 2004 patentfrei.

Da das lizenzfreie PNG-Format keine Animationen erlaubt, konnte es sich nicht recht im Internet durchsetzen. Obwohl neuere Formate, wie z.B. Adobe Flash, wesentlich mehr Fähigkeiten bieten, konnte das an sich technisch überholte GIF-Format aufgrund seiner weiten Verbreitung bislang nicht ersetzt werden.

6.2. HUFFYUV

HuffYUV ist ein verlustlos komprimierender Video-Codec und kann unkomprimiertes YUV (was tatsächlich YCbCr ist) ersetzen. Der von Ben Rudiak-Gold entwickelte und unter GNU General Public License stehende Codec vermag auch auf schwächerer Hardware Standard-Definition Videosignale (720x576 Pixel) in Echtzeit zu komprimieren. Der verwendete Farbraum ist entweder YCbCr oder RGB. Auch wird eine Farbraumkonvertierung von RGB in YUY2 unterstützt. Alle vom Encoder erzeugten Bilder sind I-Frames und haben keinen Bezug zu vorhergehenden oder nachfolgenden Bildern. Der Kompressionsfaktor des Codecs liegt bei ca. 2. Die FourCC-Kennung ist "HFYU". Implementierungen des Codecs wurden für Windows, Linux und MAC OS x vorgenommen.

Abb. 20: Konfigurationsmenü des HuffYUV-Codecs
Abb. 20: Konfigurationsmenü des HuffYUV-Codecs

Der Komprimierungsalgorithmus von HuffYUV ist ähnlich dem des verlustfreien JPEGs. Der Wert jedes Pixel wird aus den benachbarten Pixeln vorhergesagt (predicted) und mit dem tatsächlichen Wert verglichen. Es sind drei Vorhersagefunktionen (predictor functions) implementiert:

  • Left: Vorhersage aus dem vorhergehenden Pixel des gleichen Farbkanals
  • Gradient: Vorhersage aus dem vorhergehendem Pixel + darüberliegendes Pixel - dem links darüberliegenden Pixel
  • Median: Vorhersage aus dem Medianwert vom vorhergehendem Pixel, des darüberliegenden Pixel und der Gradientenvorversage.

Der Vorhersagefehler (= Differenz zwischen Vorhersage und tatsächlichem Pixelwert) wird dann Huffman-codiert. Ist das Vorhersagemodell gut, ist der Vorhersagefehler klein. Dann nimmt die Speicherung des Huffman-Symbols des Vorhersagefehlers weniger Platz ein als der volle Wert des Pixels. Für jeden Farbkanal ist dafür eine eigene Huffman-Tabelle im Encoder integriert. Die Huffmann-Tabellen werden in der Videodatei mit abgespeichert, damit dem Decoder auch bei der Verwendung von unterschiedlichen Huffman-Tabellen immer die richtige zur Verfügung steht.
Verlustfreie Video-Codecs wie HuffYUV empfehlen sich besonders gut für die Nachbearbeitung von Videomaterial, das bereits hochkomprimiert ist (HDV/MPEG-2 oder AVC-HD/H264). Hochkomprimierte Videos sind an sich Endformate zur Wiedergabe eines Videosignales, zum Editieren sind sie weniger gut geeignet. Durch den in diesen Formaten eingesetzten 4:2:0-Farbraum ist die Farbauflösung und Farbtiefe bis nahe der Wahrnehmungsgrenze von Fehlern und Artefakten getrieben. Effekte wie Farbkorrektur oder Color-Keying können leicht unbefriedigende Ergebnisse bringen, besonders wenn mehrere Effekte gleichzeitig in einem Clip eingesetzt werden sollen. Durch die Konvertierung in RGB (4:4:4) oder 4:2:2 im HuffYUV-Format wird die Farbinformation stabilisiert und bietet somit mehr Qualitätsreserven.

Sollen Effekte nacheinander, also über mehrere Generationen, auf einem Clip angewendet werden, können, bei Verwendung von verlustlosen Codecs, systembedingte Kompressionsartefakte wie z.B. beim MPEG-Verfahren nicht auftreten. HuffYUV eignet sich somit besonders gut als Zwischenformat wenn Effekte auf einen Clip angewendet werden sollen, die nicht im NLE (Nichtlineares Editierprogramm) integriert sind.  Dafür ist der Clip in ein externes Programm (wie z.B. VirtualDub) zu exportieren und dann nach der Bearbeitung wieder in den Standard-NLE zu importieren.

WEBLINKS

Beschreibungen und Spezifikationen der GIF-Standards:
http://electronic-records-preservation.ourarchives.wikispaces.net/file/view/GIF87a.pdf (Letzter Download am 14.01.2010)
http://www.w3.org/Graphics/GIF/spec-gif87.txt (Letzter Download am 14.01.2010)
http://www.w3.org/Graphics/GIF/spec-gif89a.txt (Letzter Download am 14.01.2010)

Rechtshinweis

Sofern auf dieser Seite markenrechtlich geschützte Begriffe, geschützte (Wort- und/oder Bild-) Marken oder geschützte Produktnamen genannt werden, weisen wir ausdrücklich darauf hin, dass die Nennung dieser Marken, Namen und Begriffe hier ausschließlich der redaktionellen Beschreibung bzw. der Identifikation der genannten Produkte und/oder Hersteller bzw. der beschriebenen Technologien dienen.

Alle Rechte an den in diesem Kompendium erwähnten geschützten Marken- und/oder Produktnamen sind Eigentum der jeweiligen Rechteinhaber und werden hiermit ausdrücklich anerkannt. Alle in unseren Artikeln genannten und ggfs. durch Dritte geschützte Marken- und Warenzeichen unterliegen uneingeschränkt den Bestimmungen des jeweils gültigen Kennzeichenrechts sowie den Besitzrechten der jeweiligen eingetragenen Eigentümer.

Die Nennung von Produktnamen, Produkten und/oder der jeweiligen Produkthersteller dient ausschließlich Informationszwecken und stellt keine Werbung dar. InfoTip übernimmt hinsichtlich der Auswahl, Leistung oder Verwendbarkeit dieser Produkte keine Gewähr.

Sollten dennoch wider unserer Absicht Rechte Dritter verletzt werden, so bitten wir um eine Benachrichtigung ohne Kostennote.