Videokompression
# Videokompression

Videokompression dient zur Reduzierung der Datenrate eines digitalisierten Videosignals, um es einfacher speichern oder übertragen zu können. Erzielbare Kompressionsraten liegen typischerweise zwischen 1:5 und 1:500.

Die Videokompression hat ihre Ursprünge in der Standbildkompression. Einfachere Verfahren wie MJPEG komprimieren die einzelnen Bilder eines Videos unabhängig voneinander. Die erzielbaren Kompressionsraten liegen bei etwa 1:10. Weiterentwickelte Verfahren nutzen zur Kodierung auch Ähnlichkeiten zwischen den einzelnen Teilbildern. Die damit erzielbaren Kompressionsraten liegen heutzutage oberhalb von 1:100 bei kaum reduzierter Qualität.

Die Standardisierung von Videokodierungsverfahren ist mittlerweile ein internationale Organisationen überspannender Prozess, an der die Moving Picture Experts Group (MPEG) wie die Internationale Fernmeldeunion (ITU) beteiligt sind. Daher haben viele identische Verfahren verschiedene Bezeichnungen wie beispielsweise H.264, MPEG-4 AVC, MPEG-4/Part 10 oder ISO/IEC 14496-10 hinter denen sich dasselbe Format verbirgt.

## Grundlagen

Die Kompressionsalgorithmen beruhen auf

* Redundanzen (Selbstähnlichkeiten) des Videosignals (Redundanzreduktion) sowie
* Unzulänglichkeiten und physiologischen Effekten des menschlichen Sehens (Irrelevanzreduktion).

Die Begriffe Redundanzreduktion und Irrelevanzreduktion stammen aus der Informationstheorie und beschreiben zwei verschiedene Ansätze zur Reduktion der Datenmenge, auch Datenkompression genannt, bei der Übertragung von Information. Dabei wird auf ein Modell zurückgegriffen, bei dem Information von einer Quelle zur Senke übertragen wird. Auf den konkreten Fall der Videokodierung übertragen entspricht die Quelle der Folge von Videobildern wie sie in der ursprünglichen Kamera entstehen, die Senke entspricht dem Auge des Betrachters.

### Redundanzreduktion

Die Redundanzreduktion nutzt die Eigenschaften der Quelldaten zur Reduktion der zu übertragenden Datenmenge. Im Fall der Videokodierung werden statistische Eigenschaften des Bildsignals sowie Ähnlichkeiten (Korrelationen) zwischen zeitlich und räumlich benachbarten Bildpunkten ausgenutzt, um eine möglichst kompakte Darstellung zu erreichen. Erreichbar sind Kompressionsfaktoren von 1:2 bis 1:5. Da keine Informationen verloren gehen, spricht man von verlustloser Kodierung.

Zur Ausnutzung zeitlicher Korrelationen dienen die Verfahren der Inter-Kodierung, die aus bereits übertragenen Einzelbildern Schätzwerte extrapolieren, um nur noch die Schätzfehler übertragen zu müssen. (→Differenzkodierung) Für räumliche Korrelationen existieren die Verfahren der Intra-Kodierung, die Bildpunkte über die Differenz zu Schätzwerten aus räumlich umliegenden Punkten kodieren oder pixelüberspannende Bildmuster erkennen und kompakter beschreiben können. Zur Ausnutzung statistischer Redundanz erfolgt eine sogenannte →Entropiekodierung.

### Irrelevanzreduktion

Die Irrelevanzreduktion zielt darauf ab, diejenige Information bei der Übertragung auszulassen, die für die Senke nicht relevant ist. Sie berücksichtigt physiologische Eigenheiten der menschlichen Sehwahrnehmung und verwirft gezielt Informationen, sodass die entstehenden Störungen für menschliche Betrachter möglichst wenig wahrnehmbar sind. Dadurch ist eine weitere Kompression von typischerweise 1:2 bis 1:50 möglich, abhängig von Verfahren und geforderter Qualität. Da Informationen verworfen werden, spricht man von verlustbehafteter Kodierung.

Konkret bedeutet dies im Fall der Videokodierung, dass durch Quantisierung nur ein Teil der Bilddaten übertragen wird.

Da die räumliche Auflösung der Farbwahrnehmung aufgrund der Anatomie des Auges schlechter ist als die Auflösung von Helligkeitsunterschieden, kann man die Auflösung der Farbinformationen verringern, ohne dass die Unterschiede stark wahrgenommen werden könnten. Man spricht dabei von Farbunterabtastung. Meist wird vor der Kodierung eine Konvertierung in ein entsprechendes Farbmodell vorgenommen und die Datenrate damit bereits um üblicherweise 50 % reduziert.

Eine weitere Eigenschaft des visuellen Systems, die ausgenutzt werden kann, ist die Frequenzabhängigkeit. Man kann Bilder, ähnlich wie Töne, auch als Überlagerung von zweidimensionalen Schwingungen darstellen. Niedrige Bildfrequenzen sind für grobe Bildstrukturen verantwortlich, hohe für feine Details. Störungen in den verschiedenen Frequenzbereichen werden unterschiedlich stark wahrgenommen, was an einem einfachen Testbild gut verdeutlicht werden kann.

Diese Frequenzabhängigkeit wird in allen Videokompressionsverfahren der MPEG-Familie nach einer geeigneten Transformation als psychovisueller Faktor bei der Quantisierung genutzt.

## Grundlegende Techniken

