• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 01/10/2019

Codez des images et des vidéos

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Codage d'images

Les Piliers de la création
Les "Piliers de la création" - Source : J. Hester, P. Scowen (ASU), HST, NASA

Vous reconnaissez peut-être une des images les plus saisissantes prises par le télescope spatial Hubble. La photo, prise le 2 avril 1995, est connue sous le nom de « Piliers de la création ». On y voit des colonnes de poussières interstellaires, dont on pense qu’elles s’effondrent gravitationnellement pour donner naissance à de nouvelles étoiles. La structure est située dans la nébuleuse de l'Aigle, au cœur de l'amas ouvert M16. Le cliché a été refait en 2015 en haute définition, et c’est cette version que vous avez sous les yeux.

Nous allons expliciter ces caractéristiques pour bien comprendre en quoi les images ne sont jamais que des listes organisées de nombres.

Zoom sur la photo Piliers de la Création (Source : INSA) :

Quand on zoome sur l’image, on voit apparaître sa nature. En fait, l’image est un tableau rectangulaire organisé de pixels (pour picture elements ou éléments d’image). Quand on a suffisamment zoomé, on voit des carrés dans lesquels la teinte est uniforme. Ce sont les pixels. Quand on regarde une image à haute définition (ce qui signifie qu’elle est composée d’un nombre très important de pixels), le pouvoir intégrateur de l’œil nous fait voir une image qui apparaît continue, d’autant plus que la résolution est élevée.

Les capteurs actuels proposent typiquement 10 mégapixels, les appareils de bonne gamme sont équipés avec des capteurs de 21 Mpx ou plus, et il existe à présent des capteurs de 250 Mpx. Les progrès de l’intégration électronique permettent d’obtenir ces performances qui relevaient autrefois de la science-fiction.

L’image « Piliers de la création » est une image qui n’est pas fortement résolue, puisqu’elle est composée « seulement » de 749 000 pixels. Le cliché est issu de la Nasa, mais il est aujourd’hui tellement facile de manipuler les images numériques que tout un chacun peut, à partir du cliché original, en faire sa propre version en rééchantillonnant, redimensionnant, recadrant, etc.

On montre qu’une couleur peut être décomposée en trois couleurs dites primaires. Le modèle RVB pour Rouge Vert Bleu (ou RGB, en anglais, pour Red, Green, Blue) est appelé modèle naturel, parce qu’il est conforme au fonctionnement de l’œil humain. Tous les systèmes d’affichage (vidéoprojecteurs, écrans de télévision ou moniteurs d’ordinateur) fonctionnent sur ce modèle et l’image que nous sommes en train d’utiliser, les « Piliers de la création » est codée dans ce système.

En revanche, le standard de l’impression sur papier offset couleur utilise un autre système chromatique, le modèle CMJN qui est composé des couleurs complémentaires au modèle RVB. Il en existe encore d’autres qu’il est inutile de citer. Par contre, il faut bien comprendre qu’on peut passer aisément d’un modèle à l’autre de façon réversible, par des équations linéaires de transformation.

Décomposition chromatique de l'image
Décomposition chromatique de l'image "Piliers de la création" - Source : INSA

L'image ci-dessus est la décomposition chromatique de l’image « Piliers de la création » dans le système CMJN, qui décompose chaque teinte en ses composantes cyan, magenta et jaune. La superposition par une imprimante jet d’encre, par exemple, de ces trois plans sur une feuille de papier donne la richesse des teintes de l’image originale.

Composantes chromatiques d'un pixel marron
Composantes chromatiques d'un pixel marron - Source : INSA

La plupart des logiciels de retouche d’images (ici, Adobe Photoshop®) permettent de pointer un pixel de l’image et de visualiser ses composantes chromatiques.

Ici, le pixel analysé figure dans le nuage de gaz, désigné par la flèche. La teinte est marron et la fenêtre « sélecteur de couleurs » indique les composantes RVB. On lit : R=171 ; V=91 ; B=66.

Dans le système RVB classique, chaque composante chromatique est codée sur 8 bits. Le codage sur 8 bits permet 256 valeurs comprises entre 0 et 255. On constate que la nuance marron a une composante rouge assez importante (171), mais (et ce n’est pas intuitif) a également une composante bleue, toutefois assez faible, soit 66.

