cours1 min de lecture

Pixels, résolution et poids d'une image

Une image est une grille de pixels, chaque pixel un triplet de trois nombres. De là se déduisent la résolution, le poids d'un fichier, et la différence entre pixel et photosite.
programme

Introduction

Le personnage d'un jeu vidéo rétro, agrandi au maximum, cesse d'être un dessin : il devient un damier de petits carrés de couleur unie. Ce damier existe dans toute image numérique, d'une icône de 32 pixels de côté à une photo de téléphone de 12 millions de pixels. Ce cours pose le vocabulaire qui permet de le décrire et de le mesurer : pixel, triplet RVB, résolution, poids, puis, du côté de l'appareil photo, photosite et profondeur de couleur.

Une image est une grille de pixels

Dans un jeu vidéo, l'image d'un personnage ou d'un objet s'appelle un sprite. Agrandi, un sprite montre sa structure : une grille de pixels. Un pixel est une case de cette grille, et il n'a qu'une seule couleur.

Cette couleur est codée par trois nombres, chacun compris entre 0 et 255 : l'intensité du rouge, celle du vert, celle du bleu, dans cet ordre. Ces trois nombres forment le triplet RVB du pixel (RGB en anglais, pour red, green, blue).

TripletCouleurPourquoi
(0, 0, 0)noirles trois composantes sont éteintes
(255, 255, 255)blancles trois sont au maximum
(255, 0, 0)rougeseul le rouge est allumé
(255, 255, 0)jaunerouge et vert ensemble
(120, 120, 120)grisles trois composantes sont égales
Le jaune n'est pas une quatrième couleur de base : sur un écran, il s'obtient en additionnant le rouge et le vert. Plus généralement, toute couleur affichée est un mélange des trois lumières, dosées de 0 à 255.

Une image est donc une grille de nombres : trois nombres par case. C'est sur ces nombres que travaille tout programme qui affiche, transmet ou transforme une image.

Quelle couleur code le triplet (255, 255, 0) ?

Un pixel vaut (100, 50, 255). Peut-on le rendre plus bleu en passant sa composante bleue à 300 ?

La résolution

La résolution d'une image est le couple largeur × hauteur, compté en pixels. Elle donne directement le nombre de pixels de l'image :

  • un sprite de 16 × 16 contient 256 pixels ;
  • une icône de 32 × 32 contient 1 024 pixels ;
  • une photo de 4000 × 3000 contient 12 000 000 pixels, soit 12 mégapixels (12 Mpx).

Doubler la largeur et la hauteur ne double pas le nombre de pixels : il est multiplié par 4 (2 × 2).

Le poids d'une image

Chacun des trois nombres d'un pixel est compris entre 0 et 255 : il tient exactement dans un octet. Un pixel occupe donc trois octets en mémoire, un par composante. D'où le calcul du poids d'une image :

poids (en octets)=largeur×hauteur×3\text{poids (en octets)} = \text{largeur} \times \text{hauteur} \times 3
ImagePixelsPoids
icône 32 × 321 0243 072 octets, environ 3 ko
capture 1000 × 500500 0001 500 000 octets, soit 1,5 Mo
photo 4000 × 300012 000 00036 000 000 octets, environ 36 Mo
Ce calcul donne le poids de l'image sans compression, telle qu'elle est tenue en mémoire pour être affichée. Un fichier JPEG ou PNG est en général bien plus léger : ces formats compressent l'image. Le calcul reste le bon ordre de grandeur pour comparer deux images entre elles.

Combien pèse, sans compression, une photo de 4000 × 3000 pixels ?

Une image passe de 800 × 600 à 1600 × 1200. Son poids est :

Le capteur et ses photosites

Un appareil photo ne fabrique pas directement des pixels. Derrière l'objectif, le capteur est une grille de minuscules cellules sensibles à la lumière, les photosites. Chaque photosite mesure la quantité de lumière qu'il reçoit pendant la prise de vue.

Un photosite ne mesure qu'une seule valeur : une intensité lumineuse. Pour obtenir de la couleur, un petit filtre rouge, vert ou bleu est placé devant chaque photosite. Un photosite « rouge » ne mesure donc que la lumière rouge qui lui parvient. Les trois composantes de chaque pixel sont ensuite calculées à partir des photosites voisins.

