Brother Johns gesammeltes Encodingwissen

Konfiguration des XviD-1.1-Codecs

XviD ist ein sehr genau konfigurierbarer Codec, man könnte Bücher darüber schreiben, wann welche Kombination von Optionen sinnvoll ist. Um den Guide nicht ausufern zu lassen, erkläre ich die einzelnen Einstellungen nur kurz. Wer tiefer einsteigen will, dem kann ich nur Selurs Wissenswertes rund um XviD und crusty's (englische) XviD FAQ ans Herz legen.

Einstellungen für den 1st Pass

Profile und deren Level schalten einzelne Optionen des Codecs frei oder sperren sie, um Konformität zu den gleichnamigen MPEG-4-Profilen zu gewährleisten. Für einen normalen DVD-Rip bietet sich AS @ L5 (Advanced Simple, Level 5) an. Über den More-Button erreichen wir den Dialog für die Feineinstellungen.

Der Quantization type bestimmt die Matrix, die beim Encodieren verwendet wird. MPEG erzeugt ein etwas schärferes Bild auf Kosten der Kompression und eignet sich eher für die höheren Datenraten von 2-CD-Rips. H.263 ergibt dagegen ein etwas weicheres Bild und erhöht damit die Kompression ein wenig; geeignet eher für die niedrigen Datenraten von 1-CD-Rips.

In sehr hellen und sehr dunklen Bereichen des Bilds nimmt das menschliche Auge weniger Details wahr. Das macht sich Adaptive Quantization zu nutze und komprimiert solche Bereiche stärker, um die eingesparte Datenrate an Stellen zu verwenden, die es nötiger haben. Gerade bei geringen Bitraten macht sich das positiv bemerkbar.
Quarter Pixel erhöht die Genauigkeit, mit der Bewegungen gespeichert werden, von einem halben auf ein Viertel Pixel. Das wirkt sich positiv auf Details und Schärfe aus, deshalb sollten wir QPel normalerweise einschalten.
Global Motion Compensation versucht die Kompression zu erhöhen, indem es nach gemeinsamen Bewegungsvektoren in der Szene sucht. Zooms und Kameraschwenks bieten sich dafür besonders an. Ob GMC wirklich spürbare Unterschiede bringt, ist nicht ganz unumstritten. Aktivieren sollten wir es v. a. dann, wenn wir Qualität um jeden Preis wollen. Dann wählen wir später auch einen hohen VHQ-Wert in den Advanced Options.
Sowohl QPel als auch GMC bremsen nicht nur den Encoding-Vorgang, sondern benötigen auch beim Abspielen Rechenleistung. Auf alten Rechnern (500 MHz abwärts) sollten wir uns deshalb besonders den gemeinsamen Einsatz gut überlegen. Auch Standalone-Player kommen oft mit beiden nicht zurecht.

Um B-VOPs (technisch für B-Frames) zu verstehen, müssen wir einen kleinen (und vereinfachten) Ausflug in die Tiefen der Videokompression unternehmen. Es gibt in einem XviD-Stream drei Arten von Einzelbildern: I-Frames, P-Frames und B-Frames. I-Frames (Intra-Frames) heißen auch Keyframes und sind vollständige Einzelbilder, vergleichbar mit einem Jpeg-Bild. P-Frames (Predicted Frames) sind keine vollständigen Einzelbilder, sondern enthalten nur die Unterschiede zum vorhergehenden Bild, wodurch sie mit weniger Platz auskommen. B-Frames (Bidirectional Frames) sind eine Art erweiterter P-Frames. Sie beziehen sich nicht nur auf das Bild vorher, sondern auch auf das nachfolgende Bild. Dadurch können B-Frames ohne Qualitätseinbußen deutlich höher komprimiert werden.
B-Frames sollten wir ohne guten Grund nicht abschalten. Max consecutive B-VOPs gibt an, wie viele B-Frames maximal direkt hintereinander stehen dürfen. Mit der Standardeinstellung 2 wäre also eine solche Bildsequenz möglich: IPBBP, bei 3 wären es dann IPBBBP usw. Wichtig: Die Einstellung definiert nur das Maximum. 2 bedeutet also nicht, dass immer zwei B-Frames hintereinander stehen. Es heißt nur, dass niemals mehr als 2 aufeinander folgen dürfen. Innerhalb dieser Grenze berechnet XviD dann die günstigste Möglichkeit. Die Standardeinstellung ist ein sinnvoller Wert, nur für Standalone-Player müssen wir evtl. auf 1 herunter gehen.
Quantizer ratio und Quantizer offset bestimmen, wie hoch B-Frames im Vergleich zu P-Frames komprimiert werden. Die Standards sind brauchbare Werte. Ohne einen Batzen Hintergrundwissen sollten wir die beiden lieber in Ruhe lassen.
Packed Bitstream bestimmt, wie die B-Frames in der Videodatei gespeichert werden und sollte normalerweise ausgeschaltet sein. Ausnahme sind wieder einmal die Standalones, die bei deaktiviertem Packed Bitstream gerne Probleme machen.

