Video compression

Videokomprimierung

Bei der Videokomprimierung werden redundante Videodaten reduziert und entfernt, sodass eine digitale Videodaten effizient über ein Netzwerk übertragen und auf einer Computerfestplatte gespeichert werden kann. Mit effizienten Komprimierungstechniken kann eine deutliche Verkleinerung des Datenvolumens erzielt werden, ohne dass dies die visuelle Bildqualität merklich beeinträchtigt. Beeinträchtigungen in der Bildqualität, werden in der Regel erst ersichtlich, wenn mit einer relativ hohen Komprimierungsstufe gearbeitet wird, um das Datenvolumen auf ein Minimum zu reduzieren.

Es stehen verschiedene proprietäre und standardisierte Technologien für die Komprimierung zur Verfügung. Die meisten Netzwerk-Video-Hersteller verwenden heutzutage Standardtechnologien. Standards sind für die Gewährleistung der Kompatibilität und Interoperabilität wichtig. Sie sind insbesondere für die Videokomprimierung relevant, da Videodaten für unterschiedliche Zwecke verwendet werden können und in einigen Videoüberwachungsanwendungen auch Jahre nach dem Aufzeichnungszeitpunkt noch anzeigbar sein müssen. Durch die Verwendung von Standards sind Endbenutzer in der Lage, Geräte von verschiedenen Herstellern zu nutzen, sodass sie bei der Implementierung eines Videoüberwachungssystems nicht an einen Hersteller gebunden sind.

Axis verwendet drei verschiedene Videokomprimierungsstandards: Motion JPEG, MPEG-4 Part 2 (oder einfach MPEG-4) und H.264 (auch als MPEG-4 Part 10 oder Advanced Video Coding, kurz AVC bezeichnet). H.264 ist der neueste und effizienteste Videokomprimierungsstandard.

Video-Codec

Bei der Komprimierung wird das Quellvideo über Algorithmen in eine komprimierte Datenstrom umgewandelt, der dann übertragen oder gespeichert werden kann. Zur Wiedergabe der komprimierten Daten werden inverse Algorithmen angewendet. Dadurch wird Video erzeugt, das im Wesentlichen denselben Inhalt bietet wie das ursprüngliche Quellvideo. Die Zeit, die zur Komprimierung, Übertragung, Dekomprimierung und Wiedergabe der Videodaten erforderlich ist, wird als Latenz bezeichnet.

Ein zusammengehöriges Algorithmenpaar wird als Video-Codec (Encoder/Decoder) bezeichnet. Video-Codecs unterschiedlicher Standards sind normalerweise nicht miteinander kompatibel, d. h. dass Videoinhalte, die mit einem Standard komprimiert worden sind, nicht mit einem anderen Standard dekomprimiert werden können. Zum Beispiel funktioniert ein MPEG-4-Decoder nicht in Kombination mit einem H.264-Encoder, da ein bestimmter Algorithmus nicht das Ergebnis eines anderen Algorithmus dekomprimieren kann. Man kann allerdings mehrere verschiedene Algorithmen in derselben Software oder Hardware implementieren, sodass verschiedene Formate parallel bestehen können.

Bild- im Vergleich zu Videokomprimierung

Die verschiedenen Komprimierungsstandards nutzen unterschiedliche Methoden zur Datenreduzierung. Daher unterscheiden sie sich hinsichtlich Bitrate, Qualität und Latenz. Es gibt zwei Arten von Komprimierungsalgorithmen: Bildkomprimierung und Videokomprimierung.

Bildkomprimierung verwendet eine bildinterne Codier-Technologie. Die Daten werden innerhalb eines Bildes reduziert, indem unnötige Informationen, die vom menschlichen Auge nicht wahrnehmbar sind, einfach entfernt werden. Motion JPEG ist ein Beispiel für einen solchen Komprimierungsstandard. Bilder in einer Motion JPEG-Sequenz werden als einzelne JPEG-Bilder codiert oder komprimiert.

Im Motion JPEG-Format werden die drei Bilder in der obigen Folge codiert und als separate, eigenständige Bilder (I-Frames) übertragen, die voneinander unabhängig sind.

Videokomprimierungs-Algorithmen wie z. B. MPEG-4 und H.264 verwenden eine Interframe-Vorhersage, um die Videodaten zwischen mehreren Bildern zu reduzieren. Dies beinhaltet Techniken wie die Differenzcodierung, bei der ein Bild mit einem Referenzbild verglichen wird und nur die Pixelblöcke codiert werden, die sich im Vergleich zum Referenzbild geändert haben. Auf diese Weise wird die Anzahl der Pixelblöcke reduziert, die codiert und übertragen werden müssen. Wenn eine solche codierte Sequenz angezeigt wird, erscheinen die Bilder wie in der Original-Videosequenz.

