Patu

Les graphiques ne sont pas des photos : là où le lossless gagne

« Convertissez tout en AVIF » est un bon conseil pour les photographies et un mauvais conseil, discrètement, pour tout le reste. Une capture d’écran, un logo, un graphique, une maquette d’interface, un dessin au trait : ce sont des graphiques, pas des photos, et les codecs avec pertes qui rendent AVIF et JPEG si efficaces sur les photos sont le mauvais outil pour eux.

Pourquoi les codecs avec pertes échouent sur les graphiques

JPEG, WebP avec pertes et AVIF sont construits pour les photographies : dégradés doux, texture naturelle, pas d’arêtes nettes. Ils fonctionnent en jetant le détail haute fréquence que l’œil ne remarquera pas sur une photo. Pointez-les sur un graphique et ce même mécanisme se retourne contre vous :

Un graphique a peu de couleurs et une structure nette. Le bon réflexe, c’est de le garder exact et de compresser la redondance, pas de jeter du détail.

Les chiffres, sur de vrais graphiques

Nous avons fait passer le jeu de graphiques de notre benchmark (213 graphiques réels : logos, graphiques, interfaces, art en aplats) dans les outils conçus pour eux, en mesurant le gain par rapport au PNG d’origine :

Outil Type Gain médian vs PNG d’origine
oxipng sans perte (octet pour octet) −29%
cwebp -lossless sans perte (octet pour octet) −49%
pngquant palette avec pertes (quasi exact) −71%

Le WebP sans perte réduit ces graphiques d’environ moitié, et chaque pixel reste identique. oxipng réoptimise le PNG lui-même sans changer de format : sûr partout. pngquant va le plus loin en réduisant la palette ; sur de l’art en aplats, le résultat est visuellement indiscernable, sur une photo ce serait un désastre. Et c’est bien tout l’enjeu : l’outil doit correspondre au contenu.

La règle : classifier d’abord, compresser ensuite

L’erreur n’est pas de choisir WebP ou de choisir PNG. C’est de choisir un seul codec pour tout. Un pipeline qui livre bien des images web doit regarder chaque asset et décider ce qu’il est avant de décider comment le compresser :

C’est ce que fait Patu : il classifie chaque image et la route en conséquence. Un graphique reste sans perte, réencodé à l’identique, pas flouté dans un format avec pertes à la fois plus lourd et pire. Une photo reçoit la recherche avec pertes ciblée sur la qualité. Même point d’entrée, traitement opposé, parce que ce sont des problèmes opposés.

Le conseil de départ survit avec un mot ajouté : convertissez vos photos en AVIF. Convertissez vos graphiques dans la forme sans perte la plus légère. Envoyer les deux dans le même pipeline, c’est exactement comment on finit avec des logos flous et des fichiers plus lourds à la fois.


Méthode et données : le harnais de benchmark Patu sur la catégorie graphique (213 graphiques réels) ; les gains sont la réduction médiane par rapport au PNG d’origine, par outil. oxipng et le WebP sans perte sont octet pour octet ; pngquant est une réduction de palette avec pertes, quasi exacte sur du contenu en aplats.