Les photos sont souvent enregistrées en ".jpg". Mais d'autres images ont parfois un nom qui se termine en ".gif" ou ".png"...
Que veulent dire ces lettres ?
Et y a-t-il une différence entre ces trois façons de faire perdre du poids à nos fichiers ?
Pour diminuer la place que prend une image dans la mémoire d'un ordinateur ou d'un téléphone, on supprime certains détails. Mais il y a différentes façons de le faire. Pour choisir la meilleure, il faut savoir quelles informations ne changeraient pas grand'chose pour un oeil humain si on s'en passait... Et ça dépend de ce qui est sur l'image ! Mais commençons par regarder de près ce qu'est une image numérique...
|
Un fichier,
|
Que contient le fichier informatique d'une image ?
Une image numérique est un fichier qui décrit une image comme une succession de points, les pixels, en indiquant de quelle couleur est chaque pixel (voir Qu'est-ce que le code binaire informatique ?).
Plus le nombre de couleurs différentes posibles est grand, plus il faut de bits pour donner cette information sur la couleur.
Si le pixel peut seulement être noir ou blanc, 1 bit suffit : il vaudra 0 pour noir, 1 pour blanc.
Mais si votre photo est en noir et blanc, elle doit aussi comporter des gris intermédiaires : on la code souvent sur 8 bits (1 octet) pour avoir 256 nuances du blanc au noir (28=256).
Si le pixel peut avoir 16 millions de couleurs différentes, on indique quelle intensité de rouge, de vert et de bleu on donne à chaque pixel, avec des valeurs entre 0 et 255 pour chaque teinte. Un octet par couleur, ça fait 3 octets par pixel donc 24 bits.
On va même souvent jusque 32 bits en ajoutant un quatrième octet pour donner une information supplémentaire (comme la transparence) ou simplement pour permettre à certains logiciels de travailler plus efficacement parce qu'ils sont conçus pour manipuler des multiples de mots de 16 bits.
Une image perd beaucoup en détails dès qu'on diminue le nombre de couleurs possibles...
image originale :
|
Nombre de couleurs ou niveaux de gris possibles | ||
256 | 16 | 2 | |
Avec 2 couleurs, c'est forcément noir et blanc qu'on soit parti d'une image en couleurs ou d'une image en niveaux de gris... |
|||
Le poids d'une image "brute"
Si on enregistre "telle quelle" une photo, elle est codée en BitMaP, ce qui veut dire "carte des points" en français.
Le fichier a alors l'extension ".bmp" : il s'agit d'une image non comprimée.
Mais une image qui a la taille d'un écran d'ordinateur de 1024 pixels en largeur et 768 pixels en hauteur contient 1024 x 768 = 786 432 pixels.
En 16 millions de couleurs, elle est donc décrite en 786 432 pixels x 24 bits = 18 874 368 bits, soient 2 359 296 octets donc 2,4 Mo (MégaOctets).
Bien souvent, on peut enregistrer cette image avec un poids bien moins grand...
La compression GIF
GIF est l'acronyme de Graphical Interchange Format.
Dans ce format, on décrit chaque point séparément, mais on limite le nombre de couleurs à 256.
On peut aussi choisir de comprimer en utlisant moins de 256 couleurs.
Chaque pixel est donc codé avec, au maximum, 8 bits (28=256).
Pour notre image de 1024 x 768 pixels, le poids ne sera plus que de 786 432 pixels x 8 bits = 6 291 456 bits, soient 786 432 octets donc 786,4 Ko (KiloOctets) : on a divisé son poids par 8 !
Ce format est beaucoup utilisé pour les images des sites internet car il permet aussi de désigner une couleur comme étant transparente à l'écran.
Exemple |
cette image est un GIF sans transparence |
cette image est un GIF avec le même fond gris |
La compression PNG (Portable Network Graphics) est très semblable au format GIF. Mais il y a des informations plus précises sur la transparence : on peut par exemple rendre transparents plusieurs gris différents.
La compression "JPEG"
JPEG est l'acronyme de Joint Photographic Experts Group.
Les images JPEG conservent un spectre de 16 millions de couleurs.
Chaque couleur est donc décrite en 24 bits.
La compression ne concerne donc pas la richesse des couleurs.
Par contre, on réduit la description de l'image en la traitant par blocs de 8x8 points.
Avec la compression JPEG, on perd donc certains détails par rapport à l'image initiale.
Mais, cela permet de diviser considérablement le nombre d'octets nécessaires sans que l'oeil humain ne voit la différence... et le taux de compression (la taille des carrés 8x8, 16x16,... en fait) est ajustable.
Choisir sa méthode de compression en fonction de l'image à comprimer...
Utiliser une compression JPEG n'est pas toujours la meilleure solution.
Elle est très efficace sur les images photographiques car les photos sont très riches en couleurs - qu'il serait dommage de perdre - mais contiennent des détails invisibles à l'oeil nu.
Elle est nettement moins efficace sur des images géométriques car le fait de traiter des carrés de 8 x 8 pixels rend très vite l'image "pas nette".
Par contre, un dessin comporte rarement beaucoup de couleurs différentes : on peut se passer d'une palette de 16 millions de couleurs et choisir le GIF avec ses 256 couleurs différentes.
A retenir donc : on choisit donc plutôt le JPEG pour une photo ou une image très complexe, et plutôt le GIF pour un dessin.
La preuve avec une photo et un dessin, comprimés dans chaque format
Image originale |
Images comprimées en GIF |
Images comprimées en JPEG |
Cas critique en JPEG fort taux de compression (90%) |
34 Mo |
bien plus léger (34 Ko) |
encore plus léger (12 Ko) |
en réduisant encore le poids (3 Ko) |
117 Ko |
bien plus léger (4 kO) |
pour le même poids de 4 kO |
en réduisant encore le poids (2 kO) |
Remarque sur l'imagerie médicale
Pour enregistrer (et télétransmettre) des images médicales, on serait tenté de les alléger.
Mais comme on l'a vu, la compression peut transformer les images.
Et en "lisant" une image modifiée, un médecin risque de se tromper de diagnostic : ces modifications - appelées artefacts - peuvent être condonfues avec des signes pathologiques.
Pour la médecine, on utilise donc le codage JPEG lossless ("sans perte" en français).
Le JPEG lossless ne modifie pas l'aspect de l'image... mais il est forcément moins efficace que le JPEG standard : la taille du fichier ainsi comprimé est seulement divisée par 2 par rapport au fichier initial.
Dans les laboratoires de recherche scientifique, on étudie beaucoup les matériaux à partir d'images (prises par différents moyens) : on ne travaille jamais sur des fichiers comprimés (pour la même raison), mais sur des fichiers "bruts" où on voit vraiment bien chaque détail.
Image des détails d'un alliage de Cobalt et Platine