Dynamique d'une image

De Autopano.

Sommaire

Le monde réel

Avant de parler de la dynamique d'une image, il nous faut revenir sur quelques notions de photographie.

Les couleurs du monde réel ne sont pas stockées en valeur sur 8bits entre 0 et 255 par composantes comme dans votre carte graphique. Dans le monde réel, tout se passe sous forme d'onde avec une longueur d'onde ou une intensité. On mesure une onde lumineuse avec plusieurs unités possible, soit en énergie directement en Joule, soit une l'unité plus utilisée pour notre propos, la Radiance (en watt/ mêtre² * stéradian). La science qui mesure ces ondes s'appelle la radiométrie et couvre toutes les mesures des ondes de tout le spectre.

Dans le monde de la photographie, on considère seulement le spectre visible, c'est-à-dire ce que peut voir l'oeil. Et l'oeil a des limites : il ne peut voir qu'une partie du spectre qui va de 380 nm à 830 nm environ (qui s'appelle le spectre visible). La "Commission Internationale de l'Eclairage" (CIE) a alors créée la courbe V(lambda) (vee-lambda) qui tient compte de cette limite de l'oeil. Cette courbe nous permet de transformer une grandeur radiométrique en sa grandeur équivalente "oeil".
Exemple : la radiance devient alors la Luminance (exprimée en candela / m²). La science qui s'occupe de ces mesures s'appelle la photométrie (radiométrie limitée au spectre visible).

Pourquoi je vous parle de cela ?

Voici un petit tableau :

Type de lumière Illumination (candela / m^2)
Lumière d'une étoile 0.001
Lumière de la lune 0.1
A l'intérieur d'une maison 100
Lumière du soleil 100000

Ce tableau illustre les variations dans l'intensité lumineuse qu'il peut y avoir dans le monde réel : elles sont énormes : entre le soleil et la lumière des étoiles la variation est de 1 pour 100 millions en unité d'illuminance. Si on prend une photo les valeurs d'un gris moyen d'une photo d'une étoile, les valeurs seront autour 0.001, alors que pour le soleil, c'est autour de 100000 ! Les écarts sont vraiment énormes.

Dans un ordinateur, nous n'avons pour l'instant que des cartes graphiques qui ont des variations entre 0 et 255 par couche de couleur. On est très loin du compte.

Mais analysons de plus près la situation et regardons un peu les mécanismes de la prise de vue.

La capture des images

Lorsqu'on prend une photo numériquement, le capteur mesure les photons qui arrivent sur lui. Il accumule l'énergie de ces photons pendant toute la durée de l'exposition. A la fin de l'exposition, un convertisseur Analogique / Numérique transforme cette mesure d'énergie en une valeur numérique.

 Illuminance => mesure des énergies des photons pendant l'exposition => convertisseur A/D => valeur numérique

Plusieurs remarques s'imposent :

  • La mesure de l'énergie par le capteur. Elle n'a pas une précision infinie. En général, c'est 10bits, 12bits maximum. Ce qui donne 1024 valeurs différentes possible ou 4096 valeurs différentes.
    • Prenons un capteur 10bits : 1024 valeurs maximum et supposons aussi que la courbe de transformation soit linéaire (C'est pas le cas en fait, mais peu importe). On veut pouvoir photographier proprement une image d'intérieur de maison avec une fenêtre donnant sur un beau soleil :
    • La zone la plus sombre de la photo aura une illuminance de l'ordre de 1 cd/m². Comme je veux avoir des détails dans les noirs, je prends cette valeur comme référence.
    • La zone la plus claire que je pourrais mesurer sera alors de 1024 cd/m² (convertisseur 10bits oblige). Des photons venant du soleil seront alors très au-dessus de la saturation du capteur avec des valeurs autour de 100,000 cd/m²). Ainsi, sur la photo, une grande zone autour du soleil sera brulée.
  • Le convertisseur A/D. J'ose espérer que ce convertisseur à au moins la même précision que la mesure des énergies. Imaginons qu'on ait une mesure sur 10bits avec un convertisseur 8bits. L'inverse est par contre plus fréquent, un convertisseur 12bits couplé à une mesure 10bits. Il invente 2bits ! C'est souvent dans ces 2bits que se trouve toute la beauté du bruit tant décrié en numérique.
  • La fenêtre de mesure qui correspond au couple vitesse / ouverture :
    • Si vous sous-exposez, le capteur ne mesure plus les valeurs sur sa pleine dynamique, mais uniquement sur une partie entre 0 et 128 par exemple. Vous obtenez plus de bruit si vous voulez transposer cette dynamique sur l'échelle complète (histogramme ajustement automatique).

Pour résumer, la prise de vue, c'est la conversion d'intensité lumineuse du monde réel vers des valeurs numériques. Elle est limitée et ne mesure correctement qu'une faible partie du spectre.


Houston, nous avons un problème, j'arrive pas à mesurer toutes les nuances de ce que je vois !

Dynamique d'une image

La dynamique d'une image, c'est la capacité d'une image numérique à redonner les vraies échelles d'intensité lumineuses du monde réel.

On exprime souvent la dynamique en utilisant l'unité des stops. Cela se calcule très simplement en faisant le rapport de la valeur la plus claire mesurable sur la valeur la plus sombre mesurable et en prenant le logarithme népérien (c'est une échelle en puissance de 2).

 Exemple : fichier JPEG
   Pixel le plus clair  : 255
   Pixel le plus sombre : 0
    => 256 valeurs possibles
   stops = log( 256 ) / log ( 2 ) = 8 !

