Pour en savoir plus : La présentation de Vivien Guéant sur les codecs vidéo lors de la conférence de presse du RGESN (Référentiel général de l'écoconception des services numériques).
Je ne sais pas si c'est la présentation que tu voulais nous montrer (ça parle de jeu vidéo et pas de codecs vidéos ?). Mais tant que je suis là, je souhaite souligner qu'il y a une très grosse erreur dans cette présentation : les codecs utilisés pour les textures dans les jeux vidéos n'ont RIEN à voir avec JPG/AVIF/etc. — il s'agit toujours de formats spécialisés. Par exemple,
DXT/BCn.
Les cartes et puces graphiques ne peuvent PAS exploiter des images JPG/AVIF/etc. directement. Il faut qu'elles soient décodées et donc stockées dans la mémoire vidéo... mais pour que ça soit suffisament rapide en temps réel, il faut qu'elles soit décodées vers une représentation « brute » dans la mémoire vidéo, une représentation non compressée. C'est beaucoup trop gourmand en mémoire. Tandis que les formats spécialisés, tels DXT/BCn, permettent de diminuer la taille en mémoire par au moins 8, tout en laissant le matériel exploiter l'image directement. Ces formats ont une prise en charge matérielle directe.
Le problème, c'est que par leur nature, le facteur de compression est fixe ou quasiment fixe. Une texture 2048x2048 DXT1 fera toujours le même poids, peu importe son contenu.
Il existe des middlewares, comme "crunch", qui rajoutent une couche intermédiaire. Pour essayer d'expliquer ça simplement, ces formats intermédiaires utilisent des techniques d'optimisation débit-distorsion : des algorithmes complexes évaluant le meilleur compromis entre le gain de taille et la perte de qualité, et ce en tenant compte des spécificités propres à l'utilisation de ces textures dans divers contextes (par exemple, une "normal map" n'est pas quelque chose qui est vu directement, donc l'optimisation psycho-visuelle des codecs normaux n'a aucune pertinence).
Ces coupes dans le gras sont optimisées au bit près afin que des algorithmes de compression spéciaux, généralement des LZ modifiés (Oodle Kraken, par exemple), puissent compresser ce fichier le plus possible. Et quand cette image « crunchée » est exploitée, elle est lue par un décodeur qui la transforme immédiatement en image DXT/BCn; ainsi, il y a un gain potentiellement considérable au niveau du téléchargement et de l'espace disque, mais l'occupation de la mémoire vidéo reste la même qu'une image DXT/BCn classique.
On peut dresser un parallèle avec la manière dont JPEG continue d'être optimisé, même aujourd'hui (c.f. guetzli, mozjpeg), mais dans le jeu vidéo, c'est vraiment un cran au-dessus
https://www.radgametools.com/oodletexture.htmhttps://github.com/richgel999/crunch-1