Die Xvid-VfW-Konfiguration im Detail

Xvid ist ein sehr genau konfigurierbarer Codec, und das klassische VfW-Interface lässt kaum eine Option aus. Da es gerade bei der Konfiguration eines Videoencoders kein absolut richtig oder falsch gibt, ist es keine schlechte Idee, ein wenig querzulesen. Selurs Wissenswertes rund um Xvid kann ich jedem nur ans Herz legen.

Wir betrachten zuerst die Xvid-Optionen, die nur für ein 2-Pass-Encoding Bedeutung haben; anschließend dann die speziellen Optionen für 1-Pass mit konstantem Quantizer (CQ). Zum Schluss folgen alle Einstellungen, die unabhängig von der Encodingmethode immer verfügbar sind.

Optionen fürs 2-Pass-Encoding

Wenn wir den Film auf eine feste Zielgröße encodieren, benötigen wir zwei Encoder-Durchläufe: einen 1st Pass zur Analyse der Videos und einen 2nd Pass, in dem der Film tatsächlich encodiert wird. Die Einstellungen für beide Durchläufe sollten immer identisch sein – ausgenommen natürlich die Einstellung, um welchen Pass es sich handelt.

Einstellungen für den 1st Pass

Profile und deren Level schalten – wie im Xvid-Technikkapitel besprochen – einzelne Optionen des Codecs frei oder sperren sie, um Konformität zu den gleichnamigen MPEG-4-Profilen zu gewährleisten. Für ein normales DVD-Backup spricht nichts dagegen, mit (unrestricted) sämtliche Freiheiten zu erhalten. Über den More-Button erreichen wir den Dialog für die Feineinstellungen, den wir weiter unten im Detail besprechen. Besonders bei niedrigen Profilen sind evtl. einige Optionen im More-Dialog deaktiviert. Für Profil und Level wählen wir im 2nd Pass die gleiche Einstellung wie im 1st Pass.

Als nächstes kümmern wir uns um den Encoding type.

Mit Twopass - 1st pass stellen wir den ersten Codierdurchgang ein und rufen über den More-Button die Details auf. Die Optionen in diesem Fenster gelten ausschließlich für den 1st Pass.

Im angegebenen Stats file werden die Informationen aus dem 1st Pass gespeichert, die der 2nd Pass dann weiterverwendet. Normalerweise kümmert sich das Encoding-Frontend um den richtigen Eintrag. Full quality first pass aktiviert sämtliche eingestellten Encoder-Optionen schon im ersten Durchgang. Normalerweise sind hier einige Optionen automatisch abgeschaltet (z.B. VHQ), die nur bremsen und im 1st Pass noch nichts bringen. Full quality first pass würden wir nur dann einschalten, wenn wir die im 1st Pass erzeugte Videodatei behalten wollten. 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.

Die Spezialitäten des 1st Pass sind damit erledigt. Bleibt noch, die globalen Optionen zu konfigurieren, was wir weiter unten besprechen.

Einstellungen für den 2nd Pass

Im Hauptdialog wählen wir zuerst das gleiche Profile@Level wie im 1st Pass. Dann setzen wir den Encoding type auf Twopass - 2nd pass. In der Regel kümmert sich das Encoding-Frontend um die richtige Target size, so dass wir dort nichts eingeben müssen. Wenn wir die Zielgröße doch manuell festlegen: Hierhin gehört die Größe der reinen Videospur, nicht die Zielgröße des kompletten Films – also Gesamtgröße abzüglich Audiospuren und Untertitelspuren, abzüglich des Containeroverheads. Da wir wegen des Overheads einen größeren Exkurs in die technischen Tiefen der einzelnen Container einlegen müssten, sparen wir uns die manuelle Berechnung.

Ein Klick auf den More-Button bringt uns zu den Details, die wir allerdings komplett und guten Gewissens auf den Standardeinstellungen belassen können. Lediglich sollten wir kontrollieren, dass die gleiche Statistikdatei wie für den 1st Pass angegeben ist.

Damit sind die 2nd-Pass-Spezialitäten auch schon erledigt. Alle globalen Optionen setzen wir auf dieselben Werte wie im 1st Pass.

Optionen fürs 1-Pass-CQ-Encoding

Beim 1-Pass-Encoding ohne exakte Zielgröße ist für uns nur der Konstanter-Quantizer-Modus (CQ) interessant. Die speziellen CQ-Einstellungen erledigen wir im Hauptdialog.

Den Encoding type stellen wir auf Single Pass. Im Feld darunter tragen wir den gewünschten Quantizer ein. Evtl. müssen wir vorher mit einem Klick auf den Button links daneben auf Target quantizer umschalten. Mehr Informationen zum Quantizer bietet das Xvid-Technikkapitel.