Bei der Differenzcodierung wird nur das erste Bild (I-Frame) vollständig codiert. In den beiden folgenden Bildern (P-Frames) wird auf statische Elemente im ersten Bild verwiesen, in diesem Fall also auf das Haus. Nur die beweglichen Teile, d. h. die laufende Person, wird mithilfe von Bewegungsvektoren codiert, wodurch die Menge an zu sendenden und zu speichernden Informationen deutlich reduziert werden kann.

Es können weitere Techniken wie der blockbasierte Bewegungsausgleich angewendet werden, um die Daten zu reduzieren. Beim blockbasierten Bewegungsausgleich wird berücksichtigt, welche Anteile des neuen Bildes einem früheren Bild in der Videosequenz entnommen werden können, ggf. aus einer anderen Stelle. Bei dieser Methode wird ein Bild in mehrere Makroblöcke (Pixelblöcke) aufgeteilt. Ein neues Bild kann dann Block für Block zusammengesetzt oder durch die Suche nach einem übereinstimmenden Block in einem Referenzbild „vorhergesagt“ werden. Wird eine Übereinstimmung gefunden, codiert der Encoder die Position des passenden Blocks im Referenzbild. Die Codierung dieses Bewegungsvektors erfordert eine geringere Bitmenge als der eigentliche Inhalt des codierten Blocks.

Darstellung des blockbasierten Bewegungsausgleichs.

Bei der Interframe-Vorhersage wird jedes Bild in einer Reihe von Bildern als ein bestimmter Bildtyp klassifiziert, z. B. als I-Frame, P-Frame oder B-Frame.

Ein I-Frame oder Intra-Frame ist ein unabhängiges Bild, das separat und ohne Verweis auf andere Bilder decodiert werden kann. Das erste Bild in einer Videosequenz ist stets ein I-Frame. I-Frames werden als Ausgangspunkte für neue Betrachter oder als Resynchronisierungspunkte benötigt, falls der übertragene Datenstrom beschädigt wurde. I-Frames eignen sich zur Implementierung für schnellen Vorlauf und Rücklauf sowie anderen Funktionen mit Direktzugriff. Encoder fügen automatisch in regelmäßigen Abständen I-Frames in den Datenstrom ein, oder auf Anforderung, falls einer Client die Wiedergabe des Videodatenstroms anfordert. Von der Größe des Datenvolumens her betrachtet, stellt ein I-Frames den größten Frametyp dar.

P-Frames („Predictive Interframe“) verweisen bei ihrer Codierung auf Bildinformationen vorausgehender I- oder P-Frames. P-Frames erfordern ein geringeres Datenvolumen als I-Frames, sind jedoch aufgrund der Abhängigkeit von vorausgehenden P- und/oder I-Frames anfälliger gegen Übertragungsfehler. Die Größe der P-Frames ist immer davon Abhängig, wie viel Redundanzen zeitlicher und räumlicher Natur, in Bezug auf das Referenzbild, vorhanden sind.

B-Frames („Bi-predictive Interframes“) haben einen bidirektionalen Bezug und verweisen zugleich auf ein vorausgehendes und auf ein nachfolgendes I- oder P-Frames. Da für die Decodierung eines B-Frames immer auf Frames in der Zukunft gewertet werden müssen, erhöht die Nutzung der B-Frames zwangsläufig die Latenz. Da im Bereich der IP-basierenden Videoüberachung geringer Latenzen angestrebt werden, werden in der Regel in diesem Bereich B-Frames keine B-Frames verwendet.

Typische Sequenz mit I-, B- und P-Frames. P-Frames verweisen nur auf vorausgehende I- oder P-Frames, B-Frames ggf. auch auf nachfolgende I- oder P-Frames.

Wenn ein Video-Decoder ein Video wiederherstellt, indem er den Bitstrom Bild für Bild decodiert, muss er stets bei einem I-Frame beginnen. Vorhandene P-Frames und B-Frames müssen zusammen mit ihren Referenzbildern decodiert werden.

In den Netzwerk-Videoprodukten von Axis können Benutzer über die sogenannte GOV-Länge (Group of Video) festlegen, wie lange eine zu sendenden Sequenzgruppe ist, bestehend aus einem I-Frame und mehreren P-Frames, bevor ein weiterer I-Frame gesendet wird. Durch Verringern der I-Frame-Anzahl (größere GOV-Länge) kann die erforderliche Bitrate reduziert werden.

Neben der Differenzcodierung und dem Bewegungsausgleich können weitere Methoden zur Reduzierung von Daten und zur Verbesserung der Videoqualität durchgeführt werden. Zum Beispiel unterstützt H.264 moderne Techniken wie Vorhersageschemata für die Codierung von I-Frames, einen verbesserten Bewegungsausgleich bis in den Unterpixelbereich hinein sowie einen internen Deblocking-Filter zum Glätten von Blockartefakte (Blockkanten).

Lesen Sie weiter: Komprimierungsformate

Komprimierungsformate