L’AMD FSR a révolutionné le paysage des GPU ces dernières semaines, rivalisant non seulement avec le DLSS de NVIDIA pour des images de plus haute résolution utilisant moins de ressources. Sinon aussi en raison de sa nature ouverte, qui lui permet d’être implémentée dans n’importe quel GPU quelle que soit son architecture.
Que sont les algorithmes de Super Résolution ?
Les algorithmes de super-résolution sont devenus très populaires ces derniers temps, en particulier ceux utilisant des réseaux de neurones convolutifs comme le DLSS de NVIDIA. La particularité de la solution AMD ? Le fait qu’il ne soit pas basé sur l’intelligence artificielle et qu’il n’ait donc pas besoin d’être entraîné avec un ensemble d’images précédentes du même jeu. Depuis un réseau de neurones convolutifs pour la vision par ordinateur, il apprend une série de modèles communs pour effectuer une reconstruction.
L’avantage de la méthode utilisée par AMD FidelityFX Super Resolution par rapport au DLSS lorsqu’il s’agit d’être implémenté dans n’importe quel jeu est que l’IA n’a pas tendance à générer les nouvelles images. Pour comprendre le concept, ce que nous devons faire, c’est imaginer que nous formons une IA avec un ensemble d’images avec un artefact ou une erreur d’image en commun. Ensuite, nous faisons en sorte que l’IA reproduise ces images ou leurs variantes. Comment il y a la tendance apprise pendant la phase d’apprentissage de l’IA à apprendre ces erreurs d’image les reproduira avec ladite erreur d’image.
Cela fait que dans un système de super résolution basé sur l’IA, vous pouvez tirer des conclusions qui ne sont pas exactes. C’est pourquoi les jeux sous le DLSS de NVIDIA sortent de manière contrôlée et au compte-gouttes, tandis que FidelityFX Super Resolution est un algorithme qui peut être appliqué à n’importe quel jeu.
Le FidelityFX Super Resolution est un algorithme spatial et non temporel
La méthode choisie par AMD est basée sur la prise des informations de la trame actuelle et uniquement de la trame actuelle, elle diffère donc des autres méthodes de mise à l’échelle de la résolution d’image telles que le rendu en damier. version de résolution de l’image actuelle, elle procède en partie de l’image précédente. Il manque donc ce que nous appelons la temporalité et prend les informations de trame à une résolution inférieure à celle que le GPU vient de générer pour créer la version à plus haute résolution de l’image.
Mais qu’entendons-nous par résolution ? Eh bien, au nombre de pixels qui la composent, donc lorsque nous augmentons la résolution d’une image, ce que nous faisons, c’est augmenter la quantité de ceux-ci, avec cela de nouveaux pixels sont générés qui occupent l’espace, mais dont nous ne connaissons pas la valeur en couleur . La solution la plus simple ? Utilisez des algorithmes d’interpolation, qui sont basés sur la peinture des pixels manquants avec des couleurs à mi-chemin des pixels voisins. Plus vous prenez de pixels voisins comme source d’informations, plus les informations seront précises.
Le problème est que l’interpolation brute n’est pas assez bonne et n’est pas utilisée, la qualité des images résultantes est très faible et diffère souvent de la réalité. Aujourd’hui, la plupart des applications d’édition d’images utilisent des algorithmes d’intelligence artificielle pour générer des versions à des résolutions plus élevées. Si l’on se concentre déjà exclusivement sur le FidelityFX Super Resolution, sa méthode pour obtenir les informations des pixels manquants n’est pas basée sur une interpolation directe, mais est plus complexe.
Cela augmente la résolution d’AMD FidelityFX Super Resolution
Nous allons nous en tenir à l’explication officielle donnée par AMD, que nous allons citer ci-dessous :
La super résolution FidelityFX se compose de deux étapes principales.
Ce qui veut dire qu’il s’agit de deux algorithmes consécutifs, qui s’exécutent l’un après l’autre ou plutôt, où le second prend les informations générées par le premier. Voyons quelles sont chacune de ces étapes.
Une passe de mise à l’échelle appelée EASU (Edge Adaptive Spatial Up Sampling), qui effectue également une reconstruction des bords. Dans cette étape, la trame d’entrée est analysée et la partie principale de l’algorithme détecte les inversions de gradient, en regardant essentiellement comment les gradients voisins diffèrent d’un ensemble de pixels d’entrée. L’intensité des inversions de gradient définit les poids qui seront appliqués aux pixels reconstruits à la résolution de l’écran.
Pour comprendre la citation, la première chose que nous devons savoir est à quoi se réfère l’explication avec la détection des contours dans une image. Pour ce faire, il s’agit d’une version noir et blanc de l’image finale, qui est au format RVB. Il s’agit donc d’additionner les valeurs de chacun des canaux et de diviser par 3 pour obtenir la valeur dans une image en noir et blanc. Si nous ne laissons dans l’image en niveaux de gris que les valeurs purement blanches, FFFFFF, ou purement noires 00000, alors nous obtiendrons une image qui délimitera les bords.
Dans la super résolution AMD FidelityFX, il exécute l’image générée par la détection des contours à une résolution de sortie bien supérieure à celle qui a été rendue à l’origine, mais qui correspond à la résolution de sortie que vous souhaitez atteindre. Tout cela sera combiné avec un tampon d’image qui stocke les changements de gradient de chacun des pixels. Qui mesure les changements d’intensité de couleur entre les pixels. Cette information est combinée à l’interpolation classique pour obtenir l’image à une résolution plus élevée.
Une étape de netteté appelée RCAS (Robust Contrast Adaptive Sharpening) qui extrait les détails des pixels dans l’image améliorée.
L’image générée dans la première étape est améliorée par une version modifiée de Contrast Adaptive Sharpening, le résultat final est une image à mi-chemin entre l’interpolation pure et dure et celle de l’intelligence artificielle.