Le curseur de qualité JPEG n’est pas un pourcentage ! Où se situe donc la différence entre 80 et 100 ?

Lorsque vous exportez une image, ce curseur de qualité JPEG, vous l’utilisez toujours comme un pourcentage ? Vous le poussez à 80 en pensant « j’ai conservé 80 % de la qualité » ; vous le tirez à 100 en vous disant « là, je n’ai rien perdu ».

Cette compréhension doit être entièrement renversée : le chiffre sur le curseur n’a aucun rapport avec un « pourcentage de qualité », et la qualité 100 n’est pas non plus sans perte. Voici d’abord les conclusions directement applicables : pour archiver des photos sereinement, mettez 85–92 ; pour le web et les réseaux sociaux, 75–82 suffisent ; ne mettez pas 100 par défaut, cela ne fait que doubler, voire tripler le poids, sans aucun gain de qualité. Je vais maintenant expliquer simplement, en décortiquant ce curseur.

En une phrase : le curseur de qualité JPEG ne contrôle pas « combien de qualité on conserve », mais à quel point les diviseurs de la table de quantification sont agressifs — plus le diviseur est grand, plus l’arrondi est brutal, plus on perd. Il n’a de relation linéaire ni avec la qualité ni avec le poids : passer de 100 à 90 n’équivaut pas à passer de 20 à 10.

Que fait réellement le curseur de qualité JPEG ?

Posons d’abord une prémisse : le JPEG est un format avec perte ; dès que vous appuyez sur Enregistrer, il perd des informations. Le curseur ne décide que de « l’ampleur de la perte », pas du fait qu’il y ait perte ou non. Cette perte suit un processus fixe, et le curseur est la dernière vanne de cette chaîne.

À l’enregistrement, l’image est d’abord convertie de RVB en YCbCr, séparant la luminance et la chrominance en deux voies. Cette séparation existe parce que l’œil humain perçoit bien mieux la luminance que la couleur ; une fois séparées, on peut ensuite préserver en priorité la luminance.

Ensuite, l’image entière est découpée en petits blocs de 8×8 pixels, et chaque bloc subit une transformée en cosinus discrète (DCT), qui convertit les couleurs des pixels en une série de valeurs de fréquence. On peut comparer cela à la décomposition d’un accord en notes individuelles : les basses fréquences sont les teintes de fond et les dégradés de l’image, les hautes fréquences sont les bords nets et les textures fines. La version complète de ce processus est très bien décrite dans l’article JPEG de Wikipédia.

Le véritable coup fatal intervient à la dernière étape : chaque valeur de fréquence est divisée par un nombre de la table de quantification (Quantization Table), puis arrondie à l’entier. L’arrondi est l’endroit où l’information meurt définitivement — les restes non divisibles sont jetés et ne reviennent jamais. Le curseur de qualité contrôle précisément l’agressivité de ces diviseurs : plus la valeur du curseur est élevée, plus les diviseurs sont petits, et plus l’arrondi abîme peu les données ; plus la valeur est basse, plus les diviseurs sont grands, et plus l’arrondi efface directement les détails. De plus, les diviseurs des hautes fréquences augmentent plus vite, donc ce sont toujours les bords et les textures fines qui sont sacrifiés en premier.

C’est pourquoi il ne peut pas être un pourcentage. Passer de 100 à 90 et passer de 20 à 10 sont deux choses totalement différentes en termes de variation des diviseurs, et les écarts de qualité comme de poids le sont aussi — près de 90, déplacer le curseur d’un cran peut être imperceptible ; près de 20, un seul cran ruine l’image. Le comprendre comme un pourcentage est le malentendu le plus courant et le plus coûteux de ce contrôle.

Pourquoi la qualité 100 n’est pas sans perte

Réponse d’abord : 100 est encore loin d’être sans perte, à cause de deux défauts rédhibitoires : l’un ne dépend pas du tout du curseur, l’autre ne peut pas être sauvé même par le curseur.

Le premier est le sous-échantillonnage de la chrominance (chroma subsampling). Après la conversion RVB vers YCbCr, mais avant que la compression ne commence réellement, la plupart des encodeurs jettent d’abord environ 75 % des détails de chrominance, toujours pour la même raison : l’œil humain est peu sensible à la couleur, donc on ne le remarque pas. Cette étape n’est pas du tout gérée par le curseur ; même réglé sur 100, elle est appliquée quand même.

Le second est que les mathématiques elles-mêmes ne sont pas parfaites. Même si les diviseurs de la table de quantification sont réduits au minimum, l’aller-retour « pixels vers fréquences, puis fréquences vers pixels » conserve de petites erreurs d’arrondi. Une fois le fichier enregistré rouvert, ce ne sont plus exactement les pixels présents au moment où vous avez appuyé sur Enregistrer.

Si vous voulez vraiment ne pas perdre un seul bit, passez par une voie sans perte : PNG, TIFF, ou le mode sans perte de WebP. Le format avec perte est une voie à sens unique ; c’est vrai pour tous les réglages JPEG, y compris ce 100 qui semble « parfait ».

85–92 et 75–82 : comment choisir ?

