Thema:
Mal ein paar technische Gedanken zur Latenz flat
Autor: Spyro2000
Datum:20.03.19 21:59
Antwort auf:Stadia: Google steigt ins Videospiele-Geschäft ein von Kilian

Die Latenz gegenüber lokale Konsolen ist keineswegs unvermeidlich sondern Streaming könnte diese - theoretisch - in Zukunft sogar noch unterbieten.

Es gibt einige Stellschrauben, an denen man drehen kann:

1.) Reine Bandbreite:

Tippt man einfach mal "ping google.de" ein, so erhält man über einen üblichen DSL-Anschluss ca. 15-20 ms. Das ist also das theoretische Minimum für den Lag. Alles darüber ist die Übertragungszeit des Frames selbst, der erst dargestellt werden kann, sobald er vollständig übertragen wurde. Hat man nun mehrere hundert MBit/s oder mehr zur Verfügung, dann geht das natürlich dramatisch schneller als über einen schnarchlangsamen 16 MBit-Anschluss (auch wenn über diesen das selbe Material als passives Video kein Problem darstellt). Kleiner Trost: Die Leitung selbst wird über die Zeit betrachtet nur zu einem Bruchteil ausgelastet und bleibt zum Großteil frei für andere Anwendungen/Anwender. Wichtig ist hier nur, dass der Router die Latenz-kritischen Pakete bevorzugt behandelt (QoS).

2.) Gsync / FreeSync / Adaptive Sync / HDMI 2.1 VRR

Ein Frame kann auf einem "normalen" Display/TV nur alle 16 ms dargestellt werden. Wurde der passende Zeitpunkt verpasst, muss bis zum nächsten V-Blank gewartet werden, im ungünstigen Fall sind das weitere 16 ms. Über die oben genannten Techniken entfällt diese Wartezeit, ein Frame kann jederzeit an das Display übertragen werden und auch die Übertragung an sich geht schneller (die maximale Bandbreite der Verbindung zum Display kann unabhängig von Auflösung/Frequenz genutzt werden)


3.) Game-interne Latenz reduzieren

Moderne Spiele haben teilweise unglaublich hohe Verzögerungen intern, das können gerne mal 130-140 ms sein. Das hat ganz verschiedene Ursachen. Teilweise puffert die GPU Code über mehrere Frames hinweg und berechnet dann den Shader für mehrere Frames auf einmal. Dazu kommt oft noch Triple-Buffering um Ruckeln bei kleineren Performanceeinbrüchen kompensieren zu können. Nur wenige Spiele (z.B. Doom) aktualisieren kurz vor dem Absenden der fertig aufbereiteten Kommandos von der CPU an die GPU nochmal die Kamera ("View Matrix") um die gefühlte Verzögerung weiter zu reduzieren. Noch wesentlich weiter gehen moderne Algorithmen aus dem VR-Bereich (hier wird die View-Matrix teilweise sogar noch auf der GPU selbst im allerletzen Moment auf Basis eines aktualisierten Vorhersagemodells manipuliert).

4.) Lokales Time-/Spacewarping

Ebenfalls aus der VR bekannt. Der eigentlich längst fertig berechnete Frame wird lokal (noch während des Scanouts zum Display) nochmals trickreich verzerrt, um noch neuere Daten berücksichtigen zu können (betrifft im Moment ausschließlich den Blickwinkel und die Position der Kamera). Solche Techniken könnte man (mit Einschränkungungen) auch für das Streaming verwenden, sofern eine GPU verbaut ist die ca. auf der Höhe eines Mittelklasse-Smartphones liegen muss (schließt leider fast alle aktuellen SmartTVs und Googles Chromecast sowie Amazons FireTV aus, nicht jedoch z.B. Nvidias Shield).

5.) Rohe CPU/GPU-Power im Rechenzentrum

Will man in 60 fps zocken (und das sollte man, wenn man Latenz sparen will) muss das System pro ca. 16 ms einen Frame an das Display liefern, damit's nicht ruckelt (auch wenn es sich dabei oft um das Ergebnis von Eingabedaten von vor mehr als 100 ms handeln kann). Hat man jetzt im Rechenzentrum pervers schnelle Hardware zur Verfügung, könnte ein Frame theoretisch auch schon nach z.B. 2 ms fertig sein (und kann in der Zwischenzeit dann eben andere Clients bedienen, damit die teure Hardware nicht nur Däumchen dreht). Ist die Leitung schnell genug (und damit meine ich richtig schnell) könnte ein Frame theoretisch nur wenige Millisekunden später beim User eintreffen und wäre dabei gegenüber einer lokalen Berechnung nicht deutlich verzögert am Display zu sehen.

6.) Auto-Gamemode am TV

Wird ebenfalls mit HDMI 2.1 kommen. Ein Gerät kann dann dem Fernseher "empfehlen" das Signal unverändert und ohne Signaloptimierung etc. direkt darzustellen (das alleine senkt bei vielen TVs die Latenz durchaus mal um 50-150 ms). Verblüffend viele Spieler (wahrscheinlich sogar die überwältigende Mehrheit) wissen noch nicht mal, dass ihr TV einen Game-Mode hat und aktivieren ihn folglich heute auch nicht ohne dass es sie groß zu stören scheint. Diese Differenz (Game-Mode vs. "Cinema-Mode") ist insofern eine wertvolle "Latenzresource" wenn man sie ohne Eingriff des Users nützen könnte.


Es gibt wahrscheinlich noch weitere Möglichkeiten um die Latenz zu senken. Im Zeitraum von 2011-2015 hatte die VR-Bewegung das selbe Problem. Durch viele kleinere und einige größere Maßnahmen hat man die (wahrgenommene) Latenz von damals ca. 70 bis teilweise unter 5 (!) ms senken können. Solche Zahlen wird Streaming natürlich nie erreichen können. Aber den Vergleich zu einer Spielkonsole muss dieses Erlebnis eigentlich nicht scheuen, Technik wäre das tatsächlich drin. Zumindest, wenn die Leitung schnell genug ist (100 MBit/s aufwärts).

tldr; Durch einen ganzen Haufen technischer Einzelmaßnahmen und einen (aus heutiger Sicht) sehr schnellen Internetanschluss lässt die die wahrgenommene Latenz in absehbarer Zeit auf das Niveau einer Konsole reduzieren.


< antworten >