# Two-pass encoding

Two-pass encoding ist ein Kompressionsverfahren, das eine Audio- oder Videodatei in zwei Durchläufen kodiert. Im ersten Durchlauf findet eine Analyse statt, um im zweiten Durchlauf bei Verwendung einer variablen Datenrate (VBR) die vorgegebene Speicherkapazität optimal zu nutzen.

## Motivation

Bei Kompressionsverfahren, in denen das Multimediamaterial innerhalb eines einzelnen Durchgangs komprimiert wird (One-pass encoding, Live-Streaming), 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 einen Methode wird eine Qualität vorgegeben, die der Encoder erfüllt, ungeachtet der erzielten Kompressionsrate. Diese Methode wird bezeichnet als Variable Bitrate Encoding (VBR). Sie hat den Nachteil, dass die erzielte Gesamtdatenmenge beliebig sein kann, also ein Speichermedium fester Größe, wie etwa eine CD-Datenträger, von der Kapazität her nicht vollständig ausgenutzt wird oder nicht ausreicht.
Deshalb wird in der anderen Methode dem Encoder eine feste Datenmenge pro Zeitabschnitt (pro Sekunde oder Frame) vorgegeben. Hiermit kann eine gewünschte Zielgröße, z. B. 680 MB passend auf einen CD-Datenträger, erreicht werden. Diese Methode wird bezeichnet als Constant Bitrate Encoding (CBR). Nachteil dieses Vorgehens ist, dass die erreichte Qualität nicht konstant bleibt. Dieser führt dazu, dass z. B. bei Videomaterial, bestehend aus wenig komplexen Szenen (wenige Farben oder wenig Bildveränderung im Zeitverlauf), unnötiges Datenvolumen erzeugt wird und in komplexen Videoszenen (viele Farben oder Actionszenen) zu wenig Datenvolumen eingeräumt wird – als für eine gleichbleibende Qualität notwendig.

## Verfahren

Das Two-Pass-Verfahren vereint die Vorteile der beiden Single-Pass-Verfahren. Die Datenmenge pro Zeitabschnitt wird nicht vorab festgelegt, sondern nach Analyse des gesamten Materials entschieden. Der Encoder bestimmt in einem ersten Kompressions-Durchlauf die optimale Datenrate für jeden Zeitabschnitt und speichert diese Information temporär ab. Das Kompressionsergebnis (z. B. das komprimierte Video) selbst wird nicht abgespeichert.
Im zweiten Durchlauf verwendet der Encoder diese Informationen, um eine konstante Qualität bei vorgegebener Zieldatenmenge zu erreichen.
Dieses 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ögliche mittlere Qualität erzielt.
Nachteile:
* Es wird etwa die doppelte Verarbeitungszeit wie beim one-pass encoding benötigt.
* Dieses Verfahren kann nicht bei live gesendeten Audio-/Videodaten eingesetzt werden, da der wichtige zweite Durchgang erst bei Vorliegen aller Daten (also am Ende der Sendung) ausgeführt werden kann.

## Geschichte

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