4 - Profondeur d'une image
Dans l'activité précédente, nous avons vu comment encoder l'information image sous forme d'une image NOIR et BLANC.
Il est temps de voir comment faire de même avec plus de nuance de couleur !
Cela vous permettra également d'estimer le nombre de photos que vous pouvez placer sur la carte mémoire de votre smartphone !
Logiciels nécéssaires : Gimp, un éditeur de texte (bloc-note, notepad...)
Documents de cours : open document ou pdf
Il faudra pouvoir voir les extensions de vos fichiers. Windows a tendance à ne pas afficher les extensions des fichiers dont il connait la nature. Pour les afficher :
- Panneau de configuration
- Apparence
- Options des dossiers
- Afficher l'extension des fichiers dont on connait la nature
1 - Image en noir et blanc
L'image la plus facile à encoder est l'image NOIR et BLANC.
On peut prendre un encodage facile, du type
- 0 pour BLANC
- 1 pour NOIR
On peut créer facilement ce genre d'image à l'aide d'un simple éditeur de texte comme Notepad ou autre.
Attention, on parle bien d'éditeur et pas de traitement de texte. Les traitements de texte rajoute des informations en plus du simple texte dans le fichier. Vous ne parviendriez pas nécessairement à créer votre image.
Comme nous l'avons vu dans l'activité `Télévision` il faut donner :
- Le type d'encodage (ici
P1
) - Le nombre de pixels sur une colonne, suivi d'un espace et du nombre de lignes (ici
3 2
) - La couleur voulue sur chaque pixel dans l'ordre 'humain' : on considère une suite de pixels correspondant à la façon dont on lit un livre : de gauche à droite et de haut en bas :
110001
- 0 pour BLANC
- 1 pour NOIR
01° Représenter l'image encodée avec le code ci-ddesous :
P1
3 2
110001
...CORRECTION...
02° Réaliser les actions suivantes dans l'ordre.
- Ouvrir un éditeur de texte (par exemple Notepad++).
- Copier le code ci-dessous.
- Enregistrer (dans un répertoire que vous connaissez) le fichier sous le nom image1.pbm.
- Ouvrir l'image avec le logiciel libre GIMP, un logiciel de traitement d'images :
- Menu Fichier -> Ouvrir
- Sur l'écran de sélection, cliquer sur AFFICHER TOUS LES FICHIERS, sinon vous ne verrez que les fichiers-images classiques comme PNG, JPEG...
- Sélectionner votre fichier image1.pbm.
- Pour ZOOMER sur votre toute petite image, deux façons de faire :
- Placer la souris sur l'écran, maintenir la touche CTRL du clavier et utiliser la molette de la souris.
- Dans le menu AFFICHAGE de GIMP, sélectionner ZOOM à 1600% pour espérer voir cette petite image.
P1
9 7
110000011
011000110
001101100
000111000
001101100
011000110
110000011
Vous devriez alors visualiser cette image :

Profondeur d'une couleur
Définition la profondeur d'une couleur correspond au nombre de bits nécessaires pour encoder la couleur d'un pixel.
L'unité de la profondeur est le bpp, bit per pixel en anglais, bit par pixel en français.
Sur une image en NOIR et BLANC, il suffit d'un seul bit pour encoder un pixel.

Ici la profondeur est donc de 1 bpp.
03° Calculer le nombre de bits nécessaires pour encoder l'image suivante encodée en noir et blanc. En déduire le nombre d'octets nécessaires.

...CORRECTION...
Nous avons 9*7 pixels, soit 63 pixels.
Puisque la profondeur est de 1 bpp, il faut 63 bits pour encoder les pixels en eux mêmes.
En divisant par 8 arrondi au supérieur, on obtient le nombre d'octets : 63/8 donne 8 octets.
Sous-unités de l'octet
Kilo-octet (ko) : représente mille octets.
On notera 1 ko = 1000 o = 1.103 o
Méga-octet (Mo) : représente un million d'octets.
On notera 1 Mo = 1 000 000 o = 1.106 o
Giga-octet (Go) : représente un milliard d'octets.
On notera 1 Go = 1 000 000 000 o = 1.109 o
Téra-octet (To) : représente mille milliards d'octets.
On notera 1 To = 1 000 000 000 000 o = 1.1012 o
Péta-octet (Po) : représente un million de milliards d'octets.
On notera 1 Mo = 1 000 000 000 000 000 o = 1.1015 o
2 - Image en nuance de gris
Cette fois, on désire obtenir plus de nuances que juste noir ou blanc.
On considère ici le cas le plus courant : 256 nuances au total.
Voici quelques unes des nuances de gris / couleurs disponibles
Valeur décimale | Donne : | Visuel |
---|---|---|
0 | Noir (0%) | |
63 | Gris foncé(25%) | |
127 | Gris(50%) | |
191 | Gris clair(75%) | |
255 | Blanc(100%) |
Pour encoder une image en 256 nuances de gris, on a donc besoin de 8 bits, soit un octet.
Nombre M = | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Les bits codent | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Or M = 128+64+32+16+8+4+2+1 = 255.
Profondeur d'une couleur
Définition la profondeur d'une couleur correspond au nombre de bits nécessaires pour encoder la couleur d'un pixel.
L'unité de la profondeur est le bpp, bit per pixel en anglais, bit par pixel en français.
Sur une image en nuance de gris (0 : NOIR, 255 : BLANC, entre les deux gris), il faut 256 nuances donc 8 bits (1 octet) par pixel.

