Videos schrumpfen
Know How: MPEG-Grundlagen
Burkhard Müller
Die DCT ist bis auf Rundungsfehler zum Beispiel durch die Cosinus-Werte verlustfrei - lässt sich also verlustfrei Rücktransformieren.
Quantisierung
Die Folge der DCT-Koeffizienten soll nun auf eine Folge kleiner ganzer Zahlen mit möglichst vielen aufeinander folgenden Nullen umgerechnet werden: Das macht die Quantisierung. Bei der Quantisierung wird jeder DCT-Koeffizient durch einen eigenen Quantisierungsfaktor geteilt, der so bemessen ist, dass die Voraussetzungen möglichst gut erfüllt werden: kleine ganze Zahlen mit möglichst vielen aufeinander folgenden Nullen.
Gelingt dies, lässt sich diese Zahlenfolge sehr gut komprimieren und das Ziel einer hohen Komprimierung ist erreicht. Ist die Quantisierung schlecht gewählt, kann das Bild bei der Rücktransformation in den Ortraum nur noch sehr unvollständig dargestellt werden - es sieht "schlecht" aus.
Die Quantisierung stellt den eigentlich Trick bei der Datenreduktion dar, sie ist allerdings verlustbehaftet. Die DCT-Koeffizienten werden schließlich RLE- und dann Huffman codiert. Dazu gleich mehr.
Die Formel für die zweidimensionale DCT sieht entsprechend so aus:
Die Formel für die zweidimensionale DCT
Diese Formel berechnet DCT-Matrizen, die entsprechend durch Quantisierungs-Matrizen geteilt werden. Eine Eigenschaft der DCT-Matrix ist die Folgende: Die relevanten Werte befinden sich links oben und nehmen nach rechts unten ab. Für die weitere Verarbeitung der quantisierten DCT-Koeffizienten wird die quantisierte DCT-Matrix daher in einer bestimmten Reihenfolge ausgelesen, die als Zickzack-Reihenfolge bekannt ist:
Auslesen der Matrix in Zickzack-Reihenfolge
Dadurch wird eine Zahlenfolge erreicht, die möglichst viele Nullen nacheinander aufweist. Diese wird nun RLE-komprimiert (Run Lenght Encoding, Lauflängenkomprimierung). RLE komprimiert viele gleiche aufeinander folgende Werte besonders gut, indem nur noch der Wert und die Anzahl, wie oft dieser vorkommt, angegeben werden. Die so erhaltene Bitfolge wird dann Huffman codiert.
Hier ein vereinfachte Erklärung des Huffman-Algorithmus: Bei Huffman werden komplexe Bitmuster durch einfache Bitmuster ersetzt. Der Huffman-Algorithmus durchkämmt einen Bitstrom und sucht nach sich wiederholenden Bitmustern. Diese merkt er sich in einer Tabelle, wobei die längsten Bitfolgen oben stehen.
Diese Tabelle enthält absteigend immer kürzere Bitmuster. Wenn alle Bitmuster gefunden sind, ersetzt der Algorithmus das oberste längste Bitmuster durch ein einziges Bit - das ist das kürzeste überhaupt denkbare Bitmuster. Das zweitlängste Muster ersetzt er durch 2 Bit und so weiter. Dadurch entsteht eine weitere Tabelle. Mithilfe dieser Tabellen kann der originale Bitstrom wieder aus dem komprimierten gewonnen werden.
Die soeben besprochene Komprimierung - Aufteilung in 8x8-Blöcke, Berechnung der DCT-Koeffizienten und Anwendung der Quantisierung - ist exakt das, was bei der JPEG-Komprimierung passiert. In der Tat sind I-Frames nichts weiter als JPEG-komprimierte Bilder - auch intracodierte Frames genannt.
Bitraten
Wie groß die endgültigen MPG-Dateien nach dem Encoden werden, hängt überwiegend von der Bitrate ab. MPEG4 und MPEG2 arbeiten im Gegensatz zu MPEG1 mit variablen Bitraten (variable bitrate, vbr), das heißt der Encoder kann die Bitrate so verteilen, wie es günstig ist: In Szenen mit schnellen Bewegungen ist zum Beispiel mehr Bitrate nötig als bei ruhigen Bildern.
Um zu bestimmen, welche Szenen mehr Bitrate benötigen, wird ein so genanntes Mehrpass-Encoding (Multi Pass Encoding) durchgeführt: Im ersten Durchlauf wird der Film analysiert und das Ergebnis in eine Log-Datei geschrieben. Dann erfolgen ein oder mehr Durchläufe, wobei die Bitrate möglichst optimal verteilt wird. Je mehr solcher Passes durchgeführt werden, desto genauer kann die Bitrate verteilt werden.
« zurück 5 | 6 | 7 | 8 | 9 weiter »
Mehr über: Software, Videosoftware, Hintergrundwissen, MPEG
-
How To: MPEG4-Filme mit Nero Recode 2 komprimieren
Schnellster MPEG4-Encoder -
Anleitung: Analoges Capturing
Von VHS auf DVD -
Anleitung: Zeichentrickfilme mit DivX optimieren
Bessere Bilder
Diesen Artikel verlinken
Dieser Artikel steht unter einer Creative Commons-Lizenz.
nach oben