Damit sind die CQ-Einstellungen auch schon erledigt. Der More-Button neben Encoding type braucht uns nicht zu interessieren, da dessen Optionen nur für den Bitratenmodus gelten. Es fehlen also nur noch die globalen Optionen.

Globale Optionen

Alle folgenden Einstellungen sind immer verfügbar, unabhängig von der gewählten Encodingmethode. Fürs 2-Pass-Encoding sollten wir alle globalen Optionen im 1st und 2nd Pass identisch konfigurieren.

Beginnen wir mit den Einstellungen, die direkt mit dem MPEG-4-Standard zusammenhängen. Wir erreichen den passenden Dialog, indem wir im Hauptfenster auf den More-Button neben Profile@Level klicken. Je nachdem, welches Profil aktiv ist, stehen evtl. einige der folgenden Optionen nicht zur Verfügung.

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öhere Datenrate einer großzügigen Zielgröße. 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-Encodings. Über MPEG-Custom und den Button Edit Matrix können wir eine Custom-Matrix laden. Näheres zum Thema haben wir im Xvid-Technikkapitel schon besprochen.

Die Option Adaptive Quantization (AQ) ist ein Element von MPEG‑4 Visual und ermöglicht es, dass die Makroblocks eines Frames unterschiedliche Quantizer erhalten dürfen. Je nach Algorithmus der verwendeten Xvid-Version – Lumimasking oder VAQ – sollten wir die Funktion aus- oder einschalten. Siehe auch das Xvid-Technikkapitel.

Quarter Pixel erhöht die Genauigkeit, mit der die Bewegungssuche arbeitet, von einem halben auf ein Viertel Pixel und wirkt sich besonders bei hohen Datenraten günstig aus. Siehe auch das Xvid-Technikkapitel.

Global Motion Compensation versucht die Kompression zu erhöhen, indem es nach gemeinsamen Bewegungsvektoren in der Szene sucht und diese gesondert speichert. GMC bringt nur sehr selten einen Vorteil und ist deshalb nicht besonders interessant. Siehe auch das Xvid-Technikkapitel.