Damit ist dieses Fenster abgehandelt und wir können zurück in den Hauptdialog.

Mit Twopass - 1st pass stellen wir den ersten Durchgang ein und rufen über den More-Button die Details auf.

Im angegebenen Stats file werden die Informationen aus dem 1st Pass gespeichert, die der 2nd Pass dann weiterverwendet. Full quality first pass aktiviert sämtliche eingestellten Encoder-Optionen schon im ersten Durchgang. Normalerweise sind hier einige Optionen abgeschaltet (z. B. VHQ), die nur bremsen und im 1st pass noch nichts bringen. Die Option sollten wir nur dann einschalten, wenn wir die Videodatei des 1st Pass behalten wollen. Wollen wir aber nicht. Deshalb setzen wir auch den Haken bei Discard first pass. XviD schreibt dann keine komplette Videodatei sondern nur ein wenig Müll. Das spart Plattenplatz.

Damit kehren wir zurück ins Hauptfenster und kümmern uns um die Zones.

Zones definieren Abschnitte innerhalb des Videos, für die unabhängig eine Reihe von Optionen definiert werden können. Offensichtlichster Anwendungsbereich für Zonen sind die Credits. Eine Zone, die sich über den ganzen Film erstreckt, existiert immer. Über den Zone options-Button gelangen wir in den Konfigurationsdialog.

Bei Start frame # tragen wir das Bild ein, bei dem die Zone anfangen soll. Für die erste Zone ist das 0, der Filmanfang. Das Ende einer Zone ist immer der Anfang der darauf folgenden oder das Ende des Films.

Zonen können entweder mit einem konstanten Quantizer (vereinfacht: Kompressionsfaktor) oder einem relativen Gewicht (Weight) versehen sein. 1.00 ist dabei der Standard. Höher gewichtete Zonen bekommen mehr Qualität zugeteilt, geringer gewichtete müssen sich mit weniger zufrieden geben. Im Normalfall können wir Weight 1.00 einfach übernehmen.

Begin with a keyframe erzwingt am Anfang der Zone ein I-Frame. Greyscale encoding verwirft alle Farbinformationen, so dass wir ein Schwarzweiß-Video bekommen. Chroma optimizer wirkt Pixeltreppchen an scharfen Kanten entgegen, bremst aber den Encoding-Vorgang etwas. Obwohl ich mir nicht sicher bin, ob es wirklich sichtbare Verbesserungen bringt, lasse ich die Option immer eingeschaltet.
Der Cartoon Mode ist nützlich bei Cartoons - wer hätte das gedacht. Cartoon meint dabei allerdings richtig klassisch gezeichneten Zeichentrick a la Tom & Jerry. Animationen wie Monster AG gelten für XviD nicht als Cartoon.
Die BVOP sensitivity schließlich wirkt sich darauf aus, wie gern XviD B-Frames setzt. Positive Werte ermutigen XviD zu mehr B-Frames, negative Werte schrecken den Codec eher ab. Die 0 können wir als sinnvollen Standardwert stehen lassen.

