# VP8

VP8 ist ein lizenzgebührenfreies Format für verlustbehaftet komprimierte Videodaten. Er baut auf der Entwicklungsreihe TrueMotion auf, einer Reihe von Videoformaten, die vom Unternehmen On2 Technologies entwickelt und vertrieben wurden.
Zusammen mit dem Audioformat Vorbis und einem Teilbereich von Matroska als Containerformat bildet VP8 die erste Version des von Google für Internet-Video empfohlenen Formates WebM. Auf der Intra-Bild-Kodierung von VP8 basiert das Grafikformat WebP.
Laut Google wird VP8 hauptsächlich im Zusammenhang mit WebRTC und als Format für Animationen, als Ersatz für das Graphics Interchange Format (GIF) eingesetzt.
VP8 wird in den Webbrowsern Opera, Firefox, Chrome und Chromium unterstützt. Internet Explorer unterstützt VP8 offiziell mit separat zu installierendem Codec.

## Merkmale

VP8 unterstützt nur Vollbild-Videosignale mit 4:2:0-Farbunterabtastung und 8 Bits pro Abtastwert. Die VP8-Implementierung von On2 unterstützt in der ersten veröffentlichten Version Mehrkernprozessoren mit bis zu 64 Kernen gleichzeitig. Zumindest mit der (August 2011) verfügbaren Implementierung ist VP8 vergleichsweise schlecht an hohe Auflösungen (HD) angepasst. Laut Aussage von On2 Technologies ist im Vergleich zu VP7 bei gleicher Qualität die doppelte Dekodiergeschwindigkeit möglich. Laut x264-Entwickler Jason Garrett-Glaser ist der VP8-Dekodierer – in der ursprünglich veröffentlichten Open-Source-Version von Google – langsamer als der H.264/AVC-Dekodierer aus dem FFmpeg-Projekt. Die nur drei vorzuhaltenden Referenzbilder ermöglichen eine vergleichsweise speichersparende Dekodiererimplementierung. Das Format bietet auch einen reinen Intra-Modus, also mit wahlfrei zugreifbaren, eigenständig kodierten Einzelbildern ohne zeitliche Vorhersage und gegenseitige Abhängigkeiten; zum Beispiel als Zwischenformat für Videoschnitt oder ähnliches.

### Qualitätsvergleich zu H.264/AVC

Laut On2 ist VP8 konkurrenzfähig zu H.264/AVC. On2 gab an, VP8 habe vergleichsweise dramatisch überlegene Qualität. Ein von On2 Technologies veröffentlichtes Vergleichsvideo soll die Verbesserungen gegenüber (einer Implementation des Standards) H.264/AVC demonstrieren. Dem gegenüber verglich ein x264-Entwickler VP8 mit der Qualität von H.264/AVC Constrained Baseline. In ersten unabhängigen Tests erwiesen sich VP8 und H.264/AVC im niedrigsten Profil „Baseline“ als gleichwertig, diese Ergebnisse wurden in anderen Artikeln jedoch angezweifelt. Im ersten veröffentlichten Test, der eine objektive Metrik (SSIM) verwendet, konnte VP8 für einige Beispielvideos bei hohen Bitraten Xvid – einen Codec, der den älteren MPEG-4-ASP-Standard implementiert – nicht schlagen (bei niedrigen Bitraten ist VP8 stets deutlich überlegen), und es schnitt für alle Beispielvideos schlechter als x264 ab. Nur für ein Video konnte es – bei deutlich langsamerer Geschwindigkeit – ähnliche, wenngleich unterlegene, Qualität wie x264 erreichen. Dieser Test führt VP8 lediglich in einem Anhang auf, da die aktuelle Version zu langsam ist, um die für einen fairen Vergleich vorgegebenen Geschwindigkeitskriterien nur annähernd erreichen zu können. 2010 stellte ein weiterer Qualitätstest mittels algorithmischer Bewertung nach Spitzen-Signal-Rausch-Verhältnis (PSNR) eine „etwas“ niedrigere (1–4 dB) Qualität fest. Ein im August 2011 veröffentlichter Qualitätstest mit subjektiven Bewertungen menschlicher Probanden zeigt gegenüber H.264 (JM und x264) großteils niedrigere Bewertungen für VP8-Videos gleicher Bitrate, bescheinigte zusammenfassend allerdings konkurrenzfähige Qualität.

