Étude sur l'optimisation du PDF, partie 2 : le PNG

Le , par Julien Wilhelm - Écoconception

Étude sur l’optimisation du PDF, acte 2 !

Après un premier volet consacré à la gestion du format JPG au sein du PDF, au PNG d’être observé dans des conditions similaires. Avec des résultats identiques ?

Rien n’est moins sûr.

  1. Contexte de l’analyse
  2. Optimisation PNG à l’export du fichier PDF
  3. Traitement séparé de l’image PNG pour comparaison
  4. Conclusion

1. Contexte de l’analyse

  1. J’ai téléchargé cette image PNG sur pixabay au format SVG. Je l’ai ouverte avec Inkscape pour l’exporter dans un PNG de 3000 x 2399 px. Avec une qualité initiale de 92 %, son poids est de 485,1 Ko.
  2. J’ai créé un document texte avec l’application “Writer” de la suite LibreOffice téléchargeable gratuitement (version utilisée : 7.5.7.1). Le document est au format A4 (21 x 29,70 cm), ses marges sont toutes de 2 cm.
  3. J’ai inséré l’image dans le document sans la déplacer ni la redimensionner. Je n’ai par ailleurs rien ajouté d’autre au document.
  4. J’ai exporté 6 PDF, jouant seulement sur les options suivantes :
    • “Compression JPEG qualité” (valeurs : 90 et 75 %). D’après son intitulé, cette option ne devrait pas concerner le PNG, mais qui sait ?
    • “Réduit la résolution des images à” (valeurs : 300, 150 et 75 DPI).

2. Optimisation PNG à l’export du fichier PDF

À l’export PDF, notons tout d’abord que :

  • La sortie en 300 DPI produit une image de 2009 x 1606 pixels.
  • La sortie en 150 DPI produit une image de 1004 x 803 pixels.
  • La sortie en 75 DPI produit une image de 502 x 402 pixels.

Comme pour JPG, l’image est donc redimensionnée à la baisse, puis ajustée dans le PDF pour occuper la zone qui est la sienne (l’image ne semble jamais plus petite ni déborder).

Voici maintenant dans le détail le poids des PDF générés :

  • PDF à 300 DPI, en qualité 90 % : 225,7 Ko
  • PDF à 300 DPI, en qualité 75 % : 174,7 Ko
  • PDF à 150 DPI, en qualité 90 % : 95,9 Ko
  • PDF à 150 DPI, en qualité 75 % : 74,3 Ko
  • PDF à 75 DPI, en qualité 90 % : 40,9 Ko
  • PDF à 75 DPI, en qualité 75 % : 32 Ko

Sans surprise, diminuer la résolution de cette image permet de réduire le poids du PDF obtenu. En revanche, il est surprenant d’observer une variation de poids selon le taux de compression. À en croire son libellé, l’option de compression ne devait s’appliquer qu’à JPG, pas à PNG ! Mais il se passe bien quelque chose à ce sujet. Et mes produits en croix le démontrent parfaitement :

  • Passer de 300 à 150 DPI, ou de 150 à 75 DPI, permet de réduire de 57 % le poids de notre PDF.
  • Passer d’une compression de 90 % à 75 % permet de réduire de 31 à 35 % le poids de notre PDF.

Concernant la perception utilisateur et le zoom, je vous épargne (un peu) les redites : ce que j’ai dit concernant JPG est absolument valable pour PNG.

3. Traitement séparé de l’image PNG pour comparaison

Cette fois-ci, les choses se compliquent. En réalité, la compression PNG fonctionne différemment de la compression JPG.

  • Pour JPG, on parle de compression avec pertes. On ajuste un paramètre de qualité sur une échelle de 1 à 100 (1 = qualité d’image la plus basse et compression la plus élevée, 100 = meilleure qualité, mais compression la moins efficace), l’image est plus ou moins dégradée selon le niveau de compression.
  • Pour PNG, on parle de compression sans pertes : quel que soit le niveau de compression d’une image, celle-ci est toujours la même. Ce qui change, c’est le temps requis pour effectuer ladite compression. Aussi, s’agissant d’une opération que l’on ne réalise qu’une fois, pour bénéficier derrière à des dizaines, des centaines, des milliers d’utilisateurs, on applique toujours la compression la plus élevée (en l’occurrence, compression à 9).

Notre image source était en fait… Déjà compressée à son maximum (92 sur une échelle de 1 à 100 étant l’équivalent de la compression 9 en PNG) !

OK, mais alors, sur quoi joue l’export PDF pour réduire encore le poids final du fichier contenant ce PNG ?

