Two-pass encoding

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Two-pass encoding, allgemeiner Multi-pass encoding, ist ein Kompressionsverfahren, mit dem eine Audio- oder Videodatei bei Verwendung einer variablen Datenrate (VBR) unter optimaler Ausnutzung der vorgegebenen Speicherkapazität kodiert werden kann.

[Bearbeiten] Motivation

Bei Kompressionsverfahren (Streaming, Single Pass oder one-pass encoding), bei denen das Multimediamaterial in einem "Rutsch" komprimiert wird, besteht der Nachteil, dass die Komplexitätsverteilung über die Zeit im Material nicht bekannt ist, d.h. die zu erzielenden Kompressionsraten unbekannt sind. Es gibt zwei Methoden wie der Encoder damit umgehen kann, beide mit einem signifikanten Nachteil.

In der ersten Variante wird eine Qualität vorgegeben die der Encoder erfüllt, ungeachtet der erzielten Kompressionsrate. Dieses Vorgehen ist auch bekannt als Variable Bitrate Encoding (VBR). Dieses hat den Nachteil, dass die erzielte Gesamtdatenmenge beliebig sein kann, also ein Speichermedium fester Größe, wie etwa eine Daten-CD, nicht vollständig ausgenutzt wird oder gar nicht ausreicht.

Deshalb wird in der zweiten Vorgehensweise dem Encoder ein feste Datenmenge pro Zeitabschnitt (Bild oder Audioframe) vorgegeben, hiermit kann eine gewünschte Gesamtgrösse, z.B. 680MB als CD-Datenträgergrösse, erreicht werden. Dieses Vorgehen ist auch bekannt als Constant Bitrate encoding (CBR). Nachteil dieses Vorgehens ist, dass die erreichte Qualität nicht konstant bleibt. Dies ergibt sich bei CBR daher, dass z.B. bei Videomaterial, einfachen Videoszenen (dunkel oder mit wenig Bewegung) zuviel und komplexen Videoszenen (schnelle Änderungen) zuwenig Platz eingeräumt wird - anders als für eine gleichbleibende Qualität notwendig.

[Bearbeiten] Verfahren

Das Two-pass Encoding Verfahren versucht nun die Qualitäten beider oben beschriebenen Single-pass Verfahren zu vereinen. Die Idee hierzu ist, mit zusätzlichen Informationen über die Komplexität des Materials eine effizientere Auswahl der Datenmenge pro Zeitabschnitt durchführen zu können. Hierzu wird ein vorheriger Analyse-Kompressionslauf durchgeführt. Der Encoder bestimmt im ersten Durchlauf für jeden Zeitabschnitt (bei Videos etwa pro Bild) die Datenrate bei optimaler Qualität und speichert diese Informationen als Maß der Komplexität temporär zwischen. Das Kompressionsergebnis (z.B. das komprimierte Video) selbst wird nicht abgespeichert.

Im zweiten Durchlauf verwendet der Encoder nun die vorgegebene Zieldatenmenge und die zwischengespeicherten Komplexitätsmaße des ersten Durchlaufes. Er komprimiert nun jeden Zeitabschnitt mit einer Datenrate proportional zum ermittelten Komplexitätsmaß. Das Ziel einer konstanten Qualität bei vorgegebener Zieldatenmenge wird typischerweise gut, mit nur geringen Abweichungen, erreicht.

Diese Verfahren lässt sich als iteratives Vorgehen mit mehr als zwei Durchläufen erweitern (Multi-pass), mit dem eine noch bessere Homogenisierung der Qualität über die Zeit oder eine präzisere Zieldatenmenge erreicht werden kann.

Vorteile:

  • Durch die optimale Ausnutzung des verfügbaren Speicherplatzes (etwa einer CD-ROM) wird die bestmöglichste mittlere Qualität erzielt.

Nachteile:

  • Es wird etwa die doppelte Verarbeitungszeit wie beim one-pass encoding benötigt.
  • Dieses Verfahren kann nicht bei live/in Echtzeit gesendeten Audio-/Videodaten eingesetzt werden, da der wichtige zweite Durchgang erst bei Vorliegen aller Daten (also am Ende der Sendung) ausgeführt werden kann.

[Bearbeiten] Geschichte

Im Videobereich war Nandub einer der ersten Videokompressionprogramme welches diese Technik beherrschten, dort bekannt als Smart Bitrate Control (SBC).

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Mitmachen
Drucken/exportieren
Werkzeuge
In anderen Sprachen