Nvidia a présenté cette semaine sa nouvelle méthode de compression de texture qui offre une résolution quatre fois plus élevée que les méthodes traditionnelles de codage par troncature de bloc (BTC, BC) tout en ayant des exigences de stockage similaires. Le concept de base de l’approche proposée est de compresser collectivement plusieurs textures matérielles et leurs chaînes mipmap, puis de les décompresser à l’aide d’un réseau de neurones formé pour un motif particulier qu’il décompresse. En théorie, la méthode peut même impacter les futures architectures GPU. Pourtant, pour l’instant, la méthode a des limites.
Nouvelles exigences
Les progrès récents du rendu en temps réel pour les jeux vidéo se sont approchés de la qualité visuelle des films grâce à l’utilisation de techniques telles que l’ombrage physique pour la modélisation photoréaliste des matériaux, le lancer de rayons, le traçage de chemin et le débruitage pour un éclairage global précis. Pendant ce temps, les techniques de texturation n’ont pas vraiment progressé à un rythme similaire, principalement parce que les méthodes de compression de texture sont restées essentiellement les mêmes qu’à la fin des années 1990, ce qui explique pourquoi, dans certains cas, de nombreux objets semblent flous à proximité.
La raison en est que les GPU s’appuient toujours sur des méthodes de compression de texture basées sur des blocs. Ces techniques ont des implémentations matérielles très efficaces (car le matériel à fonction fixe pour les prendre en charge a évolué pendant plus de deux décennies), un accès aléatoire, une localité des données et une qualité presque sans perte. Cependant, ils sont conçus pour des taux de compression modérés entre 4x et 8x et sont limités à un maximum de 4 canaux. Les rendus en temps réel modernes nécessitent souvent plus de propriétés matérielles, ce qui nécessite plusieurs textures.
La méthode Nvidia
C’est là que la compression neurale à accès aléatoire des textures matérielles de Nvidia (s’ouvre dans un nouvel onglet) (NTC) entre en jeu. La technologie de Nvidia permet deux niveaux de détail supplémentaires (16 fois plus de texels, donc une résolution quatre fois plus élevée) tout en maintenant des exigences de stockage similaires à celles des méthodes de compression de texture traditionnelles. Cela signifie que les textures compressées avec optimisation par matériau avec des résolutions allant jusqu’à 8192 x 8192 (8K) sont désormais possibles.
Pour ce faire, NTC exploite les redondances spatialement, à travers les niveaux de mipmap et à travers différents canaux matériels. Cela garantit que les détails de la texture sont préservés lorsque les spectateurs sont à proximité d’un objet, ce que les méthodes modernes ne peuvent pas permettre.
Nvidia affirme que les textures NTC sont décompressées à l’aide d’un matériel de multiplication matricielle tel que des cœurs de tenseur fonctionnant de manière coopérative SIMD, ce qui signifie que la nouvelle technologie ne nécessite aucun matériel spécial et peut être utilisée sur pratiquement tous les GPU Nvidia modernes. Mais peut-être que la plus grande préoccupation est que chaque texture nécessite son propre réseau de neurones optimisé pour se décompresser, ce qui impose une charge supplémentaire aux développeurs de jeux.
Nvidia indique que la qualité de texture résultante à ces débits extrêmement bas serait comparable ou meilleure que les normes de compression d’image récentes, telles que AVIF et JPEG XL, qui ne sont de toute façon pas conçues pour la décompression en temps réel avec un accès aléatoire.
Avantages et inconvénients pratiques
En effet, les images présentées par Nvidia montrent clairement que NTC est meilleur que les technologies traditionnelles basées sur le Block Coding. Cependant, Nvidia admet que sa méthode est plus lente que les méthodes traditionnelles (il a fallu 1,15 ms à un GPU pour restituer une image 4K avec des textures NTC et 0,49 ms pour restituer une image 4K avec des textures BC), mais il fournit 16 fois plus de texels mais avec un filtrage stochastique .
Alors que NTC est plus gourmand en ressources que le filtrage de texture accéléré par le matériel conventionnel, les résultats montrent qu’il offre des performances élevées et convient au rendu en temps réel. De plus, dans les scènes complexes utilisant un moteur de rendu complet, le coût du NTC peut être partiellement compensé par l’exécution simultanée d’autres tâches (par exemple, le lancer de rayons) en raison de la capacité du GPU à masquer la latence.
Pendant ce temps, le rendu avec NTC peut accélérer les nouvelles architectures matérielles, augmenter le nombre d’unités de multiplication matricielle dédiées pouvant être utilisées, augmenter les tailles de cache et l’utilisation des registres. En fait, certaines des optimisations peuvent être faites au niveau programmable.
Nvidia admet également que NTC n’est pas une méthode de compression de texture complètement sans perte et produit une dégradation visuelle à des débits binaires faibles et présente certaines limites, telles que la sensibilité à la corrélation des canaux, des exigences de résolution uniformes et des avantages limités à des distances de caméra plus grandes. De plus, les avantages sont proportionnels au nombre de canaux et peuvent ne pas être aussi significatifs pour des nombres de canaux inférieurs. De plus, étant donné que NTC est optimisé pour les textures de matériaux et décompresse toujours tous les canaux de matériaux, il le rend potentiellement inadapté à une utilisation dans différents contextes de rendu.
Bien que l’avantage de NTC soit qu’il n’utilise pas de matériel de filtrage de texture à fonction fixe pour produire ses meilleurs résultats, c’est aussi son principal inconvénient. Le coût du filtrage de texture est coûteux en calcul, c’est pourquoi pour l’instant le filtrage anisotrope avec NTC n’est pas réalisable pour le rendu en temps réel. Pendant ce temps, le filtrage stochastique peut introduire un scintillement.
Mais malgré les limitations, la compression de plusieurs canaux et niveaux mipmap par NTC produit ensemble un résultat qui dépasse les normes de l’industrie. Les chercheurs de Nvidia pensent que son approche ouvre la voie à des visuels de qualité cinématographique dans un rendu en temps réel et est pratique pour les applications graphiques à mémoire limitée. Pourtant, il introduit une surcharge temporelle modeste par rapport aux algorithmes BTC simples, ce qui a un impact sur les performances.