Detailansicht
Evaluation of the feasibility of implementing Vulkan Video extensions on CPUs
Bernhard Clemens Schrenk
Art der Arbeit
Masterarbeit
Universität
Universität Wien
Fakultät
Fakultät für Informatik
Studiumsbezeichnung bzw. Universitätlehrgang (ULG)
Masterstudium Informatik
Betreuer*in
Helmut Hlavacs
DOI
10.25365/thesis.78809
URN
urn:nbn:at:at-ubw:1-14871.33014.936329-7
Link zu u:search
(Print-Exemplar eventuell in Bibliothek verfügbar)
Abstracts
Abstract
(Deutsch)
Vulkan ist eine moderne, plattformübergreifende Grafik- und Berechnungs-API und ein offener Standard, der primär für den Einsatz mit Grafikbeschleunigern (GPUs) entwickelt wurde. Durch die erweiterbare Architektur ermöglicht der Vulkan-Standard die Integration zusätzlicher Technologien. Unter den jüngsten Erweiterungen sind die Vulkan Video Extensions, die hardwarebeschleunigte Videokodierung und -dekodierung für Formate wie H.264, H.265 und AV1 unterstützen. Diese Erweiterungen sind besonders in Bereichen wie Cloud-Gaming, CAD-Rendering und Remote-Visualisierung essenziell, in denen Echtzeit-Videostreaming und geringe Latenz entscheidend sind. Viele Systeme -- darunter ältere Hardware, eingebettete Systeme oder Testumgebungen -- verfügen jedoch nicht über dedizierte Video-Beschleunigerhardware, was die Anwendbarkeit dieser Erweiterungen einschränkt. Diese Arbeit untersucht die Machbarkeit einer vollständigen Softwareimplementierung der Vulkan Video Extensions auf generischen Prozessoren (CPUs). Ziel ist es, die Nutzbarkeit von Vulkan auf Umgebungen ohne dedizierte Video-Hardware zu erweitern, indem softwarebasierte Videokodierung unter Einhaltung der Vulkan-Spezifikation ermöglicht wird. Die Implementierung basiert auf Lavapipe, einem Software-Rasterizer des Mesa3D Projektes, der Vulkan-API-Unterstützung über eine LLVM-basierte CPU-Renderpipeline bietet. In dieser Arbeit wird Lavapipe um Vulkan Video Extensions erweitert und ein H.264-Encoder integriert, der das auf latenzkritische Anwendungen optimierte Constrained Baseline Profile unterstützt. Drei Forschungsfragen leiten die Arbeit: Können Vulkan Video Extensions auf CPUs mithilfe von Lavapipe implementiert werden? Wie kann ein Videocodec mit der Vulkan-API verbunden werden? Und entspricht die Implementierung den Spezifikationen von Vulkan und H.264? Die in dieser Arbeit entwickelte Lösung zeigt, dass Vulkan Video Extensions erfolgreich auf CPUs in Software umgesetzt werden können und dabei validiert durch die Vulkan Conformance Test Suite standardkonforme Ergebnisse liefern. Darüber hinaus wird gezeigt, dass die Leistungs-Anforderungen realer Anwendungen erfüllt werden können und wie die Leistung von der Wahl der Befehlssätze und der Compiler-Optimierungen abhängt. Diese Arbeit legt das Fundament für Vulkan-Video-Unterstützung auf CPUs und trägt zur Weiterentwicklung von Vulkan als plattformunabhängige Lösung für Videokodierung bei.
Abstract
(Englisch)
Vulkan is a modern, low-overhead, cross-platform graphics and compute API and an open standard primarily designed for use with graphics processing units (GPUs). Through its extensible architecture, it supports the integration of additional technologies. One of the most recent additions is the set of Vulkan Video Extensions, which enable hardware-accelerated video encoding and decoding for formats including H.264, H.265 and AV1. These extensions are essential in domains such as cloud gaming, CAD rendering, and remote visualization, where real-time video streaming and low latency are critical. However, many systems -- including legacy hardware, embedded platforms or testing environments -- lack access to dedicated video acceleration hardware, limiting the applicability of these extensions. This thesis evaluates the feasibility of implementing Vulkan Video Extensions entirely in software on general-purpose CPUs. The goal is to extend Vulkan’s usability to hardware-constrained environments by enabling software-based video encoding while maintaining conformance with the Vulkan specification. The implementation builds upon Mesa3D’s Lavapipe, a software rasterizer that provides Vulkan API support via LLVM-based CPU rendering. In this work we add support for Vulkan Video Extensions to Lavapipe and integrate a lightweight H.264 encoder targeting the Constrained Baseline Profile, which is suitable for latency-sensitive applications. Three research questions guide the work: Can Vulkan Video Extensions be implemented on CPUs using Lavapipe? How can a video codec be interfaced with the Vulkan API? And does the implementation conform to the Vulkan and H.264 specifications? Our implementation demonstrates that Vulkan Video Extensions can be successfully realized in software on CPUs, producing standards-compliant output as verified using the Vulkan Conformance Test Suite. Furthermore, we show that performance requirements of real-world applications can be met and analyze how performance depends on instruction sets and compiler optimizations. This thesis lays the groundwork for CPU-based Vulkan Video support and contributes to the broader effort of making Vulkan a platform-independent solution for video processing.
Schlagwörter
Schlagwörter
(Deutsch)
Vulkan API Videokodierung Vulkan Video Extensions Mesa3D Lavapipe CPU-basierte Implementierung Vulkan-Konformität H.264-Codec Video Codec Vulkan Treiber
Schlagwörter
(Englisch)
Vulkan API video encoding Vulkan Video Extensions Mesa3D Lavapipe CPU-based implementation Vulkan conformance H.264 codec video codec Vulkan driver
Haupttitel (Englisch)
Evaluation of the feasibility of implementing Vulkan Video extensions on CPUs
Publikationsjahr
2025
Umfangsangabe
xi, 79 Seiten : Illustrationen
Sprache
Englisch
Beurteiler*in
Helmut Hlavacs
Klassifikationen
54 Informatik > 54.73 Computergraphik ,
54 Informatik > 54.87 Multimedia
AC Nummer
AC17594338
Utheses ID
76560
Studienkennzahl
UA | 066 | 921 | |