Wie geht das bei den Grafikkarten technisch?

4 Antworten

Das gibt es schon seit vielen Jahren. Gerade Emulatoren konnten Upscaling über Algorithmen um Pixel dazuzudichten wo welche sein müssten schon sehr sehr lange. Solltest mal ein paar gute SNES Emulatoren sehen, die habe da richtig gute Algorithmen damit das nicht zu pixelig mehr ist. Das macht aus Pixelgrafik fein gerenderte Comicgrafik.

Bei Nvidia nennt sich das DLSS und nutzt KI Algorithmen. AMD hat dafür das FSR / RSR etwas später nachgezogen. Am Ende sind beides nur komplexe Algorithmen die "Pixel raten" durch Wahrscheinlicheitsbildung. Das können sie aber mittlerweile sehr gut, aber eben nicht perfekt.

Das Bild wird dann bspw. mit nur 1/4 der Pixel berechnet, und der Algorithmus dichtet die fehlenden Pixel dazwischen dazu in dem es gelegentlich Vollbilder rendert und die Algorithmen vergleichen diese und lernen welche Objekte typisch sind und wie sie hochgerendet aussehen müssen aus diversen Winkeln, also welche Pixel da sein müssten aber fehlen. Wiederkehrende Objekte erkennt der Algorithmus dann wieder und kann dann sofort die Pixel schätzen. Der Algorithmus lernt also dazu, zumindest vorrübergehend für das Spiel während der Laufzeit, daher sprechen wir oft von einer "KI". Aber mit "Intelligenz" hat das immer noch wenig zu tun.

Upscaling funktioniert besser umso höhere Auflösung du betreibst am Monitor, weil Pixelfehler je nach Qualität nicht vermeidbar sind. Bei hohen Auflösungen siehst du die Pixelfehler weniger als bei niedrigen Auflösungen. Wenn du also einen 4K Bildschirm hast und auf Qualität upscalest musst du schon sehr genau hinschauen und mit nativen Bildern vergleichen um die Fehler zu finden. Wenn du nur Full-HD hast und dann upscaling einsetzt, naja, wirds deutlicher. Upscaling lohnt sich daher eher für 2K Bildschirme und aufwärts.

Aber genau da braucht man es auch. Wenn man von einem 1K Bildschirm auf 4K umsteigt, braucht man mal eben bis zu viermal soviel Rechenleistung bei der GPU. Upscaling kann dem daraus resultierenden FPS Verlust dann erhebliche dämpfen und dem entgegenwirken. FSR und DLSS können Frameraten mal eben im Qualitätsmodus grob verdreifachen, ohne merklichen optischen Unterschied zwischen nativen und hochgerechnetem Bild.

Hab Robocop Rogue City in 4K nativ gespielt mit meiner 7900 XTX. 50-90 Bilder pro Sekunde. Zweiter Durchlauf mit FSR3 im Qualitätsmodus sauber zwischen 130-250 FPS. Und es gab nur eine Stelle wo mir Pixelfehler aufgefallen sind (war auf dem nassem Asphalt in Old Detroit, da gab es ein kleines Pixelmuster was leicht unatürlich aussah und ich wusste aus dem 4K nativ, das ist nicht original, da hat sich der Algorithmus also vertan). Sonst nichts, alles perfekt. Wenn ich also ohnehin auf 144 FPS limitiere, spare ich mit FSR am Ende sogar Strom.

Die Grafikkarte braucht halt wirklich deutlich weniger Rechenleistung wenn sie nur ein 2D Bild nachträglich hochskalieren muss, als wenn sie das volle Bild in hoher Auflösung echt rendern müsste anhand der 3D Koordinaten und dann noch Shaderfilter und Postprocessing drüberjagen muss.

Es gibt übrigens auch für diverse Videoabspielprogramme wie VLC oder Media Player Classic supersampling / upscaling Filter. Die können dir in Echtzeit aus 720p Filmaterial mal eben 1080p machen, und du siehst zu dem originalem 1080p keinen Unterschied. Kostet halt zusätzliche CPU Rechenleistung und damit Strom, spart aber Platz auf der Festplatte oder kann schlechteres Filmmaterial für bessere Bildschirme nachträglich hochskalieren, damit es besser aussieht. Hier gilt aber, umso größer die Differenz, desto wahrscheinlich Pixelfehler. Zeichentrick und Animes funktionieren besser als normale Filme, da die Filter das klarer abgrenzen können.

Die Anzahl der Pixel die berechnet werden müssen steigt im Quadrat zur "Breite" und. "höhe" des Bildes. Doppelt so breit und hoch bedeutet 4× so viele Pixel.

Wenn man also statt 4k Auflösung nur 1k (Full-HD) berechnen muss, ist die Menge an Rechenleistung die man dafür braucht nur ein kleiner Bruchteil.

Umgekehrt kann man dann viel mehr Bilder pro Sekunde berechnen oder viel gründlichere Berechnungen pro Pixel durchführen.

Man muss hier jetzt auch Unterscheiden was die KI eigentlich macht. KI ist nicht gleich KI.

Stable Diffusion wo man eingibt "Pferd im Weltraum" durchsucht eine Datenbank mit tausenden und Millionen Bildern welche alle "Pferd" und "Weltraum" in der Beschreibung haben, sucht Gemeinsammkeiten und malt dann Teile dieser gefundenen Bilder unscharf zusammen und wiederholt die Prozedur bis man ein scharfes Bild heraus bekommt.

