- CPNG ("Compatible Network Graphics") est un fork 100 % compatible du format d’image PNG, vieux d’environ 30 ans. Il modernise les fonctionnalités de PNG tout en conservant la compatibilité avec les navigateurs, systèmes d’exploitation, moteurs et autres logiciels existants
- Objectif : obtenir des vitesses d’encodage/décodage bien supérieures à celles du PNG actuel (plus de 10x en encodage, plus de 2 à 3x en décodage), afin de favoriser l’ajout de nouvelles fonctionnalités et l’adoption par les bibliothèques
- Principales caractéristiques :
- Flux Deflate contraints : fonctionnalité déjà implémentée dans fpng/fpnge, permettant d’améliorer la vitesse d’encodage de 10 à 25x et la vitesse de décodage de 2 à 3x par rapport aux bibliothèques existantes
- Encodage/décodage multithread : technologie déjà utilisée par Apple. En ajoutant une table de recherche dans les chunks auxiliaires CPNG, il devient possible d’encoder/décoder l’image en parallèle par bandes.
- Prise en charge de FP16 et LOGLUV32 : conçue pour permettre un affichage raisonnable des images HDR même dans les navigateurs et OS qui ne prennent en charge que PNG. Les données HDR peuvent être restaurées sans perte via une procédure simple et rapide
- CPNG comme alternative à .EXR : le format .EXR prend en charge trop de formats de compression, ce qui le rend en pratique incompatible. CPNG propose une alternative de tone mapping sans perte, avec prévisualisation possible sur la plupart des navigateurs et OS.
- Conception de LOGLUV32 : en cours d’élaboration pour atteindre un véritable HDR sans faire gonfler la taille des fichiers. L’auteur souligne que d’autres solutions dites "HDR" imposent de stocker des pixels 16 bits plus nombreux que les bits réellement utilisés, ce qui serait du gaspillage.
- Importance des auteurs de bibliothèques : tant que la compatibilité est préservée, ce sont en pratique les auteurs de bibliothèques qui contrôlent réellement le format.
L’avis de GN⁺
- CPNG est un nouveau format d’image qui reste parfaitement compatible avec le format PNG existant tout en ajoutant des fonctionnalités modernes ; ses améliorations spectaculaires en encodage/décodage et sa prise en charge du HDR sont particulièrement remarquables.
- Cette avancée devrait apporter des changements très utiles et intéressants à des professionnels de nombreux domaines, notamment les développeurs web, graphistes et ingénieurs logiciel.
- Cette approche centrée sur la compatibilité reflète un principe majeur du développement logiciel moderne : faire progresser la technologie tout en améliorant l’expérience utilisateur.
2 commentaires
Oh... reste à voir si cela peut vraiment devenir un nouveau standard d’image ?
Pour l’instant, à part WebP, aucun standard d’image de nouvelle génération n’a vraiment réussi...
Au final, pour WebP aussi, on a surtout l’impression que Google l’a imposé grâce à la part de marché de Chrome...
Avis sur Hacker News
Inquiétudes sur le risque que le format PNG se fragmente en plusieurs versions incompatibles
Évaluation positive des raisons de vouloir améliorer PNG et de l’intérêt de cette démarche
Remarque sur le fait que la vitesse d’encodage de libpng est plus de 10 fois plus lente que celle de jpg ou tiff, et éloge de la technique LOGLUV32
Réaction enthousiaste au nouveau format d’image et admiration pour le travail d’ingénierie
Curiosité sur l’efficacité des formats d’image modernes
Signalement de l’absence de mention de JPEG XT et JPEG-HDR
Proposition d’une version simplifiée et rétrocompatible de PNG
Question sur le sens de « 100 % rétrocompatible » et avis sur sa ressemblance avec APNG
Admiration pour CPNG et attente d’améliorations de performances dans les bibliothèques qui reconnaissent CPNG