Ici la profondeur est donc de 8 bpp : avec 8 bits, on parvient bien à encoder des valeurs comprises entre 0 et 255.
Si on veut créer une image en nuance de gris, on peut éventuellement la créer avec un éditeur de texte en utilisant un nouvel encodage. On enregistre au format .pgm.
- Le type d'encodage (ici
P2
) - Le nombre de pixels sur une colonne, suivi d'un espace et du nombre de lignes (ici
9 7
) - La valeur maximale, celle qui permet d'encoder le blanc (ici
255
) - La couleur voulue sur chaque pixel dans l'ordre 'humain' : on considère une suite de pixels correspondant à la façon dont on lit un livre : de gauche à droite et de haut en bas
04° Réaliser les actions suivantes dans l'ordre.
- Ouvrir un éditeur de texte (par exemple Notepad++).
- Copier le code ci-dessous.
- Enregistrer (dans un répertoire que vous connaissez) le fichier sous le nom image2.pgm, l'extension devient donc .pgm.
- Ouvrir l'image avec le logiciel libre GIMP, un logiciel de traitement d'images :
- Menu Fichier -> Ouvrir
- Sur l'écran de sélection, cliquer sur AFFICHER TOUS LES FICHIERS, sinon vous ne verrez que les fichiers-images classiques comme PNG, JPEG...
- Sélectionner votre fichier image2.pgm.
P2
9 7
255
0 120 255 255 255 255 255 0 120
255 10 110 255 255 255 10 110 255
255 255 20 90 255 20 90 255 255
255 255 255 30 80 255 255 255 255
255 255 20 90 255 20 90 255 255
255 10 110 255 255 255 10 110 255
0 120 255 255 255 255 255 0 120
Vous devriez obtenir ceci :

05° Puisqu'on a besoin d'un octet (valeur entre 0 et 255) pour définir la couleur d'un pixel, évaluer le nombre d'octets puis de bits nécessaires au stockage de cette image.
...CORRECTION...
Nous avons 9*7 pixels, soit 63 pixels.
On a donc besoin de 63 bits pour cette image de 256 nuances de gris.
En multipliant par 8, on obtient 504 bits.
3 - Image en couleur
Nous avons vu que la couleur était obtenue en activant les pixels RGB de différentes façons.
L'un des choix possibles est le suivant :
- Un octet pour l'intensité du rouge (donc entre 0 et 255)
- Un octet pour l'intensité du vert (donc entre 0 et 255)
- Un octet pour l'intensité du bleu (donc entre 0 et 255)
Voici quelques unes des couleurs disponibles
Valeur RGB | R | G | B | Visuel |
---|---|---|---|---|
0-0-0 | ||||
63-63-0 | ||||
127-127-0 | ||||
0-191-127 | ||||
255-255-255 |
Pour encoder une telle image en 256 nuances par couleur, on a donc besoin de 24 bits (3x8 bits), soit un 3 octets par PIXEL.
Profondeur d'une couleur
Définition la profondeur d'une couleur correspond au nombre de bits nécessaires pour encoder la couleur d'un pixel.
L'unité de la profondeur est le bpp, bit per pixel en anglais, bit par pixel en français.
Sur une image possèdant 256 nuances par couleur RGB, obtient 2563 nuances, soit 16 777 216. Plus de 16 millions de possibilités.

