Lilapuce
 

exercices (samedi 2 février 2013)

Taille de fichier image

Nous avons désormais une idée du poids minimum en kilooctet que représente la saisie d’un caractère au clavier.

Voyons à présent ce qu’il en est des images.

Prenons, par exemple, cette image (disponible en fichier attaché).

Nous savons, rien qu’en l’affichant sous forme de vignette dans l’explorateur de fichiers, qu’il s’agit d’une photo en couleur au format JPEG (extension .JPG) qui pèse 705 Ko et dont la définition est de 1478 × 2216 pixels.

Le but du jeu consiste à éditer ce fichier afin de montrer le rapport entre le nombre de pixels d’une image et la taille du fichier (en Ko).

Pour cela, il va falloir demander au système de l’éditer dans un logiciel graphique. Nous utiliserons l’excellent logiciel libre Gimp, que je vous recommande de télécharger

Une fois que Gimp est installé sur l’ordinateur, il suffit de faire un clic droit sur le fichier que l’on souhaite éditer et de cliquer ensuite sur « Edit with Gimp ».

Voici à quoi ressemble l’interface de Gimp. Pour plus d’information sur ce programme, je vous recommande de jeter un coup d’œil sur les supports de l’atelier « Infographie ».

La première chose qu’il faut savoir, lorsqu’on traite une photo sur son ordinateur, c’est qu’il s’agit d’un fichier dit de type « BitMap », qui n’est composé, en réalité, que d’un quadrillage de points, les fameux pixels.

Chaque pixel est un carré composé d’une seule couleur. Ce n’est qu’en agrandissant fortement le zoom sur le fichier, à l’aide de l’éditeur graphique, que l’on peut distinguer ces pixels :

Ci-dessus, par exemple, j’ai augmenté le taux d’agrandissement de l’affichage à 1100%. Notez bien qu’en faisant cette opération, je n’ai en rien modifié la définition de l’image (le nombre de pixels). Je me suis juste contenté de demander à Gimp d’agrandir la taille d’affichage à l’écran, tout comme il est possible, sur un traitement de texte, de zoomer un texte en corps 8 pour le lire dans des conditions plus confortable.

Une petite précision théorique s’impose pour expliquer ce que représente la couleur qui s’affiche sur chacun des pixels de notre photo.

Comme nous l’avons déjà indiqué, il est important de garder à l’esprit que le fait de générer un fichier informatique ne consiste en rien d’autre, en définitive, qu’à effectuer un codage de l’information de façon à ce que cette information soit comprises par l’ordinateur. Nous savons, désormais, que ce codage doit obligatoirement s’exprimer en données binaires : les bits.

Les appareils photo numériques et les scanners, sont précisément des machines conçues pour coder l’information sous forme d’images numériques.

Sachant cela, il serait intéressant de savoir combien de bits sont nécessaires par pixel pour afficher les couleurs d’une photo de ce type.

Ce qu’on appelle « true color » (couleurs vraie), correspond à un échantillonnage de couleurs dont les nuances dépassent de loin ce que l’œil humain peut percevoir : plus de 16 millions de couleurs.

Comment est-on arrivés à ce chiffre ?

Votre appareil photo vous fournit des images codées sur 24 bits. Cela signifie que chaque pixel affiche une couleur parmi une gamme de 224 nuances, soit, exactement, 16 777 216 couleurs.

Puisque chaque pixels pèse 3 octets (24 bits), il suffit de multiplier le nombre global de pixels par 3 pour vérifier la taille du fichier.

À l’aide d’un tableur, il est simple d’effectuer ce calcul :

Je multiplie le nombre de pixels en largeur par le nombre de pixels en hauteur et j’obtiens la définition de mon image.

Il suffit ensuite de multiplier ce chiffre par 3 (24 bits par pixels) et j’obtiens le nombre total d’octets, puis de kilooctets.

