Wichtige technische Details zu Xvid/MPEG-4 ASP

Dieses Kapitel ist die Vorbereitung auf die anschließenden konkreten Kapitel zur Xvid-Konfiguration. Hier sehen wir uns die zentralen Fähigkeiten von MPEG-4 ASP und deren Umsetzung in Xvid an. Das ist kein allzu anfängerfreundlicher Stoff und deshalb nicht der günstigste Ort, um ins Thema Xvid einzusteigen. Es dürfte sinnvoller sein, wenn wir uns als Anfänger erst auf die Praxis stürzen und später nach und nach hier die Hintergründe genauer nachlesen.

Um dieses Kapitel für die Praxis auf den Punkt zu bringen: Nicht alle Xvid-Optionen sind gleich wichtig für die Qualität und Geschwindigkeit des Encodings. Im Wesentlichen haben wir es mit drei Haupt-Einflussfaktoren zu tun: B-Frames, VHQ und Quantisierungsmatrizen; dazu kommt beim 1-Pass-Encoding der Quantizer bzw. beim 2-Pass die verfügbare Bitrate. Die meisten anderen Xvid-Optionen haben für sich allein betrachtet nur recht geringe Auswirkungen.

Der Quantizer

Vereinfacht ausgedrückt ist der Quantizer ein Faktor, der die Stärke der Kompression regelt. Hochoffiziell heißt er auch quantiser scale parameter, abgekürzt QP. Er darf je nach Konfiguration für jedes Frame oder jeden Makroblock verschieden sein und liegt bei MPEG-4 Visual zwischen 1 und 31, wobei nur ganze Zahlen erlaubt sind. Je kleiner der Wert, desto sanfter die Kompression und desto besser die Qualität. Interessant ist besonders der Bereich zwischen QP 2 und 8, denn ein Encoding mit auch nur halbwegs sinnvoller Qualität wird kaum jemals höhere Werte enthalten.

Beim 2-Pass-Encoding haben wir mit dem Quantizer nur indirekt zu tun, da Xvid die Verteilung selbst in die Hand nimmt, um die Zielgröße zu treffen. Beim 1-Pass-Encoding dagegen setzen wir für den Quantizer einen festen Wert, der zunächst für I- und P-Frames gilt. B-Frames berechnen daraus ihren eigenen QP, der normalerweise höher liegt. Genauer beschäftigen wir uns weiter unten damit.

Bleiben wir beim 1-Pass-Encoding. Welcher Quantizer sich wie auf Qualität und Dateigröße auswirkt, hängt von der Encoder-Konfiguration insgesamt ab. Ein paar Anhaltspunkte:

  • Quant 1 erzeugt exzellente Qualität und gewaltige Dateigrößen. Sein Preis/Leistungs-Verhältnis ist so schlecht, dass wir ihn nie verwenden sollten. Sowohl als fester Wert im 1-Pass-Encoding als auch als Minimum im 2-Pass-Encoding ist er fehl am Platz.
  • Quant 2 ist die Einstellung der Wahl für HQ-Encodings, die die Qualität der DVD-Quelle so vollständig wie möglich erhalten sollen. Die Videos werden deutlich kleiner als mit Quant 1, die Qualität ist jedoch praktisch identisch. Die endgültige Dateigröße, die wir für einen durchschnittlichen Spielfilm bei voller Auflösung und zwei Tonspuren erwarten können, liegt grob im Bereich zwischen 2,5 und 3,5 GB. Wenn im Zusammenhang mit 1-Pass-Xvid von »maximaler Qualität« die Rede ist, ist i.d.R. Quant 2 gemeint.
  • Quant 3 ist sinnvoll, wenn wir Wert auf kompaktere Dateien legen und dafür auch eine Ecke Qualität zu opfern bereit sind. Der Verlust ist durchaus noch akzeptabel. Qualitativ dürfte das Ergebnis grob im Bereich eines 2-CD-Encodings liegen. Manche Quantisierungsmatrizen sind auf Minimum-Quant 3 ausgelegt (weiter unten mehr dazu). In dem Fall verhält sich Quant 3 wie Quant 2.
  • Ab Quant 4 aufwärts dürfte das Ergebnis regelmäßig zu schlecht werden. Das widerspricht nicht der Aussage von oben, dass der Bereich zwischen QP 2 und 8 realistisch wäre. Es ist ein großer Unterschied, ob im 2-Pass-Encoding ab und zu ein sehr hoch mit Quant 8 quantisiertes Frame auftaucht oder ob das der Basiswert im 1-Pass-Encoding ist, der für einen Großteil aller Frames gilt.