B-VOPs (technisch für 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. Quantizer ratio und Quantizer offset bestimmen, wie hoch B-Frames im Vergleich zu den umgebenden I- oder P-Frames komprimiert werden. Im Detail haben wir uns mit diesen Optionen schon im Xvid-Technikkapitel beschäftigt. In der Regel empfehle ich ein Maximum von 2, Ratio 1.62 und Offset 0.00.

Packed Bitstream bestimmt, wie die B-Frames in der Videodatei gespeichert werden und sollte normalerweise ausgeschaltet sein. Doch keine Regel ohne Ausnahme: Wenn wir den AVI-Container verwenden und für mehrere CDs encodieren, so dass der Film zum Schluss gesplittet werden muss, vereinfacht aktivierter Packed Bitstream das Schneiden.

Damit wechseln wir zum Register Aspect Ratio.

Unter Pixel Aspect Ratio erlaubt Xvid die Angabe eines PAR, das im AR-Flag des MPEG-4-Streams gespeichert wird. Das ist nur für anamorphe Zieldateien interessant. Ein klassisches Encoding mit quadratischen Pixeln verwendet immer die Standardeinstellung Square. Die nicht-quadratischen Einträge entsprechen den Werten gemäß MPEG-4. Außerdem können wir mit Custom die beiden Eingabefelder unter der Combobox aktivieren, um ein beliebiges PAR anzugeben.

Für Custom-PARs definiert MPEG-4 Visual zwei Felder (für x und y), die je einen vorzeichenlosen 8-Bit-Integer enthalten. D.h. der maximale Wert, der in jedem Feld gespeichert werden kann, ist 255. Xvid versucht zwar, größere Werte in den erlaubten Bereich umzurechnen, doch das führt oft zu hohen Abweichungen. Deshalb sollten wir zu große Werte niemals eingeben.

Die zweite Möglichkeit ist die Angabe des Display Aspect Ratio. Früher hieß diese Option noch verwirrenderweise Picture Aspect Ratio, hat aber schon immer das DAR bezeichnet. Wenn wir ein DAR angeben, ist es wichtig, ganze Zahlen zu verwenden. 2,35:1 müssten wir also als 235:100 angeben (oder gekürzt als 47:20). Für ein DVD-Backup fällt mir allerdings kein guter Grund ein, das DAR dem PAR vorzuziehen. Außerdem muss das DAR intern in ein PAR umgerechnet werden, wodurch Abweichungen entstehen können.

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

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

Bei Start frame # tragen wir das Bild ein, mit dem die Zone beginnen 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 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 erhalten. Chroma optimizer soll Pixeltreppchen an scharfen Kanten entgegenwirken, bremst aber den Encoding-Vorgang etwas.

Der Cartoon Mode ist besonders nützlich bei Cartoons – wer hätte das gedacht – und da wiederum profitiert klassisch gezeichneter Zeichentrick à la Tom & Jerry oder The Simpsons am meisten. Für Realfilme sollten wir die Funktion lieber nicht einschalten.

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. Wer Wert auf eine exakt funktionierende Kapitelliste legt, könnte jedoch pro Kapitel eine Zone anlegen und jeweils am Anfang ein Keyframe erzwingen, damit der Player sauber und schnell zu einem bestimmten Kapitel springen kann.

Über OK gelangen wir zurück in den Hauptdialog, wo wir uns im unteren Teil des Fensters um den More-Abschnitt kümmern.

Hier stellen wir das Quality Preset auf (User defined) und öffnen über den More-Button den Dialog für die Detaileinstellungen.

Die Motion search precision legt fest, wie intensiv Xvid nach Bewegungen sucht. Es gibt kaum einen Grund von 6 - Ultra High abzuweichen. 0 - None schaltet die Bewegungssuche ganz ab, was einen Film zufolge hat, der ausschließlich aus I-Frames besteht.

VHQ rechnet für die einzelnen Makroblocks verschiedene Szenarien durch und entscheidet sich dann für das mit dem besten Bits/Qualität-Verhältnis (siehe Xvid-Technikkapitel). Stark komprimierte 1-CD-Encodings dürfen VHQ 3 oder 4 verwenden. Für schwächere Kompression bei höheren Zielgrößen ist 1 oder 2 angebrachter. Wenn wir außerdem 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 nicht allzu sehr. 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. Da B-Frames meistens den größten Anteil der Frames in einem Film stellen, sollten wir das B-Frame-VHQ möglichst nicht deaktivieren.

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 |wink| beschleunigt die Berechnung von B-Frames und QPel, erreicht dadurch aber nicht immer das absolute Qualitätsmaximum. Der Unterschied ist kaum jemals sichtbar, als Qualitätsfanatiker lasse ich Turbo trotzdem meistens ausgeschaltet.

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. 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 Kapitel über manuelles Splitting.

Im Register Quantization ist zuerst Trellis quantization interessant. 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.

Der große Abschnitt Quantizer restrictions ist fürs 2-Pass-Encoding interessant. Im 1-Pass-CQ-Modus beachtet Xvid ausschließlich den im Hauptdialog definierten Quantizer. Sämtliche Min Quantizer vom Standardwert 1 auf 2 zu setzen, sollten wir nicht versäumen. 1 als kleinster Quantizer ist vor allem deswegen der Standard, um das ewige Gejammer über zu klein geratene Filme ein wenig einzudämmen. Ist der Film nämlich gut genug komprimierbar, um bei maximaler Qualität den vorgesehenen Platz nicht auszunutzen, wird die Datei kleiner als angegeben. Quant 1 verschwendet in diesem Fall zusätzlich Bitrate und steigert damit die Dateigröße, ohne die Qualität weiter zu verbessern. Deswegen ist 2 der eigentlich sinnvolle Wert. Falls wir die Komplexität eines Film einmal grob überschätzen, gibt uns Xvid mit der zu kleinen Datei einen Hinweis und auch die Möglichkeit zur Anpassung. Eine größere Audiospur oder gar ein wiederholtes Encoding mit größerer Auflösung ist allemal besser als mit Quantizer 1 verschwendete Dateigröße.

Damit begeben wir uns zurück in den Hauptdialog, wo wir über den Button unten in der Mitte die Other Options aufrufen.

Number of threads ist erst seit Xvid Version 1.2 verfügbar. Hier stellen wir ein, wie viele Threads Xvid zum Encodieren verwenden soll. Für Computer mit nur einer CPU sollten wir diesen Wert immer auf 0 belassen. Wer Hyperthreading, Dual Core oder tatsächlich ein System mit mehreren Prozessoren sein eigen nennt, muss ein wenig testen, welche Einstellung die schnellsten Ergebnisse bringt. Die Anzahl der CPUs oder CPU-Kerne mal 1,5 ist ein guter Startwert.

Weiter unten haben wir die Möglichkeit, das Statusfenster abzuschalten, das Informationen über das gerade laufende Encoding anzeigt. Es bremst zwar kaum, aber wer nicht die ganze Zeit vor dem Rechner sitzt und die Statistiken bewundert, wird es kaum benötigen.

Kommentare