Compresser, optimiser ses images pour le web

Introduction

Tous les tests se feront sur une image JPEG de taille originale de 214ko, une autre de 11,2Mo et un PNG transparent de 44ko.

Il y a de nombreux sites proposant une optimisation en ligne mais ne proposant pas d’API pour l’utiliser, ceux-ci ne sont donc pas dans ce test car ils ne permettent pas une automatisation mais pour jeter un oeil ça ressemble à ça : Compressjpeg ou encore à ça WebsitePlanet.

Pour les comparatifs d’images qui vont suivre, l’originale se situera au-dessus ou à gauche de l’image générée.

Guetzli – https://github.com/google/guetzli

Guetzli est un outil développé par google pour optimiser les images web. Il est open-source.

Prix

Gratuit

Usage

guetzli [–quality Q] [–verbose] original.png output.jpg
guetzli [–quality Q] [–verbose] original.jpg output.jpg

Formats supportés

-JPEG

-PNG

Performance et rapidité

Guetzli utilise beaucoup de memoire 300mo/Mpx et prend beaucoup de temps à convertir chaque image, plus d’une heure pour la grande image. 2 minutes pour la petite.

Compression

Grande JPEG : 4,9Mo – 56%

Petite JPEG : 199ko – 7%

PNG : 78ko – 77% plus gros, perte de transparence

Qualité

Aucune différence visible à l’oeil nu en taille normale. Cependant, le PNG perd sa transparence…

Pingo – https://css-ig.net/pingo

Pingo est un projet expérimental gratuit disponible seulement sur Windows, je n’ai pas pu le testé.

Usage

pingo -s0 *.png

Formats supportés

-JPEG

-PNG

Kraken – https://kraken.io

Kraken est une solution en ligne.

Prix

5$/mois pour 500Mo + 5$/Go en plus

9$/mois pour 2Go + 4$/Go en plus

19$/mois pour 5Go + 3$/Go en plus

39$/mois pour 15Go + 2$/Go en plus

79$/mois pour 60Go + 1$/Go en plus

Usage

Via API

{
« auth »: {
« api_key »: « your-api-key »,
« api_secret »: « your-api-secret »
},
« url »: « http://remikel.fr/monimage.png »,
« wait »: true,
« lossy »: false
}

Formats supportés

-JPEG

-PNG

Performance et rapidité

Temps d’upload plus 0,5s/Mo pour la compression plus temps de download.

Compression

Impossible de tester sur la grande.

Petit JPG : 195ko – 8% de compression

PNG : 22ko – 50% de compression

Qualité

Aucune différence visible à l’oeil nu.

Image Optim – https://imageoptim.com/fr

ImageOptim est disponible en webservice ou en téléchargeant une application disponible sur Mac OS uniquement.

Prix

9$/mois pour 1000 images + 1$/100images supplémentaires

49$/mois pour 8000 images + 1$/150images supplémentaires

245$/mois pour 50000 images + 1$/200images supplémentaires

Usage

Drag and drop avec l’application ou via API.

Formats supportés

-JPEG

-PNG

Performance et rapidité

Instantané.

Compression

Grande JPEG : 9,9Mo – 11,2%

Petite JPEG : 195ko – 8,7%

PNG : 9,9Ko – 77,6%

Qualité

Short Pixel – https://shortpixel.com

Short Pixel, solution en ligne via API.

Prix

Gratuit 100images/mois

5$ 5000images/mois

10$ 12000images/mois

30$ 55000images/mois

Usage

via API

Formats supportés

JPEG

PNG

GIF

PDF

Performance et rapidité

Quelques secondes pour les petites images. Pas possible de tester la grande (mais pas de restrictions avec l’utilisation en API).

Compression

Petite JPEG : 195ko – 8,7%

PNG : 11,9ko – 73%

Qualité

EWWW Image optimizer – https://ewww.io/

Reconnu grace à son plugin WordPress. A l’air efficace.

Prix

0,003$/image, minimum 1$/mois

Usage

via API

Formats supportés

JPEG

PNG

PDF

Performance et rapidité

Pas pu tester, mais ils promettent de très bonnes performances.

Mozjpeg – https://github.com/mozilla/mozjpeg

Projet open source de Mozilla, il n’existe pas de binaires pour l’instant, il faut compiler le projet. Ce projet utilise des bibliothèque comme libjpeg-turbo qui sont aussi performantes.

Prix

Gratuit

Usage

/opt/mozjpeg/bin/cjpeg -quality 100 foo.jpg > bar.jpg

Formats supportés

JPEG

Performance et rapidité

Rapide, quelques secondes pour la plus grande, instantané pour la plus petite

Compression

Grande : 9,97Mo – 11%

Petite : 195ko – 8,7%

Qualité

Mozjpeg utilise des librairies qui sont aussi performantes individuellement mais un peu moins. Elles sont cependant un peu plus rapides. Je ne détaillerai donc pas chacune mais voilà des comparatifs que j’ai trouvés.

https://blarg.co.uk/blog/comparison-of-jpeg-lossless-compression-tools et https://gist.github.com/sergejmueller/088dce028b6dd120a16e

Original Size mozjpeg Size libjpeg-turbo Size mozjpeg Speed libjpeg-turbo Speed
621 KB 612 KB 615 KB 0.658 s 0.297 s
505 KB 475 KB 477 KB 0.481 s 0.204 s
391 KB 376 KB 385 KB 0.846 s 0.441 s
888 KB 780 KB 794 KB 0.786 s 0.346 s
700 KB 668 KB 670 KB 0.765 s 0.320 s
425 KB 408 KB 415 KB 0.700 s 0.270 s
322 KB 309 KB 314 KB 0.389 s 0.164 s

