Encodage et décodage PNG
L'encodeur PNG écrit des fichiers RGB ou RGBA 8 bits à partir de pixels RGBA ou BGRA à pas de ligne. Le décodeur lit les images en niveaux de gris, en palette, RGB et RGBA non entrelacées dans un tampon invité vérifié.
Notes du dépôt jusqu’au 10 octobre 2026
Encodage
Les titres remettent à l'encodeur un rectangle de pixels dont le pas de ligne peut dépasser la largeur. PS5PCEM accepte du RGBA et du BGRA à pas de ligne et écrit un PNG RGB ou RGBA 8 bits standard. L'appelant choisit les filtres de ligne de balayage et un niveau de compression de 0 à 9. Les écritures de sortie sont bornées par le tampon que le titre a fourni.
L'encodeur est une implémentation logicielle du format de fichier. Il n'appelle pas une bibliothèque d'images du système, et il ne revendique pas une vitesse particulière par rapport à l'encodeur matériel de la console.
Décodage
libScePngDec analyse les métadonnées PNG et décode les images en niveaux de gris, palette, RGB et RGBA non entrelacées dans des tampons RGBA ou BGRA invités vérifiés. Les filtres de ligne de balayage sont appliqués, et la transparence de palette est respectée. La destination est vérifiée avant l'écriture des pixels.
Une entrée entrelacée Adam7 est reconnue et refusée plutôt que décodée en une image erronée. Les icônes et les captures entrelacées ne deviennent donc pas silencieusement un tampon brouillé.
Où cela se place
PNG est l'un des petits services de micrologiciel qu'un titre rencontre au démarrage : icônes, atlas et vignettes de sauvegarde. Il est indépendant du chemin film d'AvPlayer, qui utilise FFmpeg pour le H.264, et indépendant du rastériseur de polices.
Le rapport micrologiciel du 9 octobre groupe l'encodeur avec l'horloge et les requêtes de taille d'achèvement AMPR. Ces trois éléments ont fermé des manques d'import. Ils ne changent pas, à eux seuls, un temps d'image mesuré.
Ce qui est en place
- Entrée RGBA et BGRA à pas de ligne vers un PNG RGB ou RGBA 8 bits, aux niveaux de compression 0–9.
- Décodage des niveaux de gris, de la palette, du RGB et du RGBA non entrelacés, filtres et alpha de palette compris.
- Tampons de destination vérifiés et sortie d'encodeur bornée.
Ce qui manque encore
- Le PNG entrelacé Adam7 est reconnu et n'est pas décodé.
- Le 16 bits et les chunks auxiliaires exotiques sont en dehors du sous-ensemble implémenté.
- Il n'y a pas de bloc PNG matériel. Les deux côtés s'exécutent sur le CPU.
Mécanismes liés
Ce que ces pages décrivent