De nombreux tests pratiques et comparaisons au niveau du pixel aboutissent à une frontière très claire : deux plages suffisent à couvrir presque tous les cas.

85–92 est la plage de conservation. Portfolio, photos à livrer au client, ces fichiers originaux que vous ne voulez surtout pas retoucher : mettez-les dans cette plage. Un fichier enregistré en qualité 90 fait environ 1/8 à 1/12 de la taille non compressée, et la différence est invisible à l’œil nu — il faut zoomer à 400 % et fixer une petite zone pour déceler une variation.

75–82 est la plage web. Images de site, publications sur les réseaux sociaux : mettez-les dans cette plage. Le fichier est encore 40 %–60 % plus petit que dans la plage de conservation ; le prix à payer est surtout un léger ramollissement dans les textures complexes, généralement imperceptible en visualisation normale.

Si vous avez lu l’article précédent « Avec perte et sans perte », la zone idéale 80–85 qui y était donnée n’entre pas en conflit avec ces deux plages : autour de 80, on est déjà dans la plage web ; 85 entre justement dans la plage de conservation. Les images déjà enregistrées en 80–85 n’ont pas besoin d’être réencodées.

Les trois plages se résument en une phrase : ce que vous voulez garder, mettez-le en 85–92 ; ce que vous envoyez, mettez-le en 75–82 ; en dessous de 60, c’est un champ de mines, contournez-le.

Le même recadrage de la même photo exporté en qualité JPEG 90, 75 et 35 : 90 et 75 sont indiscernables, 35 est visiblement flou et découpé en blocs
Le même recadrage, trois exportations réelles : la qualité 90 pèse 102 Ko, la qualité 75 seulement 62 Ko – près de 40 % de moins sans différence visible. Dans la zone d’effondrement, à 35, le fichier perd encore 28 Ko, mais l’image devient floue et se découpe en blocs.

Régler l’export par défaut à 100 relève de l’anxiété, pas de la stratégie. Un fichier en qualité 85 est 60 %–75 % plus petit qu’en qualité 100, sans différence visible en termes de qualité ; pour le web, c’est allonger inutilement le temps de chargement — j’ai détaillé ce calcul pour les images de site dans l’article sur l’accélération des images web.

Pourquoi la qualité en dessous de 60 s’effondre

Quand le curseur passe sous 60, la qualité ne chute pas comme sur une pente, mais comme du haut d’une falaise.

La cause reste l’arrondi. Quand la valeur est trop basse, les diviseurs des hautes fréquences deviennent déraisonnablement grands ; une valeur de fréquence divisée puis arrondie tombe directement à zéro — ce détail n’est donc pas enregistré. Toute une catégorie d’informations visuelles disparaît alors en masse : cheveux, tissage des textiles, pointes des pleins et déliés des caractères à empattements sont les premiers à disparaître.

L’image qui reste présente les artefacts JPEG classiques : des blocs de couleur de 8×8 pixels, des bandes de couleur concentriques dans les dégradés, des bords dentelés et du bruit de moustique (mosquito noise) le long des contours nets. Les grandes formes sont encore là, mais cette image ne mérite plus d’être « regardée ». J’ai consacré un article illustré à l’origine de chaque apparence d’artefact.

Gros plan de la qualité JPEG 90 face à la qualité 30 : le côté basse qualité montre des rayons flous, un mur de briques dissous en blocs et des taches dans le ciel
Ce qui se passe en dessous de 60 : les deux lignes montrent la même zone agrandie 3 fois, à gauche qualité 90, à droite qualité 30. Ligne du haut – rayons et mur de briques : les lignes fines disparaissent d’abord, les jointures se dissolvent en blocs. Ligne du bas – ciel et bord de mur : les dégradés doux se tachent et les bords se halent.

Ma conclusion est donc : 60 est la limite pratique inférieure pour une image ordinaire. Les quelques Ko économisés en dessous ne valent pas la peine : le résultat se voit immédiatement comme faux.

À qualité 90 égale, les logiciels n’exportent pas la même chose

« Qualité 90 » n’est pas une monnaie universelle. La norme JPEG donne une table de quantification recommandée (Annexe K), mais le choix de la table et de son échelle dépend de chaque logiciel. À « haute qualité » égale, quatre outils courants affichent des chiffres totalement différents : l’échelle de Photoshop va de 0 à 12, et son 10 correspond à peu près à 90 dans l’implémentation de référence libjpeg ; GIMP et ImageMagick utilisent une échelle de 1 à 100, le réglage « haute qualité » de GIMP prenant 85, celui d’ImageMagick 92 ; libjpeg, comme implémentation de référence, utilise 90 comme valeur de référence.

Même si deux outils sont réglés sur « qualité 85 », les fichiers exportés ne seront pas identiques. Ne mémorisez donc pas un chiffre dans un logiciel pour le recopier dans un autre. Pour comparer entre logiciels et entre projets, il n’y a que deux méthodes fiables : regarder le poids réellement produit et regarder le rendu visuel réel.

Une règle plus fiable que l’œil nu : le SSIM

