Wie moderne Videokomprimierungsalgorithmen tatsächlich funktionieren 1

Wie moderne Videokomprimierungsalgorithmen tatsächlich funktionieren

Moderne Videokomprimierungsalgorithmen sind nicht mit den Bildkomprimierungsalgorithmen identisch, mit denen Sie vielleicht vertraut sind. Die zusätzliche Dimension und Zeit bedeutet, dass verschiedene mathematische und logische Techniken auf die Videodatei angewendet werden, um die Größe zu reduzieren und gleichzeitig die Videoqualität beizubehalten.

In diesem Beitrag verwenden wir H.264 als archetypischen Komprimierungsstandard. Obwohl es nicht mehr das neueste Videokomprimierungsformat ist, bietet es dennoch ein ausreichend detailliertes Beispiel für die Erklärung von Konzepten zur Videokomprimierung im großen Stil.

Was ist Videokomprimierung?

Videokompressionsalgorithmen suchen nach räumlichen und zeitlichen Redundanzen. Durch minimale Codierung redundanter Daten kann die Dateigröße reduziert werden. Stellen Sie sich zum Beispiel eine einminütige Aufnahme des Gesichts eines Charakters vor, der sich langsam verändert. Es ist nicht sinnvoll, das Hintergrundbild für jeden Frame zu codieren: Stattdessen können Sie es einmal codieren und dann darauf zurückgreifen, bis Sie die Videoänderungen kennen. Diese Interframe-Vorhersagekodierung ist für die entnervenden Artefakte der digitalen Videokompression verantwortlich: Teile eines alten Bildes bewegen sich mit falscher Aktion, weil etwas in der Kodierung durchgedreht ist.

I-Frames, P-Frames und B-Frames

I-Frames sind vollständig codierte Bilder. Jeder I-Frame enthält alle Daten, die er zur Darstellung eines Bildes benötigt. P-Rahmen sind pbasierend darauf, wie sich das Bild seit dem letzten I-Frame ändert. B-Rahmen sind bi-direktional vorhergesagt, unter Verwendung von Daten sowohl vom letzten P-Frame als auch vom nächsten I-Frame. P-Frames müssen nur die visuellen Informationen speichern, die für den P-Frame einzigartig sind. Im obigen Beispiel muss es verfolgen, wie sich die Punkte über den Rahmen bewegen, aber Pac-Man kann bleiben, wo er ist.

Der B-Frame betrachtet den P-Frame und den nächsten I-Frame und „mittelt“ die Bewegung über diese Frames. Der Algorithmus hat eine Vorstellung davon, wo das Bild „beginnt“ (der erste I-Frame) und wo das Bild „endet“ (der zweite I-Frame), und er verwendet Teildaten, um eine gute Schätzung zu codieren, wobei alle redundanten ausgelassen werden statische Pixel, die zum Erstellen des Bilds nicht erforderlich sind.

Intraframe-Codierung (I-Frames)

So funktioniert die Videokomprimierung IP- und B-Frames

I-Frames werden unabhängig voneinander komprimiert, genauso wie Standbilder gespeichert werden. Da I-Frames keine Vorhersagedaten verwenden, enthält das komprimierte Bild alle Daten, die zum Anzeigen des I-Frames verwendet werden. Sie werden immer noch durch einen Bildkomprimierungsalgorithmus wie JPEG komprimiert. Diese Kodierung erfolgt häufig im YCbCr-Farbraum, der Helligkeitsdaten von Farbdaten trennt, sodass Bewegungen und Farbänderungen separat kodiert werden können.

Bei nicht prädiktiven Codecs wie DV und Motion JPEG hören wir hier auf. Da es keine prädiktiven Frames gibt, ist die einzige Komprimierung, die erreicht werden kann, die Komprimierung des Bildes innerhalb eines einzelnen Frames. Es ist weniger effizient, erzeugt aber eine Rohbilddatei mit höherer Qualität.

