Outils pour utilisateurs

Outils du site


les_exposes:expliquer_comment_est_code_une_image_au_format_bmp_en_noir_et_blanc_puis_en_couleur

Qu'est ce qu'une image numérique ?

définition

le mot “image numérique“ désigne toute image acquise, créer, traitée, et stockée sous forme binaire, elle est composée d'une succession de pixels chacun est associé à une couleur obtenue par la synthèse additive des trois couleur primaire : le rouge, le vert et le bleu (image en couleur)

- elle est acquise par des convertisseurs analogique-numérique situés dans des dispositifs comme les scanners, les appareils photo ou les caméscopes numériques, les cartes d’acquisition vidéo (qui numérisent directement une source comme la télévision)

- elle est créée directement par des programmes informatiques, grâce à une souris, des tablettes graphiques ou par de la modélisation 3D (également appelée image de synthèse).

- elle est traitée grâce à des outils Graphique, de façon à la transformer, à en modifier la taille, les couleurs, d’y ajouter ou d'en supprimer des éléments, d’y appliquer des filtres variés, etc.

- elle est stockée sur un support informatique (disquette, disque dur, CD-ROM…).

Comment est codé une image :

L'information est codée en binaire. Le support évolue mais le principe est toujours le même : un même élément peut se trouver dans 2 états différents stables, suivant l’envoie du signal. Il constitue une mémoire élémentaire ou bit. Conventionnellement on attribue le symbole 0 à l'un de ces 2 états et le symbole 1 à l'autre, soit le signal envoyé est existant ou inexistant.

Le format BMP :

Le format BMP est l'un des plus anciens formats d'images numériques, il est donc généralement supportés par tous les logiciels photo

il est l'un des formats les plus simples développé conjointement par Microsoft et IBM, ce qui explique qu'il soit particulièrement répandu sur les plates formes Windows et OS. Un fichier .BMP est un fichier bitmap, c'est-à-dire un fichier d'image graphique stockant les pixels sous forme de tableau de points et gérant les couleurs soit en couleur vraie soit grâce à une palette indexée.

organisation du fichier

La structure d'un fichier bitmap est la suivante :

1) En-tête du fichier (en anglais file header)

2 )En-tête du bitmap (en anglais bitmap information header, appelé aussi information Header)

3) Palette (optionnellement)

4) Corps de l'image

1) l'entête du fichier

L'entête du fichier fournit des informations sur le type de fichier (Bitmap), sa taille et indique où commencent les informations concernant l'image à proprement parler.

L'entête est composé de quatre champs :

1) La signature est codé sur 2 octets, indiquant qu'il s'agit d'un fichier BMP à l'aide de deux caractères.

-BM, 424D en hexadécimal, indique qu'il s'agit d'un Bitmap Windows.

-BA indique qu'il s'agit d'un Bitmap OS/2.

-CI indique qu'il s'agit d'une icone couleur OS/2.

-CP indique qu'il s'agit d'un pointeur de couleur OS/2.

-IC indique qu'il s'agit d'une icone OS/2.

-PT indique qu'il s'agit d'un pointeur OS/2.

2) La taille totale du fichier en octets (codée sur 4 octets)

3) Un champ réservé (sur 4 octets)

4) L'offset de l'image (sur 4 octets), en français décalage, c'est-à-dire l'adresse relative du début des informations concernant l'image par rapport au début du fichier

2) Entête du Bitmap

L'entête de l'image fournit des informations sur l'image, notamment ses dimensions et ses couleurs.

L'entête de l'image est composé de quatre champs :

-La taille de l'entête de l'image en octets (codée sur 4 octets). Les valeurs hexadécimales suivantes sont possibles suivant le type de format BMP :

-La largeur de l'image (sur 4 octets), c'est-à-dire le nombre de pixels horizontalement (en anglais width)

-La hauteur de l'image (sur 4 octets), c'est-à-dire le nombre de pixels verticalement (en anglais height)