Konfiguration von B-Frames

Das Konzept der B-Frames haben wir im Kapitel über die Interframe-Kompression schon angesprochen. Hier beleuchten wir die bidirektionalen Bilder aus der Sicht von Xvid, denn der Encoder bietet uns gleich vier Stellschrauben zur Konfiguration.

B-Frame-Verteilung

Erst einmal wäre da die leicht verständliche Einstellung, ob überhaupt B-Frames verwendet werden sollen, und wenn ja, wie viele maximal direkt hintereinander stehen dürfen. Mit einem Maximum von zwei wäre eine solche Bildsequenz aus I-Frames, P-Frames und B-Frames möglich: IPBBP, bei maximal drei B-Frames wäre es dann IPBBBP usw. Wichtig: Die Einstellung definiert nur das Maximum. Es bedeutet nicht, dass immer genau so viele B-Frames hintereinander stehen. Lediglich können niemals mehr als das Maximum aufeinander folgen. Innerhalb dieser Grenze berechnet Xvid selbst die günstigste Möglichkeit.

Diese automatische Auswahl lässt sich beeinflussen. Wir haben die Möglichkeit, Xvid zum verstärkten B-Frame-Einsatz zu drängen oder ihn eher von B-Frames abzuhalten. Mit diesen beiden ersten Schrauben (Maximum und Empfindlichkeit) lässt sich die B-Frame-Verteilung recht fein auf die jeweilige Encodingsituation abstimmen.

In der Standardeinstellung erlaubt Xvid zwei B-Frames hintereinander. Das ist für die allermeisten Situationen auch ein guter Wert. An eine Anpassung brauchen wir nur in extremen Situationen denken, bei 1-CD-Encodings zum Beispiel. Hier würde ich generell drei B-Frames empfehlen, evtl. sogar vier. Das andere Extrem sind hochqualitative Encodings nahe der Sättigungsgrenze. So etwas begegnet uns bei kurzen und/oder wenig komplexen Filmen auf ½ DVD oder bei Encodings für einen ganzen DVD-Rohling. Wenn derart massig Platz verfügbar ist, reicht meistens auch ein einzelnes B-Frame als Maximum aus. Sie ganz zu deaktivieren, ist in der Regel nicht sinnvoll, denn B-Frames sind das Tool, das die Dateigröße am weitesten in den Keller ziehen kann ohne die Qualität spürbar zu beeinflussen. Entsprechend groß fällt der Nachteil aus, wenn wir sie abschalten.

B-Frame-Quantizer

Die verbleibenden beiden Stellschrauben drehen nicht an der Verteilung der B-Frames im Encoding, sondern an deren Kompression, genauer gesagt am Quantizer. Sehen wir uns dazu die Bildfolge IPBBBP an. Welchen Quantizer das mittlere B-Frame bekommt, hängt vom vorausgehenden und nachfolgenden P-Frame ab. Die drei B-Frames beeinflussen sich nicht gegenseitig, woraus natürlich folgt, dass alle drei B-Frames denselben Quantizer erhalten, weil die Berechnung identisch ist. Und die geht so:

Aus den Quantizern der beiden P-Frames wird der Mittelwert gebildet und dieser mit einem von uns festgelegten Faktor multipliziert (Quantizer Ratio). Zusätzlich dürfen wir anschließend noch einen beliebigen Wert addieren (Quantizer Offset). In Formelschreibweise sieht das folgendermaßen aus:

BQuant_f = (Quant_f-1 + Quant_f+1)/2 * BRatio + BOffset

Weiter oben haben wir schon erfahren, dass Quantizer ganze Zahlen zwischen 1 und 31 sind. Innerhalb dieser Grenzen rundet Xvid bei der Berechnung immer ab, also auf den nächstkleineren Quantizer.

BQuant bezeichnet den zu ermittelnden Quantizer des aktuellen B-Frames. Quant steht für die Quantizer der umgebenden P-Frames. Deshalb dürfen wir die Indizes f–1 und f+1 auch nicht mit mathematischer Präzision betrachten. Sie stehen eben nicht unbedingt für das direkte Vorgänger- und Nachfolger-Bild. BRatio ist unsere erste Stellschraube (Quantizer Ratio) und BOffset ist die zweite Stellschraube (Quantizer Offset).