Normalement, compte tenu de la définition de mon image, ce fichier devrait donc peser 9 826 Ko.

Or, nous avons vu que nous sommes très loin de ce chiffrage. Le système indiquait que cette image pèse 705 Ko :

Pour comprendre pourquoi le poids (Ko) de cette image est beaucoup moins important que ce qu’il devrait théoriquement être, nous allons simuler l’enregistrement d’une copie de cette image dans le même format de fichier que l’original :

Il s’agit, nous l’avons déjà remarqué, d’une image au format JPEG.

C’est précisément cette caractéristique qui explique pourquoi le poids de ce fichier ne correspond pas à 3 octets par pixels.

Le format JPEG permet de compresser très fortement le poids du fichier en rassemblant par groupes d’information les pixels de valeur voisine. Ce qui sera considéré comme « valeur voisine » sera défini en fonction du taux de compression. La compression est, de ce fait très spectaculaire mais attention : plus l’image est compressée, plus la qualité est dégradée et la compression est définitive (sans possibilité de retrouver l’image d’origine).

Maintenant que nous savons pourquoi notre fichier JPEG pèse 705 Ko au lieu des 9 826 Ko attendus, nous pouvons annuler notre enregistrement.

Une fois revenu dans l’éditeur, je renouvelle l’enregistrement d’une copie du fichier, mais cette fois-ci, je modifie le format : ce sera TIF.

Je vérifie qu’aucune compression n’est paramétrée et j’enregistre :

Je retourne ensuite dans l’explorateur de fichiers de Windows et j’effectue un clic droit de la souris afin obtenir les propriétés du document (voir l’exercice précédent pour le détail de la manip).

Et là (ci-dessus), comme j’ai enregistré mon image dans un format sans compression, j’obtiens effectivement le poids de fichier correspondant à un codage sur 24 bits par pixels que j’avais calculé :

Remarquez que, d’un strict point de vue qualitatif – c’est à dire, si l’on observe uniquement le nombre des pixels et la couleur de chacun d’entre eux – les deux versions de fichiers sont en tout point identiques.

Si vous imprimez l’image d’origine (compressée, au format JPEG à 705 Ko) puis la version non-compressée (TIF 9 826 Ko) il vous sera difficile de trouverez la moindre différence entre les deux.

C’est bien la preuve que la compression JPEG est définitive : même en passant dans un format non compressé, l’image d’origine, conservera exactement toutes ses propriétés, à l’exception du poids de fichier.

Profitons-en pour signaler que, contrairement à une idée assez répandue, le poids de fichier n’indique en rien un quelconque critère de qualité.

C’est le cas, comme nous venons de le voir, pour les images et c’est exactement la même chose avec la musique, des domaines où le grand public est habitué à traiter des fichiers déjà compressés (JPEG et MP3). Il sera difficile d’améliorer sur le plan qualitatif une image ou un son dès lors que le codage de l’information a été effectué à l’origine avec un niveau de compression plus ou moins fort.

Vous devez savoir, par contre, que les opérations de compression successive sur ce type de fichier, en vue de réduire le poids de fichier, entraîne toujours une détérioration qualitative de l’information.

Retournons sur Gimp :

Cette fois-ci, je vais modifier l’image pour la passer en niveaux de gris :

Me voilà désormais avec une photo en noir et blanc.

J’enregistre une autre version du document :

Là encore, je conserve le format TIF, sans compression :

Et quand je retourne dans l’explorateur de fichier pour obtenir les propriétés de cette nouvelle photo, je constate que l’image pèse 3,275 Mo

Ce qui correspond à un codage de 1 octet par pixel, soit 256 niveaux de gris (du blanc pur au noir pur) ; valeurs largement suffisantes pour traiter des photos en noir et blanc.

Pour en savoir plus sur le codage, la définition et la résolution des images, vous pouvez jeter un œil sur ce support de l’atelier infographie.

 

Document de travail