Effizientes Video-Streaming für hochgradig interaktive 3D-Anwendungen

Effizientes Video-Streaming Netzwerk
© Fraunhofer HHI
Effizientes Video-Streaming Netzwerk

Die Fernvisualisierung interaktiver 3D-Anwendungen mit hoher Qualität und geringer Verzögerung ist ein langjähriges Ziel. Ein Ansatz, um die allgegenwärtige Nutzung von 3D-Grafikanwendungen auch auf computerschwächeren Endgeräten zu ermöglichen, ist die Ausführung der Anwendung auf einem Server und die anschließende Weitergabe der audiovisuellen Ausgabe als Videostream an den Client. Im Gegensatz zur Videoübertragung erfordern interaktive Anwendungen wie Computerspiele eine extrem geringe Verzögerung bei der End-to-End-Übertragung. Am Fraunhofer HHI wird dafür ein erweitertes H.264-Videocodec für effizientes und verzögerungsarmes Videostreaming verwendet. Aufgrund der Tatsache, dass die rechenintensive Videocodierung parallel zur Anwendung ausgeführt wird, wurden mehrere Optimierungen entwickelt, um die Rechenlast zu verringern. Die Hauptidee besteht darin, Informationen aus dem 3D-Darstellungskontext zu nutzen, die für die generische Videokodierung nicht verfügbar sind:

Modifikation des Sichtfensters

Anpassung des Sichtfensters des Spiels, um Bildsequenzen zu generieren, die optimal an die Fähigkeiten des Clients angepasst sind.

Direkte Bewegungsvektorberechnung und Aufteilung in Makroblöcke

Auf der Grundlage von Tiefenkarten und Transformationsmatrizen wird das aktuelle Bild aus dem vorherigen vorhergesagt, wodurch die normalerweise rechenintensiven Bewegungssuchalgorithmen generischer Videokodierer beschleunigt werden. Neben der effizienten Berechnung von Bewegungsvektoren wurden auch schnelle Erfassungsmethoden für die benötigten zusätzlichen Rendering-Kontextinformationen entwickelt.

GPU-gestützte Vorverarbeitung

Farbraumkonvertierung und Unterabtastung (RGB 4:4:4 —> YCbCr 4:2:0) können auf der GPU ausgeführt werden, wodurch die Parallelverarbeitungsfähigkeiten moderner GPUs ausgenutzt und die Datenmenge, die von der GPU zur CPU übertragen werden muss, reduziert wird - zusätzliche Beschleunigungen um den Faktor 10 werden durch die Berechnung der Bewegungsvektoren direkt auf der GPU erreicht.

Client mit geringer Verzögerung

Da gängige Videodecoder für eine zuverlässige Wiedergabe mit erheblicher Pufferung optimiert sind, wurde ein Videoclient entwickelt, der für eine geringe Verzögerung bei minimaler Pufferung optimiert ist. Die Optimierungen haben zu Zeiteinsparungen von bis zu 30 % geführt. Bei SVGA-Auflösungen (800 x 600) beträgt die Verzögerung zwischen der serverseitigen Bilderzeugung und der clientseitigen Bilddarstellung (einschließlich Erfassung, Kodierung, RTP-Übertragung an den lokalen Host, Dekodierung und Rendering) auf einem Pentium-PC mit 2,4 GHz weniger als 40 ms.

Projekte effizientes Video-Streaming
© Fraunhofer HHI
Projekte effizientes Video-Streaming