Le curseur n’est pas fiable, et l’œil nu dépend de l’écran et des conditions de visualisation. Peut-on quantifier le « je ne vois pas de différence » ? Oui, et la méthode bien plus fiable consiste à changer de règle : l’indice de similarité structurelle (SSIM, Structural Similarity Index Measure).

Il ne compare pas les pixels un par un, mais mesure combien trois choses ont changé : structure, luminance et contraste. C’est plus proche de la façon dont l’œil humain juge une image que « compter combien de pixels diffèrent ». Le score va de 0 à 1 ; 1 signifie que les deux images sont parfaitement identiques. La formule et les détails de son fonctionnement sont clairement expliqués dans l’article SSIM de Wikipédia.

Pour les réglages de qualité courants, le SSIM se situe à peu près à ce niveau : un fichier en qualité 85 obtient généralement un score supérieur à 0,97, visuellement indiscernable de l’original ; à 60, le score tombe entre 0,90 et 0,93, avec un léger ramollissement visible seulement en zoomant ; à 40, il ne reste que 0,82–0,87, et les artefacts sont déjà visibles à l’œil nu.

Ces chiffres sont bien plus honnêtes que le curseur. Pour déterminer la qualité sans deviner, on peut utiliser la commande compare d’ImageMagick pour calculer directement le SSIM de deux images et trouver le point qui « économise le plus de poids sans descendre sous le seuil perceptuel de 0,85 ». J’ai écrit un article séparé, approfondi sur le SSIM, consacré à l’usage de cette règle.

Essayez par vous-même : curseur, SSIM et qualité optimale

Le petit outil ci-dessous fonctionne entièrement dans votre navigateur – les images ne sont jamais envoyées. Choisissez une image (ou cliquez sur « Essayer l’image d’exemple »), déplacez le curseur et observez comment évoluent le poids compressé et le SSIM ; vous pouvez aussi rechercher automatiquement le réglage le plus léger avec un SSIM ≥ 0,85. La valeur de SSIM est calculée en temps réel sur l’image venant d’être compressée – exactement la règle de la section précédente.

Original
Compressée (qualité actuelle)
Différence (détails jetés)
Poids : —
SSIM : —
—
Zoom original/compressée
Amplification de la différence Blanc = détails jetés ; plus clair = plus de perte
Convertisseur de qualité entre logiciels (chaque outil a ses propres chiffres – ne les recopiez pas)

Remarque : les encodeurs JPEG natifs des navigateurs n’exposent ni le sous-échantillonnage de la chrominance ni les tables de quantification. C’est pourquoi l’outil montre l’effet réel du curseur et quantifie la différence avec le SSIM, au lieu de rendre modifiables les entrailles de l’encodeur – et il confirme exactement ce que dit cet article : la qualité 100 n’est pas sans perte, et un même chiffre ne signifie pas la même chose d’un logiciel à l’autre.

Questions fréquentes

Faut-il régler la qualité JPEG sur 80 ou sur 100 ?

Dans la grande majorité des cas, autour de 80 suffit, et 100 ne devrait pas être la valeur par défaut. Un fichier en qualité 85 est 60 %–75 % plus petit qu’en qualité 100, sans aucune différence visible à l’œil nu ; pour des photos que vous voulez sécuriser, mettez 85–92 ; pour le web et les réseaux sociaux, 75–82 suffisent ; en dessous de 60, des artefacts nets apparaissent.

La qualité JPEG 100 est-elle sans perte ?

Non. Même poussé à 100, le JPEG commence généralement par perdre environ 75 % des détails de couleur dans le sous-échantillonnage de la chrominance, puis subit des pertes irréversibles à cause de la quantification et de l’arrondi. Pour du sans perte, utilisez PNG, TIFF ou WebP sans perte.

Pourquoi ne trouve-t-on pas de qualité 85 dans Photoshop ?

L’échelle de qualité JPEG de Photoshop va de 0 à 12, pas de 1 à 100 ; son 10 correspond à peu près à 90 dans l’implémentation de référence libjpeg. La correspondance entre un même chiffre et la qualité varie d’un logiciel à l’autre : ne recopiez pas les chiffres d’un logiciel à l’autre, fiez-vous au poids réellement produit et au rendu visuel.

Comment savoir si la qualité d’une image s’est nettement dégradée après compression ?

Le plus direct est de zoomer et de comparer avec l’original ; pour un indicateur objectif, utilisez le SSIM. Un JPEG en qualité 85 a généralement un SSIM supérieur à 0,97, visuellement indiscernable de l’original ; autour de 40, il tombe à 0,82–0,87, et les artefacts sont visibles à l’œil nu. La commande compare d’ImageMagick permet de calculer directement ce score.

En conclusion

Ce chiffre sur le curseur est un paramètre de division, pas un pourcentage de qualité ; 100 n’est pas sans perte, et en dessous de 60, c’est une falaise. Si l’on veut une formule à retenir : photos à archiver en 85, images pour le web en 80, et 100 n’a sa place nulle part — le fichier double, la qualité n’augmente pas d’un iota.

Si vous voulez passer du choix du format au redimensionnement, puis au réglage de la qualité et à l’accélération web, lisez le « Guide complet de la compression d’image » ; toute la chaîne s’y trouve.