On constate aussi que la même fenêtre donne les composantes dans trois autres modèles chromatiques, les modèles TSL  L*a*b et CMJN.

Composantes chromatiques d'un pixel bleu
Composantes chromatiques d'un pixel bleu - Source : INSA

Dans l'image ci-dessus, il s’agit tout simplement d’analyser un autre pixel, toujours repéré par la flèche. On y lit : R=61, V=118 et B=145. On confirme aisément que le pixel est de dominante bleue, ou cyan, si on prend la peine de regarder les pourcentages CMJN.

Chaque pixel étant codé sur 3 composantes chromatiques et chaque composante étant codée sur 8 bits, on parle d’images 24 bits (3 fois 8). Il faut bien comprendre que la teinte de chaque pixel est décrite sur un mot de 24 bits, ce qui correspond à $\(2^{24}\)$ combinaisons de teintes, soit environ 16 millions de teintes ou nuances. C’est énorme, mais l’œil est très sensible et peut, en effet, résoudre des millions de nuances. Le codage 24 bits, aujourd’hui tout à fait banal, est bien adapté à la réalité de la vision humaine.

Les
Les "Piliers de la création" - Source : J. Hester, P. Scowen (ASU), HST, NASA

Nous voulons juste montrer que ces algorithmes sont basés sur la manipulation des listes d’octets (les composantes RVB) d’une image non compressée.

Pour ce faire, nous allons traiter un exemple avec un capteur de 20 Mpx. La résolution en est 5 472 x 3 648, soit, en faisant le produit, un tout petit peu moins de 20 millions de pixels. Nous allons arrondir, parce qu’on peut se contenter d’ordres de grandeur. Chacun des pixels est codé sur 3 octets. Par simple produit, on obtient une image brute (sans compression, qui correspond au format RAW) d’environ 60 Mo.

Même si les composants mémoire sont toujours plus intégrés et de capacités toujours plus grandes, même si les liaisons réseau sont toujours plus rapides, on considère qu’une telle taille de fichier est excessive. C’est pour cette raison qu’on utilise la compression qui sort du cadre de ce cours. Nous nous contentons d’en indiquer le principe de base et de bien pointer le fait que l’algorithme, comme tout algorithme, procède de la manipulation des tableaux de l’image.

La compression est basée sur la redondance spatiale qu’il y a dans toute image. Dans une image naturelle (comme les « Piliers de la création »), il y a des zones où les pixels adjacents sont de teintes très proches. Dans un ciel bleu, il peut y avoir de grandes zones où les variations de teinte sont tellement faibles qu’elles sont invisibles à l’œil humain. Tous les algorithmes procèdent par réduction de cette redondance spatiale. C’est le cas notamment de JPEG, qui est sans doute le plus usité.

Si on revient à l’image d’origine, elle est composée de 750 000 pixels fois 3 octets (à cause des 3 composantes chromatiques) et pèserait en format RAW (sans compression), environ 2,3 Mo ; et pourtant, elle n’occupe que 169 Ko. Le facteur de compression (le rapport entre taille avant compression et taille après compression) est supérieur à 10, ce qui est très performant.

Ce facteur de compression 10 est assez courant. On admet que le gain de taille est important pour une perte d’information qui est parfaitement tolérable et, de fait, un œil ordinaire ne voit généralement pas la différence entre image RAW avant compression et image JPEG compressée avec un facteur 10.

Codage de vidéos

Sur le plan du principe, une vidéo n’est jamais qu’une séquence d’images fixes qui se suivent au rythme de, par exemple, 25 images par seconde pour assurer la fluidité du mouvement. Comme vous le savez, les standards évoluent vite au gré des progrès technologiques. Les principaux critères de qualité sont évidemment la résolution de l’image et la fréquence ou cadence de rafraîchissement (mesurée en FPS, pour Frames Per Second ou images par seconde).

Il est difficile d’y voir clair, tant cet univers évolue vite. Les cadences 25 FPS ou 30 FPS sont classiques. Quand on veut réaliser des super ralentis, paradoxalement, il faut capter la vidéo à FPS élevée, puis ensuite diffuser à FPS standard (25 ou 30 FPS). Les caméras de gamme moyenne ou les smartphones filment maintenant à 240 FPS voire plus (il existe aussi des caméras rapides qui filment à 1 000 FPS).

