web-dev-qa-db-fra.com

Le JPEG est-il sans perte lorsque la qualité est définie sur 100?

Je comprends que JPEG est une norme de compression avec perte et que le facteur "qualité" contrôle le degré de compression et donc la quantité de perte de données.

Mais lorsque le nombre de qualité est défini sur 100, le jpeg résultant est-il sans perte?

60
Sugrue

Comme répondu correctement ci-dessus, l'utilisation d'un encodeur JPEG "typique" de qualité 100 ne vous donne pas une compression sans perte. Le codage JPEG sans perte existe, mais il est de nature différente et rarement utilisé.

Je poste juste pour dire pourquoi la qualité 100 ne signifie pas sans perte.

En JPEG, les informations de compression sont principalement perdues lors de l'étape de quantification des coefficients DCT (les blocs de coefficients 8 x 8 sont divisés par une table de quantification 8 x 8, ils deviennent donc plus petits -> "plus compressibles"). Lorsque vous définissez la qualité JPEG sur 100, aucune véritable quantification n'a lieu (car la table de quantification sera entièrement à 1, au moins avec les tables IJG-JPEG standard), donc en fait, vous ne perdez pas d'informations ici.

Cependant, il existe principalement deux facteurs conduisant à une perte d'informations même en l'absence de quantification:

  1. En règle générale, la compression JPEG réduit les informations sur les couleurs (car le système visuel humain y est moins sensible qu'à la lumimance). Par conséquent, même à la qualité 100, vous pouvez effectuer un sous-échantillonnage de chrominance (ce qui signifie, laisser tomber la moitié ou plus des coefficients Cb et Cr). Lorsque cela se produit, des informations sont perdues, même lorsqu'aucune quantification ne se produit. Cependant, vous pouvez indiquer à l'encodeur de conserver la chromimance complète (ce que l'on appelle un échantillonnage des couleurs 4: 4: 4).
  2. Néanmoins, le codage JPEG implique d'aller dans le domaine DCT, ce qui provoque l'arrondi des coefficients. L'arrondi supprime certaines informations. Cela se produira indépendamment de toutes les autres options.
31
Marco Fontani

Jpeg est avec perte quel que soit le paramètre. À 100, vous obtenez juste la MOINS de perte possible.

C'est assez facile à tester. Préparez un simple .bmp, compressez-le en un q = 100 jpeg, puis ré-extrayez à nouveau en .bmp. Utilisez Gimp/Photoshop pour faire une "différence" des deux bitmaps, et vous verrez le manque à gagner - ce sera beaucoup moins visible que sur une conversion q = 50 ou q = 1, mais toujours présent.

62
Marc B

Il existe un forme sans perte de JPEG mais il n'est pas largement pris en charge et vous ne l'obtenez pas en modifiant le paramètre de qualité - c'est un processus entièrement différent.

22
Mark Ransom

Selon wikipedia , Non.

jpeg 100 a un taux de compression de 2,6: 1. La méthode de compression est généralement avec perte, ce qui signifie que certaines informations sur l'image d'origine sont perdues et ne peuvent pas être restaurées, ce qui peut affecter la qualité de l'image.

Il existe un mode sans perte optionnel défini dans la norme JPEG; cependant, ce mode n'est pas largement pris en charge dans les produits.

0
Mark Price