Both libraries are called with:

time jpegtran -copy none -progressive img.jpg > compressed.jpg

Summary

mozjpeg generates 1,18% smaller* files as libjpeg-turbo

mozjpeg is 2,3x slower* as libjpeg-turbo

Tests & Results

These are the images used in the tests with the full results and figures:

Comet PANSTARRS with Andromeda Galaxy

Filesize:6,178,710 bytes (5.9mb)

Dimensions: 4824 x 3161

Tool Filesize Reduction Time Taken
jpegoptim 17.635% – 1,089,625 bytes (1mb) 2,342ms
jpegtran 17.635% – 1,089,625 bytes (1mb) 2,221ms
jpegrescan 18.875% – 1,166,276 bytes (1.1mb) 16,816ms
mozjpeg1 18.876% – 1,166,323 bytes (1.1mb) 6,280ms
mozjpeg2 18.879% – 1,166,519 bytes (1.1mb) 5,272ms

Female Mallard

Filesize:4,213,895 bytes (4mb)

Dimensions: 4928 x 3264

Tool Filesize Reduction Time Taken
jpegoptim 6.315% – 266,136 bytes (260kb) 1,658ms
jpegtran 6.315% – 266,136 bytes (260kb) 1,654ms
jpegrescan 7.77% – 327,444 bytes (319kb) 11,387ms
mozjpeg1 7.77% – 327,452 bytes (319kb) 4,716ms
mozjpeg2 7.771% – 327,464 bytes (319kb) 4,237ms

Jupiter and Moons

Filesize:3,157,940 bytes (3mb)

Dimensions: 4928 x 3264

Tool Filesize Reduction Time Taken
jpegoptim 15.537% – 490,662 bytes (479kb) 1,471ms
jpegtran 15.537% – 490,662 bytes (479kb) 1,469ms
jpegrescan 16.574% – 523,402 bytes (523kb) 9,672ms
mozjpeg1 16.574% – 523,402 bytes (523kb) 4,046ms
mozjpeg2 16.514% – 521,533 bytes (521kb) 3,484ms

Beer

Filesize:2,154,968 bytes (2mb)

Dimensions: 3264 x 2448

Tool Filesize Reduction Time Taken
jpegoptim 8.011% – 172,644 bytes (168kb) 854ms
jpegtran 8.011% – 172,644 bytes (168kb) 741ms
jpegrescan 8.666% – 186,750 bytes (182kb) 5,742ms
mozjpeg1 8.666% – 186,750 bytes (182kb) 2,089ms
mozjpeg2 8.483% – 182,815 bytes (178kb) 1,786ms

House Martins

Filesize:1,122,198 bytes (1mb)

Dimensions: 2048 x 1356

Tool Filesize Reduction Time Taken
jpegoptim 5.367% – 60,229 bytes (59kb) 482ms
jpegtran 5.367% – 60,229 bytes (59kb) 501ms
jpegrescan 6.264% – 70,303 bytes (68kb) 3,259ms
mozjpeg1 6.268% – 70,349 bytes (68kb) 1,235ms
mozjpeg2 6.268% – 70,350 bytes (68kb) 1,114ms

Sunset

Filesize:320,398 bytes (312kb)

Dimensions: 1024 x 768

Tool Filesize Reduction Time Taken
jpegoptim 3.642% – 11,672 bytes (168kb) 150ms
jpegtran 3.642% – 11,672 bytes (168kb) 149ms
jpegrescan 4.804% – 15,393 bytes (182kb) 1,423ms
mozjpeg1 4.817% – 15,435 bytes (182kb) 478ms
mozjpeg2 4.819% – 15,441 bytes (182kb) 335ms

Pngquant

GUI ou command-line, disponible pour MAC OSX, Windows, Debian et Linux.

Prix

Gratuit

Usage

./pngquant file.png

Formats supportés

PNG

Performance et rapidité

Rapide.

Compression

PNG : 11ko – 75%

Qualité

Nickel

Conclusion

Au vu des résultats la plupart des solutions payantes en ligne utilisent mozjpeg pour la compression des images jpeg. Guetzli est très intéressant sur les grosses images au niveau de la compression mais le temps est vraiment trop long. Mozjpeg est quant à lui plus rapide.

En ce qui concerne le png, la solution qui semble la plus pratique et moins cher est Pngquant.

Pour le jpeg, il faudra choisir entre rapidité de compression et gain de place. Toutes les solutions présentées ici étant sans perte de qualité on peut bien remarquer que la qualité est toujours la même.

Cependant si l’on diminue la qualité à 90 on pourrait gagner beaucoup plus de place sans que ça ne se voie facilement à l’œil nu.

Prix Usage Format Performance Compression Qualité
Guetzli gratuit CLI jpeg, png « +++++ » parfaite
Pingo gratuit CLI jpeg, png
Kraken très cher API jpeg, png « ++ » « ++ » parfaite
Image Optim cher API jpeg, png « ++ » « +++ » parfaite
Short Pixel pas cher API jpeg, png, gif, pdf « ++ » « +++ » parfaite
EWWW cher API jpeg, png, pdf
Mozjpeg gratuit CLI jpeg « +++ » « +++ » parfaite
Pngquant gratuit CLI png « +++ » « ++++ » parfaite

Laisser un commentaire