-Le nombre de plans (sur 2 octets). Cette valeur vaut toujours 1

-La profondeur de codage de la couleur(sur 2 octets), c'est-à-dire le nombre de bits utilisés pour coder la couleur. Cette valeur peut-être égale à 1, 4, 8, 16, 24 ou 32

-La méthode de compression (sur 4 octets). Cette valeur vaut 0 lorsque l'image n'est pas compressée, ou bien 1, 2 ou 3 suivant le type de compression utilisé : 1 pour un codage RLE de 8 bits par pixel 2 pour un codage RLE de 4 bits par pixel 3 pour un codage bitfields, signifiant que la couleur est codé par un triple masque représenté par la palette

-La taille totale de l'image en octets (sur 4 octets).

-La résolution horizontale (sur 4 octets), c'est-à-dire le nombre de pixels par mètre horizontalement

-La résolution verticale (sur 4 octets), c'est-à-dire le nombre de pixels par mètre verticalement

-Le nombre de couleurs de la palette (sur 4 octets)

-Le nombre de couleurs importantes de la palette (sur 4 octets). Ce champ peut être égal à 0 lorsque chaque couleur a son importance.

3) palette de l'image

La palette est optionnelle. Lorsqu'une palette est définie, elle contient successivement 4 octets pour chacune de ses entrées représentant :

-La composante bleue (sur un octet)

-La composante verte (sur un octet)

-La composante rouge (sur un octet)

-Un champ réservé (sur un octet)

4)Codage de l'image

Le codage de l'image se fait en écrivant successivement les bits correspondant à chaque pixel, ligne par ligne en commençant par le pixel en bas à gauche.

-Les images en 2 couleurs utilisent 1 bit par pixel, ce qui signifie qu'un octet permet de coder 8 pixels

-Les images en 16 couleurs utilisent 4 bits par pixel, ce qui signifie qu'un octet permet de coder 2 pixels

-Les images en 256 couleurs utilisent 8 bits par pixel, ce qui signifie qu'un octet code chaque pixel

-Les images en couleurs réelles utilisent 24 bits par pixel, ce qui signifie qu'il faut 3 octets pour coder chaque pixel, en prenant soin de respecter l'ordre de l'alternance bleu, vert et rouge.

Chaque ligne de l'image doit comporter un nombre total d'octets qui soit un multiple de 4; si ce n'est pas le cas, la ligne doit être complétée par des 0 de telle manière à respecter ce critère.

exemple d'image BMP:

image en couleur

représentation des couleur

Il existe plusieurs modes de codage informatique des couleurs, le plus utilisé pour le maniement des images est l'espace colorimétrique rouge, vert, bleu (RVB ou RGB - red green blue). Cet espace est basé sur une synthèse additive des couleurs, c'est-à-dire que le mélange des trois composantes R, V, et B à leur valeur maximum donne du blanc, à l'instar de la lumière. Le mélange de ces trois couleurs à des proportions diverses permet de reproduire à l'écran une part importante du spectre visible, sans avoir à spécifier une multitude de fréquences lumineuses.chaque couleur est codé sur 1 octet (8 bits), chaque couleur permet de disposer de 2^8 (256) niveaux par couleur du plus sombre (0) au plus clair (256), pour un pixel, ce codage utilise 24 bits (3×8) le pixel a ainsi 2^24 (16 millions) de couleur possibles.

Il existe d'autres modes de représentation des couleurs :

- cyan, magenta, jaune, noir (CMJN ou CMYK) utilisé principalement pour l'impression, et basé sur une synthèse soustractive des couleurs

- teinte, saturation, luminance (TSL ou HSL), où la couleur est codée suivant le cercle des couleurs

- base de couleur optimale YUV, Y représentant la luminance, U et V deux chrominances orthogonales.

