Univers Apple

15
Juin
2017

Guetzli, une librairie d'encodage JPG optimisée

Publié par sky

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.

Article skymac : Guetzli, une librairie d'encodage JPG optimisée

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.

 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.