Cela correspond en fait aux 8bits de précision par couleur du jpeg.

Quelques ordres de grandeurs d'étendue dynamique :

  • En imagerie numérique
    • Fichier JPEG : ratio de 256:1 qui donne 8 stops
    • Fichier RAW : en général 10bits : 10 stops
    • Fichier HDR : cela dépend du fichier lui-même mais peut aller bien au-delà de 15 à 20 stops.
  • En cinématographie, on a la notion d' Exposure latitude, qui est la dynamique d'une caméra ou d'un film :
    • Caméra vidéo standard : 5.5 stops (ratio de 45:1)
    • film négatif "standard" : 7 stops (128:1)
    • film négatif "Extended latitude" : 11 stops (2048:1)
  • Pour les écrans, on a le taux de contraste qui correspond à une dynamique d'affichage
    • Technologie LCD : 9 stops, (500:1)
    • Technologie SED : 16 stops (100000:1)

Comparant aux valeurs que l'on trouve dans le monde réel :

  • Le monde réel : étendue de 100.000.000, correspond à 26 stops
  • Un fichier numérique standard (jpeg ou raw) : maximum 10 stops


Houston, nous avons un problème, notre fichier jpeg ou raw est incapable d'afficher la réalité !

L'aventure du HDR

Définitions

L'HDR est un ensemble de techniques qui ont pour but de corriger tout les problèmes précédents : pas de vraie photo possible, pas de bon format de fichier, etc.

HDR signifie High Dynamic Range, pour gamme dynamique étendue et a pour but de pouvoir exploiter la gamme complète des valeurs possibles de couleur qui existent dans le monde réel. A HDR, on oppose souvent le terme LDR (pour low dynamic range) qui est une image à faible dynamique. Il faut faire attention à ce terme HDR qui a plusieurs significations :

  • une image à dynamique étendue (notée souvent HDRI, high dynamic range image, mais souvent le I est omis),
  • le nom du format de fichier de l'application Radiance qui a été le premier format à supporter une grande dynamique (fichiers .HDR),
  • l'ensemble des techniques de capture et transformation de la dynamique réelle.

