Retour au blog
27 octobre 2026Sergei Solod11 min de lecture

Comment choisir la qualité AVIF avec SSIMULACRA2 sans optimiser chaque image

Calibrez une qualité AVIF fixe avec SSIMULACRA2 et des vérifications visuelles, au lieu de réencoder sans cesse chaque image. Découvrez comment mesurer les taux de réussite, comparer les tailles des fichiers et choisir un réglage pratique.

AVIFSSIMULACRA2Compression d’imagesSharpOptimisation des images

Choisir un réglage de qualité AVIF est simple lorsque seule la taille des fichiers compte. Le plus difficile est de déterminer quel niveau de dégradation visible reste acceptable. Une qualité de 40 ne correspond pas à un score de qualité perceptuelle de 40 et ne garantit pas non plus un résultat identique pour toutes les images. Des sources différentes peuvent réagir très différemment aux mêmes paramètres d'encodage.

SSIMULACRA2 aide à faire le lien en comparant une image compressée puis décodée à une image de référence. Mais rechercher de manière exhaustive la qualité optimale pour chaque image peut transformer une simple chaîne de conversion en un processus d'encodage coûteux. Lorsque l'objectif est d'obtenir une qualité raisonnable pour des images web, plutôt que d'optimiser parfaitement chaque fichier, une méthode plus simple existe : calibrer un réglage de qualité AVIF unique sur un échantillon représentatif, examiner les résultats, puis appliquer ce réglage au reste de la collection.

La qualité AVIF et SSIMULACRA2 mesurent deux choses différentes

L'option quality fournie à un encodeur AVIF est un paramètre de compression. SSIMULACRA2 est une mesure du résultat encodé. Leurs échelles ne sont pas interchangeables : une valeur AVIF quality: 40 n'implique pas un score SSIMULACRA2 de 40, de 60 ni aucune autre valeur fixe.

Pour évaluer un encodage, décodez l'image et comparez-la à la référence :

ssimulacra2 reference.png encoded-decoded.png

Plus le score SSIMULACRA2 est élevé, plus la similarité perceptuelle est grande. Sa documentation officielle qualifie un score autour de 50 de qualité moyenne et un score autour de 70 de haute qualité. Un seuil de 60 peut constituer un objectif pragmatique utile, mais il relève d'un choix de critères, pas d'une définition universelle d'une image acceptable. Examinez toujours des résultats représentatifs à leur taille réelle d'affichage.

Pourquoi optimiser exhaustivement chaque image coûte cher

Un optimiseur strict peut encoder plusieurs fois une même image à différentes valeurs de qualité, mesurer chaque version avec SSIMULACRA2, puis conserver le plus petit fichier dont le résultat est acceptable. Cette méthode permet souvent une compression plus efficace : une image facile à compresser peut atteindre le seuil avec une qualité faible, tandis qu'une image difficile en exige une plus élevée.

Son inconvénient est le nombre d'encodages. Pour N images nécessitant chacune K encodages candidats afin de trouver un réglage acceptable, le volume de travail est de l'ordre de N × K encodages, auxquels s'ajoutent le décodage et l'évaluation. En pratique, l'encodage AVIF avec un effort élevé peut représenter la majeure partie du coût ; le calcul du score SSIMULACRA2 n'est pas nécessairement l'étape la plus coûteuse.

Choisir une qualité par dossier réduit le travail de recherche, mais impose toujours d'échantillonner, de mesurer et de maintenir des réglages distincts pour chaque groupe. Pour des collections ayant les mêmes exigences de diffusion et tolérant quelques exceptions, cette complexité supplémentaire n'en vaut pas forcément la peine.

StratégieTravail de calibrationPrincipal compromis
Qualité adaptative par imagePlusieurs encodages candidats par imageContrôle fin, coût de calibration le plus élevé
Qualité adaptative par groupePlusieurs encodages candidats pour l'échantillon de chaque groupeMoins de travail, mais davantage de réglages et des résultats variables selon le groupe
Qualité fixe uniqueEncodages candidats sur un échantillon de calibration limitéFaible complexité opérationnelle, avec des images parfois trop ou insuffisamment compressées

La distinction essentielle : score moyen ou taux de réussite

Avant de choisir une valeur de qualité, définissez ce que signifie « suffisamment bon ». Deux objectifs qui semblent proches conduisent à des réglages d'encodage très différents :

  • Objectif de score moyen : la moyenne des scores SSIMULACRA2 de l'échantillon doit être d'environ 60.
  • Objectif de taux de réussite : environ 90 % des images doivent obtenir un score SSIMULACRA2 ≥ 60, les autres pouvant rester en dessous de ce seuil.

