Introduction
AMD FidelityFX Super Resolution 2.0 (FSR 2.0) est disponible à partir de demain 12 mai, avec la dernière version de « Deathloop ». Annoncé plus tôt ce printemps, FSR 2.0 est une mise à jour majeure de l’amélioration des performances d’AMD rivalisant avec NVIDIA DLSS, qui vous permet d’améliorer les fréquences d’images avec une perte minimale de qualité d’image. FSR et DLSS fonctionnent tous deux sur le principe de faire en sorte que le jeu rende tout sauf le HUD et le post-FX à une résolution inférieure à celle de l’affichage et de le mettre à l’échelle à l’aide d’algorithmes sophistiqués qui donnent à la sortie l’impression d’être rendue au format natif. résolution. AMD et NVIDIA empruntent des voies différentes pour atteindre cet objectif.
Dans cette revue, nous comparons FSR 2.0 et ses différents niveaux de performances avec la qualité d’image de FSR 1.0 et NVIDIA DLSS / DLAA.
Récapitulatif FSR 1.0
Commençons par une rapide leçon d’histoire. La première version d’AMD de FidelityFX Super Resolution, alias « FSR 1.0 » (notre test), lancée il y a environ un an, ne prend en compte que l’image actuellement affichée et la met à l’échelle à l’aide de l’algorithme de Lanczos. Même s’il s’agit d’une approche relativement simple, les résultats ont été étonnants, surtout compte tenu de la complexité limitée de l’algorithme. Travailler avec une seule image signifie que FSR 1.0 n’avait que des informations limitées sur lesquelles travailler – c’était l’argument le plus fort de NVIDIA pour DLSS. DLSS, d’autre part, prend une séquence d’images, c’est-à-dire qu’il a connaissance de l’historique récent, ce qui lui donne des informations supplémentaires qu’il fusionne dans la trame de sortie unique, ce qui en fait plus qu’un upscaler. L’inconvénient de tels algorithmes temporels est que la scène d’un jeu vidéo n’est pas statique et change plutôt tout le temps, ce qui peut souvent conduire à des artefacts fantômes, mais nous en reparlerons plus tard.
FSR 2.0
Afin de générer une meilleure image de sortie, FSR a besoin de plus de données, c’est pourquoi AMD a créé un algorithme de mise à l’échelle temporelle qui est conceptuellement à peu près similaire au DLSS 2.0 de NVIDIA. Tout comme FSR 1.0, FSR 2.0 est une technologie basée sur les shaders, qui s’appuie sur des shaders programmables et est donc indépendante du matériel. Elle est conçue pour fonctionner sur tout le matériel, même les cartes graphiques de NVIDIA et Intel. DLSS, d’autre part, est une technologie exclusive à NVIDIA qui utilise les cœurs Tensor optimisés pour les mathématiques par l’IA disponibles dans les nouvelles générations de matériel NVIDIA.
Sous le capot, FSR 2.0 utilise toujours l’algorithme Lanczos pour mettre à l’échelle l’image basse résolution à la taille de rendu finale. Au lieu de prendre uniquement l’image actuelle en entrée, les données de plusieurs images sont combinées dans un seul tampon, qui est ensuite mis à l’échelle à l’aide de Lanczos. Les images que les développeurs de jeux transmettent à FSR doivent être légèrement instables, ce qui signifie que la caméra se déplace d’une toute petite quantité de la taille d’un sous-pixel pour capter des informations supplémentaires pour chaque image. FSR attribuera ensuite un score « d’importance » à chaque pixel qui prend non seulement en compte l’ancienneté de cette information, mais également la distance par rapport au pixel cible.
FSR 2.0 se trouve au même endroit dans le pipeline de rendu du jeu que FSR 1.0. Il prend en compte la scène 3D (« Color Buffer ») rendue par le jeu à une résolution inférieure, tout comme FSR 1.0. Ce qui est nouveau, c’est que les développeurs de jeux alimentent désormais également l’algorithme en vecteurs de mouvement et en informations de profondeur, tout comme dans DLSS 2.0.
Les vecteurs de mouvement sont une information qui exprime comment la scène a changé d’une image à l’autre. Par exemple, lorsque le joueur effectue un panoramique de la caméra dans un jeu à la première personne, l’ensemble de « l’écran » se déplace dans une direction spécifique, qui est codée dans les vecteurs de mouvement. Ce qui est également stocké, c’est la façon dont des éléments tels que les ennemis et les objets animés de la scène se sont déplacés. Fondamentalement, il s’agit d’une carte de pixels contenant des données pour chaque pixel, d’où il s’est déplacé entre deux images consécutives.
Le tampon de profondeur est utilisé pour exprimer la distance de la caméra pour chaque pixel à l’écran. L’image de l’écran sur votre moniteur n’est constituée que de nombreux pixels colorés, votre cerveau détermine alors quels objets vous êtes censé voir et à quelle distance ils se trouvent. Pour faciliter le calcul des distances par FSR, le tampon de profondeur est généré par le jeu et contient un nombre pour chaque pixel qui ne représente pas sa couleur, mais la distance à l’objet visible sous-jacent à la place. Ces informations sont utilisées par FSR 2.0 pour éliminer les artefacts fantômes.
Artefacts fantômes
Pour résoudre le problème des images fantômes, AMD utilise les informations du tampon de profondeur pour calculer une liste de pixels qui se sont déplacés de telle manière qu’ils révèlent un objet différent plus éloigné. Imaginez une voiture rouge roulant dans une scène d’hiver. Au fur et à mesure que la voiture se déplace sur l’écran, certains pixels rouges deviendront blancs, révélant la neige dont la voiture s’est éloignée, ce qui s’appelle « désocclusion », peut-être que « découvrir » ou « révéler » est un mot plus accessible pour décrire ce qui se passe. Si les informations temporelles des images précédentes sont utilisées naïvement, plusieurs positions précédentes de la voiture feront partie de l’image actuelle : vous verrez une traînée rouge suivre la voiture – ce sont les artefacts fantômes dont tout le monde a peur. Pour ces pixels qui sont révélés, aucune information d’historique n’existe, donc AMD supprime la majeure partie de l’historique pour eux. Pourquoi « la plupart » de l’histoire et pas tout ? Ils affirment que cela rend la désocclusion plus fluide même si cela crée des images fantômes très mineures et imperceptibles. Ils utilisent également un flou supplémentaire autour de ce pixel pour apporter rapidement de nouvelles informations à partir des pixels environnants.
Caractéristiques minces
Les objets qui apparaissent très étroits à l’écran, comme les fils ou la géométrie vus sous un angle prononcé, constituent un autre défi pour les algorithmes de mise à l’échelle. Avec la façon dont les algorithmes temporels saisissent les informations à des points légèrement différents dans l’espace entre chaque image (« jittering »), cela se traduira par des pixels instables qui scintillent car les informations échantillonnées « sautent » entre deux objets avec des couleurs complètement différentes.
Pour résoudre ce problème, AMD détecte ces fines « crêtes de pixels » et les verrouille, de sorte qu’elles deviennent plus prononcées et semblent stables. Bien sûr, ces verrous doivent être libérés lorsque la scène se déplace, et également lorsque l’algorithme de désocclusion détecte que quelque chose d’autre est devenu visible à cet endroit.
Mise à l’échelle dynamique de la résolution
AMD a accordé beaucoup d’attention à la capacité de FSR 2.0 à prendre en charge la mise à l’échelle dynamique de la résolution. DRS est le moment où vous pouvez alimenter plusieurs images d’entrée à différentes résolutions dans l’algorithme et la sortie peut toujours être construite sans jeter les informations précédentes qui ont été enregistrées à une résolution différente. Cela permet des ajustements de résolution en temps réel. Par exemple, lorsqu’une explosion se produit, la fréquence d’images chute pendant un moment, tandis que les choses explosent, ce qui peut souvent être perçu comme un bégaiement. Avec une résolution dynamique, ces images peuvent être rendues à une résolution inférieure, ce qui se traduit par une expérience plus fluide grâce à un FPS plus élevé, et lorsque les choses se sont refroidies, le jeu peut à nouveau augmenter automatiquement la résolution de rendu. Une autre application consisterait à effectuer un rendu à une résolution inférieure lorsque le joueur se déplace, afin que les choses paraissent fluides, et à augmenter la résolution lorsque le joueur est immobile et a le temps de regarder l’image de plus près.
Pour résoudre ce problème, l’algorithme FSR 2.0 enregistre les informations utilisées dans les images suivantes à la résolution native, qui reste constante même pendant la mise à l’échelle de la résolution.
Affûtage
Tout comme FSR 1.0, FSR 2.0 offre une passe d’affûtage supplémentaire. Contrairement à FSR 1.0, la netteté peut être activée, désactivée et sa force ajustée indépendamment du mode FSR réel. L’algorithme est la même méthode RCAS (Robust Contrast Adaptive Sharpening) que pour FSR 1.0.
Modes
Tout comme FSR 1.0, il existe de nombreux « modes » parmi lesquels vous pouvez sélectionner dans les paramètres d’un jeu pris en charge, qui modifient les niveaux de qualité en ajustant la résolution à laquelle le jeu est réellement rendu. Vous êtes fait pour échanger la qualité contre la performance à chaque étape. Dans Deathloop, les modes disponibles sont « Qualité », Équilibré » et « Performance. » « Ultra Quality » de FSR 1.0 a été supprimé car il s’agissait simplement de « Qualité » avec « Netteté », qui peut désormais être ajusté séparément.
Si vous ne savez pas quel mode choisir, vous pouvez utiliser l’option « Résolution adaptative », qui est la mise à l’échelle de la résolution dynamique dont nous venons de parler. Ici, le moteur de jeu ajuste dynamiquement la résolution de rendu en fonction de la complexité de la scène 3D pour favoriser une cible de fréquence d’images. Vous pouvez également limiter le mode de résolution adaptative pour qu’il ne descende pas en dessous de 50 %, 75 % ou 85 % de la résolution de l’écran, afin que la qualité de votre image ne souffre pas trop.
Voici une liste des différents modes et de leurs facteurs d’échelle. Le mode « Ultra Performance » n’est pas disponible dans Deathloop (du moins pas pour le moment).
IA non requise
Tout comme FSR 1.0, le nouveau FSR 2.0 ne tire pas parti de l’apprentissage automatique de l’IA, il n’a donc pas besoin de machines d’accélération de l’IA sur le GPU, contrairement à DLSS, qui [at least officially] nécessite des GPU avec des cœurs Tensor (GeForce RTX uniquement). Cela signifie que FSR 2.0 fonctionnera sur les GPU NVIDIA GeForce, et de plus, AMD le rend même open source sur GPU Open, de sorte que tout développeur de jeu ou étudiant peut l’avoir sous une licence MIT, ce qui permet des modifications de l’algorithme. La bienveillance d’AMD est calculée car elle veut faire à DLSS ce que FreeSync a fait à G-SYNC (survendu G-SYNC en raison de la nature libre de droits et de la simplicité de conception). Juste pour clarifier, dans ce cas, DLSS est libre de droits, tout comme FSR, mais ce n’est pas open source et seul NVIDIA est capable d’apporter des modifications et sait comment fonctionnent les algorithmes.
Il y a encore quelques recommandations minimales, alors ne sortez pas encore votre GeForce Fermi. Pour 4K (c’est-à-dire une mise à l’échelle vers 4K), vous aurez besoin d’au moins une Radeon RX 5700 ou GeForce RTX 2070 ; pour 1440p, il est recommandé d’utiliser au moins un RX 5600 ou GTX 1080, et pour 1080p, il est recommandé d’avoir au moins un RX 590 ou GTX 1070. La technologie elle-même prend en charge les cartes graphiques jusqu’au RX 500 série « Polaris ».