Retour au blog
Formats

Format PVR : Le guide complet de la compression de texture PowerVR

16 lecture min.

Le format PVR (PowerVR) est le format de conteneur de texture propriétaire d'Imagination Technologies, spécialement conçu pour les GPU PowerVR et largement adopté dans les appareils iOS et les plates-formes mobiles. En tant que format de texture natif pour iOS et de nombreux systèmes embarqués, PVR prend en charge les algorithmes PVRTC (PowerVR Texture Compression) ainsi que d'autres formats de compression comme ETC et ASTC, ce qui en fait un choix polyvalent pour le développement de jeux mobiles. Son décodage accéléré par le matériel et son utilisation efficace de la mémoire le rendent essentiel pour les applications mobiles où les performances et la durée de vie de la batterie sont essentielles.

Qu'est-ce que le format PVR ?

PVR est un format de conteneur développé par Imagination Technologies pour stocker des textures compressées optimisées pour les GPU PowerVR. Créé à l'origine pour leurs processeurs graphiques mobiles, le format est devenu le standard de facto pour les applications iOS et est largement pris en charge sur les plates-formes mobiles. PVR sert de wrapper autour de divers formats de compression de texture, notamment PVRTC, qui fournit une compression efficace accélérée par le matériel pour les appareils mobiles.

La force du format réside dans sa prise en charge native de la compression PVRTC, spécialement conçue pour les contraintes des appareils mobiles : bande passante mémoire, puissance de la batterie et capacités de traitement limitées. PVRTC offre d'excellents taux de compression tout en conservant une qualité visuelle acceptable, ce qui le rend idéal pour les jeux et applications mobiles où les performances sont primordiales.

Au-delà du PVRTC, les fichiers PVR modernes peuvent également contenir des données ETC, ASTC et des textures non compressées, ce qui en fait un conteneur flexible qui peut s'adapter aux différentes capacités des appareils. Cette flexibilité, combinée à sa profonde intégration avec les outils de développement iOS et à sa prise en charge matérielle généralisée, fait de PVR un format essentiel pour les développeurs mobiles ciblant iOS et d'autres plates-formes basées sur PowerVR.

Principales caractéristiques du format PVR

Accélération matérielle

Prise en charge matérielle GPU native pour les formats PVRTC sur les GPU PowerVR sans surcharge du processeur

Prise en charge multiformat

Prend en charge les formats PVRTC, ETC, ASTC et non compressés dans un seul conteneur

Optimisé pour les mobiles

Spécialement conçu pour les contraintes des appareils mobiles et l'efficacité de la batterie

Prise en charge complète des mipmaps

Stockage natif de la chaîne MIPMAP et gestion efficace du niveau de détail

Formats de compression pris en charge

Le format de conteneur PVR prend en charge plusieurs algorithmes de compression, chacun optimisé pour différents cas d'utilisation :

PVRTC (compression de texture PowerVR)

Format de compression propriétaire conçu spécifiquement pour les GPU PowerVR, disponible en variantes 2bpp et 4bpp.

PVRTC offre d'excellents taux de compression (4:1 à 8:1) avec une accélération matérielle sur les GPU PowerVR. Idéal pour les applications iOS et les appareils mobiles basés sur PowerVR.

ETC (Compression de texture Ericsson)

Format de compression standard pour les appareils mobiles, largement pris en charge sur les plateformes Android et iOS.

ETC1 fournit une compression RVB au rapport 4:1, tandis que ETC2 ajoute la prise en charge de la compression avec des canaux alpha. Format standard pour la compression de texture Android.

ASTC (Compression de texture adaptative et évolutive)

Format de compression moderne prenant en charge plusieurs tailles de blocs et niveaux de qualité.

ASTC offre d'excellents rapports qualité/compression avec des tailles de bloc flexibles de 4x4 à 12x12 pixels. Pris en charge sur les appareils iOS et Android les plus récents.

ETC2/EAC

Version améliorée d'ETC avec une qualité améliorée et une prise en charge du canal alpha.

ETC2 améliore ETC1 avec une meilleure qualité, tandis que EAC assure la compression des cartes normales et des textures monocanal.

EAC (compression alpha ETC)

Compression dédiée aux données de texture alpha et monocanal.

EAC fournit une compression efficace pour les canaux alpha et les textures à canal unique telles que les cartes normales ou les cartes de hauteur.

Formats non compressés

Formats standard non compressés pour des exigences de haute qualité.

Prise en charge de RVB, RVBA et de divers formats non compressés lorsque les artefacts de compression sont inacceptables.

Structure du fichier PVR

Les fichiers PVR suivent un format structuré avec trois composants principaux :

En-tête PVR (52 octets)

Contient les métadonnées du fichier, les informations de version, les dimensions de la texture et les spécifications de format

Métadonnées de texture

Informations supplémentaires, notamment le nombre de mipmaps, le nombre de surfaces, les indicateurs de compression et les détails du format de pixel

Données de texture compressées

Données de pixels compressées réelles organisées par niveaux de mipmap et surfaces de texture

Détails de la compression PVRTC

Le PVRTC est disponible en deux variantes principales, chacune optimisée pour différentes exigences de qualité et de taille :

PVRTC 2bpp (2 bits par pixel)

Taux de compression plus élevé (8:1) avec une qualité inférieure. Convient aux textures et arrière-plans peu détaillés.

Idéal pour : textures d'arrière-plan, éléments d'interface utilisateur, surfaces peu détaillées, applications à mémoire limitée

PVRTC 4bpp (4 bits par pixel)

Taux de compression inférieur (4:1) avec une qualité supérieure. Choix standard pour la plupart des textures mobiles.

Idéal pour : textures de personnages, surfaces détaillées, textures à usage général, applications iOS