Videokompressionsverfahren bestehen aus mehreren Teilverfahren, sogenannte Kompressionswerkzeuge (englisch tools), die verschiedene Arten von Redundanz ausnutzen. Auf Korrelationen räumlich benachbarter Bildpunkte stützen sich Verfahren der Intra-Frame-Vorhersage (Pixelextrapolation und Differenzkodierung) und die Transformationskodierung, zeitliche Abhängigkeiten werden bei der sogenannten Inter-Frame-Kodierung zum Beispiel Bewegungskompensation und Differenzkodierung (DPCM) genutzt und schließlich statistische Redundanz mittels Entropiekodierung reduziert.

### Frequenztransformation

Bei blockbasierter Transformationskodierung (zum Beispiel mit der diskreten Kosinustransformation, DCT) werden Einzelbilder (englisch frames) in quadratische Blöcke unterteilt und diese nach ihrer Komplexität beurteilt. Dieser Schritt ist notwendig, damit der Codec „weiß“, für welche (komplexen) Bildblöcke er viel Speicherplatz benötigt und für welche (einfachen) Blöcke weniger Bits genügen. Dies ist die Voraussetzung für die Irrelevanzreduktion.

### Differenzkodierung

Zur Nutzung von Ähnlichkeiten zwischen benachbarten Bildpunkten oder zwischen Einzelbildern wird üblicherweise die Differential Pulse Code Modulation (DPCM) eingesetzt: Es werden nur die Unterschiede zu bereits übertragenen Einzelbildern oder Bildpunkten gespeichert. Das Verfahren wird bei der Inter-Kodierung durch Bewegungskorrektur ergänzt.

### Bewegungskorrektur

Eine weitere Möglichkeit zur Verkleinerung der Datenmenge ist die Bewegungskorrektur (englisch motion compensation). Es wird nach übereinstimmenden Bildteilen gesucht, die sich gegenüber dem letzten Einzelbild weiterbewegt haben. Für diese wird ein Bewegungsvektor gespeichert, die unbewegten werden einfach vom letzten Einzelbild übernommen.

### Entropiekodierung

Mit einem Code mit variablen Wortlängen (englisch variable-length codes, VLC) können statistische Redundanzen in Wertereihen entfernt werden. Statt alle zu übertragenden Symbole mit konstanter Codewortlänge zu kodieren, werden häufiger auftretende beziehungsweise wahrscheinlichere Symbole mit kürzeren Codewörtern kodiert als seltenere Symbole. Hier haben Verfahren der Arithmetischen Kodierung die größte Verbreitung erreicht. Teils sind aber auch noch die ältere Huffman-Kodierung oder Varianten der weniger komplexen Lauflängenkodierung (zum Beispiel CAVLC) in Gebrauch.

## Geschichte

Die Standardisierung begann mit dem Standard H.120, der noch keine praktische Verwendung fand. Gebräuchliche Videokodierungsformate folgen in der Regel dem mit dem Nachfolger H.261 (1988) etablierten Grundentwurf. Wichtigste Merkmale sind die blockbasierte Frequenztransformation, (bewegungskompensierte) Differential Pulse Code Modulation (DPCM) und Entropiekodierung. Die Haupttechniken dazu waren bis zum Jahr 1979 entwickelt. Dieser Grundentwurf wurde seither beständig verfeinert und Hilfstechniken entwickelt, was später auch hunderte Patente hervorbrachte. Viele ältere Techniken finden erst viele Jahre später breite Anwendung, wenn ihr Einsatz durch Fortschritte in der Leistungsfähigkeit der Mikroprozessortechnik praktikabel wird. Beispiel einer Ausnahme mit gewisser Relevanz ist der Wavelet-basierte VC-2-Standard (Dirac-Variante).

Die H.26x-Videoformatserie der ITU-T beziehungsweise die MPEG-Videoformate stellen bisher (2016) die dominierenden Videokodierungsstandards dar. Bis einschließlich H.264 markierten sie bei Veröffentlichung regelmäßig den Stand der Technik und mehrere konnten größte Verbreitung finden, darunter MPEG-1 (1991), MPEG-2 (1994) und zuletzt H.264/MPEG-4 AVC (2003). Daneben gab es außer Spezialformaten für Nischenanwendungen nacheinander verschiedene preisgünstigere und teils proprietäre Hauptkonkurrenten wie Microsofts Windows Media Video 9 beziehungsweise VC-1, mehrere Formate aus On2s VPx-Serie und zuletzt deren von Google freigekaufte Nachfolger VP8 und VP9. Seit Theora gab es Bemühungen um frei lizenzierte Formate, die zunächst noch weniger beachtet und technisch unterlegen waren. Mit Googles Freigabe von VP8 (2008) und VP9 (2012) geschahen hier bedeutende technische Fortschritte und schlossen die freien Formate in ihrer Leistungsfähigkeit weitgehend zum Stand der Technik auf. Mit der Alliance for Open Media formierte sich von Seiten der Industrie ab 2015 breite Unterstützung für lizenzkostenfreie Videoformate. Diese Alliance veröffentlichte 2018 das lizenzkostenfreie AV1, welches die Nachfolge von VP9 antritt.

Von den Bell Laboratories wurde 1950 das Patent auf DPCM angemeldet, welches schon sehr bald auf Videokodierung angewendet wurde. Die Entropiekodierung begann in den 1940ern mit Shannon-Fano-Kodierung, auf der die 1950 entwickelte, gebräuchliche Huffman-Kodierung aufbaut; die modernere kontextadaptive Arithmetische Kodierung (CABAC) wurde Anfang der 1990er veröffentlicht. Transformationskodierung (mittels Hadamard-Transformation) wurde 1969 eingeführt, die verbreitete Diskrete Kosinustransformation (DCT) tauchte 1974 in der wissenschaftlichen Literatur auf.

