x264

  1. Startseite
  2. Streaming
  3. x264

ist ein plattformübergreifender für das -Format H.264 ( AVC) und wird unter der General Public License veröffentlicht.

Die x264-Kodierer-Bibliothek wird von Laurent Aimar, Loren Merritt, Jason Garrett-Glaser, Eric Petit (OS X), Min Chen (vfw/asm), Justin Clay (vfw), Måns Rullgård, Radek Czyz, Christian Heine (asm), Holger Lubitz (asm), Alex Izvorski (asm) und Alex Wright entwickelt. Der Programmcode ist in ISO-C geschrieben.

Bedienung

Der x264-Kodierer wird u. a. als Kommandozeilenprogramm (CLI) zur Verfügung gestellt. Das Programm kann als Quelle unkomprimierte Rohdaten (YCbCr-Farbmodell 4:2:0-Format), AviSynth-Skripte, sowie alle von FFmpeg lesbaren Formate verarbeiten.

Alternativ dazu gibt es verschiedene grafische Benutzeroberflächen, die die Bedienung des CLI-Kodierer vereinfachen. Die populärsten sind StaxRip, MeGUI, Gordian Knot, HandBrake 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- (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. Eine weitere Möglichkeit, den x264-Kodierer über ein Kommandozeilen-Interface zu verwenden, ist mit MEncoder oder FFmpeg gegeben.

Technisches

Als H.264-Kodierer arbeitet x264 deutlich effizienter als Kodierer, 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. Seit r1480 ist es mit dem x264-Encoder möglich, der -Spezifikation entsprechende Bitströme zu generieren und ihn somit bei der Erstellung von Blu-ray-Discs einzusetzen.

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-Bildern: Alle Partitionsgrößen (von 16×16 bis 4×4)
  • Innerhalb von B-Bildern: 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)
  • Benutzerdefinierte Quantisierungs-Matrizen (High Profile)
  • Optimiert für mehrere Prozessoren bzw. Mehrkernprozessoren
  • Gemischte Referenz-Frames für Sub-Makroblöcke
  • Integrierter Deblocking-Filter
  • Zeilensprungverfahren (nicht-adaptives MBAFF)
  • 9- und 10 bit Sampling-Tiefe

Zusätzliche Merkmale

  • Frame-basiertes Multithreading, skaliert auf mindestens 16 CPU Kerne
  • Verschiedene Modi zur Steuerung der Datenrate: Konstante Quantisierung, konstante Datenrate, mittlere Datenrate mit einem oder mehreren Durchläufen
  • Bitratensteuerung im Makroblock-Baum-Verfahren
  • Lookahead VBV (Video Buffering Verifier)
  • Psychovisuell optimierte Abstimmung der Bitrate auf die Bildqualität (“Psy RDO”) und Trellis-Quantisierung (“Psy Trellis”)
  • Variance AQ (Adaptive Quantisierung) und AutoVAQ
  • Optimale adaptive B-Frame Steuerung
  • Unterstützung mehrerer Slices (“Multi-slice”), wird für BluRay Kompatibilität benötigt
  • Lookahead-Funktion in einem separaten Thread (“Threaded lookahead”)
  • Weighted P-Frame Prediction (entwickelt im Rahmen von GSoC 2009)
  • Bitrate/Qualität-Optimierung
  • Szenen-Wechsel-Erkennung
  • Verschiedene Bewegungserkennungs-Modi (u. a. Diamond, Hexagon, Multi-Hexagon sowie erschöpfende Suche)
  • DCT – Domain Rauschfilter
  • RD-Optimierte Quantisierung (“Trellis”)

Freie und Open Source

x264 ist eine freie Open-Source-Software (FOSS). Dies bedeutet unter anderem, dass der Quelltext frei verfügbar ist und man somit das Programm selbst kompilieren kann. Dabei ist es möglich, das Programm an den eigenen Hauptprozessor und das anzupassen. Auf der x264-Homepage findet man keine offiziellen Builds, sondern nur die jeweils aktuelle Fassung des Quellcodes. Allerdings sind 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.net-Forum) und Bob0r (.x264.nl) sein. Dort sind fast täglich Updates verfügbar.

Am 14. Juli 2010 hat Jason Garrett-Glaser, der derzeitige Projektleiter, bekannt gegeben, dass x264 ab sofort auch mit einer kommerziellen Lizenz erworben werden kann, damit Lizenznehmer die Software auch vertreiben können, ohne (selbst) den Quellcode anbieten zu müssen. Die billigste Lizenzgebühr soll $10.000 für 10.000 Encoder-Einheiten betragen. Der erste Lizenznehmer ist Pegasys TMPGEnc.

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.

Quelle: Wikipedia (http://de.wikipedia.org/wiki/X264)

Archive

error: Content is protected !!