Video-Codierung

Einzelne Codecs funktionieren im Detail natürlich unterschiedlich, grundlegende Funktionen sind aber nahezu überall vorhanden. Zwei wesentliche Funktionen sind die Unterscheidung in verschiedene Bilder und die Unterteilung des Bildes in kleinere Blöcke.
by Takeshi
Hierbei macht man sich zu Nutze, dass sich zwei aufeinanderfolgende Bilder selten völlig voneinander unterscheiden, es handelt sich schließlich um ein "Bewegtbild".

Zunächst wird ein Bild benötigt, dass die vollständige Bildinformation beinhaltet. Es wird I-Bild (engl. I-Frame) genannt. Nachfolgende Bilder enthalten dagegen nur Änderungen gegenüber anderen Bildern. P-Bilder (engl. P-Frame) beziehen sich dabei immer auf vorhergehende Bilder, wobei dies das I-Bild sein kann, aber auch ein weiteres vorhergehendes P-Bild. B-Bilder (engl. B-Frame) beziehen sich nicht nur auf vorhergehende Bilder, sondern auch auf nachfolgende Bilder. Das letzte Bild vor einem I-Bild unterscheidet sich natürlich in der Regel weniger von diesem I-Bild, als von dem vorherigen I-Bild, das mehrere Frames in der Vergangenheit liegt.

Der Vorteil dieser Methode liegt auf der Hand und wirde eingangs schon erleutert. Das hat allerdings auch Nachteile. Fehlt ein I-Bild oder ist es zumindest fehlerhaft, leiden darunter alle Bilder, die sich auf das I-Bild beziehen. Gerade bei Streams mit B-Bildern kann es zu zeitlichen Problemen kommen, denn bevor das B-Bild angezeigt werden kann, muss auch das nachfolgende I-Bild empfangen werden.
by Takeshi
Das Bild wird in Blöcke unterteilt, die häufig 8x8 Pixel groß sind, weshalb die gesamte Auflösung dann idealerweise ein Vielfaches von 8 sein sollte. Die einzelnen Blöcke können unabhängig voneinander codiert werden.

Nehmen wir als Beispiel eine Person auf einer Wiese mit strahlend blauem Himmel. Blöcke, die nur den Rasen zeigen, lassen sich im übertragenen Sinne mit "nur grün" beschreiben, was eine sehr kurze Information ist. Es wird lediglich einmal für alle 64 Pixel die durchschnittliche Farbe gespeichert und zusätzlich die Abweichung von dieser Farbe, die sehr gering ausfällt und daher nur wenig Speicher benötigt. Beim Himmel ist es ähnlich, nur ist die durchschnittliche Farbe ein Blauton. Müssten Wiese und Himmel im Ganzen beschrieben werden, wäre die durchschnittliche Farbe eine andere und die Abweichung jedes Pixels sowohl beim Rasen als auch beim Himmel viel größer, der Speicherbedarf folglich ebenfalls. Hinzu kommt, dass dem menschlichen Auge kleine Abweichungen in der Helligkeit/Farbe nicht so sehr auffallen wie große. Da können also Bildinformationen unter den Tisch fallen gelassen werden, was dem Betrachter kaum auffällt, jedoch viel Speicher sparen.
Die Blöcke, die Teile der Person zeigen, nutzen wesentlich mehr Bit zur Angabe der Abweichung zum Durchschnitt in diesem Block. Der Speicherbedarf ist hier zwar größer, aber eben nur für diese Bereiche.

Bei Videos mit einer sehr geringen Datenrate fällt die Unterteilung in Blöcke auf. Dort ist leicht ein Raster zu erkennen und einzelne Blöcke weisen eine eher einheitliche Farbe auf, während ein anliegender Block wiederum eine etwas andere gesamtheitliche Farbe hat. Hier wurde die Größe der Information zur Abweichung der einzelnen Pixel von der durchschnittlichen Farbe reduziert.
by Takeshi

Impressum

Powered by FrogBoard Basic v0.4.0 alpha
and FrogBoard Page v0.2.0 alpha
trisaster Dev © 2009-2020