dimanche 14 octobre 2012

Technique HDR, tone mapping et images RAW en photographie

Exemple de traitement HDR (mise en correspondance tonale)
Le Tréport © 2012 F. Beauducel
HDR signifie High Dynamic Range soit « haute dynamique » en bon français, par opposition au terme LDR (Low Dynamic Range, « faible dynamique ») qui comme on va le voir, caractérise la photo numérique classique (et particulièrement votre fichier JPEG, son affichage et son impression papier).

Le concept du traitement HDR part d'un simple constat: la perception visuelle humaine est adaptée à de très forts contrastes de lumière. On estime cette capacité, pour une vision instantanée, à un facteur 1:1000 environ, c'est-à-dire le rapport d'amplitude entre la luminance du plus petit détail perceptible dans la zone la plus sombre et dans celle la plus lumineuse. Mais cette gamme est relative et l'oeil a encore la capacité, pour apprécier tous les détails d'une scène, de s'accommoder d'un facteur supplémentaire d'encore 1000 ! C'est ce qui se passe notamment lorsque vous prenez le temps d'admirer un paysage : votre oeil va s'adapter aux conditions de lumière de chaque détail sur lequel il se concentre, et la dynamique globale sera ainsi d'environ 1:1.000.000.

Or aujourd'hui, aucun appareil ou support photo n'atteint ces performances, comme en témoigne ce petit tableau des gammes dynamiques des capteurs, supports de données optiques et formats de fichiers numériques (les informations sont issues de sources diverses non vérifiées et parfois un peu contradictoires... tout ceci est donc à titre très indicatif):

Rapportstops/bits
Oeil humain
1:1.000.000
20
Film négatif
1:1000 - 1:4000
10 - 12
Diapositive
1:250 (non linéaire)
8 (?)
Diapositive projetée
1:2500
11
Tirage papier
1:100 - 1:200
6.5 - 7.5
APN
1:128 - 1:1000
7 - 10
APN professionnel
1:4000 - 1:30000
12 - 15
Écran LCD
1:50 - 1:1000
6 - 10
Écran HDR
1:30000
15
Vidéo-projecteur
1:1000 - 1:4000
10 - 12
Fichier JPEG
1:256 (par couleur)
8
Fichier TIFF
1:256 ou 1:65.536 (par couleur)
8 ou 16
Fichier RAW
1:4096 ou 1:16.384
12 ou 14
Fichier HDR entier
1:4.294.967.296
32
Fichier HDR flottant
1:1076
252 (!)

Note: on devrait plutôt exprimer la dynamique en dB qui est égal à 20 * log(rapport), soit par exemple 72 dB pour un rapport 1:4096 ou 12 bits, le rapport de dynamique étant égal à 2^n où n est le nombre de bits. Mais dans la suite de cet article, je parlerai uniquement de dynamique en bits, c'est à dire en facteurs de 2. C'est un peu réducteur mais ça sera plus clair, et cela a l'avantage d'être assimilable à l'unité d'exposition photo les "stops" ou EV, qui correspondent également à un facteur 2. 

On voit que, à part utiliser uniquement un APN (appareil photo numérique) de gamme professionnel et un écran HDR (ou un très bon vidéo-projecteur) pour regarder égoïstement ses clichés enregistrés en RAW ou TIFF, on a un très gros soucis si l'on veut reproduire correctement la dynamique d'une scène observée à l'oeil! Ou alors il faut revenir aux bonnes vieilles soirées diapo qui tenaient assez bien la route finalement... Mais trêve de nostalgie, en tout cas pour la reproduction d'un fichier JPEG sur papier photo, on est très très loin du compte !

D'où le problème fondamental de la photographie: on doit nécessairement jouer et composer avec les ombres et les lumières, chercher à équilibrer ou au contraire forcer les contrastes, faire des choix de rendus et de sujets afin que l'image finale, a priori une impression papier à très faible dynamique, évoque quelque chose, une ambiance globale ou un détail, de l'original... Mais bien entendu cette complication technique est aussi et surtout une source illimitée de créativité! En conditions de studio particulièrement, l'art de l'éclairage artificiel est justement de composer avec les lumières pour redonner une impression de grande dynamique visuelle. En revanche, en conditions naturelles, le photographe attendra patiemment la bonne lumière ou se passera de prendre un cliché raté! Par opposition, en peinture ou dessin, le problème ne se pose jamais: l'artiste reproduira tous les détails qu'il souhaite et où il le veut sur son support.