In Codecs, die prädiktive Frames wie H.264 verwenden, wird regelmäßig gezeigt, dass I-Frames den Datenstrom „auffrischen“, indem ein neuer Referenzframe gesetzt wird. Je weiter die I-Frames auseinander liegen, desto kleiner kann die Videodatei sein. Wenn die I-Frames jedoch zu weit voneinander entfernt sind, verschlechtert sich die Genauigkeit der prädiktiven Frames des Videos langsam bis zur Unverständlichkeit. Eine bandbreitenoptimierte Anwendung würde I-Frames so selten wie möglich einfügen, ohne den Videostream zu unterbrechen. Für Verbraucher wird die Häufigkeit von I-Frames oft indirekt durch die Einstellung „Qualität“ in der Codierungssoftware bestimmt. Professionelle Videokomprimierungssoftware wie ffmpeg ermöglicht eine explizite Steuerung.

Interframe-Vorhersage (P-Frames und B-Frames)

Video-Encoder versuchen, Änderungen von einem Frame zum nächsten „vorherzusagen“. Je näher ihre Vorhersagen sind, desto effektiver ist der Kompressionsalgorithmus. Dadurch werden die P-Frames und B-Frames erstellt. Die genaue Anzahl, Häufigkeit und Reihenfolge der prädiktiven Frames sowie der spezifische Algorithmus, der verwendet wird, um sie zu codieren und zu reproduzieren, wird durch den von Ihnen verwendeten spezifischen Algorithmus bestimmt.

So funktioniert die Videokomprimierung Blockpartition

Betrachten wir als verallgemeinertes Beispiel die Funktionsweise von H.264. Der Rahmen ist in Abschnitte unterteilt, die Makroblöcke genannt werden und typischerweise aus 16 x 16 Abtastwerten bestehen. Der Algorithmus codiert nicht die rohen Pixelwerte für jeden Block. Stattdessen sucht der Encoder nach einem ähnlichen Block in einem älteren Frame, dem sogenannten Referenzframe. Wenn ein gültiger Referenzrahmen gefunden wird, wird der Block durch einen als Bewegungsvektor bezeichneten mathematischen Ausdruck codiert, der die genaue Art der Änderung vom Referenzblock zum aktuellen Block beschreibt. Wenn das Video wiedergegeben wird, interpretiert der Videoplayer diese Bewegungsvektoren korrekt, um das Video „zurückzuübersetzen“. Wenn sich der Block überhaupt nicht ändert, wird kein Vektor benötigt.

Fazit: Datenkomprimierung

Sobald die Daten in ihre Frames sortiert sind, werden sie mit dem Transformationscodierer in einen mathematischen Ausdruck codiert. H.264 verwendet eine DCT (Discrete-Cosinus-Transformation), um visuelle Daten in einen mathematischen Ausdruck umzuwandeln (insbesondere die Summe der Cosinusfunktionen, die bei verschiedenen Frequenzen oszillieren). Der gewählte Kompressionsalgorithmus bestimmt den Transformationscodierer. Anschließend werden die Daten vom Quantisierer „gerundet“. Schließlich durchlaufen die Bits einen verlustfreien Komprimierungsalgorithmus, um die Dateigröße noch einmal zu verkleinern. Das ändert nichts an den Daten: Es organisiert sie nur in möglichst kompakter Form. Dann wird das Video komprimiert, kleiner als zuvor und bereit zum Anschauen.

Bildnachweis: VC-Demo, itu delft

Unterstützen Sie unsere Arbeit ❤️

Wenn Ihnen dieser Artikel gefallen hat, können Sie uns mit einem Trinkgeld unterstützen, damit wir weiterhin großartige Inhalte veröffentlichen können.

Sichere Zahlung mit PayPal
Siehe auch:  Iran gibt an, Amazons Dateninfrastruktur in Bahrain zerstört zu haben
Moyens I/O-Personal. motivierte Sie und gab Ratschläge zu Technologie, persönlicher Entwicklung, Lebensstil und Strategien, die Ihnen helfen werden.