Special: Nvidia DLSS (Hardware)

von Marcel Kleffmann



Hardware
Entwickler: Nvidia
Publisher: Nvidia
Release:
kein Termin
Spielinfo Bilder  
Hintergründe: Was ist DLSS?

DLSS steht für Deep Learning Super Sampling. Die beiden Begriffe Deep Learning und Super Sampling sollen zunächst kurz erklärt werden. Es gilt: Die nachfolgenden Darstellungen sind verkürzt und vereinfacht.

Deep Learning

Deep Learning ist eine Methode des maschinellen Lernens, die auf künstlichen neuronalen Netzen basiert. Diese Netzwerke bekommen möglichst viele Daten als Input serviert und bilden auf Basis des internen Lernvorgangs selbstständig zahlreiche (versteckte) Zwischenschichten aus und liefern abschließend eine oder mehrere Ausgaben.

Bei DLSS wird das neuronale Netzwerk mit sehr großen Bilddaten (hohe Auflösung) gefüttert, um Bildinhalte zu lernen, die für eine Hochskalierung relevant sind. So erlernt es selbstständig versteckte Zusammenhänge oder Merkmale in den Daten, die immer wieder mit dem "Ground Truth" verglichen und optimiert werden. Der "Ground Truth" ist ein extrem großes Ausgangsbild (16K-Auflösung). Die Ausgaben des KI-Netzwerks (2K-Auflösung) werden immer wieder mit diesem Ausgangsbild verglichen. Dieser sehr rechenaufwändige Vorgang wird etliche Male wiederholt. Das geschieht bei Supercomputern bei Nvidia und musste vor DLSS-Version 2.0 für jedes Spiel neu trainiert werden. Mit Version 2.0 wurde auf "ein Bild für alles" umgestellt, was die Implementierung für die Entwickler vereinfacht hat. 

Die "erlernten" Merkmale werden zusammengefasst und z.B. als Profile im Grafikkartentreiber (NGX: Neural Graphics Framework) gespeichert und auf die vom Grafikprozessor erzeugten Bilder via Upscaling-Software angewandt. Auf dem heimischen Rechner wird also kein Training für Deep Learning durchgeführt, vielmehr werden die auf dem Nvidia-Supercomputer erlernten Ergebnisse angewandt.

Super Sampling

So stellt Nvidia die Funktionsweise von DLSS und das Training bzw. den KI-Lernvorgang vor.
So stellt Nvidia die Funktionsweise von DLSS und das Training bzw. den KI-Lernvorgang vor.
Super Sampling ist eine Methode aus dem Bereich der Kantenglättung (Anti-Aliasing), um gezackte oder pixelige Kanten zu reduzieren, die oft wie Treppeneffekte aussehen (Quelle: Viscircle). Die Idee hinter Super Sampling ist (vereinfacht gesagt), dass ein Bild in einer höheren Auflösung als die Ausgabe-/Zielauflösung berechnet wird - was natürlich deutlich mehr Leistung kostet. Im Anschluss wird die Auflösung wieder reduziert, wobei zur Berechnung der Farbwerte der einzelnen Pixel jeweils gemittelte Farbwerte herangezogen werden, die so sanftere Übergänge entlang einer Farbkante erzeugen. Bei Super Sampling gibt es auch eine "temporale" Variante, die nicht auf der räumlichen Position von Pixeln basiert, sondern auf ihrem zeitlichen Verlauf - also auf Pixeln, die aus dem vorher berechneten Bild in die Berechnung des neuen Bildes einbezogen werden. Durch diese zusätzlichen Zeit-Informationen werden Ghosting-Artefakte (schattenhafte Bewegungen) reduziert.

Bewegungsvektoren

Die früheren Versionen von DLSS hatten Probleme mit Bewegungen hinter Gitter-Strukturen und generell bei Haaren. Hier am Beispiel von Control. Ganz unten kam DLSS 2.0 zum Einsatz.
Die früheren Versionen von DLSS hatten Probleme mit Bewegungen hinter Gitter-Strukturen und generell bei Haaren. Hier am Beispiel von Control. Ganz unten kam DLSS 2.0 zum Einsatz.
Bei DLSS kommen an dieser Stelle die Bewegungsvektoren ins Spiel, also die Bewegungsrichtung von Pixeln, die zusätzlich zur Projektion und zur Berechnung des neuen Bildes genutzt werden. Somit stehen beim Upscaling-Vorgang mehr Informationen bei sich bewegenden Objekten zur Verfügung, was die Qualität und die Stabilität des Endbildes verbessert.

In Control konnte man z.B. verwaschene und unscharfe Haare bei der Hauptfigur und unscharfe bzw. flimmernde Netz-/Gitterstrukturen bei der Nutzung von DLSS 1.X erkennen. Nach dem Upgrade auf Version 2.0 gehören solche Fehler oft der Vergangenheit an, da der DLSS-Upscaler zusätzlich mit den Bewegungsvektoren gefüttert wird. Allerdings müssen die Spiele-Entwickler diese Daten, die meist schon irgendwo im Spiel bzw. in der Engine vorliegen (z.B. bei TAA), entsprechend weitergeben, was eine händlische Implementierung von DLSS nötig macht - wobei in der Zwischenzeit schon ein DLSS-Plug-Ins für die Unreal Engine 4 zur Verfügung steht.

Kommentare

AdrianVeidt schrieb am
Oh.. Abschiedsvideo und Kolumne von gestern wieder gelöscht?
Chibiterasu schrieb am
Danke für den Artikel!
Für mich bleibt das spannend, dass ein Prozedere mit dem Pixel durch eine KI dazu"erfunden" werden, effizienter ist als das Ding einfach höher aufgelöst zu berechnen. Versteh schon langsam warum, aber es bleibt cool.
Werde ich mit meiner 3060 TI sicher viel nutzen.
NewRaven schrieb am
Some Guy hat geschrieben: ?27.10.2021 19:45 Darf jeder in der Redaktion jetzt nochmal machen worauf er Bock hat oder wieso gibt es jetzt nochmal VR-Zeug von Jan und sowas hier? Jetzt vermisst man euch ja noch mehr wenn hier nochmal so Bomben rausgehauen werden...
Vermutlich sind das Dinge, an denen schon ein bisschen gearbeitet wurde und die jetzt "noch raus" mussten. Was irgendwie schön und traurig zugleich ist...
Vin Dos schrieb am
Oh ja, stimmt...dieses AMD Fidelity Ding.
Edit: War natürlich das beste Beispiel :ugly: . Hab nochmals ein bißchen gegoogled und auf PCGH ein paar gute Beispiele gefunden. In dem Text wird ein "brößeln" erwähnt. Das ist eigentlich genau der Effekt den ich beschreiben wollte.
https://www.pcgameshardware.de/Nvidia-G ... 1346257/2/
schrieb am