- X.264
-
Open Source H.264 Encoder – x264
freier H.264-KodiererBasisdaten Entwickler: VideoLAN Aktuelle Version: Revision 1145
(21. April 2009)Betriebssystem: plattformunabhängig Programmiersprache: ISO-C Kategorie: Videokompression Lizenz: GPL videolan.org/developers/x264.html x264 ist ein freier und plattformübergreifender Codec für das Video-Format H.264 (MPEG-4 AVC) und wird unter der GNU General Public License veröffentlicht. Die x264-Kodierer-Bibliothek wird von Laurent Aimar, Loren Merritt, Eric Petit (OS X), Min Chen (vfw/asm), Justin Clay (vfw), Måns Rullgård, Radek Czyz, Christian Heine (asm), Alex Izvorski (asm) und Alex Wright entwickelt. Der Programmcode ist in ISO-C geschrieben.
Inhaltsverzeichnis
Bedienung
Der x264-Kodierer wird u. a. als Kommandozeilenprogramm (CLI) zur Verfügung gestellt. Dieses Programm kann als Quelle unkomprimierte Rohdaten (YCbCr-Farbmodell 4:2:0-Format) und AVI-Dateien (nur unkomprimiert) sowie AviSynth-Skripte verarbeiten. Der encodierte Bitstream kann wahlweise in einem MP4- oder Matroska-Container ausgegeben werden. Auch die Ausgabe als Rohdaten ist möglich. Solche Rohdaten können dann z.B. mit MP4Box (GPAC) oder mkvmerge in einen geeigneten Container gemultiplext werden.
Alternativ dazu gibt es verschiedene grafische Benutzeroberflächen, die die Bedienung des CLI-Kodierer vereinfachen. Die populärsten sind StaxRip, MeGUI, Gordian Knot und x264gtk. Auch der plattformunabhängige Video-Editor Avidemux bietet die Möglichkeit, Videos mit x264 zu enkodieren. Darüber hinaus ist ein Wrapper für die Video-for-Windows-Schnittstelle (VfW) verfügbar, der die Verwendung von x264 in VirtualDub ermöglicht. Allerdings unterliegt das VfW-Interface von x264 einigen Einschränkungen und wird von den Entwicklern nicht empfohlen. Um dieser Empfehlung Nachdruck zu verleihen, wurde die VfW-Version mittlerweile eingestellt. Mit DTS x264 VfW existiert eine inoffizielle Version, die die Kompatibilität mit dem AVI-Format wieder herstellt, die Dekodierung von Videos unterstützt und wie gewohnt verwendet werden kann.[1] Eine weitere Möglichkeit, den x264-Kodierer über ein Kommandozeilen-Interface zu verwenden, ist mit MEncoder gegeben.
Technisches
Als H.264-Kodierer arbeitet x264 deutlich effizienter als Codecs, die auf dem einfacheren MPEG-4 ASP basieren (etwa der DivX-Codec bis v6), oder solche Kodierer, die das noch ältere MPEG-2-Verfahren verwenden. Das bedeutet, dass x264 im Vergleich zu früheren Codecs bei gegebener Datenrate eine bessere Bildqualität liefert bzw. bei gegebener Qualität eine stärkere Kompression erreicht. x264 basiert dabei auf dem komplexesten und leistungsfähigsten Profil, dem High Profile, des H.264-Standards (Details im entsprechenden Artikel). Außerdem ist x264 in der Lage, gewisse Berechnungen parallel auszuführen, sodass symmetrische Multiprozessorsysteme optimal ausgenutzt werden können. Allerdings wurden einige Funktionen des H.264-Standards im x264-Codec (noch) nicht implementiert, so etwa die Fehlerkorrektur des Baseline Profile. Beachtet werden sollte auch, dass x264 – wie jeder H.264-Codec – deutlich rechenintensiver ist als die einfacheren MPEG-4 ASP-basierten Codecs. Somit erfordert die Encodierung mehr Zeit und für die Wiedergabe werden höhere Anforderungen an das System gestellt. Die Wiedergabe mit Prozessoren unter 800 MHz kann daher Probleme bereiten, insbesondere wenn diese nicht über den SSE-Befehlssatz verfügen.
Unterstützte H.264-Merkmale
- CAVLC/CABAC
- Multiple-Referenzen
- Intra-Frames: Alle Makroblock Typen (16×16, 8×8 (High Profile), und 4×4 mit allen Prognosen)
- Innerhalb von P-Frames: Alle Partitionsgrößen (von 16×16 bis 4×4)
- Innerhalb von B-Frames: Partitionen von 16×16 bis 8×8 (inklusive überspringen/direkt)
- B-Frames als Referenz / Beliebige Frame-Reihenfolge
- 8×8 und 4×4 adaptive räumliche Transformierung (High Profile)
- Verlustfreie Kompression (optional) (High 4:4:4 Profile)
- Benutzerdefinierte Quantisierungs-Matrizen (High Profile)
- Optimiert für mehrere Prozessoren
- Gemischte Referenz-Frames für Sub-Makroblöcke
- Integrierter Deblocking-Filter
- Interlacing
Zusätzliche Merkmale
- Rate-Control: Konstante Quantisierung, Konstanter Rate-Faktor, Mittlere Datenrate mit einem oder mehreren Durchläufen
- Rate-Distortion-Optimierung
- Adaptive B-Frame-Steuerung
- Szenen-Wechsel-Erkennung
- Verschiedene Bewegungserkennungs-Modi (u. a Diamond, Hexagon, Multi-Hexagon)
- DCT – Domain Rauschfilter
- RD-Optimierte Quantisierung (Trellis)
Open Source
x264 ist Open Source, das heißt der Quelltext ist frei verfügbar, sodass man das Programm selber kompilieren kann. Dabei ist es möglich, das Programm an den eigenen Hauptprozessor bzw. an das Betriebssystem anzupassen. Auf der x264-Homepage findet man zum aktuellen Zeitpunkt noch keine offiziellen Builds, sondern nur die jeweils aktuelle Fassung des Quellcodes. Allerdings sind bereits diverse inoffizielle Builds verfügbar, so dass auch Anwender ohne spezielle Kenntnisse den x264-Codec einfach installieren und nutzen können. Fertige Builds gibt es zum Beispiel für Windows (32-Bit, 64-Bit), Linux oder Mac OS X. Die gebräuchlichsten x264-Builds für Windows dürften momentan wohl die von Sharktooth (Doom9.org-Forum) und Bob0r (www.x264.nl) sein. Dort sind fast täglich Updates verfügbar.
Wiedergabe
Im Gegensatz zu beispielsweise XviD oder DivX beinhaltet der x264-Codec in der offiziellen Version keinen Decoder. Um Videos, die mit x264 komprimiert wurden, auf dem PC abspielen zu können, benötigt man daher zusätzliche Software. Da solche Videos dem H.264-Standard entsprechen, kann man theoretisch jeden H.264-kompatiblen Decoder verwenden. Allerdings empfehlen die x264-Entwickler den freien Decoder-Filter ffdshow zu verwenden, um x264 komprimierte Videos unter Windows abzuspielen. ffdshow wird in Kooperation mit dem x264-Projekt speziell für die neuste Entwicklung des x264-Kodierers optimiert. Es stehen weitere – kostenpflichtige – H.264-Decoder, wie etwa CoreAVC oder Nero Digital zur Verfügung. Neben der Installation von ffdshow (oder eines anderen geeigneten Decoders) ist ebenfalls das Vorhandensein eines DirectShow-basierten Multimedia-Players wie beispielsweise dem Windows Media Player oder dem Media Player Classic notwendig.
Eine Alternative zu DirectShow-basierten Playern ist mit dem MPlayer und dem VLC media player gegeben. Beide beherrschen optional die Decodierung von H.264 und können alle relevanten Container lesen. Zudem sind beide Programme frei verfügbar. Der ffdshow-Filter, MPlayer und der VLC-Player greifen zur Decodierung von H.264 auf die libavcodec-Bibliothek zurück, welche benutzerdefinierte Quantisierungsmatrizen unterstützt.
Weiterhin ist Apples QuickTime ab Version 7 in der Lage, H.264 abzuspielen. QuickTime ist für aktuelle Versionen von Mac OS X und Windows verfügbar. Allerdings spielt QuickTime 7 keinen Inhalt, der durch den ffdshow H.264-Kodierer produziert wird, sondern zeigt ein schwarzes Bild.
Der Apple iPod spielt H.264 in den Videodateiformaten .m4v, .mp4 und .mov ab. Die Erstellung eines iPod-kompatiblen H.264-Videos kann hierzu entweder mit dem Quicktime H.264-Encoder oder dem x264-Encoder erfolgen. Technisch bedingt, sind den qualitativen Möglichkeiten von x264 zwar beim iPod engere Grenzen gesetzt, als der Standard H.264 zuließe. In Generation 6 unterstützt der iPod jedoch mit einer Auflösung von bis zu 640 × 480 Pixeln bei 30 Bildern pro Sekunde und einer maximalen Datenrate von 2,5 MBit/s immerhin eine Low-Complexity-Version des H.264-Baseline-Profils bis zu Level 3.0. Innerhalb dieser Grenzen ist zur Gewährleistung der Kompatibilität des resultierenden Videos mit dem iPod keine Selektion spezieller Einstellungen des x264-Encoders notwendig. Einige x264-Builds enthalten bereits das Profil PD-iPod sowie das GUI MeGui und ermöglichen somit die einfache Erstellung mit dem iPod kompatibler Videos in x264 auch ohne die für eine Bedienung über das CLI erforderlichen Kenntnisse.
Da x264 nicht an ein bestimmtes Containerformat gebunden ist, können die Videos als MP4-, aber auch als AVI-, Matroska- oder Ogg Media-Datei vorliegen. Es ist sogar möglich, x264-Videos als Roh-Daten zu speichern (.264). Benötigt werden neben einem Decoder also auch ein Splitter (Demuxer), der das jeweils benutzte Containerformat unterstützt. Unter Windows ist dafür der Haali Media Splitter zu empfehlen, ein Quellenfilter für DirectShow, der nahezu alle relevanten Containerformate beherrscht.
Zusammenfassend gilt also: Zum Erstellen eines Videos benötigt man den x264-Kodierer (Kommandozeilenbasiert) und gegebenenfalls eine grafische Benutzeroberfläche. Zur Wiedergabe benötigt man einen Decoder sowie einen Splitter der das jeweilige Containerformat lesen kann.
Derzeit gibt es erst wenige Standalone-Player, die x264-komprimierte Videos abspielen können. Die Wiedergabe ohne Computer ist daher im Moment noch problematisch. Die ersten H.264-fähigen Standalone-Player (etwa Sonys PlayStation Portable, Apples iPod Video und der Standalone-Player KiSS 1600) sind zudem auf bestimmte Profile und Levels beschränkt, so dass nicht alle Merkmale von x264 unterstützt werden. Es sollte auch beachtet werden, dass Standalone-Player normalerweise auf den MP4- oder AVI-Container beschränkt sind.
Einschränkungen
Durch die kontinuierliche Weiterentwicklung, die auf eine Verbesserung des Codecs abzielt, enthält die Software noch einige Fehler bzw. nicht komplett umgesetzte Funktionen. Die Ausgabequalität kann damit von Version zu Version schwanken.
Einzelnachweise
- ↑ Codecs.com: DTS x264 VfW
Weblinks
- Offizielle x264-Webseiten
- Download fertiger x264-Builds für Windows:
Weiterführendes:
Wikimedia Foundation.