Flux de travail de développement de textures PVR

La création et l'optimisation des textures PVR impliquent plusieurs étapes clés :

1

Préparation de l'image source

Préparez des images sources de haute qualité avec des dimensions appropriées (de préférence puissance de deux pour les appareils plus anciens)

2

Sélection du format

Choisissez le format de compression approprié en fonction de la plate-forme cible et des exigences de qualité

3

Compression des textures

Utilisez PVRTexTool ou des outils similaires pour compresser les images source au format PVR

4

Optimisation de la qualité

Ajustez les paramètres de compression et examinez les résultats pour équilibrer la qualité et la taille du fichier.

5

Intégration d'applications

Intégrez les fichiers PVR dans votre application avec un chargement et une gestion des erreurs appropriés

Principaux avantages du format PVR

Excellente compression

PVRTC fournit des taux de compression de 4:1 à 8:1 avec décodage accéléré par le matériel

Qualité optimisée pour les mobiles

Spécialement conçu pour les conditions de visualisation mobiles et les caractéristiques d'affichage

Flexibilité des formats

Prend en charge plusieurs formats de compression dans un seul conteneur pour une compatibilité étendue

Prise en charge matérielle native

Prise en charge directe du GPU sur les appareils basés sur PowerVR sans surcharge de décompression du processeur

Intégration iOS

Intégration approfondie avec les outils de développement iOS et prise en charge de première partie dans les frameworks Apple

Cas d'utilisation courants

Développement de jeux iOS

Format de texture natif pour les applications iOS avec des performances optimales sur tous les appareils iOS

Jeux mobiles

Idéal pour les jeux mobiles ciblant l'efficacité de la batterie et l'optimisation des performances

Jeux multiplateformes

Parfait pour les jeux prenant en charge iOS et Android avec prise en charge du format de secours

Applications WebGL

Format pris en charge pour les applications Web ciblant les appareils mobiles via WebGL

Systèmes embarqués

Largement utilisé dans les systèmes embarqués et les écrans automobiles avec les GPU PowerVR

PVR vs autres formats

Comprendre comment PVR se compare aux autres formats de compression de texture :

PVR et DDS

PVR est optimisé pour les plateformes mobiles tandis que DDS cible les jeux sur ordinateur avec les formats BCn

PVR et KTX

PVR a une intégration iOS plus forte tandis que KTX offre une meilleure standardisation multiplateforme

PVR et ASTC

PVR avec PVRTC offre une prise en charge plus large tandis que ASTC offre une meilleure qualité et flexibilité

PVR vs ETC

PVR offre une meilleure prise en charge iOS tandis qu'ETC est la norme Android avec une prise en charge matérielle plus large

Outils et ressources de développement

SDK PowerVR

SDK officiel d'Imagination Technologies avec des outils de développement PVR complets

PVRTexTool

Outil officiel pour créer et optimiser des textures PVR avec des capacités de conversion de format

Prise en charge du PVR Unity

Prise en charge intégrée de la compression PVR dans les paramètres d'importation de texture de Unity

Enregistreur vidéo Unreal Engine

Prise en charge du format PVR natif dans Unreal Engine pour iOS et le développement mobile

Outil de compression de texture Arm Mali

Outil alternatif pour la compression de textures PVR et la comparaison de formats

Meilleures pratiques pour le développement de PVR

Utilisez la puissance de deux dimensions pour une compatibilité optimale avec les anciens appareils iOS et GPU

Choisissez PVRTC 4bpp pour la plupart des textures, sauf si les contraintes de mémoire nécessitent une compression de 2bpp

Testez les textures compressées sur les appareils cibles réels pour évaluer la qualité visuelle et les performances.

Considérez ASTC comme une alternative pour les appareils iOS plus récents lorsqu'une qualité supérieure est nécessaire

Utilisez les paramètres mipmap appropriés pour optimiser les performances à différentes distances de visualisation

Validez les fichiers PVR sur le matériel cible dès le début du développement pour éviter les problèmes de compatibilité.

Tenez compte des capacités de l'appareil lorsque vous choisissez entre la compression PVRTC, ETC et ASTC

Migration et alternatives modernes

Pour les nouveaux projets, considérez ces voies de migration et alternatives modernes :

Migration d'ASTC vers PVR

Utilisez PVRTexTool pour convertir les textures ASTC en PVRTC pour une compatibilité avec les anciens appareils iOS

Migration d'ETC vers PVR

Convertissez les textures ETC au format PVRTC pour une optimisation spécifique à iOS et une meilleure intégration

Migration de DDS vers PVR

Utilisez des outils de conversion de texture pour migrer les textures de bureau vers le format PVR optimisé pour les mobiles

Passer aux formats modernes

Envisagez ASTC pour les nouveaux projets ciblant des appareils plus récents, en gardant le PVR comme option de secours

Conclusion

Le format PVR reste un outil essentiel dans le développement de jeux mobiles, en particulier pour les applications iOS et les appareils basés sur PowerVR. Sa compression PVRTC accélérée par le matériel offre un excellent équilibre entre qualité visuelle et performances pour les plates-formes mobiles où la durée de vie de la batterie et l'efficacité du rendu sont essentielles.

Alors que les formats plus récents comme ASTC offrent une meilleure qualité et flexibilité, la prise en charge héritée de PVR, l'intégration iOS et les performances éprouvées en font un choix fiable pour les développeurs mobiles. Comprendre quand et comment utiliser le format PVR est crucial pour optimiser les applications mobiles et garantir la meilleure expérience utilisateur sur divers écosystèmes d'appareils.

Lectures complémentaires et ressources

Développez vos connaissances avec ces ressources faisant autorité :