Vorgänger und/oder Nachfolger können auch I-Frames sein. Lautete unsere Beispielsequenz von oben IBBBP, würde das nichts ändern. Das relevante Vorgänger-Frame wäre eben anstatt einem P- ein I-Frame.

Nehmen wir einmal an, das Vorgänger-P-Frame hätte einen Quantizer von 2 erhalten und das Nachfolger-P-Frame einen Quantizer von 3. Außerdem hätten wir die Stellschrauben auf Xvids Standardeinstellungen belassen (Ratio = 1,50 und Offset = 1,00). Dann würde sich für unsere B-Frames ein rechnerischer Wert von 4,75 und abgerundet ein Quantizer von 4 ergeben.

BQuant_f = (2 + 3)/2 * 1,5 + 1 = 4,75 = gerundet 4

Mit diesen beiden Konfigurationsmöglichkeiten lässt sich die Stärke der B-Frame-Kompression in nahezu beliebiger Weise beeinflussen. Das heißt natürlich auch, dass wir ein wenig Vorsicht walten lassen sollten, denn unpassende Einstellungen wirken sich schnell spürbar auf die Qualität aus.

Ich bevorzuge abweichend von den Xvid-Standards die von Didée entwickelten Werte in ihrer aktuellen, leicht modifizierten Form: Ratio 1,62 und Offset 0. Wer keine Lust auf die Details hat, kann problemlos darauf Vertrauen, dass das schon Hand und Fuß hat, was Didée austüftelt – oder auch bei den Xvid-Vorgaben bleiben. Beide Varianten werden keine Probleme verursachen.

Natürlich gibt es einen Grund, von den Vorgaben abzuweichen. Didées Variante führt wie die Xvid-Standardwerte bei hohen Quantizern (also hoher Kompression) der umgebenden P-Frames zu einer relativ noch stärkeren Kompression der B-Frames, und das ist in dieser Situation auch wünschenswert. Anders sieht das aus, wenn die P-Quantizer niedrig sind (2 oder 3). Dann steht in der Regel reichlich Bitrate zur Verfügung, weshalb man gern auch die B-Frames etwas großzügiger behandeln darf. Denn auch für diese gilt die Regel, je weniger Kompression desto höher die Qualität. Didées Werte berücksichtigen das mit folgendem Verhalten:

  • hoher P-Quantizer: hoher Unterschied zum B-Quantizer,
  • niedriger P-Quantizer: geringerer Unterschied zum B-Quantizer.

Die üblichen Xvid-Standardwerte (1,5 und 1,0) treffen diese Unterscheidung nicht so stark. Sie arbeiten immer mit einem recht hohen Unterschied zwischen P- und B-Quantizer. Sehen wir uns zum Vergleich der beiden Varianten ein Diagramm an.

[P-Quant: B-Quants Xvid-Standard; Didée] [1: 2; 1] [1,5: 3; 2] [2: 4; 3] [2,5: 4; 4] [3: 5; 4] [3,5: 6; 5] [4: 7; 6] [4,5: 7; 7] [5: 8; 8] [5,5: 9; 8] [6: 10; 9] [6,5: 10; 10] [7: 11; 11] [7,5: 12; 12] [8: 13; 12] [8,5: 13; 13] [9: 14; 14] [9,5: 15; 15] [10: 16; 16]

Hier wird deutlich, wie Didée bei geringen P-Quantizern auch die B-Frames großzügig behandelt. Je höher der P-Quantizer ausfällt, desto mehr ähneln sich beide Varianten.

Wer das jetzt alles nachvollzogen und verstanden hat, ist auch gut für eigene Experimente mit Ratio und Offset gerüstet. Ansonsten haben wir zwei Wertepaare, die beide gute Ergebnisse liefern. Bei 1-CD-Encodings könnten die Xvid-Vorgaben einen Vorteil haben, da in dieser Situation jedes gesparte Bit wertvoll ist, auch bei stellenweise niedrigen P-Quantizern. Ansonsten würde ich eher zu Didées Variante raten.

Um beliebige solche Vergleichsdiagramme zu erstellen, habe ich mir per Tabellenkalkulation etwas gebastelt. Vielleicht findet es sonst noch jemand nützlich: Download OpenOffice-Tabelle.

