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.
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.
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.