Ces objectifs ne sont pas équivalents. Lorsqu'on calcule une moyenne, le score élevé d'une image simple peut compenser le mauvais score d'une image difficile. Par exemple, si la moitié des images obtiennent 75 et l'autre moitié 55, la moyenne est de 65, alors que seule la moitié atteint le seuil de 60.

Pour un usage général d'images sur le web, où la plupart doivent avoir une apparence acceptable et où une minorité d'échecs est tolérée, le taux de réussite est souvent un indicateur plus utile. Calculez :

pass_rate = count(scores >= 60) / count(all_scores)

Relevez également la distribution des échecs et examinez les images dont le rendu est le moins bon. Un échantillon dont 9 % des images obtiennent 59 est très différent d'un autre dont 9 % obtiennent 30, même si les deux ont le même taux de réussite.

Ce qu'a montré un exercice réel de calibration

Lors d'une calibration exploratoire d'AVIF, une procédure adaptative a retenu des valeurs de qualité différentes selon les groupes d'images, allant approximativement du milieu de la trentaine au milieu de la quarantaine. C'était prévisible : certains groupes contenaient des images qui franchissaient rapidement le seuil SSIMULACRA2 choisi, tandis que quelques échantillons difficiles demandaient une qualité d'encodage sensiblement plus élevée.

Cependant, la règle adaptative était plus stricte que les exigences réelles de diffusion. Elle cherchait à faire passer le seuil à presque toutes les images testées de chaque groupe, en ne tolérant qu'une exception très limitée. Cela protège les images difficiles, mais peut aussi faire augmenter la qualité d'encodage de tout un groupe à cause d'un seul échantillon exceptionnel.

En réexaminant les mesures selon un autre objectif — environ neuf images sur dix avec un score SSIMULACRA2 d'au moins 60 —, une qualité AVIF unique autour de 39–40 est apparue comme un compromis plausible. Dans cette comparaison, 39 privilégiait des fichiers plus petits, tandis que 40 laissait davantage de marge aux images proches du seuil. Ces valeurs provenaient des données de calibration et d'une analyse complémentaire ; une conversion complète à qualité fixe et une validation indépendante sur l'ensemble du corpus n'avaient pas été réalisées. Le gain exact de taille de fichier de 39 par rapport à 40 n'avait pas été établi.

La leçon n'est pas que la qualité AVIF 39 ou 40 convient partout. C'est qu'un réglage fixe peut être raisonnable lorsqu'il correspond à une distribution de qualité explicitement choisie. Un autre encodeur, un autre ensemble d'images, une autre chaîne de traitement des couleurs ou un autre seuil perceptuel peuvent conduire à une conclusion différente.

Comment calibrer une seule fois la qualité AVIF

  1. Choisissez un taux d'échec acceptable. Par exemple, exigez qu'environ 90 % des images atteignent un score SSIMULACRA2 ≥ 60. Précisez si cet objectif est souple ou s'il s'agit d'une condition stricte de mise en production.
  2. Constituez un échantillon réellement représentatif. Incluez différentes dimensions, différents formats sources, des dégradés, des contours nets, des textures et des images comportant peu de détails. Prélevez aléatoirement des images dans le lot réel et utilisez un échantillonnage stratifié si une catégorie risque autrement d'être absente. Sélectionner les fichiers uniquement selon le nombre d'octets compressés par pixel est une heuristique utile pour couvrir différentes situations, pas une garantie de représentativité perceptuelle.
  3. Testez une petite plage de qualités d'encodage. Commencez avec quelques valeurs proches d'un réglage visuellement acceptable, plutôt que de parcourir toute l'échelle. Par exemple, testez 38, 39, 40 et 42 sur les mêmes images.
  4. Conservez une chaîne d'encodage identique. Gardez constants la résolution, l'orientation, la conversion des couleurs, l'implémentation de l'encodeur, l'effort, le sous-échantillonnage de chrominance, la profondeur de bits et le prétraitement. Si vous ajoutez un filigrane, l'image de référence doit inclure le même filigrane et les mêmes transformations avant la comparaison avec le résultat compressé.
  5. Relevez à la fois le score et la taille. Pour chaque valeur candidate, calculez la proportion d'images obtenant au moins 60, la distribution des scores inférieurs au seuil et le total des octets encodés pour le même échantillon. Ne déduisez pas les économies de bande passante de la seule valeur de qualité.
  6. Examinez les échecs. Regardez les visages, le texte, les traits fins, les dégradés et les autres détails importants pour l'affichage prévu. Vérifiez le rendu à des tailles d'affichage réalistes, pas uniquement en agrandissant les images pour les comparer.
  7. Choisissez la qualité satisfaisante la plus basse, puis validez-la. Testez la valeur candidate sur un échantillon aléatoire distinct, qui n'a pas influencé le choix. Si ne pas atteindre l'objectif de 90 % aurait des conséquences importantes, gardez une marge de sécurité et prenez au sérieux l'incertitude d'échantillonnage. Si quelques échecs sont acceptables, une valeur plus agressive peut se justifier.