### Patentsituation

Zur Patentfreiheit gibt es verschiedene Ansichten – unter anderem Zweifel an der Unbelastetheit, die bis zu der Aussage reichen, dass die wichtigen Techniken für Videokompression derart von Patenten abgedeckt seien, dass sämtliche Videoformate betroffen seien. Es gab schon beim Vorgänger Theora Befürchtungen über sogenannte U-Boot-Patente, die einige große Firmen von der Nutzung abhielten. 2010 wurde von der MPEG LA versucht, einen Patent-Pool zusammenzustellen, der Ansprüche gegen Theora und andere freie Formate bündeln sollte. Auch aus der Freie-Software-Szene gibt es unterschiedliche Ansichten. Der x264-Entwickler Jason Garrett-Glaser kam nach seiner Analyse des Verfahrens zu dem Schluss, dass es viel zu viele Ähnlichkeiten zu H.264/AVC aufweise, um nicht von denselben Patentansprüchen betroffen zu sein. Christopher Montgomery („Monty“, Entwickler von Vorbis und Theora) hingegen hält die Patentdrohungen für erfahrungsgemäß substanzlos.
Ein Mitarbeiter des Joint Technical Committee 1 der ISO und der IEC kommt in seiner Analyse zum Schluss, dass On2 jedenfalls große Anstrengungen unternommen hat, gegen keine Patente zu verstoßen, er weist aber auch auf die Schwierigkeiten hin, mit einem modernen Video-Codec keine Verletzungen zu begehen. Außerdem hält er es aufgrund der aktuellen Gesetzeslage in den USA für unwahrscheinlich, dass die Öffentlichkeit je erfährt, wie die firmeninternen Untersuchungen der Patentsituation genau ausgesehen haben.
Abgesehen von der schwierigen Patentsituation war die ursprüngliche Software-Lizenz von VP8 nicht mit den Anforderungen der Open Source Initiative vereinbar. Google hat den umstrittenen Paragraphen am 4. Juni 2010 aus der Lizenzdatei entfernt.
Am 7. März 2013 traf Google mit MPEG LA eine finanziell gestützte Übereinkunft, um mögliche Patentansprüche und die Formung eines VP8-Patentpools abzuwenden. Dadurch steht es Google zu, sowohl VP8, als auch den Nachfolger VP9 quelloffen und gebührenfrei zu verbreiten.

## Technik

VP8 ist ein klassisches blockbasiertes Transformations-Verfahren. Es hat viele Gemeinsamkeiten mit H.264/AVC, zum Beispiel einige Prädiktionsmodi. Zum Zeitpunkt der ersten Vorstellung von VP8 zählten laut On2 der in-loop-Filter und die Golden Frames zu den Neuheiten gegenüber den Vorgängern. Die erste Definition eines solchen Filters fand sich jedoch schon im Standard H.263, Golden Frames wurden schon in VP5 und VP7 benutzt.
Als grundlegende Frequenztransformationen dienen die Diskrete Kosinustransformation (DCT) mit 4×4-Blöcken und die Hadamard-Transformation (WHT). Zur zeitlichen Vorhersage können von einem Einzelbild aus maximal drei andere Bilder referenziert werden: jeweils das letzte Golden Frame (eventuelles Intra-Bild), Alternate-Reference-Bild und unmittelbar vorausgehende Bild. Sogenannte Alternate-Reference-Bilder (altref) können als reine Referenzbilder genutzt werden, indem ihre Darstellung deaktiviert werden kann. Sie können vom Kodierer dann mit beliebigen nützlichen Bilddaten gefüllt werden, auch aus zukünftigen Bildern, und damit die Funktion der B-Bilder der MPEG-Formate erfüllen. Ähnliche Makroblöcke eines Einzelbildes können einem von bis zu vier (auch räumlich unzusammenhängenden) Segmenten zugeordnet werden und dann darüber Parameter wie zum Beispiel das verwendete Referenzbild, Quantisierungsschrittweite und Filtereinstellungen teilen. VP8 bietet zweierlei in die Codec-Schleife integrierte Filter (in-loop filtering) gegen Blockartefakte mit anpassbarer Stärke. Viele Kodierwerkzeuge nutzen Wahrscheinlichkeiten, die ausgehend von Schlüsselbildern oder wahlweise auch Golden Frames fortlaufend aus dem aktuellen Kontext berechnet werden. Makroblöcke können 4×4, 8×8 oder 16×16 Bildpunkte umfassen. Bewegungsvektoren haben eine Präzision von einem Achtel Bildpunkt.

