Stocker les images ou les sons

Class'Code - L’informatique et ses fondements

Chargement de la playlist en cours...

Les images, de nos jours, sont utilisées énormément pour les jeux vidéo, la télévision, la réalité virtuelle. Comment est-ce qu'on fait pour les afficher concrètement ? On va utiliser ce qu'on appelle des pixels. Les pixels, ce sont des assemblages de petits points de différentes couleurs, du vert, du bleu et du rouge, qu'on va allumer pour faire croire à l'œil qu'il s'agit d'une couleur particulière parce qu'ils sont tellement petits que l'œil ne peut pas distinguer les trois composantes :  le rouge, le vert et le bleu (RVB). On utilise les pixels pour faire de la retouche, de l'impression, etc. 

Comment coder des pixels ?

Pour coder les pixels, on va utiliser des suites de bits. Chacun des pixels de l'image sera représenté par un ensemble de bits.

  • Si une image est en noir ou en blanc, chacun des pixels aura un seul bit, qui indiquera s'il est blanc ou noir. 
  • Si une image à des niveaux de gris, on peut pouvoir utiliser par exemple 8 bits pour chacun des pixels. 8 bits donnent 256 valeurs possibles (2 puissance 8). Le 0 sera du noir, 255 (le maximum) sera du blanc, les valeurs intermédiaires seront des gris plus ou moins foncés.
  • Si une image est en couleur, on codera en combinant du rouge, du vert et du bleu. On utilisera alors 8 bits par composante. Par exemple, si on est à 0 pour le rouge, il n'y aura aucun rouge dans la couleur. Si on est à 255, la couleur sera plus rouge. Et ainsi de suite pour chacune des composantes. En les combinant, on pourra choisir la couleur parmi énormément de couleurs différentes : 16 millions.

images bitmaps VS images vectorielles

Il faudra ensuite ajouter de l'information pour préciser que l'image est stockée par des pixels et que chacun des pixels est codé avec un certain nombre de bits, noir et blanc, gris ou couleur. De la même façon, il faudra préciser la taille de l'image, ses dimensions, sa hauteur, sa largeur. C'est ce qu'on appelle une image bitmap.

Pour indiquer à l'ordinateur qu'une image a la forme d'un disque par exemple, il faut lui donner un algorithme pour faire de la reconnaissance de forme. Mais en pratique, on peut la coder de manière un peu plus pratique. Par exemple, ici, au lieu de dire que c'est un ensemble de pixels qui sont blancs si on n'est pas dans le disque, noirs si on est dans le disque et un peu gris quand on est au bord du disque, on pourrait dire directement que c'est un disque qui est noir, de telle taille et à tel endroit dans l'image. Ce serait plus précis et plus concis. C'est ce qu'on  appelle une image vectorielle. Une image vectorielle est construite avec des formes mathématiques (des disques, des rectangles, des polygones, des courbes mathématiques plus compliquées), un ensemble de caractéristiques pour décrire ces dernières et des informations sur comment la colorier.

C'est bien pour le dessin technique, qui se fait généralement avec formes très précises. En revanche, c'est plus compliqué avec les photos (les couleurs et les formes sont bien plus complexes). Pour les photos, on fera plutôt une image bitmap.

Comment coder le son ?

Le principe de l'échantillonage

Le son, ce sont des ondes sonores qui ont, à chaque instant, une hauteur et un volume représentant le bruit qu'on entend. Il y a donc une infinité de valeurs pour chacun des temps successifs. Pour éviter de stocker des données infinies dans l'ordinateur, on fait de « l'échantillonnage ». L'échantillonnage consiste à diviser le temps en petites périodes et à dire par exemple : « Pendant la milliseconde qui vient de s'écouler, le volume et la hauteur de la note jouée était celles-ci. » On moyenne ainsi pendant des petites périodes de temps pour éviter de stocker trop de valeurs. Évidemment, il faut que l'oreille humaine n'entende pas la différence, c'est-à-dire utiliser une fréquence d'échantillonnage suffisamment élevée pour que l'oreille humaine n'entende pas la différence entre le fait d'avoir moyenné sur une milliseconde et le signal réel. Il faut aussi éviter de faire trop d'échantillonnage, c'est-à-dire de ne pas avoir une fréquence trop élevée parce qu'on aurait trop de données à stocker.

En pratique, on va faire de l'échantillonnage avec quelque chose qui correspond à ce dont l'oreille humaine est capable d'entendre, c'est-à-dire des fréquences entre 20 hertz et 20 kilohertz. On aura un ensemble de valeurs successives pour chacune de ces petites périodes d'échantillonnage, et, pour chacune de ces valeurs, on aura un paquet de bits qui décriront la hauteur de la note, le volume, etc. Comme pour les images, on aura un en-tête qui précisera la fréquence de l'échantillonnage.

Le codage vectoriel du son

Pour un morceau de musique, on a une partition jouée par des instruments. Une partition, c'est quoi ? Ce sont des notes successives caractérisées par une hauteur et par une durée. Les instruments ont aussi des caractéristiques : le type d'instrument, le timbre, etc. On recrée donc le morceau de musique en utilisant des informations sur la partition et sur les instruments qui la jouent, un peu comme pour une image vectorielle. Cela peut être une approche intéressante et complémentaire à l'approche qu'on avait vue précédemment.
 

À retenir

  • On peut coder les images et les sons par des suites de nombre de bits. 
  • Des programmes permettront à l'ordinateur d'interpréter ce codage, c'est-à-dire lire les informations de l'image (sa taille, sa dimension, le nombre de bits utilisés pour les pixels) pour afficher cette image à l'écran, l'imprimer, faire de la retouche, etc.
  • De la même façon, l'ordinateur va avoir un programme pour lire les informations du son et les jouer sur un haut-parleur.
  • Que ce soit pour le stockage sur le disque dur, en mémoire, un transfert sur Internet entre deux ordinateurs, de la retouche audio ou photo, les données vont rester codées. C'est uniquement quand les données vont rentrer dans l'ordinateur pour faire de l'enregistrement ou être lues ou affichées par l'ordinateur qu'on va les décoder pour les donner à l'être humain.

Producteur : Inria

Auteur : Liliane Kahmsay / Florent Masseglia

en partenariat avec
Class'Code

Class’Code est un programme de formation gratuit à destination de toutes celles et ceux qui désire initier les jeunes de 8 à 14 ans à la pensée informatique. Retrouvez toutes les informations sur classcode.fr et les Moocs sur openclassrooms.fr

Publié le - Mis à jour le 25-06-2019

Recommandations