9 points par GN⁺ 2023-12-10 | 2 commentaires | Partager sur WhatsApp
  • 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

 
kuroneko 2023-12-11

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...

 
GN⁺ 2023-12-10
Avis sur Hacker News
  • Inquiétudes sur le risque que le format PNG se fragmente en plusieurs versions incompatibles

    Dès les débuts du PNG, il y avait déjà des problèmes d’incohérence autour du canal alpha, du rendu progressif et de la prise en charge d’APNG. Les fichiers PSD et SVG aussi ont longtemps posé problème, avec des rendus différents selon le navigateur, l’appareil, l’application ou la version. Étendre PNG pourrait provoquer des problèmes dans presque tous les usages réels, et des images pourraient sembler « cassées » à cause de designers utilisant de nouvelles fonctionnalités. Certaines fonctions comme le HDR pourraient n’être affichées que par certains moteurs de rendu, ce qui peut poser problème même en restant « rétrocompatible ». Il vaudrait peut-être mieux créer un nouveau format et laisser les pages web et les appareils le remplacer si nécessaire.

  • Évaluation positive des raisons de vouloir améliorer PNG et de l’intérêt de cette démarche

    S’il est possible d’intégrer de nouvelles fonctionnalités à PNG d’une manière rétrocompatible, cela a de la valeur, car elles pourraient alors être immédiatement compatibles avec tous les navigateurs, systèmes d’exploitation, moteurs, etc.

  • 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

    Après avoir constaté la lenteur de l’encodage de libpng, l’auteur trouve la partie LOGLUV32 très ingénieuse. L’idée d’une image de remplacement avec tone mapping construite par-dessus l’existant lui plaît, mais il espère que cette extension du format ne débouchera pas sur des problèmes de compatibilité.

  • Réaction enthousiaste au nouveau format d’image et admiration pour le travail d’ingénierie

    Même sans en avoir personnellement besoin, l’auteur a pris plaisir à lire cela et estime qu’il faudrait davantage de travaux aussi réfléchis sur les formats d’image et leur présentation écrite.

  • Curiosité sur l’efficacité des formats d’image modernes

    L’auteur se demande, parmi les formats avec perte et sans perte, lesquels sont aujourd’hui les plus efficaces en termes de taille ou de vitesse de décompression, et où en est l’état de l’art.

  • Signalement de l’absence de mention de JPEG XT et JPEG-HDR

    L’auteur fait remarquer que JPEG XT et JPEG-HDR ne sont pas mentionnés.

  • Proposition d’une version simplifiée et rétrocompatible de PNG

    L’auteur suggère de créer une version simplifiée de PNG destinée aux systèmes embarqués à faible complexité, afin d’éviter d’avoir à implémenter le « PNG complet » tout en conservant la compatibilité avec les visionneuses d’images existantes. DEFLATE prenant déjà en charge les blocs non compressés, cela pourrait fonctionner de manière rétrocompatible.

  • Question sur le sens de « 100 % rétrocompatible » et avis sur sa ressemblance avec APNG

    L’auteur s’interroge sur ce que signifie exactement « 100 % rétrocompatible », et sur le fait de savoir si, lorsqu’un fichier utilise de nouvelles fonctionnalités, la rétrocompatibilité fonctionne d’une manière similaire à APNG, en renvoyant une image raisonnable.

  • Admiration pour CPNG et attente d’améliorations de performances dans les bibliothèques qui reconnaissent CPNG

    L’auteur est impressionné par les améliorations de performances des bibliothèques capables de reconnaître CPNG, et se demande si les bibliothèques existantes qui ne reconnaissent pas CPNG subissent une baisse de performances lors de la lecture d’images CPNG, ainsi que de combien CPNG serait plus volumineux que PNG.