Die KI die die Auflösung erhöht geht nicht hin und versucht das Pferd zu erkennen und dann ein neues Pferd aus der Datenbank von Millionen von Bildern her zu stellen.

Die sieht die Formen die die wenigen Pixel darstellt und übermalt die nach bestimmten Regeln die für das Menschliche Auge gut und schön aussehen. Das hat mit KI eigentlich nichts zu tun, aber KI ist ja ein aktuelles Buzzwort um Kunden was aufzuschwatzen.

Was da passiert ist vergleichbar wie mit den ersten Weltraumbildern von Sonden. Die sehen alle toll und beeindruckend aus, wurden aber meistens mit sehr groben Sensoren aufgenommen und dann von einem Künstler überarbeitet.

Bei den ersten Mondsonden wurden nur sehr wenige Pixel aufgenommen. Die Techniker haben dann die Bilddaten auf einem Fernschreiber mit gedruckt. Da gab es nur Werte zwischen 0 und 7. Dann haben die mit Buntstiften die Zahlen übermalt und konnten so direkt in kürzester Zeit das aufgenommene Bild sehen.

Nach einem Stundenlangen Prozess hat ein Filmbelichter ein sehr ähnliches Bild ausgespuckt. Das wurde dann von Künstlern mit Aquarellfarben übermalt um daraus dann ein "schönes" Landschaftsbild her zu stellen.

Auch die Bilder der Voyager Sonden die wir alle kennen sind von Künstlern übermalt. Die Rohdaten sind extrem Pixelig und hässlich.

Und genau das macht die Grafikkarte auch. Da wird das niedrig aufgelöste Bild dann übermalt wie es ein Künstler auch machen würde. Also geschwungene Pinselstriche drüber legen um die Ecken und Kannten der Pixel aus zu gleichen.

Woher ich das weiß:Berufserfahrung

Streng genommen war es bereits schon vor etwa 10 Jahren ein besonders großer Meilenstein Nvidias Gaming-Effizienz, durch eine Art KI-Vorläufer im Spiel ohnehin nicht sichtbare Texturen und Triangles in der Pipeline beim Echtzeit-Durchlauf einfach aus der Line heraus filtern zu lassen. Dazu begann sich für NVidia zunehmend auch der Kauf der Ageia-Physikberechnungstechnologie über den Grafikprozessor zunehmend auszuzahlen.

Was nicht komplett für jedes Einzelbild fertig neu berechnet werden musste, sparte den GeForce-Grafikprozessoren schon seit Maxwell und Pascal gegenüber AMD erheblich an Berechnungsaufwand.

Im zweiten Verbesserungsschritt des "Downsizing" bzw. später als DLSS bekannt gewordenen Algorithms' war NVidia auch führend.

Moderne RTX-Grafikprozessoren enthalten neben den damaligen Grundlagen wie Shader/Alus, ROPs u.Ä. zudem auch immer mehr und mächtigere Spezialprozessoren für Tensor, Machine-Learning, Raytracing und anderen Special-Features.

Oder anders herum gesagt, bauen die momentanen GPU-Hersteller derzeit in ihren Grafikprozessoren immer mehr möglichst simple und effiziente Co-Prozessoren für allerlei Features dahingehend ein, was sich mit besonders wenig Aufwand möglichst einfach parallelisiert über möglichst viele parallel geschaltene Cores nebenher mit und dazu noch höchst effizient berechnen lässt.

Das nennt sich bei KI für Gaming bei Nvidia "Deep Learning" in Kombination aus besonderen Special-Cores samt der Nvidia Treiber- / und Funktionssoftware im Paket.

Deswegen kosten modernere Grafikkarten auch entsprechend mehr Geld als früher, weil sie in sich immer komplexer werden.

Nun, das kommt so ein bisschen drauf an für was du sie benutzt und wie "groß" die KI dahinter sein muss.

Grundsätzlich sind deep learning Modelle, auch für Bilder nichts weiter als ganz ganz viele Matrix-Multiplikationen - nichts weiter.

Das ist gleichzeitig Segen und Fluch, weil einerseits dadurch niemand versteht was in dem Modell gerade passiert, andererseits jedoch man quasi nur einen Chip bauen muss, der diese eine Sache besonders gut kann.

Und das Nvidia eben seit 2017 in ihre Architekturen eingebaut.

In den GPUs werden extra sog. Tensor-Cores eingesetzt, das sind quasi Kerne die nur für Matrix-Multiplikationen gemacht sind, und darin richtig schnell sind.

Tensoren sind die Basis Datenstruktur welche man in neuronalen Netzen verwendet, und sind quasi einfach nur Matrizen mit extra dimensionen.

Und diese Kerne machen nichts außer den aktuellen Input zu nehmen, und quasi damit die nächsten Frames vorherzusagen, und das klappt auch ziemlich gut.

Es sei zudem angemerkt, dass die Vorhersage nicht das ist was groß Leistung braucht, sondern das Training des Modells dafür, und du bekommst auf deiner GPU quasi schon ein vortrainiertes Modell mitgeliefert, dass u.u. bei einem Treiberupdate dann ausgetauscht wird.

Die eigentliche Vorhersage ist dann weniger das Problem.

Und im übrigen sind diese Frame Generation Dinge und upscaling nicht ohne Probleme und erzeugen spürbare Latenzen. Daher finde ich es auch sehr ärgerlich wie undurchsichtig Nvidia damit Marketing macht.

Dann kommen solche Dinge bei raus wie "die rtx 5070 ist stärker als die 4090" was nur der Fall ist wenn man jede dieser Techniken anmacht.