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