Codierungsmethoden (Microsoft Media Foundation)

Die meisten Audio- und Videocodecs von Windows Media unterstützen mehrere Codierungsmethoden. Wenn Sie wissen, wie und wann die einzelnen Methoden verwendet werden, können Sie hochwertige komprimierte Inhalte erstellen.

Die Codierungsmethoden konzentrieren sich alle auf den Puffer, der vom Decoder zum Verwalten komprimierter Eingabedaten verwendet wird. Dieser Puffer wird durch die Bitrate des Datenstroms in Bits pro Sekunde und das Pufferfenster in Millisekunden definiert. Beim Codieren hält sich der Codec an die Einschränkungen des Puffers. Weitere Informationen zum Puffer finden Sie unter The Leaky Bucket Buffer Model.

Codierung mit konstanter Bitrate

Die Bitrate für alle Datenströme, die von einem der Windows Media Audio- und Videocodecs codiert werden, ist nicht konstant. Die Codierung mit konstanter Bitrate (CBR) ist daher ein etwas irreführender Begriff. Das Unterscheidungsmerkmal eines CBR-codierten Datenstroms ist ein kleines Pufferfenster, das die Variation der Stichprobengrößen einschränkt. DIE CBR-Codierung wird hauptsächlich für Inhalte verwendet, die über ein Netzwerk an das Ziel gestreamt werden. In einem solchen Szenario ist es wichtig, sich auf eine konsistente Bandbreitennutzung verlassen zu können.

Aus Konfigurationssicht unterscheidet sich die CBR-Codierung von den anderen Modi darin, dass Sie vor beginn der Codierung sowohl die durchschnittliche Bitrate des Ausgabeinhalts als auch das Pufferfenster festlegen, das für diese Bitrate gilt. In anderen Modi ist einer oder beide dieser Werte beim Konfigurieren des Encoders unbekannt und wird während der Codierung vom Codec berechnet. CBR ist der Standardcodierungsmodus, der von den Windows Media Encoder-DMOs verwendet wird.

Two-Pass Codierung mit konstanter Bitrate

Standard CBR verwendet nur einen einzelnen Codierungsdurchlauf. Sie stellen Ihre Inhalte als Eingabebeispiele bereit, und der Codec komprimiert den Inhalt und gibt Ausgabebeispiele zurück. Es ist auch möglich, Eingabebeispiele zweimal zu verarbeiten. Beim ersten Durchlauf führt der Codec Berechnungen durch, um die Codierung für Ihre Inhalte zu optimieren. Im zweiten Durchlauf verwendet der Codec die während des ersten Durchlaufs gesammelten Daten, um den Inhalt zu codieren.

Die ZWEI-Pass-CBR-Codierung hat viele Vorteile. Dies führt häufig zu erheblichen Qualitätsgewinnen gegenüber der CBR-Standardcodierung, ohne dass sich die Pufferanforderungen ändern. Dadurch eignet sich dieser Codierungsmodus ideal für Inhalte, die über ein Netzwerk gestreamt werden. Die einzige Situation, in der cbR mit zwei Durchlaufs nicht möglich ist, ist, wenn Sie Inhalte aus einer Livequelle codieren und keinen zweiten Durchlauf verwenden können.

Der Ausgabemedientyp eines CBR-Datenstroms mit zwei Durchgängen ist identisch mit dem eines CBR-Standardstreams. Geben Sie weiterhin die zu verwendende Bitrate und das Pufferfenster an. Beim Konfigurieren der DMO müssen Sie festlegen, dass zwei Durchläufe ausgeführt werden. Außerdem müssen Sie die DMO benachrichtigen, wenn Sie das Senden von Beispielen für den ersten Durchlauf abgeschlossen haben.

Quality-Based Codierung mit variabler Bitrate

Da die CBR-Codierung tatsächlich keine konstante Bitrate beihält, kann die Unterscheidung zwischen der Codierung mit variabler Bitrate (VBR) etwas verschmiert erscheinen. Der Hauptunterschied zwischen CBR und VBR ist die Größe des verwendeten Pufferfensters. VBR-codierte Datenströme weisen im Vergleich zu CBR-codierten Streams in der Regel große Pufferfenster auf. Qualitätsbasierte VBR stellt keine Ausnahme dar, da Sie weder Bitrate noch Pufferfenster dafür definieren. Stattdessen legen Sie einen Qualitätswert fest. Der Codec versucht dann, die Daten so zu komprimieren, dass die Qualität der codierten Medien während der gesamten Dauer konsistent ist, unabhängig von den Pufferanforderungen des resultierenden Datenstroms.