Petite parenthèse. Ce qui est amusant avec l'apparition du numérique dans l'histoire récente, et c'est vraiment flagrant dans le domaine de la photographie, c'est qu'en abandonnant l'analogique un peu trop vite au profit de la facilité d'utilisation et de développement des APN, on a en réalité commencé par dégrader la qualité technique des œuvres: les premiers capteurs numériques supportaient à peine 8 bits par couleur (dans les meilleures conditions de lumière), ce qui était en effet l'équivalent d'une bonne photo couleur sur papier brillant, mais loin du film négatif original dont on estime la dynamique à au moins 12 bits (preuve en est que les scanners professionnels ont tous des capteurs 12 voire 16 bits pour numériser correctement les films). Grâce aux nouveaux APN équipés de capteurs numériques à 12 ou 14 bits, nul doute qu'il s'agit d'une grosse évolution technologique, mais dans l'absolu, on ne fait que se réaligner aux performances de l'analogique qui étaient déjà atteintes il y a presque 50 ans... Fin de la parenthèse.

La grande vague, Sète (Le Gray, 1850).
Alors comment faire ? Faut-il se résigner à ne pas prendre de photo si les conditions de prise de vue ne sont pas réunies ? Dès la genèse de la photographie, le français Gustave Le Gray avait déjà eu l'idée de combiner plusieurs clichés pour augmenter la gamme de sensibilité de ses photos et ainsi reproduire les forts contrastes ciel/mer des paysages côtiers. C'était en 1850...

Aujourd'hui en photographie numérique, le traitement HDR permet d'exploiter des photos prises dans des conditions que l'on jugerait très médiocres: temps maussade voire pluvieux, soleil écrasant au zénith, contrejour total, intérieur mal éclairé, grandes ombres portées d'un relief ou bâtiment, ... bref tous les cauchemars du photographe! Du coup, avec l'HDR, la créativité se concentre exclusivement sur le cadrage, la composition, les formes et les textures. La photo en tête de cet article a été traitée HDR; elle est issue d'un cliché par temps couvert et en total contrejour... pour comparaison ci-dessous une sortie JPEG issue du fichier RAW original, sans aucun traitement:

