# DivX

DivX (engl. [ˈdɪvɛks]) ist ein MPEG-4-kompatibler Videocodec. Der Codec ist für seine Fähigkeit bekannt, große Videodateien bei guter Qualität vergleichsweise stark zu komprimieren.

## Geschichte von DivX

DivX 3.11 und frühere Versionen des Codecs entstanden, nachdem im Jahr 1998 Microsofts MPEG-4-Codec gehackt worden war. Aus einer Beta-Version des Windows Media Players heraus hatte ein französischer Hacker namens Jérôme Rota (Pseudonym: Gej, okzitanisch für „verrückt“) den Codec extrahiert. Das „Project Mayo“ war geboren, dem sich kurze Zeit später vier weitere Programmierer anschlossen. In den frühen Versionen des „DivX Player“ zierte ihn noch das „Project Mayo“-Emblem, das jedoch aufgrund vieler Rückfragen von Nutzern später entfernt wurde. Der Hack modifizierte den Microsoft-Codec, um das komprimierte Video nicht nur als ASF-Datei, sondern auch als AVI-Datei speichern zu können. Außerdem unterstützte der ursprüngliche Microsoft-Codec nur Bitraten von maximal 256 kbps; in der gehackten Version hingegen waren es bis zu 6.000. Die von Rota gegründete Firma DivXNetworks, Inc. entwickelte später eine völlig neue Version, um in den USA Patentverletzungen zu vermeiden. DivXNetworks hat in den USA ein Patent auf den neuen Codec angemeldet.
Im Januar 2001 gründete DivXNetworks OpenDivX als Teil des Projektes Mayo, welches Open-Source-Multimedia-Projekte beherbergen sollte. OpenDivX war ein Open-Source-MPEG-4-Videocodec, der von Grund auf neu geschrieben wurde; allerdings wurde der Code unter eine eingeschränkte Lizenz gestellt, und nur Mitglieder des DivX Advanced Research Centre (DARC) hatten Schreibzugriff zum CVS. Im Frühjahr 2001 schrieb DARC-Mitglied Sparky eine verbesserte Version des Encoderkerns, genannt encore2, welcher dann ohne Vorwarnung vom CVS entfernt wurde. Die Erklärung von Sparky war: „Wir (unsere Vorgesetzten) entschieden, dass wir noch nicht bereit sind, es der Öffentlichkeit zu zeigen“ (übersetzt).
Im Juli 2001 fingen die Entwickler an, sich über einen Mangel an Aktivität des Projektes Mayo zu beschweren, da die letzte Quelltextveränderung schon Monate her war, Verbesserungen von Programmfehlern ignoriert wurden und die versprochene Dokumentation nicht erschienen war. Kurz danach veröffentlichte DARC eine Beta-Version ihres Closed Source und kommerziellen DivX-4-Codecs, welches auf encore2 basierte, mit der Erklärung „Was die Community wirklich will, ist ein Winamp, nicht ein Linux“ (übersetzt). Manche warfen DivXNetworks vor, OpenDivX nur gestartet zu haben, um anderer Leute Ideen zu sammeln und sie dann in ihrem DivX-4-Codec zu benutzen; manche waren enttäuscht, dass die Codeentwicklung stagniert hatte, wollten aber daran weiter arbeiten, während wieder andere wütend darüber waren, wie DivXNetworks ein sogenanntes Open-Source-Projekt handhabt. Danach wurde ein Fork von OpenDivX erstellt, der die letzte Version von encore2 verwendet, den ein paar Leute sich heruntergeladen hatten, bevor er entfernt wurde. Seitdem wurde der gesamte OpenDivX-Code ersetzt und unter der GPL als Xvid-Codec veröffentlicht und weiterentwickelt.
DivX war um die 2000er Jahre beliebt und verbreitet; seit den 2010er Jahren sinkt seine Relevanz stetig. Das effizientere H.264 hat das ursprünglich von DivX verwendete H.263 abgelöst und kostenlose, von Laien leicht zu bedienende Software wie HandBrake machte die aktuellen kostenpflichtigen DivX-Encoder-Programme unattraktiv.

## DivX-Formate

Ein typischer 100 Minuten langer Spielfilm ist auf einer DVD sechs bis acht Gigabyte groß, mit der DivX-Videokompression lässt sich der Film auf einer CD-ROM (650 bis 700 MB) speichern. Die Qualität bleibt auch bei im Vergleich zu MPEG-2 niedrigen Bitraten von 650 bis 1.000 kBit/s relativ hoch, bei Szenen mit viel Bewegung können jedoch Kompressionsartefakte entstehen.
Mit der Weiterentwicklung des DivX-Codecs wurden wiederholt technische Verbesserungen erzielt. Vor allem die ab Version 4 unterstützte Multipass-Kodierung mit variabler Bitrate hat hierzu beigetragen, bei welcher in einem ersten Kodierungsdurchlauf die Ursprungsdatei hinsichtlich der Komplexität der aufeinanderfolgenden Einzelbilder analysiert wird. Erst in einem der darauffolgenden Durchläufe (meistens einem) wird die endgültige Videodatei erzeugt. Der Vorteil hierbei ist, dass bei gleichbleibendem Speicherplatzbedarf komplexe und schnell bewegte Szenen eine höhere Bitrate zugewiesen bekommen, während diese bei langsamen, ruhigen Bildfolgen wiederum verringert wird.
Neuere Versionen unterstützen zudem verschiedene MPEG-Verfahren (sogenannte MPEG-Tools) wie beispielsweise anamorphe Codierung und Global Motion Compensation, was bei annähernd gleicher Bildqualität wiederum zu einer Verringerung des Speicherplatzbedarfes führt.
Der Erfolg von DivX im Heimbereich hat sich in den letzten Jahren so weit gesteigert, dass der Codec auch von DVD-Spielern unterstützt wird. Außerdem verfügen verschiedene Digitalkameras und Handymodelle über eine Video-Aufnahmefunktion im DivX-Format.
Um sich weiter im Heimbereich zu festigen, wird die Breite an Abspielmöglichkeiten weiter gesteigert, indem der Codec auch für den Einsatz auf anderen Plattformen weiterentwickelt wird. So gibt es zusätzlich die Möglichkeit, Filme in ressourcen- und speicherschonenden Formaten für den Einsatz auf PDAs und Handhelds als auch für den anspruchsvollen Heimkinoeinsatz in hochauflösenden Formaten (High Definition Television) zu komprimieren.
Filme mit hochauflösendem Bild verlangen sowohl mehr Leistung vom Prozessor als auch mehr Speicherplatz. Jedoch liegt der Speicherbedarf deutlich unter dem eines vergleichbaren MPEG-2-Filmes.
DivX unterstützt ab Version 7.0 das H.264-Format sowie den Matroska-Container, jedoch ausschließlich über ein sehr einfach gestricktes Konvertierungsprogramm namens DivX Converter. Außerdem bringt DivX 7 einen H.264-Decoder für DirectShow mit. Der eigentliche Codec wird weiterhin in Version 6.9.2 ausgeliefert, ohne H.264 und ohne Matroska-Unterstützung. Der DivX-H.264-Kommandozeilen-Encoder steht derzeit als Vorabversion auf der „DivX Labs“ Web-Seite zum Download bereit. Vor dem Download ist eine kostenlose Registrierung notwendig. Der Kommandozeilen-Encoder unterstützt AviSynth als Eingabe und gibt H.264-Rohdaten (ohne Container) aus.