Qualitätsbasierte VBR verwendet einen einzelnen Codierungsdurchlauf und erzeugt tendenziell große komprimierte Datenströme. Wenn die Codierung abgeschlossen ist, legt der Codec die Pufferanforderungen fest, damit der Decoder die Daten dekomprimieren kann. Der codierte VBR-Stream eignet sich nicht für das Streaming über ein Netzwerk, sodass qualitätsbasierte VBR nur für lokale Wiedergabeszenarien (oder herunterladen und wiedergeben) verwendet werden sollte.

Nicht eingeschränkte Codierung variabler Bitraten

Im Gegensatz zu qualitätsbasierten VBR werden nicht eingeschränkte VBR-Instanzen nicht mit einer bestimmten Qualitätsebene codiert. Stattdessen codiert er den Inhalt mit der höchstmöglichen Qualität, während eine angegebene Bitrate beibehalten wird. Unconstrained VBR verwendet zwei Codierungsdurchläufe und ähnelt dem Zweidurchlauf-CBR, mit der Ausnahme, dass Sie keine Pufferfenstereinstellung für den Stream angeben. Dies bedeutet, dass die Größe einzelner Stichproben im Stream nicht begrenzt ist, solange die durchschnittliche Bitrate kleiner oder gleich dem von Ihnen festgelegten Wert ist.

Unconstrained VBR ist von begrenztem Nutzen, da es nur wenige Wiedergabeszenarien gibt, für die Anforderungen an die Pufferanforderungen gelten. Der Codec kann das Pufferfenster auf den wert festlegen, der nach der Codierung erforderlich ist, sodass Sie keine Kontrolle über die Puffergröße haben. Wenn Sie sich keine Gedanken über die Größe des Puffers oder die Konsistenz der Bandbreitennutzung machen, sollten Sie in den meisten Fällen qualitätsbasierte VBR verwenden.

Peak-Constrained Codierung mit variabler Bitrate

Der letzte Codierungsmodus ist VBR mit Spitzeneinschränkung. Wie bei nicht eingeschränktem VBR verwendet dieser Modus zwei Codierungsdurchläufe und codiert eine angegebene Bitrate. Mit spitzen eingeschränkten VBR-Werten konfigurieren Sie jedoch auch den Spitzenwert für die Codierung. Spitzenwerte ähneln den normalen Pufferkonfigurationswerten: Es gibt eine Spitzenbitrate und ein Spitzenpufferfenster. Die Datei ist so codiert, dass sie einem Puffer entspricht, der durch die Spitzenwerte beschrieben wird, wobei die durchschnittliche Bitrate des Datenstroms insgesamt gleich oder kleiner als der von Ihnen angegebene durchschnittliche Bitratenwert ist.

Eingeschränkte VBR kann schwierig zu konzipieren sein. Hier ist die einfachste Möglichkeit, sich das verwendete Puffermodell vorzudenken. Angenommen, der Stream ist ein CBR-Stream mit der Spitzenbitrate und dem Spitzenpufferfenster, das zum Definieren des Puffers verwendet wird. In der Regel ist die Spitzenbitrate recht hoch. Der Encoder stellt sicher, dass der erwartete durchschnittliche Bitratenwert, den Sie angeben, über die Dauer des Datenstroms beibehalten wird. An einem bestimmten Punkt im Datenstrom ist die durchschnittliche Bitrate garantiert größer als die Gesamtdatenstromgröße in Bits dividiert durch die Streamdauer in Sekunden).

Betrachten Sie das folgende Beispiel: Sie konfigurieren einen Stream mit einer durchschnittlichen Bitrate von 16.000 Bit pro Sekunde, einer Spitzenbitrate von 48.000 Bit pro Sekunde und einem Spitzenpufferfenster von 3.000 (3 Sekunden). Die Größe des für den Datenstrom verwendeten Puffers beträgt 144.000 Bit (48.000 Bits pro Sekunde x 3 Sekunden), wie durch die Spitzenwerte bestimmt. Der Encoder komprimiert die Daten so, dass sie diesem Puffer entsprechen. Darüber hinaus muss die durchschnittliche Bitrate des Streams 16.000 oder weniger betragen. Wenn der Encoder einige sehr große Stichproben erstellen muss, um ein komplexes Inhaltssegment zu verarbeiten, kann er die große Puffergröße nutzen. Andere Teile des Datenstroms müssen jedoch mit einer niedrigeren Bitrate codiert werden, um den Durchschnitt auf die angegebene Ebene zu senken.

Die VBR-Codierung mit Spitzenbeschränkungen ist für Wiedergabegeräte mit einer begrenzten Pufferkapazität und einigen Datenrateneinschränkungen nützlich. Ein gängiges Beispiel hierfür ist die für DVDs verwendete Codierung.

Verwenden der VBR-Codierung

Windows Media-Codecs