Format ASTC : le guide ultime de compression de texture
ASTC (Adaptive Scalable Texture Compression) est le format de compression de texture le plus avancé et le plus flexible disponible aujourd'hui. Développé par ARM et adopté comme norme officielle Khronos, ASTC offre un contrôle sans précédent sur la qualité et les taux de compression, ce qui en fait le choix idéal pour les graphiques mobiles et de bureau modernes.
Qu’est-ce que l’ASTC ?
ASTC est un format de compression de texture basé sur des blocs avec perte, conçu pour remplacer les anciens formats tels que ETC, PVRTC et DXT/BCn. Il a été spécialement conçu pour fournir un format unique et unifié qui fonctionne sur toutes les plates-formes et prend en charge un large éventail de compromis qualité/taille.
Contrairement aux formats précédents avec des taux de compression fixes, ASTC permet aux développeurs de choisir parmi 14 tailles de blocs 2D différentes (de 4×4 à 12×12) et plusieurs niveaux de qualité, offrant un contrôle précis sur l’équilibre entre la qualité visuelle et la consommation de mémoire.
ASTC prend en charge le contenu LDR (Low Dynamic Range) et HDR (High Dynamic Range), 1 à 4 canaux de couleur et les textures 2D et 3D. Cette polyvalence le rend adapté à pratiquement tous les types de textures dans les applications graphiques modernes.
Principales caractéristiques de l'ASTC
Tailles de blocs flexibles
14 tailles de blocs 2D différentes de 4×4 (8 bpp) à 12×12 (0,89 bpp), permettant un contrôle précis du taux de compression et de la qualité
Qualité réglable
Plusieurs niveaux de qualité d'encodage (rapide, moyen, minutieux, exhaustif) pour équilibrer le temps d'encodage et la fidélité visuelle
Prise en charge HDR
Prise en charge native des textures High Dynamic Range, essentielle pour les flux de travail PBR (Physically Based Rendering) modernes
Matériel efficace
Conçu pour une décompression matérielle efficace avec une consommation d'énergie et une utilisation de la bande passante mémoire minimales
Tailles des blocs ASTC expliquées
La taille du bloc d'ASTC détermine le taux de compression et la qualité. Les blocs plus petits préservent plus de détails mais offrent moins de compression :
| Taille du bloc | Bits/pixels | Qualité | Meilleur cas d'utilisation |
|---|---|---|---|
| 4x4 | 8.00 | Le plus haut | Textures détaillées, cartes normales |
| 5x5 | 5.12 | Haut | Textures de couleurs de haute qualité |
| 6x6 | 3.56 | Moyen-élevé | Qualité/taille équilibrée (par défaut recommandé) |
| 8x8 | 2.00 | Moyen | Textures d'arrière-plan, éléments d'interface utilisateur |
| 12x12 | 0.89 | Inférieur | Compression maximale pour les grandes textures |
Niveaux de qualité d'encodage
Les encodeurs ASTC prennent en charge plusieurs préréglages de qualité qui affectent le temps d'encodage et la qualité de sortie :
Rapide
~1-2 secondesEncodage le plus rapide avec une bonne qualité. Convient pour une itération rapide pendant le développement.
Moyen
~5-10 secondesQualité et vitesse équilibrées. Recommandé pour la plupart des cas d’utilisation et des versions de production.
Complet
~30-60 secondesCompression de haute qualité avec recherche plus exhaustive. Bon pour les atouts des héros et les constructions finales.
exhaustif
~2-5 minutesQualité maximale avec un encodage très lent. À utiliser pour les actifs critiques où la qualité est primordiale.
Avantages de l'ASTC
Prise en charge de la plate-forme universelle
Pris en charge sur tous les GPU mobiles modernes (OpenGL ES 3.2+, Vulkan), remplaçant plusieurs formats spécifiques à la plate-forme par une solution unique.
Une flexibilité inégalée
14 tailles de bloc et plusieurs niveaux de qualité offrent plus de contrôle que tout autre format de compression, optimisant pour chaque type de texture.
Qualité supérieure
Les algorithmes de compression avancés produisent une meilleure qualité visuelle que ETC, PVRTC ou DXT à des débits comparables.
Fonctionnalités modernes
La prise en charge HDR, les textures 3D et l'encodage optimal pour les matériaux PBR rendent ASTC évolutif pour les techniques de rendu modernes.
ASTC par rapport aux autres formats
Comment ASTC se compare aux formats de compression de texture traditionnels :
contre ETC1/ETC2
ETC est l'ancien format d'Android avec une compression fixe 4:1 (ETC1) ou 8:1 (ETC2 RGBA).
Avantage ASTC: ASTC offre une meilleure qualité au même débit binaire et prend en charge davantage de taux de compression (0,89-8 bpp contre 4-8 bpp)
vs PVRTC
PVRTC est le format existant d'iOS avec une compression de 2 ou 4 bits par pixel.
Avantage ASTC: ASTC offre une meilleure qualité, plus de flexibilité et évite les artefacts de limite de bloc de PVRTC
contre DXT/BCn
DXT/BCn est la norme de bureau avec 4 à 8 bits par pixel pour différents formats.
Avantage ASTC: ASTC égale ou dépasse la qualité BCn tout en offrant des débits binaires inférieurs (jusqu'à 0,89 bpp) pour les mobiles
Comment utiliser le format ASTC
Utiliser ASTC dans vos projets est simple grâce à nos outils en ligne :
Encodage vers ASTC
- Téléchargez votre image source (PNG, JPG) - fonctionne avec toutes les dimensions
- Sélectionnez la taille du bloc en fonction de vos exigences de qualité/taille (6 × 6 est recommandé dans la plupart des cas)
- Choisir la qualité de l'encodage (moyen pour le développement, approfondi/exhaustif pour la production)
- Téléchargez le fichier .astc et intégrez-le à votre projet
Décoder les fichiers ASTC
- Téléchargez votre fichier .astc pour inspecter son contenu
- Afficher la texture décompressée avec les informations sur la taille et le format du bloc
- Exporter au format PNG pour édition ou vérification de la qualité
Meilleures pratiques
- Utilisez des blocs 6×6 comme point de départ (3,56 bpp) – cela offre un excellent équilibre qualité/taille pour la plupart des textures
- Choisissez des blocs plus petits (4 × 4, 5 × 5) pour les textures critiques comme les cartes normales ou le texte de l'interface utilisateur
- Utilisez des blocs plus grands (8 × 8, 10 × 10, 12 × 12) pour les arrière-plans, les skybox ou les textures vues de loin
- Testez différents niveaux de qualité – « moyen » est souvent suffisant, utilisez « approfondi » ou « exhaustif » uniquement pour les ressources de héros
- Pensez à utiliser différentes tailles de bloc pour différents types de texture dans la même application afin d'optimiser l'utilisation de la mémoire.
- Prévisualisez toujours les textures compressées sur les appareils cibles : la perception de la qualité varie en fonction du contenu et des conditions de visualisation.
Conclusion
ASTC représente le summum de la technologie de compression de texture, offrant une flexibilité, une qualité et une prise en charge de plate-forme inégalées. Sa nature adaptative permet aux développeurs d'affiner la compression pour chaque actif, optimisant ainsi l'équilibre entre fidélité visuelle et consommation de mémoire.
Que vous développiez pour des plates-formes mobiles, de bureau ou de console, ASTC fournit une solution évolutive qui s'adapte des appareils bas de gamme aux graphiques haut de gamme. Nos outils ASTC en ligne permettent d'expérimenter facilement différents paramètres et de trouver la configuration parfaite pour les besoins de votre projet.
Lectures complémentaires et références
Plongez en profondeur dans ASTC avec ces ressources faisant autorité :
- Spécification ASTC (Khronos) - Spécification officielle du format ASTC et référence technique
- Codec d'évaluation ARM ASTC - Implémentation et documentation de l'encodeur de référence d'ARM
- Compression de texture adaptative et évolutive (Wikipédia) - Aperçu complet de la technologie ASTC et de son adoption
- ASTC : la compression de texture ultime - Documentation du développeur ARM sur les meilleures pratiques ASTC
- Guide de compression Unity ASTC - Guide pratique d'utilisation de l'ASTC dans les moteurs de jeux