Die Videotechnologie auf Chromebooks erlebt derzeit eine spannende Phase des Wandels und der Innovation. Insbesondere das Projekt VirtIO Video auf ChromeOS steht im Mittelpunkt dieser Entwicklung und stellt einen wesentlichen Schritt in Richtung effizienterer und leistungsfähigerer Videovirtualisierung dar. Die Bedeutung von VirtIO Video geht weit über die reine Videowiedergabe hinaus und betrifft die gesamte Architektur, wie Videocodecs in virtualisierten Umgebungen verarbeitet werden. Die Rolle von Collabora in Kooperation mit dem ChromeOS-Team hat hierbei einen maßgeblichen Einfluss auf die Gestaltung und Verbesserung des Video-Stacks für Chromebooks. In der heutigen Welt, in der Video-Streaming und -Verarbeitung allgegenwärtig sind, ist die Unterstützung moderner Videocodecs und deren Hardwarebeschleunigung entscheidend.
Früher lag der Fokus bei cros-codecs, der auf ChromeOS verwendeten Videocodec-Bibliothek, auf den bekannten Formaten VP8, VP9 und H.264. Diese Standards waren einst die Eckpfeiler für Videowiedergabe und Decodierung, doch die Videoindustrie entwickelt sich ständig weiter. Fortgeschrittene Codecs wie HEVC (High Efficiency Video Coding) und AV1 setzen neue Maßstäbe in Bezug auf Kompressionseffizienz und Qualität. Insbesondere AV1, dessen Verwendung rapide zunimmt, löst patentbedingte Beschränkungen früherer Codecs und bietet eine kosteneffektive Möglichkeit, Streaminginhalte in hoher Qualität bereitzustellen.
YouTube ist dabei ein Vorreiter in der Implementierung von AV1, indem die Plattform AV1-Live-Streaming unterstützt und damit die Verbreitung des modernen Formats vorantreibt. Parallel dazu ermöglicht die Unterstützung von AV1 auf Hardwareplattformen großer Hersteller wie Intel, AMD und NVIDIA eine performante Wiedergabe ohne hohe CPU-Belastung. Intel unterstützt AV1-Hardwaredekodierung seit der Tiger Lake-Generation, AMD seit RDNA2 und NVIDIA mit der Ampere-Architektur. Diese breite Hardwareunterstützung ebnet den Weg für eine flächendeckende Nutzung neuer Codecs auf Chromebooks. Collabora hat in Zusammenarbeit mit dem ChromeOS-Team AV1- und HEVC-Codec-Unterstützung in die cros-codecs-Bibliothek integriert.
Dieser Schritt ist nicht nur für die Decodierung von Videoinhalten relevant, sondern auch für Android-Anwendungen, die auf ChromeOS unter Android Runtime for Chrome Virtual Machine (ARCVM) laufen. Dabei wird die Abhängigkeit vom traditionellen Chrome-Videodecoding-Stack umgangen, was zu effizienteren und leistungsfähigeren Abläufen beim Videostreaming führt. Diese Integration eröffnet auch die Möglichkeit, die VirtIO Video-Protokolle direkt mit modernsten Codecs wie HEVC und AV1 zu testen und weiterzuentwickeln. Ein typisches Problem in der Videowiedergabe und -verarbeitung ist der sogenannte „one-too-many-copies“-Effekt. Daten werden mehrfach zwischen verschiedenen Speicherorten kopiert, was zu Leistungseinbußen und erhöhtem Stromverbrauch führt.
Gerade bei hochauflösendem Content, wie 4K-Videos, waren diese Kopierprozesse sichtbar als FPS-Einbrüche. Um dies zu beheben, wurde eine Lösung erarbeitet, die auf DMA-BUF setzt, ein Linux-spezifisches Framework, mit dem Speicherbereiche zwischen Geräten und Prozessen geteilt werden können. Durch die Verwendung von DMA-BUF kann die GPU des Hosts den Speicherbereich direkt in den Gast importieren, sodass VA-API (Video Acceleration API) direkt auf diesen Speicher zugreifen kann, ohne redundante Kopiervorgänge. Das Ergebnis ist eine deutlich verbesserte Wiedergabe von 4K-Videos mit 60 Frames pro Sekunde und eine spürbare Reduktion des Stromverbrauchs, was besonders für mobile Geräte wie Chromebooks von enormer Bedeutung ist. Neben der Optimierung der Codec-Unterstützung und der Performance stellt auch das VirtIO Video-Protokoll eine Kernkomponente in der Virtualisierung von Videohardware dar.
VirtIO Video wurde als offener Standard entwickelt, um virtuelle Maschinen einfachen Zugriff auf Videoencoder und -decoder zu ermöglichen. In der ChromeOS-Welt steht dies im Zusammenhang mit ARCVM, der Virtualisierungsumgebung für Android-Apps, die einen nahtlosen Zugriff auf Hardwarebeschleunigung benötigt. Allerdings wird das Konzept von VirtIO Video immer wieder hinterfragt und weiterentwickelt. Ein wesentlicher Punkt ist die Ähnlichkeit zwischen VirtIO Video und dem experimentellen VirtIO Camera-Protokoll, das ebenfalls von Collabora entwickelt wurde und auf Video4Linux2 (V4L2) basiert – dem weit verbreiteten Linux-Framework zur Steuerung von Videogeräten. Beide Protokolle ähneln sich stark in ihrer Architektur und Funktion, was die Frage aufwirft, ob nicht eine einheitliche Lösung sinnvoller wäre.
Vor diesem Hintergrund arbeitet das ChromeOS-Team unter der Leitung von Alex Courbot an einer neuen Vision: das sogenannte „virtio-media“-Protokoll. Im Gegensatz zu VirtIO Video, das Video-Codecs abstrahiert und eigene Übersetzungsschichten verwendet, setzt virtio-media direkt auf die Virtualisierung der V4L2-ioctl-Schnittstellen, ohne zusätzliche Übersetzung. Dies würde zu einem schlankeren VirtIO-Geräteprofil führen und die Wartung vereinfachen, da bereits etablierte V4L2-Standards und Beispiele genutzt werden können. Ein Vorteil des virtio-media-Ansatzes ist die Möglichkeit, verschiedene Video- und Bildverarbeitungsgeräte – von Kameras bis hin zu Bildprozessoren – unter einer gemeinsamen Schnittstelle zu virtualisieren. Dies reduziert die Fragmentierung der VirtIO-Protokolle und erleichtert die Integration neuer Hardware und Funktionen.
Die Entscheidung, ob virtio-media VirtIO Video ersetzen wird, ist jedoch noch offen und wird von der Branche intensiv diskutiert. Neben der Protokollfrage spielt automatisiertes Testing eine entscheidende Rolle für die Qualität und Stabilität der Videotechnologien auf ChromeOS. Die cros-codecs- und cros-libva-Bibliotheken sind bereits mit umfangreichen Unit-Tests ausgestattet, die in Continuous-Integration-(CI)-Systemen laufen, um Regressionen zu verhindern. Für das End-to-End-Testing der gesamten Dekodier-Stack inklusive VirtIO Video wird das Fluster-Framework eingesetzt. Fluster vergleicht Decoder-Ausgaben mit offiziellen Referenzdekodern und kann so versteckte Fehler und Deadlocks aufdecken, die sonst zu Systemabstürzen führen könnten.
Ein automatisierter Einsatz dieser Tests ist wesentlich, um stabile Releases für Nutzer bereitzustellen. Ein spezieller Testtreiber namens VISL (Virtual Stateless V4L2 driver), geschrieben von Collabora, erlaubt zudem das Testen von Anwendungen und Kernelkomponenten im Bereich der V4L2 stateless APIs, ohne auf spezifische Hardware angewiesen zu sein. Dies ist besonders nützlich, um Fehler im Treiber oder in der Anwendung in Cloud-Umgebungen zu identifizieren und zu beheben. Neben kontinuierlicher Verbesserung der Decodierung steht auch die Entwicklung von Hardware-unterstütztem Post-Processing für die Zukunft auf der Agenda. Moderne Videohardware bietet oft spezielle Blöcke für Nachbearbeitungsoperationen wie Skalierung oder Rauschunterdrückung, die effizient und stromsparend ausgeführt werden können.
Aktuell wird diese Funktionalität von cros-codecs noch nicht genutzt, doch eine Einbindung in künftigen Versionen verspricht weitere Qualität- und Performancegewinne. Parallel zur Dekodierung setzt das ChromeOS-Team auch verstärkt auf Video-Encoding. Die laufende Entwicklung eines neuen Encodingschnittstelle zielt darauf ab, hardwarebeschleunigtes Video-Encoding in der ARCVM-Umgebung zu ermöglichen. Dies ist besonders relevant für Videoanrufe oder die Erstellung von Video-Content auf Chromebooks. Die initiale Implementierung basiert auf VA-API, doch weitere Backends sind denkbar.
Eine eng verwandte Initiative betrifft die Schaffung eines Statefull-Interfaces für Video-Decoder. In der Praxis bedeutet dies, dass bislang stateless, also zustandslose, Decoder mit einem Wrapper versehen werden, der Zustandsinformationen verwaltet. Dieser Schritt erleichtert die Integration neuer Decoder-Backends, insbesondere in Verbindung mit V4L2 Statefull Support, was das Einsatzspektrum von cros-codecs auf weitere Hardwareplattformen erweitern wird. Interessant ist zudem die geplante Zusammenarbeit zwischen cros-codecs und dem weit verbreiteten Multimedia-Framework GStreamer. Durch die Verwendung der in Rust geschriebenen Bitstream-Parser von cros-codecs in GStreamer könnten zahlreiche sicherheitsrelevante Schwachstellen (CVE – Common Vulnerabilities and Exposures) in bestehenden Parsers überbrückt werden.
Die Stärke von Rust bei der Vermeidung von Speicherfehlern sowie anderen Sicherheitslücken macht diesen Schritt besonders vielversprechend, auch wenn Details zur konkreten Integration noch in Arbeit sind. Die Leistungen von Collabora in den letzten Jahren haben erheblich dazu beigetragen, dass Chromebooks moderne Videotechnologien effizient einsetzen können. Die Veröffentlichung eigenständiger Open-Source-Komponenten sowie der Beitrag zu CrosVM und VirtIO Video haben das Ökosystem bereichert und bilden eine solide Grundlage für zukünftige Entwicklungen. Durch die Bereitstellung einer VA-API-basierten VirtIO Video Backend-Implementierung ist es möglich geworden, das VirtIO Video-Protokoll auch auf gewöhnlichen Arbeitsstationen zu entwickeln und zu testen, was die Innovationsdynamik in diesem Bereich deutlich erhöht hat. Darüber hinaus ermöglicht dieser Fortschritt, die Abhängigkeit vom libvda-Treiber zu reduzieren, der bisher die CrosVM- und Chrome-Browser-Wiedergabe eng miteinander koppelte.
Dies eröffnet Chancen für eine flexiblere und modularere Architektur im ChromeOS-Videostack. Insgesamt zeigt die Entwicklung rund um VirtIO Video auf ChromeOS einen klaren Trend hin zu mehr Offenheit, Effizienz und Integration moderner Standards. Während vertiefte Debatten über Protokolle und Architekturen fortgeführt werden, profitieren Endnutzer bereits von einer spürbaren Verbesserung bei der Videowiedergabe und -verarbeitung auf ihren Geräten. Die Kombination aus Open-Source-Innovation, einer starken Entwicklergemeinschaft und strategischen Kooperationen macht ChromeOS in Sachen Videovirtualisierung zu einem wegweisenden Player der Zukunft.