Pour illustrer la nécessité de la compression vidéo, nous faisons un petit calcul d’ordre de grandeur. Imaginons une vidéo Full HD (de résolution 1920 x 1080 pixels) cadencée à 25 FPS. Déterminons la taille, sans compression, d’une heure de vidéo. Chaque image fait environ 2 Mpx, soit 6 Mo. Il faut multiplier par 25 pour avoir une seconde de vidéo, puis par 3 600 pour avoir une heure de vidéo. Soit finalement 540 gigaoctets (Go) !!

Certes, les disques durs sont de capacité toujours plus grande. Mais nous voulons transférer nos vidéos sur Internet, et bien que les débits soient toujours plus rapides, il n’empêche que transférer un tel volume de fichier sur une liaison standard va prendre un temps considérable. Il faut donc, en vidéo encore plus que pour une image fixe, compresser.

L’idée est d’exploiter, en plus de la redondance spatiale au sein d’une image, la redondance temporelle. Deux images successives (qui correspondent donc à un petit intervalle temporel) sont généralement très proches sauf en cas de changement de plan, ce qui arrive quand même relativement rarement. Pour faire simple, on va coder plutôt des variations d’images et on met même en œuvre des méthodes de prédiction par analyse des mouvements des objets dans la scène. Par d’astucieuses combinaisons de traitement du signal, qui recourent à des mathématiques et statistiques avancées, on obtient des taux de compression énormes, de l’ordre de 100, voire plus.

L’algorithme le plus usité s’appelle MPEG, et en est aujourd’hui à sa version 4.

Principe de la compression vidéo MPEG (source, http://www.ntta.szm.com/Tutors/images/05_MPEG.jpg)
Principe de la compression vidéo MPEG - Source : http://www.ntta.szm.com/Tutors/images/05_MPEG.jpg

Les images fonctionnent en GOP (Groups of Pictures). Les images de type I sont complètes. Quand on change de plan (entre images 8 et 9), il n’y a aucune corrélation spatiale ni temporelle : il faut une nouvelle image initiale. Les images de 2 à 8 sont une combinaison d’images de type P et B qui utilisent de la prédiction de mouvement. Les images de type P contiennent typiquement de 30 à 40 % d’information brute et sont donc assez riches, tandis que les images de type B ne codent que de toutes petites différences et sont donc très peu volumineuses.

Les capteurs d’images sont aujourd’hui essentiellement en technologie CMOS, ce qui permet un très haut degré d’intégration.

Capteur Canon 250 millions de pixel (source, http://news.pixelistes.com/canon-a-reussi-a-mettre-250-millions-de-pixels-dans-un-capteur-au-format-aps-h/canon-250-mp-apsh/)
Capteur Canon 250 millions de pixels - Source : http://news.pixelistes.com/canon-a-reussi-a-mettre-250-millions-de-pixels-dans-un-capteur-au-format-aps-h/canon-250-mp-apsh

Le capteur sur la figure ci-dessus est un capteur Canon qui annonce 250 millions de pixels. Chaque pixel, appelé aussi photosite, contient des microlentilles qui focalisent l’image sur des photorécepteurs. Des filtres de couleur séparent les trois composantes chromatiques R, V et B. Puis, la quantité de lumière qui tombe sur le photorécepteur est convertie en grandeur électrique. La figure ci-après en illustre le principe.

Les photosites d'un capteur CMOS (source, https://static.fnac-static.com/multimedia/Images/FD/Comete/27457/CCP_IMG_600x400/317944.jpg)
Les photosites d'un capteur CMOS - Source : https://static.fnac-static.com/multimedia/Images/FD/Comete/27457/CCP_IMG_600x400/317944.jpg

L’électronique rapprochée organise les données dans des composants mémoire et cette électronique rapprochée est déjà en soi un système numérique élaboré, qui n’est toutefois pas autonome. Il doit ensuite être interfacé de quelque manière à un microprocesseur qui récupère l’image complète.

Ce type de capteur est dit numérique natif parce que les données qu’il élabore sont intrinsèquement numériques, dès leur apparition.

En résumé

Nous venons d'apprendre comment images et vidéos sont codées par des nombres. Toutefois, les capteurs de nos smartphones sont numériques natifs et génèrent directement ces listes de nombres. Dans le chapitre suivant, nous allons apprendre comment les systèmes numériques appréhendent des signaux analogiques comme le son.

Exemple de certificat de réussite
Exemple de certificat de réussite