Calibrer une fois ne signifie pas ignorer les changements ultérieurs. Recommencez une petite vérification sur échantillon lorsque le type d'images sources, leurs dimensions, la version de l'encodeur, les transformations de diffusion ou les exigences visuelles changent.

Une comparaison minimale avec Sharp et SSIMULACRA2

Cet exemple simplifié utilise l'encodeur AVIF de Sharp pour produire deux variantes à partir de la même image. Il illustre une méthode de calibration ; il ne signifie pas que tous les projets doivent adopter ces options d'encodage ou ces valeurs de qualité. Exécutez-le comme un module ES après avoir installé sharp.

import sharp from 'sharp';

const source = 'sample.png';
const encoding = {
  effort: 9,
  chromaSubsampling: '4:4:4',
  bitdepth: 8,
  tune: 'iq',
  lossless: false
};

// Use the same orientation and color conversion in both paths.
await sharp(source)
  .rotate()
  .toColourspace('srgb')
  .png()
  .toFile('reference.png');

for (const quality of [39, 40]) {
  const encoded = `candidate-q${quality}.avif`;
  await sharp(source)
    .rotate()
    .toColourspace('srgb')
    .avif({ ...encoding, quality })
    .toFile(encoded);

  await sharp(encoded)
    .png()
    .toFile(`candidate-q${quality}.png`);
}

Comparez ensuite les variantes décodées à la référence préparée :

ssimulacra2 reference.png candidate-q39.png
ssimulacra2 reference.png candidate-q40.png

Pour un véritable test, automatisez ce processus sur les images de l'échantillon et recueillez le score et la taille du fichier pour chaque valeur candidate. Si votre chaîne de production redimensionne, recadre, superpose des éléments ou transforme les images d'une autre manière, appliquez les mêmes opérations à l'image de référence utilisée pour la comparaison. Sinon, SSIMULACRA2 mesurera en partie les effets de la transformation plutôt que les pertes dues à la compression.

Une fois la qualité globale choisie, l'encodage en production redevient une conversion AVIF ordinaire en une seule passe. Il n'est plus nécessaire de rechercher la qualité optimale pour chaque image ou chaque dossier. Cela supprime les encodages d'essai répétés, mais pas le coût de l'encodage unique encore nécessaire pour chaque image produite.

Quand une qualité AVIF unique n'est pas adaptée

Un réglage fixe est un compromis, pas un optimum universel. L'encodage adaptatif reste intéressant lorsque des seuils minimaux de qualité par image sont contractuels, que les défauts visuels sont inacceptables, que les sources varient énormément ou que le gain sur chaque octet justifie les calculs supplémentaires et la complexité de mise en œuvre.

Soyez particulièrement prudent avec les ensembles mêlant différents types d'images. Photographies, illustrations aux aplats de couleur, textes fins et sources déjà compressées ne réagissent pas nécessairement de la même façon. Si une catégorie échoue régulièrement au test d'acceptation, quelques profils adaptés au format ou au contenu peuvent être plus efficaces que les deux extrêmes : un réglage universel ou une optimisation complète image par image.

Distinguez aussi vitesse d'encodage et vitesse de calibration. Une qualité unique évite de multiplier les essais, mais encoder toutes les images avec un effort très élevé peut rester coûteux en calcul. Un profil d'encodage avec un effort plus faible constitue une autre optimisation valable, à condition de recalibrer : la relation entre valeur de qualité et score peut changer selon les options de l'encodeur.

La règle pratique

Utilisez SSIMULACRA2 comme un outil de calibration, pas nécessairement comme une étape obligatoire de production pour chaque image. Choisissez un objectif de qualité qui correspond à la façon dont les images seront réellement vues, encodez un échantillon représentatif avec quelques réglages proches, comparez à la fois les scores perceptuels et les volumes en octets, examinez les échecs et retenez la valeur la plus basse qui respecte votre tolérance.

Dans une calibration exploratoire, une qualité AVIF autour de 39–40 semblait un compromis raisonnable. Il s'agissait d'une décision prise selon un seuil et une tolérance précis, pas d'un préréglage universel ni d'un résultat confirmé par un benchmark sur l'ensemble du corpus. La leçon réutilisable est plus simple : lorsque le temps et les ressources de calcul sont limités, une qualité fixe soigneusement validée est souvent plus pratique que l'optimisation sans fin de chaque image.