L UNIVERS NUMERIQUE LE CODAGE DES IMAGES EN FORMAT BITMAP A / Le format Bitmap Bitmap signifie «carte de bits». C'est la façon la plus simple de coder une image : l'image est décrite point par point. Les points d'une image sont appelés des 'pixels': ce mot est la contraction de «picture elements». Chaque pixel est décrit par un nombre indiquant sa couleur. L'image est donc représentée par une série de nombre, chacun représentant la couleur d'un pixel. Les bitmaps existent sous différents formats, selon le nombre de couleurs possibles pour un pixel. Le fichier contient également un en-tête comprenant différents renseignements, tels que ses dimensions et son format. Le codage est simple mais l'image Bitmap occupe beaucoup de place mémoire: les pixels sont petits, donc nombreux! Nous allons essayer de décoder quelques-uns de ces formats. Remarque : Les résultats sont valables pour des Bitmaps non compressés, réalisés avec des programmes simples comme Paint. Note : Lorsqu'on examine un bitmap avec l application «Exafich», on peut le visualiser dans une petite fenêtre. Le bouton «+» permet de le voir agrandi 4 fois et le bouton «-»de revenir à la taille normale. B / Le Bitmap monochrome Ce format ne connaît que deux couleurs : noir et blanc. 1 / Combien faut-il de bits pour stocker la couleur d'un pixel dans ce format? Il faut 1 bit pour stocker la couleur d un pixel. 2 / Combien de points peut-on décrire avec un octet? Avec un octet, on peut décrire 8 points ou pixels. 3 / Combien faut-il d'octets pour stocker une image de 800 sur 600 pixels (taille de votre écran) dans ce format? Donner le résultat en octets, en kilooctets et en kibioctets. Le stockage d une image de 800 x 600 pixels nécessite : 800 x 600 = 480 000 pixels, donc 480 000 bits. Nombre d octets : 480 000 / 8 = 60 000 octets Nombre de kilooctets : 60 000 / 1000 = 60 ko. Nombre de kibioctets : 60 000 / 1024 = 58,594 kio. Les fichiers «noir01.bmp», «blanc01.bmp», «lignes 01.bmp», «nb01.bmp» sont des bitmaps monochromes, de même taille, mais contenant des images différentes. Examiner chacun d'eux à l aide de l application «Exafich». 4 / Identifier l'en-tête de fichier : c'est la partie qui est identique dans les trois fichiers. Combien compte-t-elle d'octets dans le format monochrome? En-tête du fichier : 42-4D-BE-00-00-00-00-00-00-00-3E-00-00-00-28-00-00-00-20-00-00-00-20-00-00-00-01-00-01-00-00-00-00-00-80-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-FF-FF-FF-00 Nombre d octets de l en-tête : 62 octets Le codage des images en format Bitmap Page 1
Le reste du fichier contient la description de l'image. Il est conseillé pour les questions suivantes d'utiliser l'affichage en hexadécimal et de "penser en base 2"! 5 / Quelle est la couleur correspondant à la valeur 0? À la valeur 1? La valeur «0» correspond à la couleur noire La valeur «1» correspond à la couleur blanche 6 / Quelle suite de digits binaires utilise-t-on pour décrire une alternance de points blancs et noirs? Quelles sont les deux valeurs possibles pour un octet décrivant une alternance de points blancs et noirs? (donner cette valeur en binaire, puis en hexadécimal). On utilise une suite de «0» et de «1» pour décrire une alternance de points blancs et noirs. Les deux valeurs possibles pour un octet décrivant une alternance de points blancs et noirs sont : % 10101010 = $ AA et 01010101 = $ 55 7 / Ecrire en hexadécimal 7-1 / La suite d'octets binaires représentant une suite de 32 points noirs. 32 points noirs 32 bits à «0» ou 4 octets $ 00 : 00 00 00-00 7-2 / La suite d'octets binaires représentant une suite de 32 points blancs. 32 points blancs 32 bits à «1» ou 4 octets $ FF : FF FF FF - FF 7-3 / La suite d'octets binaires représentant une suite de 32 points alternativement blancs et noirs, commençant par un point blanc. 32 points alternativement blancs et noirs commençant par un point blanc : AA AA AA - AA 7-3 / La suite d'octets binaires représentant une suite de 32 points alternativement blancs et noirs, commençant par un point noir. 32 points alternativement blancs et noirs commençant par un point noir : 55 55 55-55 8 / Le fichier «ligne01.bmp»' représente une alternance de lignes noires et blanches. Ouvrir le fichier avec l application Paint pour voir son aperçu. D'après les réponses à la question 7, les points d'une image sont-ils lus par ligne ou par colonne? Les points d'une image sont lus par ligne (Suite de 00 et de FF) 9 / De haut en bas ou de bas en haut? Justifier votre réponse. Le fichier «ligne01.bmp» commence par une ligne noire et finit par une ligne blanche. Les données commencent par $ FF-FF-FF-FF (ligne blanche) et finissent par $ 00-00-00-00 (ligne noire). L'image est donc décrite de bas en haut : la première ligne est à la fin des données et la dernière au début. Le codage des images en format Bitmap Page 2
10 / Le fichier «nb01.bmp» comprend des lignes de points alternativement blancs et noirs. Ouvrir le fichier avec l application Paint pour voir son aperçu. D'après les réponses à la question 7, les points de l'image sont-ils lus de droite à gauche ou de gauche à droite? Le fichier «nb01.bmp» contient une alternance de lignes noires, de 32 points de large et 1 pixel de haut, et de lignes composée de 32 points blancs et noirs alternés. On lit dans le fichier, en hexa 00-00-00-00 (pour une ligne noire) et $ AA-AA-AA-AA, c'est à dire une suite de points noirs et blancs alternés commençant par un point blanc. Comme les lignes commencent par un point blanc et se terminent par un noir, on en déduit qu'elles sont décrites de gauche à droite (sinon on aurait eu $55-55-55-55). Dans tous les autres formats de bitmap les données image se trouvent également à la fin du fichier et se lisent de la même façon (sauf si le bitmap est compressé). C / Les éléments de l en-tête Pour cette partie il est conseillé d'utiliser plutôt l'affichage en base 10. 1 / Quels sont les caractères correspondant aux deux premiers octets de l'en-tête? Que signifient ces deux octets? Ce sont les codes ASCCI des lettres B ($ 42) et M ($4D), pour «BitMap»... 2 / Les fichiers «noir01.bmp», «noir01_1616.bmp» et «noir01_800.bmp» sont des fichiers monochromes de dimensions différentes. En examinant sa valeur décimale pour ces trois fichiers, déterminer ce que représente le troisième octet de l'en-tête. «noir01.bmp» : $ BE = (190) 10 / «noir01_1616.bmp» : $ 7E = (126) 10 / «noir01_800.bmp» : $ A2 = = (162) 10 Cet octet représente la taille du fichier en octets. 3 / Le nombre de digits nécessaires pour décrire un pixel est également stocké dans l'en-tête. Trouver où! ( Les fichiers «noir01.bmp», «bmp4.bmp», «bmp8.bmp» et «bmp24.bmp» sont codés respectivement sur 1,4,8 et 24 bits) Le nombre de digits utilisé pour coder un point est le 29 ème de l en-tête. (13 ème octet de la deuxième ligne (le quatrième à partir de la droite) (24) 10 = $ 18 Ces résultats sont également valables pour les autres formats de bitmap. D / Le bitmap 4 bits (La couleur d un point est codé sur 4 bits) 1 / Combien de couleurs différentes peut-on coder sur 4 bits? Avec 4 bits, on peut faire 2 4 combinaisons différentes, donc 16 couleurs 2 / Combien de points, au format bitmap 4 bits, peut-on décrire avec un octet? Avec un octet, on peut décrire 2 points ou pixels. Le codage des images en format Bitmap Page 3
3 / Combien faut-il de symboles pour écrire la couleur d'un point en hexadécimal? Il suffit d un symbole hexadécimal par point, puisqu'un symbole hexadécimal permet d'écrire 16 valeurs, de 0 à 15. 4 / Combien faut-il d'octets pour décrire une image de 800 sur 600 pixels avec ce format? Donner le résultat en octets, puis en kilooctets et kibioctets. Une image de 800 x 600 pixels nécessite : 800 x 600 = 480 000 pixels. Chaque pixel est codé sur 4 bits. Donc une image est codé sur : 480 000 x 4 = 1 920 000 bits Nombre d octets : 1 920 000 / 8 = 240 000 octets Nombre de kilooctets : 240 000 / 1000 = 240 ko. Nombre de kibioctets : 240 000 / 1024 = 234,375 kio ~ 234 kio. E / Le bitmap 24 bits (La couleur d un point est codé sur 24 bits) 1 / Combien peut-on coder de couleurs différentes sur 24 bits? Avec 24 bits, on peut faire 2 24 combinaisons différentes, donc 16 777 216 couleurs (16 millions de couleurs) 2 / Combien faut-il d'octets pour décrire une image de 800 sur 600 pixels avec ce format? Donner le résultat en octets, en kilooctets et en mégaoctets. Une image de 800 x 600 pixels nécessite : 800 x 600 = 480 000 pixels. Chaque pixel est codé sur 24 bits. Donc une image est codé sur : 480 000 x 24 = 11 520 000 bits Nombre d octets : 11 520 000 / 8 = 1 440 000octets Nombre de kilooctets : 1 440 000 / 1000 = 1 444 000 ko = 1,444 M0. Nombre de kibioctets : 1 440 000 / 1024 = 1 406.25 kio ~ 1 406 kio. Nombre de mebioctets : 1 440 000 / 2 20 ~ 1,373 Mio. Le codage des images en format Bitmap Page 4
ANNEXES Contenu des différents fichiers visualisés à l aide de l application «Exafich» Le codage des images en format Bitmap Page 5
Le codage des images en format Bitmap Page 6
Le codage des images en format Bitmap Page 7