Zum Inhalt springen

H.264

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. Dezember 2004 um 19:40 Uhr durch KeyJ (Diskussion | Beiträge) (Typos und andere Kleinigkeiten korrigiert). Sie kann sich erheblich von der aktuellen Version unterscheiden.

H.264 ist ein Standard zur Videokompression ähnlich MPEG. Er wurde zunächst von der ITU (Study Group 16, Videocoding Experts Group) unter dem Namen H.26L entwickelt. Im Jahre 2001 schloss sich die ITU-Gruppe mit MPEG-Visual zusammen, da MPEG durch subjektive Tests herausgefunden hatte, dass H.26L ca. die doppelte Compression verglichen mit MPEG4 aufwies. Im JVT (Joint Video Team) vereint wurde der Codec gemeinsam zu Ende entwickelt. Dabei wurden speziell Erweiterungen für TV- und HD-Anwendungen u.ä. mit hoher bis extrem hoher Qualität aufgenommen. Im Jahr 2003 wurde der Codec endgültig verabschiedet. Die ITU-Bezeichnung lautet dabei H.264. Bei ISO-MPEG läuft der Codec unter der Bezeichnung MPEG4-Part 10 oder MPEG4-AVC (Advanced Video Coding).

MPEG4-AVC ist stark verschieden von MPEG-4 und seinen Derivaten DivX und XVid. Das die Bezeichnung MPEG4 beibehalten wurde hat ausschließlich public relations Gründe.

H.264 erreicht typischerweise eine ca. 3 mal so hohe Codiereffizienz wie MPEG-2. Das heißt gleiche Qualität ist etwa bei 1/3 der MPEG-2 Datenmeinge zu erreichen. Allerdings ist die Rechenkomplexität auch um einen Faktor 2 bis 3 höher.

Einsatzgebiete

H.264 wurde nicht auf einen spezifischen Verwendungszweck zugeschnitten, sondern entfaltet seine Leistung in einem recht breiten Spektrum an Anwendungen. Daher sind die momentan aussichtsreichsten Einsatzgebiete auch von sehr verschiedener Gestalt:

  • HDTV: H.264 ist eines des obligatorischen Videokompressionsverfahren des HD-DVD-Standards und ist auch für die hochauflösende Fernsehübertragung (z.B. mittels DVB-S2) verpflichtend.
  • Portable Video: Der DVB-H-Standard ermöglicht Videoübertragung auf mobile Endgeräte (z.B. Handys, PDAs). Dabei wird typischerweise H.264 als Videocodec verwendet.

Verwandte Verfahren

Während der Entwicklung von H.264 spalteten sich zwei kommerzielle Entwicklungen ab, die mehr oder weniger direkt auf H.264 aufsetzen:

  • Sorenson Video 3, ein im Umfeld von QuickTime sehr verbreiteter Codec, weicht nur in Details von H.264 ab.
  • Microsoft Windows Media Video 9 ist ein Videocodec der an der Entwicklung von H.264 maßgeblich beteiligten Firma Microsoft mit ähnlichen Eigenschaften wie H.264. Microsoft hat im wesentlichen die Ergebnisse der Standardisierung übernommen und die Spezifikation von Teilen mit übermäßig hoher Komplexität gesäubert.

Die standardisierte Variante VC-1 ist ebenfalls einer der obligatorischen Codecs für die HD-DVD. Auch in den anderen Anwendungsbereichen gilt WMV9/VC-1 als Hauptkonkurrent zu H.264.

Technische Details

H.264 baut weitestgehend auf seinen Vorgängern MPEG-1, MPEG-2, MPEG-4 und der H.261-Familie auf, weist jedoch deutliche Veränderungen und Erweiterungen auf:

  • Anstelle einer Diskreten Cosinustransformation (DCT) auf 8x8 Pixel großen Blöcken wird eine von der DCT abgeleitete Integertransformation auf 4x4-Pixel-Blöcken verwendet. Die Berechnung dieser Transformation kommt lediglich mit Additionen, Subtraktionen und binären Verschiebeoperationen aus, was eine Hardwareimplementation deutlich vereinfacht. Durch die geringere Blockgröße werden außerdem Ringing-Artefakte minimiert.
  • Die Entropiecodierung wurde an die veränderte Transformation angepaßt. H.264 unterstützt dabei neben den herkömmlichen Huffman-artigen VLC-Codes (CAVLC, Context Adaptive Variable Length Coding) auch eine leistungsfähigere Arithmetische Codierung (CABAC, Context Adaptive Binary Arithmetic Coding).
  • Macroblock Partitioning: Die Makroblöcke von der Größe 16x16 Pixel können in Unterblöcke bis hinunter zu einer Größe von 4x4 Pixeln unterteilt werden. Da für jeden Block ein eigener Bewegungsvektor gespeichert wird, können somit räumlich scharf abgegrenzte und vor allem komplexe Bewegungen besser kompensiert werden.
  • Die Bewegungskompensation ist immer auf 1/4 Pixel genau (bei MPEG-4 Advanced Simple Profile war dies eine Option). Dabei wird zur Generierung der Zwischenpixel nicht mehr eine einfache bilineare Filterung eingesetzt, sondern es wird ein FIR-Filter verwendet, der die Bildschärfe besser erhält.
  • Intra Prediction: Auch innerhalb von I-Frames kommt eine Form der Prediction zum Einsatz. Dabei werden die Pixelwerte eines Blocks aus den umliegenden, bereits decodierten Pixeln abgeschätzt und dann lediglich die Differenz zum tatsächlichen Bildinhalt codiert. Bei kleineren Bildformaten ist diese Methode im Allgemeinen effizienter als JPEG2000.
  • Long-Term Prediction: P-Frames und B-Frames können nicht nur Referenzen auf den jeweils letzten I- oder P-Frame enthalten, sondern auch zu theoretisch beliebig vielen vorhergehenden, um eine effizientere Codierung von periodischen Bewegungen zu ermöglichen. In den Profiles und Levels ist die Anzahl von Referenzbildern allerdings auf maximal 5 begrenzt.
  • Weighted Prediction: Werden Bildinhalte aus mehreren Referenz-Frames gemischt, können die Quellen beliebig gewichtet in die Mischung eingehen. So lassen sich Fades und Überblendungen extrem effizient codieren.
  • Deblocking-Filter: Während sich die bisherigen MPEG-Codecs ausschließlich auf optionales externes Postprocessing verlassen, ist ein Deblocking-Filter integraler Bestandteil von H.264 (wie auch schon bei H.263). Referenzen auf bereits decodierte Frames beziehen sich ebenfalls auf die bereits gefilterten Bilder. Damit entsteht eine sehr hohe wahrgenommene Bildqualität. Besonders im Zusammenwirken mit der verkleinerten Transformationsgröße von 4x4 ergeben sich große subjektive (und in geringerem Maße auch objektive) Verbesserungen.
  • Switching Slices ermöglichen den nahtlosen Übergang zwischen verschiedenen Videoströmen, ohne dabei "teure", weil große, I-Frames einsetzen zu müssen.
  • Flexible Macroblock Ordering: Die Makroblöcke innerhalb eines Frames bzw. Slices können in relativ freier Reihenfolge angegeben werden. Dies läßt sich z.B. zur Fehlerverdeckung bei Kanalverlusten (Mobil-Video) einsetzen.