En toute franchise, je l’ignore ! L’un des leviers parmi les plus efficaces pour réduire le poids d’un PNG est de limiter le nombre de couleurs dans la palette. Ici, je n’ai pas l’impression qu’il s’agit de cela. Ce qui est fait a une incidence sur le poids, mais aussi sur la qualité perceptible du média. C’est comme si tout à coup PNG redevenait un format d’image avec pertes.

Ainsi :

  • PDF à 300 DPI, en qualité 90 % : 225,7 Ko, image OK
  • PDF à 300 DPI, en qualité 75 % : 174,7 Ko, image OK
  • PDF à 300 DPI, en qualité 10 % : 111,4 Ko, image visuellement dégradée

Si le mystère reste entier sur le traitement appliqué à PNG à l’export PDF, reste à comparer le résultat avec un PNG optimisé séparément. Depuis mon SVG source, j’ai exporté trois PNG aux dimensions habituelles. Par facilité, je m’en suis ensuite remis à TinyPNG pour obtenir des images vraiment optimisées (où l’on va, par exemple et comme je l’ai mentionné plus haut, réduire le nombre de couleurs dans la palette).

Voici la liste actualisée de l’essentiel de mes observations :

  • Exports PDF comprenant l’image PNG
    • PDF à 300 DPI, en qualité 90 % : 225,7 Ko
    • PDF à 300 DPI, en qualité 75 % : 174,7 Ko
    • PDF à 150 DPI, en qualité 90 % : 95,9 Ko
    • PDF à 150 DPI, en qualité 75 % : 74,3 Ko
    • PDF à 75 DPI, en qualité 90 % : 40,9 Ko
    • PDF à 75 DPI, en qualité 75 % : 32 Ko
  • Exports PNG depuis le SVG (compression 9)
    • PNG à 300 DPI (2009 x 1606 px) : 296,3 Ko
    • PNG à 150 DPI (1004 x 803 px) : 137,9 Ko
    • PNG à 75 DPI (502 x 401 px) : 60,4 Ko
  • Exports PNG depuis le SVG (compression 9 + TinyPNG)
    • PNG à 300 DPI (2009 x 1606 px) : 83,2 Ko
    • PNG à 150 DPI (1004 x 803 px) : 36 Ko
    • PNG à 75 DPI (502 x 401 px) : 18 Ko

Après un détour sur TinyPNG, PNG l’emporte, et largement ! On obtient à la fois les fichiers les plus légers, et les plus beaux (logique : ils ne sont pas dégradés).

Pour aller au bout des choses, j’ai intégré l’image “PNG à 300 DPI (2009 x 1606 px) : 83,2 Ko” dans un nouveau document, toujours avec Writer, puis j’ai procédé à de nouveaux exports. Les résultats sont très décevants :

  • L’image optimisée seule et sans pertes : 83,6 Ko
  • Export PDF en 300 DPI du PNG optimisé, sans nouvelle compression côté PDF : 195,5 Ko (!)
  • Export PDF en 300 DPI du PNG optimisé, avec nouvelle compression côté PDF à 90 % : 194,4 Ko
  • Export PDF en 300 DPI du PNG optimisé, avec nouvelle compression côté PDF à 75 % : 144,4 Ko
  • Export PDF en 300 DPI du PNG optimisé, avec nouvelle compression côté PDF (et pertes) à 12 % : 83,4 Ko

Traduction :

  1. L’export PDF permet de réduire le poids d’un PNG (mais pas par magie) ;
  2. L’optimisation PNG séparée, avec TinyPNG par exemple, obtient de bien meilleurs résultats ;
  3. Si l’on insère une image, même optimisée dans un PDF, on obtient à nouveau un PDF plus lourd…
  4. …À moins de pousser à nouveau, et très loin, la compression côté PDF (ici, 12 % pour retrouver un poids équivalent à l’image seule, mais avec une qualité visuelle moindre).

Un vrai yo-yo.

4. Conclusion

Quelle lourde tâche que de conclure après toutes ces observations illogiques ! Alors que pour JPG, c’était tout vu, la gestion du PNG dans le PDF nous donne du fil à retordre.

À choisir, mieux vaut (une fois de plus) ne pas chercher à optimiser un PNG avant insertion dans un PDF et s’en remettre aux paramètres de compression de ce dernier, quand bien même le résultat final sera moins bon. L’ennui, c’est qu’il faudrait pousser l’option “compression” plus loin (sans doute vers les 50 %) pour trouver un juste milieu poids / qualité. Et pour un peu que le document comporte aussi des images JPG (elles aussi compressée à 50 % pour le coup), cela risque de piquer les yeux…

Restons optimistes : peut-être SVG viendra-t-il nous libérer du PNG ?