Quantisierungsmatrizen

Ein weiteres wichtiges und oft unterschätztes Werkzeug sind die Quantisierungsmatrizen. Welche Bedeutung denen mathematisch genau zufällt, ist auch fürs Encodingwissen zu viel der Hintergrundinformation. Ansatzweise haben wir uns damit schon im Kapitel zur Intraframe-Kompression beschäftigt. Für die Praxis sollten wir uns vielmehr ihre Funktion merken. Und zwar steuert die Quantisierungsmatrix den Detailreichtum des Bildes. Je weniger Details, desto höher lässt sich das Bild komprimieren, ohne Makroblock-Artefakte zu erzeugen. Natürlich ist ein weniger detailreiches Bild qualitativ schlechter als eines mit mehr Details. Deswegen gilt es abzuwägen zwischen der Erhaltung der feinen Bildstrukturen und der Gefahr der Blockbildung.

MPEG-4 ASP und damit Xvid kennt zwei grundsätzliche Arbeitsmodi. Der eine nennt sich H.263 und arbeitet genau genommen nicht mit einer Matrix. Trotzdem hat sich der Begriff der H.263-Matrix eingebürgert. Der zweite Modus baut direkt auf dem Matrixsystem auf, wobei eine davon gleich im MPEG-4-Standard selbst definiert ist. Das ist das bekannte Gegenstück zu H.263: die MPEG-4-Matrix. Darüber hinaus besteht die Möglichkeit, eigene Matrizen zu definieren und diese anstelle der MPEG-4-Matrix zu verwenden. Das sind die benutzerdefinierten Matrizen, oft mit CQM für Custom Quantizer Matrix abgekürzt. Zusammengefasst haben wir also die Wahl aus drei Möglichkeiten:

  • H.263,
  • MPEG mit Standardmatrix,
  • MPEG mit benutzerdefinierter Matrix.

H.263 ist eine recht »weiche« Matrix, d.h. sie entfernt viele Bilddetails und eignet sich damit eher für den 1-CD-Bereich. Die MPEG-4-Standardmatrix erhält deutlich mehr Details und bietet sich damit für höhere Zielgrößen an. Wenn wir uns nicht mit Custom-Matrizen herumschlagen wollen, reicht diese Regel schon aus. Custom-Matrizen existieren für alle Anwendungsfälle von der Spezialmatrix fürs 1-CD-Encoding über gute Alltagsmatrizen für den ½-DVD-Bereich bis hin zu Monstern, die in der fast-verlustlosen Liga spielen und Dateigrößen weit jenseits des Originals erzeugen. Die folgende Liste bietet eine Auswahl gerne genutzter Matrizen (siehe SpikeSpiegels Matrizen-Test).

Jawor’s 1CD
Autor: Jawor. Kompression vergleichbar mit der H.263. Die Matrix ist speziell für den Einsatz im 1-CD-Encoding ausgelegt.
EQM V3LR
Autor: Sharktooth. Etwas stärkere Komprimierbarkeit als die Standard-MPEG-Matrix. Die EQM V3LR eignet sich gut als Standard-Matrix für den 2-CD-Bereich. Sie ist HVS-optimiert, d.h. sie berücksichtigt die Ergebnisse einer IEEE-Studie zur menschlichen visuellen Wahrnehmung (HVS = Human Visual System).
Jawor’s 2CD
Autor: Jawor. Etwas schwächere Komprimierbarkeit als die Standard-MPEG-Matrix. Optimiert für den 2-CD-Bereich.
EQM V3HR
Autor: Sharktooth. Spürbar niedrigere Kompression als die Standard-MPEG-Matrix. Bestens geeignet für ½-DVD-Backups. Die EQM V3HR ist HVS-optimiert.
Heini MR
Autor: Heini011. Modifikation der EQM V3HR mit etwa gleicher Kompression aber konsistenterer Qualität.
SixOfNine
Autor: Didée. Recht flexibel einsetzbar mit mittleren und hohen Bitraten; weniger gut geeignet für niedrige Bitraten. Im Gegensatz zu den bisher vorgestellten Matrizen sollten wir die SixOfNine immer mit speziell abgestimmten Xvid-Einstellungen verwenden, da sie auf einen Minimum-Quantizer von 3 ausgelegt ist (üblich ist Minimum-Quantizer 2). Am einfachsten halten wir uns dabei an Teegedecks Xvid-Presets, die im Bereich hoher Qualität die SixOfNine einsetzen. Es existieren zwei Varianten, eine mit und eine ohne HVS-Optimierung. Teegedecks Presets verwenden die Nicht-HVS-SixOfNine.
Heini LR 6of9
Autor: Heini011. Ist genauso wie Didées SixOfNine auf Minimum-Quant 3 ausgelegt, orientiert sich in ihrem HVS-optimierten Design aber eher an den Sharktooth-Matrizen.
Da nicht mehr alle Matrizen ohne Weiteres im Netz zu kriegen sind, habe ich ein Paket geschnürt: MPEG-4-ASP-Matrizen_Xvid-DivX.zip. Darin enthalten sind alle Matrizen aus der obigen Liste und noch einige mehr.