### libvpx

Die Referenzimplementierung eines VP8-Codecs findet sich (neben VP9) in der Programmbibliothek libvpx, die als freie Software unter den Bedingungen einer BSD-Lizenz veröffentlicht wurde. Mitgeliefert werden die darauf aufbauenden Kommandozeilenwerkzeuge vpxenc und vpxdec. Es existiert je ein Modus für Kodierung in einem einzigen und in zwei Durchläufen, wobei der Einzeldurchlaufmodus als kaputt gilt und keine brauchbare Kontrolle über die Zielbitrate bietet. Eine detaillierte Formatanalyse bescheinigte dem Referenzkodierer im August 2011 eine schlechte Ausnutzung der Möglichkeiten der Alternate-Reference-Bilder und hält alleine dabei mit einem entsprechend verbesserten Kodierer eine über 10 Prozent höhere Effizienz für möglich. Weitere Kritik betraf die Qualität der Bitratensteuerung und die Nutzung der Bildsegmentierung.

## Geschichte

Im September 2008 veröffentlichte On2 Technologies VP8 als Nachfolger ihrer früheren Ausgaben der TrueMotion-Videoformatserie wie VP6 und zuletzt VP7. Er sollte zu einer Verbesserung der Kompression bei gleichzeitiger Verringerung der Komplexität führen. VP8 wurde ursprünglich als proprietäre, lizenzgebührenpflichtige Technik entwickelt und nach der Übernahme durch Google Inc. offengelegt.
Seit dem Bekanntwerden von Googles Bemühungen, das Herstellerunternehmen On2 zu übernehmen, gab es Erwartungen, dass VP8 nach erfolgter Geschäftsübernahme freigegeben werden solle. Nachdem Monate später am 19. Februar 2010 die Übernahme für 134 Millionen US-Dollar besiegelt war, gab es intensivierte Spekulationen über die Freigabe. Infolge der Übernahme ersuchte die Free Software Foundation (FSF) Google am 30. April in einem offenen Brief um die Freigabe der Videotechnik und sprach von einer Chance, die Abhängigkeit von patentbelasteten Videoformaten wie H.264 und der proprietären Flash-Technik von Adobe im Internet zurückzudrängen. Durch einen solchen Schritt gab Google mit seinem populären (weltgrößten) Video-Portal YouTube den Auseinandersetzungen um das Standardformat für Web-Video mit HTML5 neue Impulse. Google hat auf seiner Entwicklerkonferenz Google I/O am 19. Mai 2010 den Referenz-Codec des Formates als Freie Software im Quelltext zur (patent-)freien Nutzung für jedermann unter der modifizierten BSD-Lizenz freigegeben und gleichzeitig das auf Matroska basierende WebM-Containerformat für den Einsatz im Internet vorgestellt, bei dem neben VP8 für die Audiokompression Vorbis eingesetzt wird.
Die Freigabe bedeutete einen großen Fortschritt im Bereich patentfreier Videokompressionssoftware, wo VP8 neben dem für Echtzeitanwendungen weniger geeigneten Dirac an die Stelle des qualitativ deutlich unterlegenen Theora treten kann. Die Hersteller des Großteils der populären Webbrowser (Internet Explorer, Firefox, Opera, Chrome) kündigten mit Freigabe an, das Format in Verbindung mit HTML5 in der jeweils nächsten (Haupt-)Version zu unterstützen und teils gleichzeitig Entwicklerversionen mit eingebauter Unterstützung zu veröffentlichen.
Seit 23. Juni 2010 enthält FFmpeg einen nativen VP8-Dekodierer. Nach einmonatiger Optimierung benötigt diese Implementierung zwischen 20 % und 40 % weniger Ressourcen zum Dekodieren eines VP8-Videos als Googles Dekodierer.
Skype führte in Version 5 VP8 für die Videokompression bei Telefonaten ein.
Unter dem Projektnamen VP-Next fing Google an, das Nachfolgeformat VP9 zu entwickeln. Er ist als Vorschlag für eine Grundlage für einen zukünftigen Internetstandard bei der IETF in der Diskussion. Ende 2012 wurde Unterstützung für VP9 in Chromium eingebaut.