Les images bitmap en couleurs peuvent être représentées soit par une image dans laquelle la valeur du pixel est une combinaison linéaire des valeurs des trois composantes couleurs, soit par trois images représentant chacune une composante couleur. Dans le premier cas, selon le nombre de bits (unité d’information élémentaire qui peut prendre deux valeurs distinctes) alloués pour le stockage d'une couleur de pixel, on distingue généralement les différents types d'images suivants :

images en 24bits

Il s'agit d'une appellation trompeuse car le monde numérique (fini, limité) ne peut pas rendre compte intégralement de la réalité (infinie). Le codage de la couleur est réalisé sur trois octets, chaque octet représentant la valeur d'une composante couleur par un entier de 0 à 255. Ces trois valeurs codent généralement la couleur dans l'espace RVB. Le nombre de couleurs différentes pouvant être ainsi représenté est de 256 × 256 × 256 possibilités, soit environ 16,7 millions de couleurs. Comme la différence de nuance entre deux couleurs très proches mais différentes dans ce mode de représentation est quasiment imperceptible pour l'œil humain, on considère commodément que ce système permet une restitution exacte des couleurs, c'est pourquoi on parle de « couleurs vraies ».

images en 8bits

Pour réduire la place occupée par l'information de couleur, on utilise une palette de couleurs « attachée » à l'image. On parle alors de couleurs indexées : la valeur associée à un pixel ne véhicule plus la couleur effective du pixel, mais renvoie à l'entrée correspondant à cette valeur dans une table (ou palette) de couleurs appelée look-up table ou LUT en anglais, dans laquelle on dispose de la représentation complète de la couleur considérée. Selon le nombre de couleurs présentes dans l'image, on peut ainsi gagner une place non négligeable : on considère en pratique que 256 couleurs parmi les 16 millions de couleurs 24 bits sont suffisantes. Pour les coder, on aura donc une palette occupant 24 bits × 256 entrées, soit 3 × 256 octets, et les pixels de l'image seront associés à des index codés sur un octet. L'occupation d'une telle image est donc de 1 octet par pixel plus la LUT, ce qui représente un peu plus du tiers de la place occupée par une image en couleurs 24 bits (plus l'image contient de pixels, plus le gain de place est important, la limite étant le tiers de la place occupée par l'image en couleurs vraies). Une autre méthode existante consiste à se passer de palette, et de coder directement les trois couleurs en utilisant un octet : chaque composante couleur est codée sur deux bits, le bit restant peut servir soit à gérer plus de couleurs sur une des composantes, soit à gérer la transparence du pixel. Avec cette méthode, on obtient des images bitmap avec un codage couleur effectivement limité à 8 bits, bien que la plage des couleurs possibles soit très réduite par rapport à celle qu'offre la méthode utilisant une palette. Dans le cas des images en couleurs indexées, il est possible de spécifier que les pixels utilisant une des couleurs de la palette ne soient pas affichés lors de la lecture des données de l'image. Cette propriété de transparence est très utilisée (et utile) pour les images des pages web, afin que la couleur de fond de l'image n'empêche pas la visualisation de l'arrière-plan de la page.

image en noir et blanc

On code ici que le niveau de l'intensité lumineuse, généralement sur un octet (256 valeurs). Par convention, la valeur zéro représente le noir (intensité lumineuse nulle) et la valeur 255 le blanc (intensité lumineuse maximale) en niveau de gris un pixel n'est codé que sur un octet.

Ce procédé est fréquemment utilisé pour reproduire des photos en noir et blanc ou du texte dans certaines conditions (avec utilisation d'un filtre pour adoucir les contours afin d'obtenir des caractères plus lisses).

Ce codage de la simple intensité lumineuse est également utilisé pour le codage d'images couleurs : l'image est représentée par trois images d'intensité lumineuses, chacune se situant dans une composante distincte de l'espace colorimétrique (par exemple, intensité de rouge, de vert et de bleu).

les_exposes/expliquer_comment_est_code_une_image_au_format_bmp_en_noir_et_blanc_puis_en_couleur.txt · Dernière modification: 05/02/2014 20:59 par phahongchanh