Guetzli, une librairie d'encodage JPG optimisée
Il y a 2 mois, Google a sorti une librairie nommée Guetzli spécialisée dans la compression d'image au format JPG. Alors que les librairies d'encodage JPG actuelle ne font qu'une seule passe pour optimiser les images, cette librairie en fait trois pour analyser bien plus en profondeur l'image et délivrer une image compatible avec le format JPG dont la perception sera identique pour nous, tout en étant jusqu'à 35% plus léger.
Première bonne nouvelle, cette librairie est Open Source, et tout le monde peut l'utiliser autant qu'il le souhaite. Le but étant, pour Google, qu'un maximum de monde s'en serve, afin d'alléger Internet ... tout simplement.
Seconde bonne nouvelle, la librairie a été publiée par Google sur Brew, et comme nous avons découvert ensemble l'utilisation de ce fantastique outil, nous allons pouvoir continuer à nous en servir pour installer Guetzli. L'utilisation se fera donc en ligne de commandes.
Commencez par ouvrir votre terminal, puis commencez par mettre votre Brew à jour en suivant les commandes indiquées dans la section 3 de l'article dédié.
Commençons par voir les informations disponibles pour Guetzli :
brew info guetzli
voici les informations données
guetzli: stable 1.0.1 (bottled), HEAD
Perceptual JPEG encoder
https://github.com/google/guetzli
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/guetzli.rb
==> Dependencies
Build: pkg-config ✘
Required: libpng ✔
Si cela vous intéresse toujours, installons le :
brew install guetzli
Il ne vous reste qu'à lancer la commande
guetzli
pour voir comment on s'en sert
Guetzli JPEG compressor. Usage:
guetzli [flags] input_filename output_filename
Flags:
--verbose - Print a verbose trace of all attempts to standard output.
--quality Q - Visual quality to aim for, expressed as a JPEG quality value.
--memlimit M - Memory limit in MB. Guetzli will fail if unable to stay under
the limit. Default is 6000 MB
--nomemlimit - Do not limit memory usage.
C'est finalement assez simple, nous pouvons commencer par l'utiliser sans "flags", juste pour encoder une image.
N'oubliez pas, comme nous sommes en ligne de commande, il faut indiquer tous les chemins ou se placer dans le dossier où se trouve votre image à compresser afin de continuer.
Pour le test, je vais encoder des images d'un précédent article, et ainsi voir comment je peux optimiser mon site, et j'ai créé un dossier "Opti" exprès pour les images compressées afin de pouvoir faire une comparaison.
Je lance la commande sur une première image :
guetzli Opening.jpg Opti/Opening.jpg
La commande est "relativement" longue à être exécutée, en général, enregistrer un JPEG d'une image de 500pixels de large est quasi instantané, ici il a fallut 2 à 3 secondes. La complexité de la librairie semble nécessiter beaucoup plus de ressources qu'un enregistrement JPEG standard.
Au résultat je suis passé d'un fichier de 34Ko à 26Ko sans différence visible. Le résultat attendu est bien là, mon fichier a "maigri" de 30% de son poids environ.
Il est possible d'indiquer un flag de qualité, qui fonctionne de la même manière que la gestion standard du JPEG, comme les librairies web ou Photoshop par exemple.
Gueztli, afin de conserver une qualité minimale, ne nous permet pas de descendre en dessous de 84, cela permet de limiter les artefacts graphiques.
guetzli --quality 70 Opening.jpg Opti/Opening.jpg
Guetzli should be called with quality >= 84, otherwise the
output will have noticeable artifacts. If you want to
proceed anyway, please edit the source code.
Guetzli processing failed
En testant à 84, j'obtiens une image de 22Ko soit 40% plus légère pour une différence difficilement notable.
Par défaut la qualité semble être à 95%, ce qui permet d'obtenir un résultat très proche de l'original.
En testant sur une autre image, bien plus chargée en couleurs, et en pixels, le délai de création est encore plus long, mais le résultat est encore une fois au rendez-vous, l'image est passée de 216Ko à 141Ko, toujours pour une différence invisible à l'oeil nu. En qualité minimale (84, donc), le délai s'allonge encore, mais le poids descend à un incroyable 89Ko, cependant la qualité en pâti sérieusement.
Sachant que les images sont responsables de la majorité du poids d'une page web, l'utilisation de cet outil peut être en effet extrêmement bénéfique. Notamment si vous souhaitez votre site optimisé mobile, réduire ainsi le poids des images permettra d'avoir un affichage plus rapide de vos pages en particulier lors d'une visite en 3G. Cela représente un investissement en temps, puisqu'il faut traiter toutes les images, mais qui payera ensuite sur la réactivité du site internet.
- Homebrew - Gestionnaire de paquets
- Guetzli, une librairie d'encodage JPG optimisée
- Installer les commandes ecm et unecm sur macOS
- Homebrew : Recherche et commandes avancées
- Astuce macOS : Gérer les images disques au format bin/cue
- Plein phare sur une application Brew : youtube-dl
- Plein phare sur une application Brew : smartmontools
- Plein phare sur une application Brew : minidlna
- Brew et les paquets installés
- Plein phare sur une application Brew : unrar
- Plein phare sur une application Brew : glances
- Brew et les paquets à mettre à jour
- Plein phare sur une application Brew : watch
- Homebrew et la gestion de l'espace disque
- Plein phare sur une application Brew : ncdu
- Plein phare sur une application Brew : TestDisk
- Convertir une série d'images en GIF animé sur macOS
- Plein phare sur une application Brew : p7zip
- Plein phare sur une application Brew : Optimiser des PNGs avec ImageOptim
- Plein phare sur une application Brew : pstree
- Plein phare sur une application Brew : lsusb
- Plein phare sur une application Brew : rename
- Plein phare sur une application Homebrew : nmap
- Gérer les mises à jours des applications Homebrew sur 10.14 et inférieur.
- Gérer les mises à jours des applications Homebrew sur 10.14 et inférieur, partie 2.
- Plein phare sur une application Brew : yt-dlp
- Homebrew : Corriger un problème de dépendances trop récentes