Image LDR (JPEG à partir d'un cliché RAW, sans aucun traitement)
Le traitement HDR a tout d'abord rééquilibré la luminosité globale de la photo: le contrejour est complètement corrigé, faisant ressortir les premiers plans dans leurs moindres détails et couleurs, mais aussi les façades de maisons plus en arrière plan et même la falaise au loin... comme si l'on avait utilisé un super-flash efficace sur des kilomètres de distance! Les textures sont également mises en valeur, à commencer par les nuages avec un effet de volume très graphique, mais c'est aussi particulièrement bluffant sur la brique et l'ardoise des bâtiments.

J'espère avoir attiré votre attention. Venons-en maintenant à la présentation de ce traitement HDR, qui consiste à procéder en deux étapes:
  1. Augmenter la dynamique du cliché original : avec un APN classique, on va prendre plusieurs photos de la même scène avec des expositions très différentes (sous-exposées et sur-exposées), puis on va combiner les images en une seule à grande dynamique, dite HDR; avec un APN professionnel, le format RAW offre une image que l'on peut considérer pseudo-HDR (voir explications plus loin).
  2. Traiter l'image HDR par Tone Mapping : concrètement il faut passer de la grande dynamique de l'HDR à la faible dynamique du papier photo ou de l'écran, tout en préservant les informations et les détails... cela va donc consister essentiellement à homogénéiser les contrastes (éclaircir les zones sombres et assombrir les zones claires), exactement comme le fait l'oeil humain quand il observe une scène et s'adapte aux différentes zones.
Signalons qu'il y a un amalgame fréquent dans l'utilisation du terme HDR: il est souvent associé non pas à la grande dynamique des images, mais au rendu visuel typique du tone mapping et de la mise en relief des textures qui donne cet effet typique de peinture/dessin lorsque les paramètres sont poussés au maximum... on trouve ainsi des filtres de traitement « HDR » dans Photoshop, Lightroom ou encore Picasa alors qu'ils s'appliquent à des images à faible dynamique (LDR)! Les filtres de ces logiciels n'ont donc d'HDR que le nom, et il n'égaleront jamais les résultats d'un vrai traitement d'image HDR. C'est dommage car en fait, rien n'interdirait d'intégrer ces traitements lorsque l'image d'origine est RAW ou TIFF (voir le chapitre suivant).

Il existe donc plusieurs logiciels, gratuits ou payants, permettant d'effectuer ces deux opérations et de jouer sur tous les paramètres. Voir ici une revue rapide (en anglais), mais attention aux exemples de photos: l'auteur n'a visiblement pas cherché à obtenir des résultats équivalents entre les logiciels... Comme je suis un adepte du monde libre, je recommande fortement l'excellent Luminance HDR, peut-être un peu moins convivial que les logiciels payants, mais tout aussi efficace. En outre il fonctionne sous Windows/Mac/Linux et comporte une version en ligne de commande (possibilité d'écrire des scripts batch pour lancer des traitements automatiques ou sur une liste de fichiers).

Élaboration de l'image HDR

Il y a deux options pour générer une image HDR, suivant la situation et/ou votre matériel:

A. Prise de plusieurs clichés à différentes expositions

Si vous avez un APN non professionnel, ou si la scène à photographier est très fortement contrastée, c'est cette première option qu'il faudra suivre, en respectant le mode opératoire suivant:
  • régler la sensibilité en ISO minimum (100 ou 200) afin de limiter au maximum le bruit du capteur;
  • fixer l'ouverture (mode priorité diaphragme A) de façon à préserver la profondeur de champ entre les prises;
  • l'usage d'un trépied est recommandé: le post-traitement permettra seulement de rattraper efficacement les petits bougés liés aux vibrations de l'appareil;
  • prendre au moins 3 photos à expositions successives -2 / 0 / +2 EV, et si possible plutôt 5 (-4 / -2 / 0 / +2 / +4); les boîtiers reflex offrent souvent un mode bracketing (BKT) permettant de faire cela quasi automatiquement;
  • enregistrer l'image en pleine résolution, si possible au format RAW (dépend du constructeur) ou TIFF, ou à défaut s'il n'y a vraiment que le mode JPEG, utiliser la compression minimale (mode FINE).


Exemple de bracketing: 3 clichés à expositions -3 (sous-exposé) / 0 (normal) / +3 EV (surexposé)

Ensuite il faut utiliser un logiciel de traitement: importer les images, les réaligner entre elles (à moins qu'on soit certain de n'avoir pas bougé du tout, au pixel près!) et interpoler les données pour former une seule image à grande dynamique. Il ne pas s'arrêter au résultat visuel à ce stade intermédiaire : en effet, comme on l'a vu, votre écran n'est généralement pas capable de rendre compte de l'amélioration de dynamique et l'image résultante apparaît plutôt terne et sans intérêt!

Pour enregistrer l'image HDR finale dans un fichier, plusieurs formats spécifiques existent et sont actuellement reconnus par la plupart des logiciels:  OpenEXR, HDR, PIC, ... qui permettent de stocker les données en 16 ou 32 bits par couleur et en virgule flottante, ce qui repousse définitivement les limites de la dynamique absolue (pour la partie stockage uniquement, bien sûr!). Mais on peut aussi considérer que cette image HDR composite n'est qu'une étape intermédiaire et donc ne pas la stocker. Le logiciel la gardera en mémoire pendant les traitements de tone mapping. Ce n'est pas une question anodine car un fichier HDR haute résolution (12 Mpx par exemple) fait plus de 40 Mo !

B. Prise d'une image unique au format RAW/TIFF

Il est des circonstances où le bracketing peut s'avérer difficile ou impossible à mettre en oeuvre, par exemple lorsqu'il y a des objets en mouvement (personnages, animaux, ou même une simple brise dans les feuilles d'arbre) ce qui aura pour effet de dégrader la qualité de l'image HDR résultante ou de créer des fantômes (qui peuvent cependant être partiellement effacés en post-traitement, les logiciels HDR proposent des algorithmes pour cela)... On peut aussi imaginer simplement vouloir saisir une situation furtive...

Dans ces conditions et si vous avez un boîtier avec capteur 12 bits minimum (par exemple un reflex récent), vous pouvez tenter la procédure suivante:
  • photographier impérativement en ISO minimum (le rapport signal/bruit et donc la dynamique réelle diminue très fortement avec la sensibilité),
  • régler en sur-exposition pour que les hautes lumières soient à la limite de saturation (sur certains appareils vous pouvez visualiser les zones de hautes lumières),
  • enregistrer l'image en RAW (voir les caractéristiques du format propriétaire) ou TIFF 16 bits, pour ne perdre aucune information du capteur. Format JPEG proscrit !
Si ces critères sont respectés, vous avez en une seule prise de vue une image pseudo-HDR, de dynamique 12 bits ou un peu plus, c'est peu mais déjà pas si mal. Rappelons que 12 bits, c'est 4 bits de plus que 8 bits (ça va ? vous suivez là-bas dans le fond ?)... c'est donc l'équivalent d'un bracketing -2 EV / +2 EV avec un capteur 8 bits (ou avec des images enregistrées en JPEG). Autrement dit, avec un bon appareil qui assure les 12 bits (par exemple un vieux Nikon D50...) et les conditions rappelées ci-dessus, vous obtenez en une seule prise de vue une image HDR de dynamique équivalente à 3 images bracketées avec un capteur 8 bits.

Mise en correspondance tonale: le traitement tone mapping

Le tone mapping est une expression très générique qui peut cacher une infinité d'algorithmes de traitements, pour peu qu'à la fin on obtienne une image à faible dynamique, typiquement enregistrable au format JPEG.

Personnellement j'utilise l'algorithme développé par Mantiuk et al. (2006) et implémenté dans le logiciel libre Luminance HDR. Il comporte seulement 3 paramètres qui permettent d'ajuster les 3 effets principaux du rendu typique tone mapping:
  • contraste: il s'agit du facteur de réduction du contraste global de l'image, permettant de réduire la dynamique tout en préservant les détails. C'est une sorte de filtre passe-haut avec normalisation. Le paramètre est par défaut égal à 0.1 ce qui fonctionne dans la majorité des cas, mais en l'augmentant un peu, 0.2 à 0.4 par exemple, on limite assez vite l'effet graphique d'accentuation des détails (tout en conservant un ajustement global correct), ce qui peut être utile pour un rendu plus naturel et en particulier sur des visages si l'on ne veut pas en faire ressortir les rides et autres imperfections! Une valeur de 1.0 signifie aucune égalisation des contrastes.
  • saturation: par défaut à 0.8 pour donner un très léger effet tendance "noir et blanc", on peut faire varier entre 0.0 (noir et blanc complet) et 2.0 (accentue fortement façon carte postale bon marché). La valeur de 1.0 est sensée conserver les couleurs originales mais j'ai remarqué que plus le facteur contraste est faible, plus les couleurs sont atténuées et il faut les relever un peu (1.1 ou 1.2). J'ai pu aussi constater que ce facteur dépendait du boîtier utilisé.
  • détails: par défaut à 1.0 pour un effet minimal, ce paramètre permet d'accentuer les détails fins (type texture des matières) qui donnent l'effet de relief de l'image finale. Une valeur de 5.0 donne déjà un fort rendu de peinture avec la mise en valeur de toutes les textures; au delà de 10 on tend vers le tableau impressionniste.
Voici ce que donne le traitement Mantiuk06 sur l'image HDR de la Gare de Lyon avec les paramètres contraste = 0.1, saturation : 1.2 et détails = 5.0 :

Image HDR à partir de 3 clichés -3/0/+3 EV et tone mapping type Mantiuk 0.1 / 1.2 / 5.0
Paris (gare de Lyon) © 2012 F. Beauducel

Notez que le logiciel comporte beaucoup d'autres paramètres (dans le menu Préférences...) et si vous travaillez sur des images RAW, il faut notamment veiller à ce que la balance des blancs soit réglée sur "Boîtier".

La combinaison des paramètres contraste, saturation et détails permet d'ajuster librement les effets entre une photo réaliste (0.4 / 1.0 / 1.0) et un rendu plus graphique (0.1 / 1.3 / 10). Ci-dessous un exemple. À vous de voir!

Exemples de paramètres tone mapping type Mantiuk (contraste, saturation, détails)
Paris (musée Rodin) © 2012 F. Beauducel


Sur l'utilisation d'une seule image pseudo-HDR...

Sur le Net cette question est souvent abordée: « faut-il / peut-on le faire ou pas ? est-ce vraiment de l'HDR ?... ». On a compris avec les précédentes explications qu'il faudrait en fait reformuler la question par « peut-on faire de la mise en correspondance tonale sur une seule image ? ». Ma réponse rapide à cette question est évidemment oui, mais à condition d'avoir un bon appareil !

Pour faire la démonstration de mes propos, ci-dessous la comparaison entre l'image HDR précédente et un traitement à partir du cliché 0 EV seul, tous les clichés proviennent de fichiers NEF 14 bits (Nikon D300) et sont post-traitées en tone mapping avec les mêmes paramètres. J'ai fait un zoom en pleine résolution sur une zone difficile.

Tone mapping Mantiuk 0.1 / 1.2 / 5.0 à partir d'un cliché unique, le 0 EV du bracketing précédent.
Détail sur une zone à haute lumière: à gauche avec l'image HDR , à droite avec la pseudo-HDR.

Mis à part un peu de bruit dans les zones sombres et un contraste légèrement inférieur, c'est uniquement sur les zones à fortes lumières que le bracketing apporte vraiment quelque chose. La conclusion est qu'il n'y a quand même pas beaucoup de différences dans le rendu final... donc traiter avec une seule image (encore une fois si l'on respecte les conditions ci-dessus) peut être tout à fait acceptable. Enfin, si le bruit final est trop visible, on peut toujours utiliser un filtre anti-bruit comme le très efficace outil intégré dans Lightroom 3... qui n'a comme effet secondaire qu'un léger adoucissement de l'image, à la limite tout à fait bienvenu si on a été un peu fort sur les paramètres de tone mapping.

En tout cas une chose est sure, l'exercice qui consiste à "développer" une seule image à différentes expositions pour créer un bracketing artificiel est totalement dénué de sens: cette manipulation n'apporte absolument aucun gain en dynamique puisque les informations proviennent toutes de la même image d'origine. La dynamique résultante est au mieux celle du capteur d'origine, au pire elle est dégradée par le traitement. Si cette bidouille est tout de même utilisée par certains, ce n'est que pour palier aux défauts de certains logiciels qui n'acceptent pas de considérer une photo unique comme source d'image HDR...


Conclusions et perspectives...

Le bracketing n'est finalement qu'une technique pour palier au manque de dynamique des capteurs d'APN. Actuellement les meilleures dynamiques réelles sont de 15 bits (le Canon 1D Mark IV par exemple), mais le nombre de bits augmente peu à peu au fil des ans et surtout les niveaux de bruit ont énormément diminué... nul doute que l'avenir proche nous réserve des appareils grand public avec d'excellentes dynamiques (à la date de rédaction de cet article, on parle de développements en cours de capteurs 20 bits), et les écrans qui vont avec, et peut-être même du papier HDR (?!).

Si les APN commencent à être dotés de vrais capteurs HDR, on peut imaginer que les fabriquant intègrent le traitement tone mapping directement dans l'APN (il y a de plus en plus de post-traitements disponibles), ce qui permettrait d'éviter un stockage d'image HDR volumineux, et de ne fournir que l'image LDR finale en JPEG, facilement imprimable.

Tout ceci permettra d'abandonner définitivement la bidouille du bracketing équivalente à la technique inventée il y a 160 ans par cet ingénieux Le Gray!

Références et liens

dimanche 3 juin 2012

Accélérer (un peu ou beaucoup) les sauvegardes Time Machine

 Comme je le signalais dans mon article sur l'utilisation de Time Machine en réseau, l'inconvénient de ce fabuleux outil est qu'il est assez lent en raison des gros volumes de données qu'il transfère à chaque sauvegarde. Vous pouvez cependant facilement gagner entre 2 et 4 Go en lui demandant de ne pas inclure les fichiers tampons liés au swap disk et à la mise en veille de votre ordinateur. Ces fichiers sont en effet des éléments temporaires qui ne sont a priori d'aucune utilité dans une sauvegarde : le swap permet d'étendre momentanément la mémoire vive si une application en demande plus que la RAM disponible, et les fichiers de mise en veille sont des copies conformes de votre RAM (donc de la même taille) qui ne servent qu'à l'allumage du Mac (on se demande d'ailleurs pourquoi ces fichiers ne sont pas effacés après le rétablissement complet...).

La procédure est extrêmement simple :
  1. ouvrir les préférences Time Machine,
  2. cliquer sur "Options...",
  3. cliquer sur le signe "+",
  4. cochez la case "Afficher les élément invisibles"
  5. sélectionner le répertoire /private/var/vm (à la racine de votre disque dur),
  6. confirmer avec le bouton "Exclure".
Vous devriez alors obtenir cet écran :

avec "/private/var/vm" ou "/var/vm" (qui en est un lien symbolique) et le volume que vous allez gagner à chaque sauvegarde !
Si vous ne mettez jamais votre Mac en veille, il est possible que ce répertoire soit, pour le moment, tout petit...