
Videokodierung, wie es funktioniert (Teil 1)

Die effektive Komprimierung von Videoinformationen basiert auf zwei Hauptideen: der Unterdrückung kleiner Details der räumlichen Verteilung einzelner Frames, die für die visuelle Wahrnehmung unbedeutend sind, und der Beseitigung zeitlicher Redundanz in der Reihenfolge dieser Frames. Folglich sprechen wir von räumlicher und zeitlicher Komprimierung.

Der erste nutzt die experimentell ermittelte geringe Empfindlichkeit der menschlichen Wahrnehmung gegenüber Verzerrungen kleiner Bilddetails. Das Auge bemerkt einen ungleichmäßigen Hintergrund schneller als die Krümmung einer dünnen Kante oder eine Änderung der Helligkeit und Farbe eines kleinen Bereichs. Aus der Mathematik sind zwei äquivalente Darstellungen des Bildes bekannt: die bekannte räumliche Verteilung von Helligkeit und Farbe und die sogenannte Häufigkeitsverteilung, die mit der räumlichen diskreten Kosinustransformation (DCT) verbunden ist. Theoretisch sind sie äquivalent und reversibel, speichern jedoch Informationen über die Bildstruktur auf völlig unterschiedliche Weise: Die Übertragung glatter Hintergrundänderungen erfolgt durch niederfrequente (Mitten-) Werte der Frequenzverteilung und die hochfrequenten Koeffizienten. Sie sind oft für die feinen Details der räumlichen Verteilung verantwortlich. Dadurch kann der folgende Komprimierungsalgorithmus verwendet werden. Der Rahmen ist in 16×16 Blöcke unterteilt (720×576 entspricht 45×36 Blöcken), von denen jeder im Frequenzbereich in DCT konvertiert wird. Dann werden die entsprechenden Frequenzkoeffizienten quantisiert (Rundung von Werten mit einem gegebenen Intervall). Wenn die DCT selbst nicht zu Datenverlust führt, bewirkt die Quantisierung der Koeffizienten offensichtlich eine Verdickung des Bildes. Die Quantisierungsoperation wird mit einem variablen Intervall durchgeführt: Niederfrequenzinformationen werden genauer übertragen, während viele Hochfrequenzkoeffizienten Nullwerte annehmen. Dies führt zu einer signifikanten Komprimierung des Datenstroms, führt jedoch zu einer Verringerung der effektiven Auflösung und dem möglichen Auftreten kleinerer unechter Details (insbesondere an Blockgrenzen). Offensichtlich
Für aufmerksame Leser wiederholen wir, dass dieser Algorithmus aus der digitalen Fotografie stammt, wo er unter dem Namen JPEG entwickelt wurde, um einzelne Bilder effizient zu komprimieren (JPEG ist eine Abkürzung für den Namen der Joint Photographic Experts Group, die ihn befürwortet hat). Es wurde dann erfolgreich auf Frame-Videosequenzen angewendet (jede vollständig unabhängig verarbeitet) und in MJPEG (Motion-JPEG) umbenannt. Es sollte auch beachtet werden, dass die DV-Codierung der digitalen DV / DVCAM / DVCPRO-Standards im Wesentlichen auf demselben Algorithmus basiert, jedoch ein flexibleres Schema mit adaptiver Auswahl von Quantisierungstabellen verwendet. Das Komprimierungsverhältnis für verschiedene Blöcke variiert im Gegensatz zu MJPEG mit dem Bild: Bei nicht informativen Blöcken (z. B. an den Bildrändern) nimmt es zu und bei Blöcken mit einer großen Anzahl kleiner Details relativ zu die mittlere Ebene des Bildes. Infolgedessen wird bei gleicher Qualität das Datenvolumen um ca. 15% reduziert (oder umgekehrt, bei gleichem Durchfluss ist die Qualität des Ausgangssignals höher).
Bei der zeitlichen MPEG-Komprimierung wird eine hohe Informationsredundanz in Bildern verwendet, die durch kleine Intervalle voneinander getrennt sind. Tatsächlich ändert sich zwischen benachbarten Bildern normalerweise nur ein kleiner Teil der Szene. Zum Beispiel gibt es eine sanfte Bewegung eines kleinen Objekts auf dem Hintergrund eines festen Hintergrunds. In diesem Fall sollten die vollständigen Informationen zur Szene nur selektiv für Referenzbilder gespeichert werden. Im Übrigen reicht es aus, nur Differenzinformationen zu übertragen: über die Position des Objekts, die Richtung und Größe seiner Verschiebung, über neue Hintergrundelemente (die sich hinter dem Objekt öffnen, wenn es sich bewegt). Darüber hinaus können sich diese Unterschiede nicht nur im Vergleich zu den vorherigen, sondern auch zu den späteren Bildern bilden (da sich in ihnen beim Bewegen des Objekts der Teil des Hintergrunds befindet, der zuvor hinter dem Objekt verborgen war). Beachten Sie, dass mathematisch gesehen das schwierigste Element die Suche nach verschobenen Blöcken, aber nur eine geringe Änderung der Struktur (16 x 16) und die Bestimmung der entsprechenden Vektoren ihrer Verschiebung ist. Dieses Element ist jedoch das wichtigste, da es die erforderliche Informationsmenge erheblich reduzieren kann. Es ist die Effizienz der Echtzeitausführung dieses “intelligenten” Elements, die verschiedene MPEG-Codierer auszeichnet.