Le nombre de photosites définit la résolution du capteur, exprimée en mégapixels. À titre d'ordre de grandeur :

AppareilRésolution capteur typique
Smartphone d'entrée de gamme8 à 12 Mpx
Smartphone haut de gamme50 à 200 Mpx
Appareil reflex amateur20 à 30 Mpx
Appareil professionnel45 à 100 Mpx
Capteur photo — mosaïque de Bayer (motif RGGB) VUE RAPPROCHÉE DU CAPTEUR un photosite = une case filtre rouge filtre vert (×2) filtre bleu
Schéma d'un capteur avec ses photosites
Distinction à retenir :
  • un photosite est une cellule physique du capteur (matériel) ;
  • un pixel est une case de l'image, un triplet de nombres dans un fichier.

Un capteur '12 Mpx' contient environ combien de photosites ?

Capteur et image : pourquoi les résolutions diffèrent

Un capteur de 24 millions de photosites ne produit pas toujours une image de 24 millions de pixels. Trois raisons :

  1. Les réglages de l'appareil. La plupart des appareils permettent de choisir une résolution d'image plus petite que celle du capteur, pour économiser de la place.
  2. Le format de sortie. Un capteur 4:3 peut produire une image 16:9 en rognant les bords : le nombre de pixels diminue.
  3. Le regroupement. Certains appareils combinent les mesures de plusieurs photosites voisins pour calculer un seul pixel (pixel binning), surtout sur les smartphones.

Un capteur de 48 Mpx peut-il produire une image de 12 Mpx ?

Plus de pixels, meilleure photo ?

Pas forcément. Plus de pixels, c'est plus de détail possible, et un fichier plus lourd. Mais à taille de capteur égale, plus de photosites veut dire des photosites plus petits, qui reçoivent chacun moins de lumière. En basse lumière, la mesure devient moins fiable et l'image plus bruitée (parsemée de points parasites). Un capteur de 12 Mpx aux photosites larges peut donner une meilleure photo de nuit qu'un capteur de 200 Mpx de même taille.

Deux téléphones ont un capteur de même taille, l'un de 12 Mpx, l'autre de 48 Mpx. Quelle affirmation est exacte ?

La profondeur de couleur

La profondeur de couleur est le nombre de bits utilisés pour coder une composante d'un pixel. Avec nn bits, on code 2n2^n niveaux différents :

nombre de niveaux=2profondeur\text{nombre de niveaux} = 2^{\text{profondeur}}

Le cas courant est 8 bits par composante : 28=2562^8 = 256 niveaux, de 0 à 255. C'est l'origine de l'intervalle du triplet RVB, et de l'octet par composante du calcul de poids (un octet = 8 bits). Trois composantes donnent 256 × 256 × 256 = 16 777 216 couleurs possibles par pixel : on parle d'image 24 bits (3 × 8).

Profondeur (par composante)Niveaux par composanteCouleurs totales
1 bit28
4 bits164 096
8 bits (standard)256≈ 16,7 millions
10 bits (HDR)1 024≈ 1 milliard

Combien de niveaux peut-on coder avec une profondeur de 4 bits ?

Pièges courants

  • Le jaune n'est pas une couleur de base : (255, 255, 0) est l'addition du rouge et du vert.
  • Une composante ne dépasse pas 255 et ne descend pas sous 0.
  • Le poids oublie souvent le facteur 3 : trois octets par pixel, pas un.
  • Doubler les côtés quadruple le poids, il ne le double pas.
  • Photosite et pixel ne sont pas synonymes : le premier est sur le capteur, le second dans l'image.
  • Plus de mégapixels ne veut pas dire meilleure photo, en particulier en basse lumière.

Pour aller plus loin

Le module Pixels du labo affiche une image et, dans une fenêtre de zoom, le triplet de chacun de ses pixels. Le module RGB permet de fabriquer une couleur en réglant ses trois composantes.

Photographier en RAW (le format brut du capteur) donne accès aux mesures directes de chaque photosite, codées sur 12 ou 14 bits au lieu de 8. Le fichier est plus lourd, mais bien plus riche à retoucher.