28/08/2010 à 10:48
Soupeaulait
La suite des explications sur le format des images numériques.
Il existe une multitude de format pour les images numériques, JPG ou JPEG, TIFF, BMP, GIF etc... (je ne parlerai pas du format RAW car il ne s'agit pas d'un format d'image, un fichier RAW ne s'affiche pas sur un écran, lorsque vous ouvrez un fichier RAW, le logiciel génére un fichier JPEG et toutes vos modifications sont appliquées au fichier RAW, d'où les différences rencontrées lorsqu'on affiche un même fichier RAW dans divers logiciels).
Donc, quelles sont les caractéristiques de ce fameux format JPEG ?
Tout d'abord, rappel sur la constitution d'un fichier image.
Le fichier est composé d'un certain nombre de pixels. Chaque pixel est un point de l'image. Pour permettre d'afficher l'image, le fichier comprend un certain nombre d'informations à propos de ces pixels.
Pour afficher diverses couleurs d'un pixel, divers paramètres sont enregistrés.
Afin d'obtenir un rendu optimal des couleurs, chaque pixel est décomposé en nuances de Rouge, Vert et Bleu. En associant ces nuances primaires on obtient toute une gamme de couleurs secondaires. Souvenez-vous de vos premiers dessins à la gouache.
(Petit aparté : sur un écran, les couleurs primaires sont le Rouge, le Vert et le Bleu, pour une impression il s'agit des couleurs Cyan (bleu clair), Jaune, et Magenta (rouge type fuschia)).
Donc, pour chaque pixel il nous faut une valeur rouge, une valeur bleue et une valeur verte.
Chaque valeur est codée sur un certain nombre d'octets (un octet valant 8 bits, le bit étant la brique élémentaire d'un fichier informatique, sa valeur est soit 1 ou 0).
Question : Si chaque valeur est codée sur un seul octet, c'est à dire une suite de 8 bits, combien de valeur peuvent prendre mes informations de couleur ?
Chaque information de couleur prendra n'importe quelle valeur entre 00000000 et 11111111 (succession de 8 valeurs), soit en décimal n'importe quelle valeur entre 0 et 255, soit 256 valeurs différentes.
Ca ne vous dit rien ? C'est le nombre de couleurs utilisées dans certains formats, tels les fichier GIF.
D'autres formats utilisent 16, 24 ou 32 bits. Cela permet d'augmenter le nombre de nuances de couleurs que le fichier peut contenir.
L'un des formats utilisés pour les images est le format BMP, ce format est un format "brut", c'est à dire que toutes les valeurs de couleurs des pixels sont conservées, sans compression, sans modifications.
Une image de 1024x768 (ce n'est pas très grand) comporte donc 786 432 pixels, si on enregistre cette image en BMP elle "pésera", sous 8 bits, 2 359 296 octets, soit environ 2,2 Mo.
Si on souhaite l'afficher sous 24 bits (16,7 millions de couleurs) elle pésera 18mo !!
Préparez vos cartes mémoires. ;)
Une solution est de compresser la photo, c'est à dire de réduire le nombre d'informations de chaque pixel.
Comment fait-on ?
Une solution consiste à se dire qu'une image est composée d'une multitude de point, que les variations de "couleurs" entre ces points sont minimes pour 2 points contigus.
Donc, si je prend un premier point comportant diverses informations de couleurs, et si je compare le point suivant à ce premier point, je vais noter une légère différence.
Le principe du codage JPEG, c'est ça. Au lieu de coder toutes les informations brutes, on ne code que les variations entre des points relativement proches. les variations étant infimes, on peut coder sur très peu d'octets, et donc "gagner" des octets au passage, ce qui permettra de réduire l'espace occupé en mémoire par le fichier.
En pratique, l'image est découpée en carré de 16x16 ou 20x20 pixel, le point situé en haut à gauche est échantillonné (ses couleurs sont analysées), il devient la référence par rapport à tous les autres points du carré défini.
Si les variations sont trop importantes (on passe d'une couleur jaune à une couleur noire par exemple), le pixel est enregistré avec ses informations et on recommence l'opération).
Le taux de compression appliqué au fichier JPEG permet de définir la tolérance que l'on souhaite obtenir pour mesurer la variations de nuances entre 2 pixels. Plus le ratio de compression est faible, plus on autorise le logiciel a accepter de grandes variations de couleurs entre les pixels.
Tout ceci est réalisé par le logiciel associé au capteur de votre appareil.
C'est aussi pour cette raison que la taille de vos photos est variable sur la carte mémoire. Pour un même nombre de pixels, chaque fichier ne "pèse" pas le même poids que les autres.
Au final, si on autorise un fort taux de compression, les dégradés disparaissent, les zones comportant un certains nombres de pixels ayant des couleurs proches mais variables paraissent floues (exemple les feuillages, le ciel, les nuages).
C'est pour cette raison que le format JPEG est dit destructif, car une fois enregistré, on ne récupère plus les informations supprimées lors de la compression.
Il en est de même si on ouvre un fichier JPEG et qu'on le ré-enregistre en modifiant le ratio de compression.
Voilà, vous savez tout.
Ces explications sont volontairement simples (enfin j'espère), voire simplistes pour vous faire saisir le principe du JPEG et vous permettre de comprendre pourquoi certaines images paraissent de mauvaises qualités parfois (indépendamment des talents du photographe :) ).
Il existe une multitude de format pour les images numériques, JPG ou JPEG, TIFF, BMP, GIF etc... (je ne parlerai pas du format RAW car il ne s'agit pas d'un format d'image, un fichier RAW ne s'affiche pas sur un écran, lorsque vous ouvrez un fichier RAW, le logiciel génére un fichier JPEG et toutes vos modifications sont appliquées au fichier RAW, d'où les différences rencontrées lorsqu'on affiche un même fichier RAW dans divers logiciels).
Donc, quelles sont les caractéristiques de ce fameux format JPEG ?
Tout d'abord, rappel sur la constitution d'un fichier image.
Le fichier est composé d'un certain nombre de pixels. Chaque pixel est un point de l'image. Pour permettre d'afficher l'image, le fichier comprend un certain nombre d'informations à propos de ces pixels.
Pour afficher diverses couleurs d'un pixel, divers paramètres sont enregistrés.
Afin d'obtenir un rendu optimal des couleurs, chaque pixel est décomposé en nuances de Rouge, Vert et Bleu. En associant ces nuances primaires on obtient toute une gamme de couleurs secondaires. Souvenez-vous de vos premiers dessins à la gouache.
(Petit aparté : sur un écran, les couleurs primaires sont le Rouge, le Vert et le Bleu, pour une impression il s'agit des couleurs Cyan (bleu clair), Jaune, et Magenta (rouge type fuschia)).
Donc, pour chaque pixel il nous faut une valeur rouge, une valeur bleue et une valeur verte.
Chaque valeur est codée sur un certain nombre d'octets (un octet valant 8 bits, le bit étant la brique élémentaire d'un fichier informatique, sa valeur est soit 1 ou 0).
Question : Si chaque valeur est codée sur un seul octet, c'est à dire une suite de 8 bits, combien de valeur peuvent prendre mes informations de couleur ?
Chaque information de couleur prendra n'importe quelle valeur entre 00000000 et 11111111 (succession de 8 valeurs), soit en décimal n'importe quelle valeur entre 0 et 255, soit 256 valeurs différentes.
Ca ne vous dit rien ? C'est le nombre de couleurs utilisées dans certains formats, tels les fichier GIF.
D'autres formats utilisent 16, 24 ou 32 bits. Cela permet d'augmenter le nombre de nuances de couleurs que le fichier peut contenir.
L'un des formats utilisés pour les images est le format BMP, ce format est un format "brut", c'est à dire que toutes les valeurs de couleurs des pixels sont conservées, sans compression, sans modifications.
Une image de 1024x768 (ce n'est pas très grand) comporte donc 786 432 pixels, si on enregistre cette image en BMP elle "pésera", sous 8 bits, 2 359 296 octets, soit environ 2,2 Mo.
Si on souhaite l'afficher sous 24 bits (16,7 millions de couleurs) elle pésera 18mo !!
Préparez vos cartes mémoires. ;)
Une solution est de compresser la photo, c'est à dire de réduire le nombre d'informations de chaque pixel.
Comment fait-on ?
Une solution consiste à se dire qu'une image est composée d'une multitude de point, que les variations de "couleurs" entre ces points sont minimes pour 2 points contigus.
Donc, si je prend un premier point comportant diverses informations de couleurs, et si je compare le point suivant à ce premier point, je vais noter une légère différence.
Le principe du codage JPEG, c'est ça. Au lieu de coder toutes les informations brutes, on ne code que les variations entre des points relativement proches. les variations étant infimes, on peut coder sur très peu d'octets, et donc "gagner" des octets au passage, ce qui permettra de réduire l'espace occupé en mémoire par le fichier.
En pratique, l'image est découpée en carré de 16x16 ou 20x20 pixel, le point situé en haut à gauche est échantillonné (ses couleurs sont analysées), il devient la référence par rapport à tous les autres points du carré défini.
Si les variations sont trop importantes (on passe d'une couleur jaune à une couleur noire par exemple), le pixel est enregistré avec ses informations et on recommence l'opération).
Le taux de compression appliqué au fichier JPEG permet de définir la tolérance que l'on souhaite obtenir pour mesurer la variations de nuances entre 2 pixels. Plus le ratio de compression est faible, plus on autorise le logiciel a accepter de grandes variations de couleurs entre les pixels.
Tout ceci est réalisé par le logiciel associé au capteur de votre appareil.
C'est aussi pour cette raison que la taille de vos photos est variable sur la carte mémoire. Pour un même nombre de pixels, chaque fichier ne "pèse" pas le même poids que les autres.
Au final, si on autorise un fort taux de compression, les dégradés disparaissent, les zones comportant un certains nombres de pixels ayant des couleurs proches mais variables paraissent floues (exemple les feuillages, le ciel, les nuages).
C'est pour cette raison que le format JPEG est dit destructif, car une fois enregistré, on ne récupère plus les informations supprimées lors de la compression.
Il en est de même si on ouvre un fichier JPEG et qu'on le ré-enregistre en modifiant le ratio de compression.
Voilà, vous savez tout.
Ces explications sont volontairement simples (enfin j'espère), voire simplistes pour vous faire saisir le principe du JPEG et vous permettre de comprendre pourquoi certaines images paraissent de mauvaises qualités parfois (indépendamment des talents du photographe :) ).