Normalerweise definieren wir nur eine einzige Zone über den ganzen Film. Um das Einrichten einer zusätzlichen Zone für die Credits kümmert sich Gordian Knot automatisch.
Über OK gelangen wir zurück in den Hauptdialog und rufen unten in der Mitte die Advanced options auf.

Die Motion search precision legt fest, wie intensiv XviD nach Bewegungen sucht. Es gibt kaum einen Grund von 6 - Ultra High abzuweichen.
VHQ rechnet für die einzelnen Macroblocks verschiedene Szenarien durch und entscheidet sich dann für das mit der geringsten Anzahl Bits. Generell gilt: Jede höher der VHQ mode desto besser die Qualität und desto langsamer das Encoding. 1 oder 2 bringen im Vergleich zum Bremseffekt den höchsten Qualitätsgewinn. Ich bin Qualitätsfanatiker genug, um meistens bei der höchsten Einstellung 4 zu bleiben. Wenn wir GMC aktiviert haben, sollte VHQ nicht abgeschaltet sein.
Use VHQ for bframes too aktiviert den VHQ-Modus auch für B-Frames. Da es sich dabei immer um VHQ 1 handelt, leidet die Geschwindigkeit wenig. Zwar wären auch höhere VHQ-Modi für B-Frames möglich. Laut XviD-Entwickler syskin würden die aber kräftig bremsen und kaum einen spürbaren Effekt auf die Qualität haben.
Use chroma motion veranlasst XviD, bei der Suche nach Bewegung nicht nur die Helligkeitsinformationen (Luminanz) zu berücksichtigen, sondern auch die Chrominanz (Farbe). Das steigert die Genauigkeit der Ergebnisse und damit die Qualität.
Turbo ;-) beschleunigt die Berechnung von B-Frames und QPel, erreicht dadurch aber nicht immer das absolute Qualitätsmaximum. Da der Unterschied kaum jemals sichtbar ist, lasse ich Turbo eingeschaltet.

Von der Frame drop ratio sollte jeder die Finger lassen, der nicht ganz genau weiß, was er da tut. Auch das Max. I-frame interval kann problemlos auf dem Standardwert bleiben. An günstigen Stellen setzt XviD sowieso automatisch I-Frames (Man nennt sie auch Keyframes). Ein sehr niedriger Wert macht höchstens bei Captures direkt in XviD Sinn, die man hinterher noch schneiden will. Denn Schneiden funktioniert nur an I-Frames. Genaueres dazu steht im Splitting-Kapitel.

Die Optionen auf der Quantization-Seite sind sinnvoll eingestellt, so dass wir das meiste einfach übernehmen können. Interessant ist nur Trellis quantization. Trellis »überdenkt« die einmal getroffene Quantisierungsentscheidung und versucht sie zu verbessern. Heftige Gewinne bei der Qualität dürfen wir davon nicht erwarten, andererseits bremst Trellis auch nicht besonders und kann deshalb bedenkenlos eingeschaltet bleiben.

Auf der Debug-Seite haben wir noch die Möglichkeit, das Statusfenster abzuschalten. Inzwischen bremst es das Encoding zwar kaum noch, aber wer nicht die ganze Zeit vor dem Rechner sitzt und die Statistiken bewundert, wird es kaum benötigen.

Und damit ist die Konfiguration des 1st Pass endlich beendet. Keine Angst, der 2nd Pass geht schneller.

Einstellungen für den 2nd Pass

Im Hauptdialog stellen wir Twopass - 2nd pass ein. Da sich Gordian Knot um die richtige Target size kümmert, stürzen wir uns per More-Button auf die Details. Eine kurze Kontrolle kann nicht schaden, ob XviD korrekt den Namen des Stats-Datei aus dem 1st Pass übernommen hat. Das sollte der Fall sein. Alle Optionen darunter können wir guten Gewissens auf den Standardwerten belassen. Genauso verändern wir die restlichen Einstellungen im Vergleich zum 1st Pass nicht. Damit ist die Konfiguration des 2nd Pass auch schon abgeschlossen.

<< Container und Codec   |   Seitenanfang   |   DivX Codec-Konfiguration >>