Wir dürfen nicht den Fehler machen, die Matrizen rein anhand ihrer Kompression zu beurteilen, denn die sagt noch wenig über die tatsächliche Qualität aus. Ich persönlich verwende nahezu ausschließlich Sharktooths EQM V3LR, wenn der Platz eng wird, und ansonsten die Heini MR. Für Zeichentrickmaterial wird gerne die H.263 verwendet, auch für hohe Zielgrößen. Typische Cartoons enthalten wenig feine Details, weshalb eine detailreiche Matrix ihre Vorteile nicht ausspielen kann. Die H.263 kann durch ihren weichzeichnenden Effekt sogar vorbeugend gegen Artefakte wirken, ohne dass das weichere Bild wirklich spürbar wird. Natürlich existieren auch für Zeichentrick extra abgestimmte Custom-Matrizen. Um eine Empfehlung abzugeben, habe ich mit solchem Material allerdings zu wenig zu tun.

Abschließend wollen wir uns noch ein wenig genauer mit der Wirkungsweise einer Matrix beschäftigen. Das ist für die praktische Anwendung zwar nicht unbedingt nötig, hilft aber, eine Matrix schon anhand ihres Aufbaus einzuordnen. Dazu müssen wir erst einmal wissen, dass der Begriff der »Quantisierungsmatrix« eigentlich falsch ist, denn es handelt sich immer um ein Paket aus zwei Matrizen. Eine ist für I-Frames zuständig und eine für P- und B-Frames.

Die Matrix setzt nach der DCT-Transformation an. An dieser Stelle liegt das Bild umgewandelt in Frequenzbereiche vor. Niedrige Frequenzen repräsentieren grobe Objektformen (z.B. die rechteckige Form einer Tischplatte), hohe Frequenzen stehen für feine Bilddetails (z.B. die Holzmaserung der Tischplatte). Für die hohen Frequenzbereiche ist das menschliche Auge deutlich weniger empfindlich als für die niedrigen. Das dürfte unmittelbar einleuchten: Ein Qualitätsverlust in der Holzmaserung ist weniger kritisch als wenn die Form der Tischplatte selbst nicht mehr ganz korrekt dargestellt wird. Diese Tatsache macht sich die Matrix zunutze. Betrachten wir zur Veranschaulichung eine grafische Darstellung der EQM V3HR (Quelle: LigHs CQM-Editor).

Sowohl die Intramatrix für I-Frames (links im Bild) als auch die Intermatrix für P- und B-Frames (rechts im Bild) besteht aus 8×8 Feldern, wobei links oben die niedrigsten und rechts unten die höchsten Frequenzen stehen. Jedes Feld der Matrizen ist mit einer Zahl zwischen 1 und 255 belegt – je höher der Wert, desto aggressiver werden an dieser Stelle des Frequenzspektrums Details entfernt. Im Bild stehen kurze grüne Balken für niedrige Werte, lange rote Balken für hohe Werte. Sehr schön wird die Grundphilosophie deutlich: dass niedrige Frequenzen wichtiger sind als hohe und deshalb sanfter behandelt werden sollen.

Prinzipiell könnte man für jeden Film eine extra abgestimmte Matrix erstellen. Dazu verleiten lassen sollten wir uns nicht, denn um überhaupt eine brauchbare Matrix zu entwerfen, sollte man schon gute Kenntnisse der internen Encoderabläufe, ein geschultes Auge und eine ganze Menge Geduld mitbringen. Angesichts dieses Aufwands lohnt es sich nicht, für jeden Film eine individuelle Matrix zu bauen. Eine der vorhandenen, mit Expertenwissen entwickelten und gut getesteten Matrizen zu verwenden, ist die bessere Wahl.

