Oui j'avais proposé à Jehan de le payer pour une interface à Mozjpeg. Mais on avait peu de moyens. De fil en aiguille il a proposé à Kornelski des modifications, pour intégrer Mozjpeg à Gimp, mais ça stagne.
Save for the web fait du bon boulot à partir de la libjpeg. Mais ne peut pas faire plus que ce que la lib propose. Tandis que Mozjpeg est basé libjpegturbo, qui dispose d'options avancées — et en ajoute qq autres bien sûr.
Pour utiliser Libjpegturbo/Mozjpeg je prépare une image de la plus haute qualité possible, parce que JPEG est mauvais sur la recompression. Ensuite je passe les paramètres à cjpeg (l'utilitaire de compression JPEG standard). J'utilise le cjpeg de Mozjpeg si je l'ai compilé, sinon celui de libjpegturbo.
Voilà les paramètres de libjpegturbo
progressive: progressive jpeg (default)
optimize: libturbo optimizations (default)
smooth: smoothness to reduce jpeg artifacts
sample 1x1: allow to separate Luminance & Chrominance quality
quality: Luminance and Chrominance quality (JPEG compression)
5 Table from paper by Klein, Silversteien and Carney
6 Table from paper by Watson, Taylor and Borthwick
7 Table from paper by Ahumada, Watson, Peterson
8 Table from paper by Peterson, Ahumada and Watson
dc-scan-opt: DC scan optimization mode (default is 1)
notrellis Disable trellis optimization
trellis-dc Enable trellis optimization of DC coefficients (default)
notrellis-dc Disable trellis optimization of DC coefficients
tune-psnr Tune trellis optimization for PSNR
tune-hvs-psnr Tune trellis optimization for PSNR-HVS (default) mesure la distorsion de l'image
tune-ssim Tune trellis optimization for SSIM
tune-ms-ssim Tune trellis optimization for MS-SSIM
... et d'autres pour les "sorciers"
Et voici comment faire
Le paramètre qui a le plus d'effet est dans libjpegturbo, c'est la compression différente pour la Luminance et la Chrominance. On va vulgariser un peu et les appeler lumière et couleur (c'est moins long à taper). Pour la lumière on met le paramètre de compression JPEG habituel, pour la couleur on met 1/4 ou 1/3 en général. Attention c'est lumière d'abord, couleur ensuite.
Pour jouer sur les qualités de lumière et de couleur il faut impérativement le paramètre sample 1x1.
Le lissage (paramètre smooth) alourdit l'image et créé un peu de flou, auquel mon oeil est très sensible. L'utilisation des tables de quantisation permet de s'en passer avec Mozjpeg.
Les tables de quantisation, c'est le deuxième paramètre qui a beaucoup d'effet. Pour le web, c'est le plus souvent la table 3 qui fait gagner le plus de poids, ensuite ce sont les tables 2 et 5. Les tables 7 et 8 permettent d'archiver avec une excellente qualité (je ne retrouve pas la discussion dans les bugs et PR de mozjpeg, mais c'est dedans) ; il m'arrive de m'en servir pour améliorer le rendu d'une image bien compressée, le poids supplémentaire est alors acceptable.
La CLI de base est donc cjpeg -sample 1x1 -quality 65,21
ça marche avec libjpegturbo (on peut ajouter -smooth [un nombre] pour corriger les artefacts de compression JPEG.
Et si on compile Mozjpeg, la CLI de base est cjpeg -sample 1x1 -quality 65,21 -smooth 0 -quant-table 3
... à laquelle je rajoute souvent -dc-scan-opt 2
Les autres paramètres servant (si j'ai bien compris) pour faire des comparaisons automatiques de qualité d'image.
[^] # Re: Bref ?
Posté par orfenor . En réponse au lien It’s the future — you can stop using JPEGs. Évalué à 3. Dernière modification le 18 février 2023 à 15:44.
Oui j'avais proposé à Jehan de le payer pour une interface à Mozjpeg. Mais on avait peu de moyens. De fil en aiguille il a proposé à Kornelski des modifications, pour intégrer Mozjpeg à Gimp, mais ça stagne.
Save for the web fait du bon boulot à partir de la libjpeg. Mais ne peut pas faire plus que ce que la lib propose. Tandis que Mozjpeg est basé libjpegturbo, qui dispose d'options avancées — et en ajoute qq autres bien sûr.
Pour utiliser Libjpegturbo/Mozjpeg je prépare une image de la plus haute qualité possible, parce que JPEG est mauvais sur la recompression. Ensuite je passe les paramètres à cjpeg (l'utilitaire de compression JPEG standard). J'utilise le cjpeg de Mozjpeg si je l'ai compilé, sinon celui de libjpegturbo.
Voilà les paramètres de libjpegturbo
et ceux rajoutés par Mozjpeg
Et voici comment faire
Le paramètre qui a le plus d'effet est dans libjpegturbo, c'est la compression différente pour la Luminance et la Chrominance. On va vulgariser un peu et les appeler lumière et couleur (c'est moins long à taper). Pour la lumière on met le paramètre de compression JPEG habituel, pour la couleur on met 1/4 ou 1/3 en général. Attention c'est lumière d'abord, couleur ensuite.
Pour jouer sur les qualités de lumière et de couleur il faut impérativement le paramètre
sample 1x1.Le lissage (paramètre
smooth) alourdit l'image et créé un peu de flou, auquel mon oeil est très sensible. L'utilisation des tables de quantisation permet de s'en passer avec Mozjpeg.Les tables de quantisation, c'est le deuxième paramètre qui a beaucoup d'effet. Pour le web, c'est le plus souvent la table 3 qui fait gagner le plus de poids, ensuite ce sont les tables 2 et 5. Les tables 7 et 8 permettent d'archiver avec une excellente qualité (je ne retrouve pas la discussion dans les bugs et PR de mozjpeg, mais c'est dedans) ; il m'arrive de m'en servir pour améliorer le rendu d'une image bien compressée, le poids supplémentaire est alors acceptable.
La CLI de base est donc
cjpeg -sample 1x1 -quality 65,21ça marche avec libjpegturbo (on peut ajouter -smooth [un nombre] pour corriger les artefacts de compression JPEG.
Et si on compile Mozjpeg, la CLI de base est
cjpeg -sample 1x1 -quality 65,21 -smooth 0 -quant-table 3... à laquelle je rajoute souvent
-dc-scan-opt 2Les autres paramètres servant (si j'ai bien compris) pour faire des comparaisons automatiques de qualité d'image.