En photographie, le but final de toute technique reste de faire de belles photos. Et souvent, de belles photos, c'est lorsqu'on a beaucoup de détails partout, aussi bien dans les zones claires que dans les zones foncées. ( Note : de nombreux artistes démontrerons facilement que cette phrase est au combien fausse, mais cela sort du cadre de la discussion : on entrerait dans le domaine du subjectif et de l'explication philosophique du beau ).

Bref : pour arriver à ce but, il faut d'abord être capable de capter toute la dynamique de la scène à photographier avec un capteur qui lui reste très limité en gamme dynamique. Pour cela, un ensemble de techniques ont été inventées dont la plus utilisée à ce jour est le fait de prendre plusieurs photos avec différentes expositions de la même scène (bracketing). En combinant ces expositions, on arrive à recalculer la dynamique complète de la scène. Autopano Pro permet de le faire, car il assemble aussi les photos géométriquement que dans l'espace des couleurs en combinant les expositions des photos.

Exemples

Par exemple, avec deux fichiers jpeg qui ont été bracketés à +2 IL et -2 IL, je peux parfaitement reconstruire un fichier HDR qui aura une dynamique bien supérieure aux 8 stops des jpeg de base. En général, on monte facilement à 10 ou 12 stops, voire plus.

Image:Manuel-cc-augmentation-dynamique2.png

Image:Manuel-cc-augmentation-dynamique1.png En analysant les histogrammes, le fait de faire correspondre les couleurs des deux images implique une transformation de l'histogramme. On le constate sur l'histogramme de l'image 2 qui devient plus petit (il rétrécit). Or cet histogramme a toujours ses 8bits de résolution (je suppose que l'image source est issue d'un jpeg). Ce qui fait que la qualité globale du panorama est meilleure, la résolution entre deux barres de l'histogramme est devenue plus petite, la dynamique plus grande. L'histogramme du panorama final n'est plus rigoureusement entre 0 et 255 mais est sorti de ces limites.

Des fichiers HDR réalisés avec 4, 5 images de plus de 16 stops se trouvent facilement sur le web, comme par-exemple sur les liens suivants :

Exploitation

Voilà, nous avons notre fichier HDR qui représente la vraie mesure de lumière de notre scène : celui-ci a été produit par Autopano Pro ou par d'autres outils de création de fichier HDR comme Adobe Photoshop CS2.

Mais que faire avec ? Notre imprimante reste 8bits/couleur, notre écran reste 8bits/couleur, ma carte graphique est 8bits/couleur et mon fichier fait beaucoup plus que cela. Je ne peux ni afficher, ni imprimer mon fichier HDR car sa dynamique est bien plus grande que tous les périphériques que je possède.


Houston, nous avons un problème, on ne peut rien faire avec notre fichier HDR !

HDR vers LDR

Comment exploiter un fichier HDR ?

Simple : il faut ramener sa dynamique à quelque chose de plus acceptable, c'est-à-dire la dynamique standard de tous les périphériques 8bits/couleur. C'est le but d'algorithmes nommé les tone mapper.

Un tone mapper est un algorithme qui transforme la dynamique d'une image en une dynamique plus petite.

Exemples de tone mapper :

  • Les niveaux : c'est le plus simple des tone mapper.
 Tout ce qui est en dessous de la limite noire, c'est 0,
 Tout ce qui est au dessous de la limite blanc, c'est 255,
 Tout ce qui est entre est interpolé de façon linéaire entre 0 et 255.
  • Des vrais tone-mappers :

RH2 ou RH4 d'Autopano Pro (temporairement désactivés dans la version 2)
Des logiciels de tone mapping comme Photomatix ou FDRtools.

Mais pourquoi faire tout cela pour revenir à 8bits la fin ?

Et oui, c'est vrai !

Reprenons, nous avions deux images jpeg 8bits bien exposées. De ces jpegs, nous avons créé un fichier HDR à grande dynamique. Puis nous avons transformé ce fichier HDR en un autre jpeg 8bits à l'aide d'un tone mapper. N'aurions nous pas pu éviter des étapes et obtenir le fichier final directement depuis les deux jpegs 8bits ?

Et bien oui, cette technique existe aussi, c'est le "contraste blending" qui se traduirait par mélange de contraste. Et vous l'avez sûrement déjà fait sans le savoir : une cathédrale, une photo de l'intérieur avec mesure spot sur le mur, une deuxième avec mesure spot sur le vitrail : on masque les deux photos sous Photoshop et le tour est joué. De fait, cela devient aussi une image HDR. Le soucis avec cette méthode réside dans cette règle :
"un pixel est plus clair si l'objet qu'il représente à reçu plus de lumière"

Dans une image, on souhaiterait que cette approche réaliste reste vraie. Le contraste blending n'assure pas de la vérité de cette phrase. La technique HDR respecte l'ordre logique des choses qui veut qu'un objet éclairé soit plus clair qu'un objet à l'ombre.

Quelques liens








Support technique / Documentation Autopano Pro / Documentation Autopano Giga

Outils personnels
Autres langues