Wichtige MPEG-4-ASP-Funktionen

Neben B-Frames gibt es drei weitere wichtige Funktionen von MPEG-4 ASP, für die uns Xvid Optionen anbietet.

Quarter Pixel erhöht die Genauigkeit, mit der die Bewegungssuche arbeitet, von einem halben auf ein Viertel Pixel. Das senkt zwar einerseits oft etwas die Komprimierbarkeit, bildet aber Bewegungen exakter ab und hilft, Bilddetails zu erhalten. Ein Video mit aktivem QPel wirkt i.d.R. spürbar detaillierter und etwas körniger. Wenn wir den etwas höheren Bitratenbedarf verkraften können, ist QPel eine gute Idee.

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. Aus den Gemeinsamkeiten wird ein »Master-Bewegungsvektor« für das gesamte Frame ermittelt und alle anderen Vektoren speichert der Encoder nur noch als relative Werte dazu. Dadurch werden die Bewegungsvektoren kleiner und tendenziell besser komprimierbar.

Theoretisch ist das ein tolles Konzept, in der Praxis hat sich GMC aber nicht bewährt, denn der Nutzen liegt nahe bei Null. Dafür steigt sowohl beim Encoding als auch beim Decoding die CPU-Belastung. GMC wird deswegen kaum verwendet.

Adaptive Quantization (AQ) ermöglicht es dem Encoder, sich nicht für jedes Frame auf einen einzigen Quantizer festzulegen, sondern den Quantizer pro Makroblock auswählen zu können. Das wird dazu benutzt, die Stärke der Kompression lokal anzupassen, je nachdem, wie empfindlich das menschliche Sehsystem für den Bildinhalt an dieser Stelle ist. Xvid bringt dafür einen von zwei Algorithmen mit.

  • Variance Adaptive Quantization (VAQ) ist ein leistungsfähiger, ursprünglich für x264 entwickelter und dann auf Xvid portierter Algorithmus. Falls wir eine Xvid-Version mit dem entsprechenden Patch verwenden, steht uns VAQ zur Verfügung und sollte auch verwendet werden. Etwas Vorsicht ist lediglich im Zusammenspiel von Custom-Matrizen und VAQ geboten, da beide nach der gleichen Idee funktionieren und sich deshalb potenziell ins Gehege kommen könnten. Zumindest mit den weiter oben erwähnten EQM-Matrizen von Sharktooth und der Heini MR habe ich jedoch noch keine Artefakte feststellen können. VAQ mit H.263 ist auf jeden Fall problemlos.
  • Lumimasking ist der traditionell in Xvid vorhandene AQ-Algorithmus. Er ist sehr einfach gestrickt und bringt wenig Vorteile, kann aber in manchen Fällen Artefakte produzieren. Deshalb sollten wir ihn besser durch VAQ ersetzen oder gar kein AQ verwenden.

Xvids RDO: VHQ und Trellis

Mit RDO an sich haben wir uns schon im Kapitel zur Entscheidungsfindung im Encoder beschäftigt. RDO ist ein Tool, das wir mit Vorsicht einsetzen müssen, denn je nach Situation sind andere Einstellungen nötig, um optimale Qualität sicherzustellen. Xvid kennt zwei RDO-Methoden: VHQ und Trellis.

  • VHQ ist die wichtigere Funktion. Die Abkürzung steht laut Koepi für Vastly Hyped Quality. Syskin meint, Very Handsome Qaligosaur wäre ihm genauso recht, und da kann ich nur zustimmen. :-D VHQ hat für P-Frames vier Abstufungen (1 bis 4), die jeweils mehr Bits einsparen und immer langsamer laufen. Für B-Frames existiert nur VHQ 1, da die möglichen Einsparungen der höheren Stufen in keinem sinnvollen Verhältnis zum zusätzlichen Geschwindigkeitsverlust stehen. Schon P-Frame-VHQ 4 verlängert das Encoding massiv, in manchen meiner Tests bis aufs Doppelte im Vergleich zu abgeschaltetem VHQ!

    Entsprechend der Funktionsweise der RDO sparen hohe VHQ-Stufen zwar eine Menge Bits, entfernen aber auch evtl. feinste sichtbare Details. Deshalb beschränken wir VHQ 3 und 4 lieber auf hochkomprimierte Encodings. Bei diesen sollte außerdem das B-Frame-VHQ aktiv sein. Transparente ½-DVD-Encodings sind dagegen mit VHQ 1 bestens bedient, denn dabei steht einem moderaten Bremseffekt eine recht ordentliche Bitrateneinsparung gegenüber, ohne dass feinste Details spürbar angegriffen werden. VHQ für B-Frames ist in einer solchen Situation eher davon abhängig, ob wir uns die zusätzliche Encodingzeit gönnen wollen. Ich lasse es meistens aktiviert.

  • Trellis ist weit weniger wichtig als VHQ. Es bremst wenig, bringt aber auch nur eine kleine Qualitätssteigerung. Da wir keine Nebenwirkungen befürchten müssen, können wir die Funktion ruhig immer aktivieren.

