Presque tous les appareils photo numériques utilisent un algorithme de compression connu sous le nom de « compression JPEG ». Comment cela fonctionne-t-il ?
L’algorithme peut être séparé en plusieurs étapes. Nous ne montrons que les étapes de la compression, la décompression se fait dans l’ordre inverse. Nous ne montrons que la compression la plus courante : La compression avec perte des données RVB 8 bits. Le terme « avec perte » signifie que la compression réduit également une partie du contenu de l’image (contrairement à la compression sans perte).
Conversion des couleurs et sous-échantillonnage
En partant des données RVB, ces données sont divisées en composantes de luminance et de couleur. Les données sont converties en Yuv. Cette étape ne réduit pas la quantité de données car elle ne fait que changer la représentation de la même information. Mais comme l’observateur humain est beaucoup plus sensible à l’information d’intensité qu’à l’information de couleur, l’information de couleur peut être sous-échantillonnée sans perte significative d’information d’image visible. Mais bien sûr, la quantité de données est réduite de manière significative.
Traitement par blocs et DCT
Les données de l’image Yuv avec les composantes de couleur sous-échantillonnées sont ensuite divisées en blocs de 8x8pixels. L’algorithme complet est exécuté à partir de maintenant sur ces blocs de pixels. Chaque bloc est transformé à l’aide de la transformation en cosinus discret (DCT). Qu’est-ce que cela signifie ? Dans le domaine spatial, les données sont décrites par une valeur numérique pour chaque pixel. Nous représentons donc le contenu de l’image par une liste de numéros de pixels et de valeurs de pixels. Après la transformation, le contenu de l’image est décrit par le coefficient des fréquences spatiales pour l’orientation verticale et horizontale.
Quantification
Pour réduire la quantité de données nécessaires au stockage des 64 coefficients, ceux-ci sont quantifiés. En fonction de la taille des étapes de quantification, plus ou moins d’informations sont perdues lors de cette étape. La plupart du temps, l’utilisateur peut définir la force de la compression JPEG. Voici un outil qui vous permet de compresser vos images JPEG et de les convertir en PDF gratuitement et d’une manière rapide. Il vous suffit de cliquer ici.
Ré-ordonnancement et codage à longueur variable
En fonction de la quantification, de plus en plus de coefficients sont réduits à zéro. Et la probabilité est très élevée, que ces coefficients à valeur 0 se trouvent dans les hautes fréquences plutôt que dans les basses fréquences. Les données sont donc réorganisées de la manière suivante : les valeurs sont triées par fréquence spatiale, d’abord les basses fréquences, puis les hautes fréquences. Après le ré-ordonnancement, il est très probable que nous ayons quelques valeurs au début et ensuite beaucoup de 0. Au lieu de stocker « 0 0 0 0 0 0 0 0 0 0 », nous pouvons facilement stocker « 10x 0 ». De cette façon, la quantité de données est également réduite de manière significative.
Conclusion
La compression JPEG est une compression basée sur les blocs. La réduction des données est réalisée par le sous-échantillonnage des informations de couleur, la quantification des coefficients DCT et le codage de Huffman (réorganisation et codage). L’utilisateur peut contrôler la perte de qualité de l’image due à la réduction des données en réglant (ou en choisissant des préréglages). Pour une compression de haute qualité, le sous-échantillonnage peut être ignoré et la matrice de quantification peut être sélectionnée de manière à ce que la perte d’information soit faible. Pour des paramètres de compression élevés, le sous-échantillonnage est activé et la matrice de quantification est sélectionnée pour forcer la plupart des coefficients à 0. Dans ce cas, l’image obtient des artefacts clairement visibles après la décompression.