Ici la profondeur est donc de 24 bpp : avec 24 bits, on parvient bien à encoder des valeurs comprises entre 0 et 255 pour R, V et B.
Si on veut créer une image en couleurs avec ces millions de nuances, on peut éventuellement la créer avec un éditeur de texte en utilisant un nouvel encodage. On enregistre au format .ppm.
- Le type d'encodage (ici
P3
) - Le nombre de pixels sur une colonne, suivi d'un espace et du nombre de lignes (ici
9 7
) - La valeur maximale sur une couleur primaire (ici
255
) - La couleur voulue sur chaque pixel dans l'ordre 'humain' : on considère une suite de pixels correspondant à la façon dont on lit un livre : de gauche à droite et de haut en bas
06° Réaliser les actions suivantes dans l'ordre.
- Ouvrir un éditeur de texte (par exemple Notepad++).
- Copier le code ci-dessous.
- Enregistrer (dans un répertoire que vous connaissez) le fichier sous le nom image3.ppm, l'extension devient donc .ppm.
- Ouvrir l'image avec le logiciel libre GIMP, un logiciel de traitement d'images :
- Menu Fichier -> Ouvrir
- Sur l'écran de sélection, cliquer sur AFFICHER TOUS LES FICHIERS, sinon vous ne verrez que les fichiers-images classiques comme PNG, JPEG...
- Sélectionner votre fichier image3.ppm.
- On peut limiter les choix de couleurs
- On peut trouver des schémas qui se répétent pour ne pas les coder deux fois ou plus à l'identique
- plus une image possède de pixels plus elle pèse lourd.
- plus une image possède d'un grand nombre de nuances de couleurs (profondeur) plus elle pèse lourd
- Résolution R = L * H
- Place mémoire nécessaire place = R * bpp où
- bpp = 1 si l'image est NOIR ou BLANC.
- bpp = 8 si l'image est en nuances de GRIS.
- bpp = 24 si l'image est en couleurs.
- bpp = 32 si l'image est en couleurs avec un effet de transparence (coucle ALPHA).
P3
9 7
255
150 200 0 150 0 200 255 255 255
255 255 255 255 255 255 255 255 255
255 255 255 150 200 0 150 0 200
255 255 255 160 210 0 160 0 210
255 255 255 255 255 255 255 255 255
150 200 0 150 0 200 255 255 255
255 255 255 255 255 255 170 220 0
170 0 220 255 255 255 150 200 0
150 0 200 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255
150 200 0 150 0 200 255 255 255
255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 150 200 0
150 0 200 255 255 255 150 200 0
150 0 200 255 255 255 255 255 255
255 255 255 150 200 0 150 0 200
255 255 255 255 255 255 255 255 255
150 200 0 150 0 200 255 255 255
150 200 0 150 0 200 255 255 255
255 255 255 255 255 255 255 255 255
255 255 255 150 200 0 150 0 200
Vous devriez obtenir ceci :

07° Quelle est la profondeur de cette image ?
...CORRECTION...
Nous avons trois intensités sur un octet chacune, on a 3 octets.
En multipliant par 8, on obtient 24 bits.
La profondeur est donc de 24 ppb.
08° En déduire approximativement le nombre d'octets puis de bits nécessaires au stockage de cette image.
...CORRECTION...
Nous avons 9*7 pixels, soit 63 pixels.
On a donc besoin de 63*24 bits. Soit 1512 bits.
En divisant par 8, on obtient 186 octets.
09° Comment limiter le poids de l'image ?
...CORRECTION...
On doit la compresser. Pour cela :
Compression
Comprimer une image veut dire la décrire en utilisant une méthode qui permet d'obtenir un nombre plus petit d'octets.
On peut agir sur le nombre de couleurs encodables (la profondeur) ou sur l'étude des répétitions dans l'image.
Quelques formats très courants :
Le JPEG (.jpg) : très bonne compression mais les couleurs peuvent être légerement modifiées par rapport à l'image d'origine. Format très utile sur Internet.
Le PNG (.png) : une moins bonne compression mais l'image n'est pas altérée. Très utile pour transferer des photos de bonne qualité via le réseau Internet ou pour le stockage des photos numériques.
Retenons que
10 - à faire valider par l'enseignant° Réaliser un dessin représentant soit un drapeau, soit un dessin en utiilsant l'encodage d'une image en couleurs vues aujourd'hui.
Bilan sur la profondeur
Le nombre de pixels d'une image se trouve en multipliant sa largeur L et sa hauteur H.
Il s'agit donc de sa résolution R = L * H.
Pour déterminer la place mémoire théorique de l'image, il suffit donc de multiplier la résolution par le nombre de bits nécessaire par pixel, grandeur qu'on nomme bpp (bit per pixel).
place = R * bpp
Attention : on obtient la place mémoire en bits, pas en octets.
Pour obtenir la place en octets, il faut encore diviser ce résultat par 8.
Si on résume :
Activité publiée le 20 11 2019
Dernière modification : 08 12 2019
Auteur : ows. h.