Die Profile von MPEG-4 Visual

MPEG-4 Visual ist ein umfangreicher Standard. Um besonders die Hardwareimplementierung zu vereinfachen, hat die MPEG eine Reihe von Profilen definiert, die wiederum in Level unterteilt sind. Für jedes Level sind Vorgaben zur maximalen Auflösung, Bitrate und den erlaubten Encodingfeatures definiert. Es existieren das Simple Profile (SP) mit den Leveln 0 bis 3 und das Advanced Simple Profile (ASP) mit den Leveln 0 bis 5. Solange wir für den PC encodieren, brauchen wir uns keine Restriktionen auferlegen, die Tabellen sind dann nur Hintergrundinformation am Rande. Hardwareplayer sind empfindlicher. Besonders auf hohe Bitraten sowie aktiviertes QPel und GMC reagieren viele Geräte allergisch. Leider haben sich in der Praxis mehr die DivX-Profile als die aus dem Standard durchgesetzt. :-(

Die nachfolgenden Tabellen bieten eine Übersicht über die Profile und Level. Die Fähigkeit zur MPEG-Matrix schließt dabei Custom-Matrizen mit ein. AQ steht für Adaptive Quantization.

MPEG-4-Tools
  B-Frames QPel GMC MPEG-Matrix AQ Interlaced
Simple, Level 0

Nein

Nein

Nein

Nein

Nein

Nein

Simple, ab Level 1

Nein

Nein

Nein

Nein

Ja

Nein

Advanced Simple

Ja

Ja

Ja

Ja

Ja

Ja

Mit Hilfe des VBV (Video Buffer Verifier) wird die Bitrate kontrolliert. Festgelegt wird dabei, wie viele Bits der Puffer maximal enthalten darf und welchen Wert die Bitrate maximal erreichen kann. Wenn das entsprechende Profil und Level eingestellt ist, sollte sich Xvid an diese Beschränkungen halten. Leider funktioniert das nicht. Wer VBV benötigt, sollte besser DivX verwenden.

Video Buffer Verifier (VBV)
  Max. Puffergröße (Bits) Max. Bitrate (kbit/s)
Simple @ L0 163840 64
Simple @ L1 163840 64
Simple @ L2 655360 128
Simple @ L3 655360 384
Advanced Simple @ L0 163840 128
Advanced Simple @ L1 163840 128
Advanced Simple @ L2 655360 384
Advanced Simple @ L3 655360 768
Advanced Simple @ L4 1310720 3000
Advanced Simple @ L5 1835008 8000

Die dritte Tabelle stellt die Restriktionen für Auflösung und Bildrate dar. Falls nötig müssen wir die aber manuell einhalten, denn Xvid tastet Auflösung und Bildrate nicht an, auch wenn sie den Rahmen des gewählten Profils/Levels sprengen. Die Maximalwerte sind lediglich fürs Simple Profile, Level 0 als definitives Maximum im MPEG-4-Standard festgeschrieben. Alle anderen stellen unverbindliche Obergrenzen dar, die sich in der Praxis eingebürgert haben.

Auflösung und Bildrate
  Max. Auflösung Max. Bildrate (fps)
Simple @ L0, L1 176×144 15
Simple @ L2, L3 352×288 15
Advanced Simple @ L0, L1 176×144 30
Advanced Simple @ L2, L3 352×288 30
Advanced Simple @ L4 352×576 30
Advanced Simple @ L5 720×576 30

Kommentare