darktable 2.2.0

Source: LinuxFR – les dépêches
Liens: darktable 2.2.0
darktable 2.2.0

Ça devient une habitude : les utilisateurs de darktable ont encore droit à un cadeau de Noël. Le logiciel de gestion et de traitement de photos raw vient de sortir en version 2.2.0 avec plusieurs nouveautés majeures : icone darktable noel

  • Un module « correction de perspective », avec plus de possibilités et plus d’automatisation que l’ancien système, disponible dans « recadrer et pivoter ».
  • Un module « liquéfier », qui permet d’appliquer une distorsion à certaines parties d’images. Très utile pour réduire ou renforcer les formes d’un visage par exemple.
  • Un module « table correspondance couleurs » pour modifier les couleurs d’une image, ou profiler son appareil photo en utilisant l’outil darktable-chart.
  • La fusion d’exposition dans le module « courbe de base » (basecurve), qui permet d’obtenir un effet HDR sur des images très contrastées, sans sortir de darktable.
  • Un indicateur de surexposition au niveau de l’image brute (raw)
  • Une fonction annuler/refaire dans la chambre noire (Z/Y). En complément de l’historique déjà disponible, ça permet un contrôle plus fin. Et ça permet aussi de restaurer l’historique complet après sa compression malencontreuse!
  • Une ré-écriture du mode « Reconstruire dans LCh » du module « reconstruire hautes lumières ».

La liste complète des changements est en deuxième partie de dépêche, suivie d’un point sur le portage Windows et de quelques conseils de lectures et de visionnages.

Sommaire

Présentation

darktable est spécialisé dans l’édition d’images brutes (raw). Contrairement à beaucoup d’éditeurs d’images (comme GIMP), darktable travaille de manière non-destructive : il ne modifie jamais les fichiers sur lesquels il travaille, mais gère une base de données de traitements à appliquer sur chaque image, et applique ces transformations au moment de visualiser ou d’exporter les images. Cela ouvre beaucoup de possibilités comme celle de copier-coller une pile d’effets d’une image vers une ou plusieurs autres images, de revenir en arrière vers n’importe quelle étape du traitement, de réajuster les paramètres d’un module qu’on avait appliqué plus tôt…

Les changements majeurs

La version 2.2.0 succède à la version 2.0.7 (les 2.x avec x impair étant réservées aux versions instables) sortie à Noël dernier.

Un nouveau module de correction automatique de perspective

La correction de perceptive (perspective correction) est proposé dans le module « recadrer et pivoter » (crop and rotate) à partir de 2 ou 4 lignes qu’il faut aligner sur des lignes verticales, horizontales ou les 2 de la photographie comme le montre Carafife dans son Tuto Darktable 12: Module Recadrer et Pivoter.

Avec ce nouveau module, il est possible de repérer automatiquement les structures et ensuite d’ajuster à l’aide des curseurs : rotation, correction d’objectif (horizontale), correction d’objectif (verticale), cisaillement en s’aidant avec l’activation les guides. C’est une méthode manuelle de correction des perspectives un peu plus performante que celle proposée dans le module « recadrer et pivoter ».
L'outil « correction de perspective »

Image originale
Les 3 icônes dans correction automatique repèrent les structures : verticales, horizontales ou les 2 et lancent la correction automatiquement.

Image corrigée

Les lignes vertes sont celles détectées comme verticales et faisant partie d’un faisceau de lignes convergentes. Les rouges sont verticales, mais ne font pas partie du faisceau convergent. Pour les lignes horizontales, les bleues sont celles détectées comme faisant partie d’un faisceau convergent et les jaunes comme n’en faisant pas partie. Les lignes grises sont celles détectées mais ne sont pas considérées comme intéressantes par le module. En bref, les lignes importantes sont les vertes et les bleues. On peut désélectionner une ligne avec un clic droit, et la resélectionner avec un clic gauche pour affiner l’ensemble de lignes pertinentes.

Le recadrage automatique est possible aussi bien en manuel qu’en automatique en l’activant.

Image recadrée

Plus d’infos dans l’article « A new module for automatic perspective correction ».

Un nouvel outil « liquéfier » pour les déplacements de pixels en tous genre

Un outil très apprécié des photographes de studio, et jusqu’ici manquant dans darktable était la possibilité de déformer une partie de l’image (par exemple, avec l’outil liquify de Photoshop ou iWarp dans GIMP). Outre la possibilité de s’amuser à faire des caricatures ou autres images tordues, ces outils permettent également de retoucher la forme du corps ou du visage d’un modèle. Si leur utilisation grossière ou systématique est plus que discutable, et peut même vous valoir 37 500 €  d’amende si vous les utilisez sans le signaler sur des images à usage commercial, ces outils peuvent aussi être utilisés de manière subtile pour atténuer une déformation due à une mauvaise pause, atténuer ou renforcer certains traits de visages, … Le nouvel outil « liquéfier » (liquify) permet de faire tout cela depuis darktable.

Pour comprendre de quoi il s’agit, voici deux exemples tirés du site de darktable. D’abord, l’outil « point », qui permet de définir un cercle, une direction et une force, et de déplacer les pixels dans cette direction :

Application basique de « liquéfier »

Puis l’outil « courbe » qui permet d’appliquer le même genre de transformation à une zone non-circulaire :

Application de l'outil « courbe » de « liquéfier »

Voyons maintenant l’outil sur un exemple réel. Cette photo a été prise avec un reflex dont le viseur ne couvre que 95 % de l’image. Un détail qui n’aurait pas dû apparaître sur la photo s’est glissé sur la gauche du cadre sans que le photographe ne s’en rende compte (l’image est zoomée, le bord réel de l’image correspond au bord droit) :

Image originale

Une technique classique dans cette situation serait de récupérer un morceau d’herbe à côté et de le recopier à la place de l’objet à supprimer : l’outil « correction des taches » fait cela très bien. Mais changeons un peu nos habitudes : on va utiliser l’outil « liquéfier » pour pousser l’objet en dehors du cadre (sans recadrer la photo). Avec un cercle assez grand, la déformation est à peine visible à l’œil :

Image corrigée avec « liquéfier »

Plus d’infos dans l’article « Liquify, liquify? ».

Un nouveau module « table correspondance couleurs » pour modifier les couleurs d’une image

Un nouveau module « table correspondance couleurs », ou « CLUT » (Color Look Up Table en anglais) fait son apparition :

L'outil « table correspondance couleurs »

Utilisation du module pour profiler un boîtier

Un premier coup d’œil sur l’outil laisse entendre que les possesseurs d’une mire it8 pourront s’en servir pour profiler leur appareil photo. Effectivement, c’est l’une des utilisations : prendre en photo la mire, puis établir un profil de couleurs de l’appareil soit manuellement, en modifiant les paramètres de chaque case pour faire correspondre l’image obtenue avec les valeurs théoriques, soit en utilisant le nouvel outil darktable-chart, qui fait la même chose automatiquement. Bien sûr, la possibilité de profiler son appareil photos n’est pas nouvelle : on pouvait déjà créer un profil ICC (avec les outils fournis par Argyll CMS, cf. par exemple ce tutorial) et l’utiliser comme profil d’entrée dans darktable. Un apport de ce nouveau module est la possibilité de retoucher a posteriori le profil, directement depuis l’interface de darktable.

Application à l’émulation de films argentiques

Le module CLUT ouvre également beaucoup de possibilités même si on ne possède pas de mire it8, et même si on est assez content avec les couleurs par défaut pour ne pas sentir le besoin d’un profil de couleur particulier : il permet d’appliquer des transformations plus ou moins arbitraires à une image, par exemple « rendre les rouges clairs un peu plus clairs et les verts un peu plus jaunes » s’exprime très bien avec ce module.

Une application est l’émulation de pellicule argentique : les transformations permises par le module CLUT sont les mêmes que les défauts, ou les qualités, d’une pellicule donnée. Voici donc un outil parfait pour constituer une bibliothèque de styles analogue aux styles Film Emulation de G’MIC.

Un outil très utilisé aujourd’hui pour représenter les profils utilisés pour l’émulation de films est Hald-CLUT : c’est une table qui à chaque couleur de l’espace source associe une couleur de l’espace cible. En pratique, un profil Hald-CLUT est une image. À chaque couleur de l’espace source est associé un pixel, et la couleur de ce pixel est la valeur dans l’espace de couleurs cible. L’intérêt des Hald-CLUT est que n’importe quelle transformation est représentable, et le fait qu’il existe déjà beaucoup de profils Hald-CLUT (par exemple ceux de G’MIC mentionnés ci-dessous). En contrepartie, les deux inconvénients sont qu’un profil Hald-CLUT est relativement gros (alors que darktable doit stocker l’ensemble des informations nécessaires pour traiter une image dans la base de données et dans les fichiers .xmp), et pas éditable, ou en tous cas pas de manière simple. L’outil CLUT de darktable résout ces deux problèmes en ne stockant qu’un nombre raisonnable de points (24 au maximum) et en interpolant les autres par des splines. C’est un autre compromis, où on permet plus de flexibilité au prix d’une précision plus faible. On peut déjà transformer un profil Hald-CLUT en style darktable utilisant le module CLUT mais pas vraiment d’une manière conviviale. On verra peut être un jour un darktable-chart –haldclut, peut-être pour la prochaine version ? À noter qu’il existe aussi un module expérimental HaldCLUT pour darktable, mais il n’est pas intégré à la branche principale de darktable, et l’histoire ne dit pas si et quand il le sera.

Des utilisateurs se sont déjà attaqués à la conversion des profils Hald-CLUT vers des styles darktable. Par exemple, une collection de profils de films argentiques est disponible ici (merci @PkmX pour le partage !). Voici un exemple avec le style Ilford HP5 Plus 400. Avant application, la mire est celle par défaut, sans modification :

Table initiale

Une fois le style appliqué, la table correspondance couleurs passe de 24 échantillons, ou « patch » à 49 « patch » différents de ceux initiaux :

Table de 49 patch

Retouche de couleurs ciblée

Une autre utilisation du module CLUT est de retoucher les couleurs et les tonalités d’une image, en utilisant directement le module à la main. Exemple sur cette image :

Image originale

(Pour les besoins de la démo, les contrastes ont été légèrement renforcés sur cette image)

On va utiliser le module CLUT pour réduire les irrégularités de la peau. Pour l’instant, certaines zones sont sombres et assez rouges, d’autres sont plus claires et un peu jaunes. On pourrait utiliser les couleurs prédéfinies (ce n’est pas une coïncidence si les deux premiers échantillons correspondent à des tons de peau), mais on peut faire un peu mieux : on sélectionne une zone d’image à la pipette (éventuellement en utilisant le mode « zone » dans le module « pipette » à gauche de l’image pour moyenner les valeurs sur un rectangle plutôt que d’échantillonner les pixels individuellement), puis Majuscule+clic sur une case du module CLUT pour forcer cette case à prendre la couleur sélectionnée. On recommence l’opération sur une zone trop rouge foncée, une trop claire, et une intermédiaire. Nous voici avec trois échantillons dans le damier du CLUT, correspondant aux couleurs à retoucher. Nous pouvons faire les ajustements : on augmente la clarté et on diminue le rouge pour le carré foncé, on diminue la clarté et le vert sur le plus clair, et on ajoute une petite touche de rouge au carré intermédiaire :

Module CLUT configuré pour notre retouche de peau

Les échantillons de couleur pour lesquels les paramètres ont été modifiés sont marqués d’un carré blanc. L’échantillon sélectionné est marqué d’un deuxième carré blanc. Le curseur de saturation s’est déplacé tout seul quand nous avons déplacé le curseur rouge/vert, mais nous aurions pu également choisir de déplacer le curseur de saturation et de laisser les curseurs de couleurs se déplacer en fonction.

Et voici le résultat (regardez en particulier le nez et entre les sourcils) :

Image retouchée avec le module CLUT

On peut donc voir ce nouveau module comme une alternative au module « zones de couleurs » (color zones), mais avec une expressivité différente : « zones de couleurs » permet de cibler une couleur, une saturation ou une clarté, mais difficilement de combiner ces critères (par exemple, pour faire une transformation comme « éclaircir les bleus clairs ») sans utiliser les masques paramétriques.

Plus d’infos dans l’article « colour manipulation with the colour checker lut module ».

Indicateur de surexposition de l’image brute (RAW)

Les habitués connaissent tous l’indicateur de surexposition de darktable (raccourcis clavier « o » en chambre noire). darktable 2.2 voit apparaître un deuxième indicateur (raccourcis « Majuscule+o » en chambre noire) :

Indicateurs de surexposition

Contrairement à l’indicateur classique, celui-ci indique si l’image brute est sur-exposée, et non si l’image cible (produite par darktable) l’est. Quand une partie de l’image cible est surexposée, on peut souvent s’en sortir en réduisant sa luminosité dans le module « exposition » par exemple. Quand l’image brute est surexposée, il n’y a pas grand chose à faire : l’information est manquante dans cette zone de l’image…

Exemple avec trois images, ci-dessous. Elles sont prises dans des conditions d’éclairage difficile : rétro-éclairage via un flash et arrière plan noir font que ni le boîtier ni le TTL du flash ne peut obtenir une exposition correcte facilement. Maintenant que ces photos sont prises, il nous reste à les trier et bien sûr retoucher les meilleurs dans darktable :

Aperçu des images

Regardons ce que donne l’indicateur sur ces images :

La première image est fortement surexposée. L’indicateur affiche un pixel vert là où un pixel vert du capteur atteint ou dépasse la valeur maximale (niveau de blanc), idem pour le rouge et le bleu. Ici, on voit de grandes zones où le canal rouge est surexposé (où nous pouvons garder espoir de récupérer du contraste mais certainement pas les détails des couleurs), et beaucoup où le rouge et le vert le sont. Passons notre chemin, cette image est bonne pour la poubelle :

Image brute fortement surexposée

Bonne surprise sur la deuxième image : même si elle apparaît surexposée, il y a peu d’endroits où l’image brute est vraiment cramée, il y a un peu d’espoir d’en faire quelque chose :

Image brute légèrement surexposée

Sur cette troisième image, à part quelques pixels, les zones claires sont simplement un peu trop claires, mais toute l’information est dans l’image brute :

Image brute sans surexposition

Effectivement, après un peu de retouche et diminution de l’exposition dans darktable, on arrive à un résultat tout à fait satisfaisant !

Image traitée

Plus de détails dans l’article « Visualizing the raw (sensor) highlight clipping ».

Réécriture du mode « reconstruire dans LCh » du module « reconstruire hautes lumières »

Le mode « reconstruire dans LCh » du module « reconstruire hautes lumières » a été entièrement ré-écrit. En effet, les développeurs trouvaient l’ancienne implémentation trop buggée. Si vous étiez contents de l’ancien algorithme, vous ne verrez probablement pas de différence. Si vous trouviez qu’il faisait n’importe quoi, vous serez probablement plus satisfait de la nouvelle version.

Le module « reconstruire hautes lumières » s’occupe d’éviter les problèmes dans les zones surexposées de l’image brute, que nous venons de visualiser ci-dessus. Le mode par défaut remplace ces zones par du blanc (ou gris) mais ne cherche pas à retrouver de détails. Le mode « reconstruire dans LCh » doit son nom à l’espace de couleur « Luminance-Chroma-Hue » (Luminance, Saturation, Couleur). Il est capable de reconstruire le canal L (Luminance) à partir d’un canal de couleur non surexposé (donc, même si un ou deux canaux le sont).

Pour illustrer l’intérêt de ce module, prenons un exemple de photo contenant une zone surexposée : le soleil.

Original surexposé

Le tout nouvel indicateur de surexposition d’image brute présenté ci-dessus nous permet de voir que le canal vert n’est pas saturé même sur le soleil :

Indicateur de surexposition RAW

Le mode « reconstruire dans LCh » de « reconstruire hautes lumières » permet donc sans surprise de récupérer une bonne partie du contraste autour du soleil après avoir réduit l’exposition (la sous-exposition a été forcée un peu pour que l’effet de la reconstruction soit plus visible). Le mode par défaut « tronquer les hautes lumières » (à gauche) a brutalement remplacé toute la zone surexposée par un gris neutre et uniforme. Le mode « reconstruire dans LCh » (à droite) a parfaitement fait son travail !

Reconstruction dans LCh

Fusion d’expositions dans le module « courbe de base » pour diminuer la plage dynamique d’une image

Il arrive qu’une image ait trop de contraste pour être rendue correctement à l’écran. C’est le cas par exemple d’une photo prise avec un fort contre-jour, ou d’une photo de nuit avec certaines zones bien éclairées. Il existe beaucoup de techniques pour réduire le contraste global (c’est à dire réduire l’écart entre les zones les plus claires et les zones les plus sombres) tout en préservant le contraste local. Techniquement, l’écart entre les zones les plus claires et les zones les plus sombres s’appelle la plage dynamique, et tout naturellement les techniques permettant d’exploiter des situations où cette dynamique est grande s’appelle l’Imagerie à grande gamme dynamique (High-Dynamic Range ou HDR en anglais). Une technique classique pour la photo HDR est de prendre plusieurs images de la même scène, par exemple une image sur-exposée, une sous-exposée et une normalement exposée, et de combiner ces images. Certains outils, comme Luminance HDR assemblent d’abord les images en une image à très grande dynamique, puis réduisent le contraste local de cette image. D’autres comme enfuse vont sélectionner les meilleures portions de chaque image sans passer par une image intermédiaire.

Les capteurs des boîtiers modernes ont une dynamique très grande (souvent plus de 13 IL, soit un facteur 2^{13} entre le point le plus sombre et le point le plus clair, voir des sites comme http://dxomark.com/ pour des mesures précises) : nettement plus que ce qu’une image et un écran classique sont capables de rendre (en général, 8 bits avec un encodage gamma soit environ 11 IL en pratique). Donc, une seule image permet d’approcher le rendu HDR obtenu en combinant plusieurs images. Une technique classique est de développer plusieurs versions de la même image avec des niveaux d’exposition différents, et de les combiner avec enfuse. Les résultats étaient intéressants, mais le processus assez pénible : 3 exportations, un appel à enfuse, ré-importation du résultat dans darktable.

La bonne nouvelle : on peut maintenant faire tout ceci sans sortir de darktable ! Un menu déroulant « fusion » dans le module « courbe de base » permet de combiner au choix 2 ou 3 expositions de la même image. L’outil va générer des versions sur-exposées de l’image, il est donc conseillé de partir d’une image globalement sous-exposée (les zones les plus claires étant exposées correctement).

Reprenons notre exemple à fort contraste. En sous-exposant l’image (module « exposition »), puis avec une fusion de 3 expositions (+2 et +4), on arrive en quelques clics de souris à une image où les ombres reprennent leur lumière, tout en limitant la sur-exposition du soleil et de l’ensemble du ciel (après sous-exposition et fusion d’exposition à droite) :

Fusion d'exposition

Les contrastes locaux sont bien préservés, et cette technique a l’avantage de ne pas introduire trop d’artefacts désagréables (halo ou franges).

Cette nouvelle fonctionnalité vient compléter les outils « mappage global tonalité » et « mappage tonalité », ou plus simplement « ombres et lumières », qui sont également spécialisés dans la compression de plage dynamique.

Plus d’infos dans l’article « compressing dynamic range with exposure fusion ».

Annuler/refaire les dernières actions dans la chambre noire

darktable a toujours eu un moyen très puissant d’annuler et de refaire des actions : la pile d’historique, disponible sur la gauche en chambre noire :

Historique de la chambre noire

Les gros intérêts de cette pile d’historique par rapport à un « annuler / refaire » classique : on peut se placer n’importe où dans l’historique en un clic, l’historique reste assez sobre (et peut si besoin être simplifié avec le bouton « compresser l’historique »), et surtout, il est persistant d’une session à l’autre : quittez darktable, revenez sur la même image des mois plus tard, tout est encore là !

Par contre, le système avait deux inconvénients :

  • La pile d’historique reste à granularité assez grosse : si on fait plusieurs modifications successives sur le même module, une seule étape sera ajoutée à l’historique. Par exemple, un utilisateur qui vient de passer 10 minutes à ajuster sa courbe de tonalité et qui faisant un dernier essai se dit « Tiens, et comme ça ? Ah non, c’était mieux avant ! » peut annuler tout son travail sur la courbe et perdre ses 10 minutes de travail, ou tenter de retrouver l’état satisfaisant à la main…

  • On peut annuler définitivement les dernières actions de la pile, par exemple en sélectionnant une étape puis en cliquant sur « compresser l’historique ». Dans les versions précédentes de darktable, les étapes supprimées étaient perdues à jamais.

La nouvelle fonctionnalité résout ces deux problèmes très simplement : Control-z annule la dernière action, qu’il s’agisse d’une action parmi d’autres sur le même module, ou d’une opération destructive sur la pile d’historique. Bien sûr, Control-y après un Control-z refait l’action qui vient d’être annulée. On peut annuler autant d’actions qu’on le souhaite, mais la liste des actions annulables est réinitialisée quand on change d’image.

Cette fonctionnalité ne gère pas (encore ?) les masques dessinés (mais on peut annuler/refaire sans problème des modifications sur les masques paramétriques).

Améliorations d’ergonomie

  • L’outil darktable-cli peut maintenant travailler directement sur un répertoire.

  • Il est possible d’importer et d’exporter des mots clés depuis les fichiers de mots clés du logiciel Lightroom.

  • On peut utiliser Majuscule et Contrôle pour modifier les pas d’incréments des réglettes et des courbes. La molette de la souris permet de déplacer le curseur d’un pas, et on peut maintenant utiliser Majuscule+molette pour déplacer le curseur 10 fois plus vite, et Contrôle-molette pour avoir un pas 10 fois plus fin. On peut aussi utiliser les modificateurs Majuscule et Contrôle avec les actions au clavier, par exemple Majuscule+flèches pour déplacer le curseur rapidement, et Contrôle+flèches pour le déplacer plus finement.

  • Le cadre « plus de modules » gère maintenant les pré-réglages (preset) : vous pouvez maintenant définir des ensembles d’outils à afficher dans l’interface, et passer de l’un à l’autre en deux clics (ou ne mémoriser qu’un ensemble, celui qu’on utilise d’habitude, et pouvoir y revenir facilement si jamais on casse tout par erreur !) :

Pré-réglages dans « plus de modules »

  • On peut maintenant utiliser des opérateurs de comparaison de dates et d’intervalles de temps dans le module « filtres de collection » de la table lumineuse. Par exemple, pour filtrer toutes les photos prises entre mars et janvier 2016, on peut faire au choix :

Comparaisons de dates

Intervalles de dates

  • darktable prévient le gestionnaire de fenêtre quand l’export est terminé. Par exemple, sous Unity, l’icône s’agite dans la barre latérale :

Export terminé

  • La taille du dégradé autour des masques dessinés (la zone entre le trait plein et le pointillé qui l’entoure) peut maintenant être réglée avec « Majuscule+molette » n’importe où dans le masque (alors qu’il fallait avoir la souris dans la zone de dégradé dans les versions précédentes). Petit changement, grande amélioration en ergonomie : quand on partait d’un dégradé mince, il fallait parfois vraiment bien viser pour attraper le dégradé ! Bien sûr, l’ancienne méthode marche toujours également.

  • L’utilisateur a le choix entre deux modes de dégradés pour les masques dessinés elliptiques : proportionnel ou équidistant. On passe de l’un à l’autre avec Majuscule+Clic. Ci-dessous un exemple de chaque :

Dégradés des masques elliptiques

Changements internes et nouvelles possibilités pour l’utilisateur

  • La base de données de darktable est maintenant coupée en deux fichiers : ~/.config/darktable/library.db contient toujours les informations sur les images de la collection, et le nouveau fichier ~/.config/darktable/data.db contient les données globales de darktable comme les définitions de pré-réglages des outils, les styles et les tags. Ce découpage a plusieurs intérêts : on peut lancer darktable avec darktable --library :memory: pour faire un essai sans modifier la base de données de la collection d’images (mais attention, les .xmp seront modifiés) et continuer à bénéficier des pré-réglages, styles et tags. Cela permet aussi de partager le fichier data.db entre plusieurs machines qui ne travaillent pas sur la même collection d’images, ou de restaurer une sauvegarde de l’un ou l’autre des fichiers sans toucher à l’autre (par exemple, restaurer data.db après avoir endommagé un pré-réglage par erreur, sans perdre les modifications qu’on vient de faire sur les images).

  • Gestion des processeurs autres que les architectures intel (64bit little-endian, pour l’instant seulement ARM64). Ce n’est pas si facile que ça pourrait en avoir l’air car darktable utilise beaucoup les instructions spécifiques de l’architecture Intel pour optimiser les performances, et il faut donc ré-écrire les morceaux d’assembleur pour faire le portage. Ne rêvez pas trop vite d’un darktable sur votre tablette Android ou votre Raspberry Pi : d’une part, darktable a beaucoup de dépendances donc un portage sur un OS autre que Linux ou MacOS est un travail de titan, et de l’autre la gourmandise de darktable en terme de calcul et de RAM fait qu’il n’est pas envisageable de l’utiliser confortablement sur des ordinateurs aussi limités. Mais avec l’arrivée de ARM sur les ordinateurs portables, on pourrait bien voir un jour des machines puissantes sur lesquelles on aimerait utiliser notre logiciel de traitement d’images brutes favori ! Plus de détails dans l’article « Running on non-x86 platforms » (décidément, les développeurs aiment bien poster des choses le 1er avril, mais cette fois-ci ce n’est pas une blague).

  • darktable utilise maintenant beaucoup moins de RAM sur la pile. Ceci peut éviter certains plantages, et permettrait à darktable d’utiliser des implémentations alternatives a la libc classique comme musl.

  • Gestion des données EXIF de date et heure lors de l’import d’image depuis un appareil photo.

  • Gestion rudimentaire des filtres de couleurs CYGM et RGBE sur les capteurs.

  • darktable-cli n’essaye pas d’accéder à l’interface graphique, il n’en a pas besoin (pratique pour le lancer depuis une tâche cron ou autre environnement sans interface graphique)

  • Le module « pixels chauds » (hot pixels) marche maintenant pour les capteurs X-Trans.

  • L’outil darktable-cmstest produit des résultats corrects dans plus de cas, en particulier les configurations multi-écrans.

  • Suppression de certains champs inutiles (ou non-pertinents dans les images exportées) des données EXIF. Cette suppression aide à rester sous la limite de 64 Ko dans les données EXIF. Si cette limite est dépassée, la totalité des données EXIF est supprimée.

  • L’histogramme est maintenant plus précis : au lieu de n’utiliser que 6 bits (qui donnait un rendu un peu lissé), les 8 bits de l’image de sortie sont maintenant utilisés. En 2.0, l’histogramme était comme ceci :

Histogramme en version 2.0

En version 2.2, le voici sur la même image :
Histogramme en version 2.2

  • L’outil darktable-viewer a disparu au profit de la vue « diaporama »

  • Le backend « gnome keyring » pour le stockage a disparu, il est remplacé par libsecret, qui n’est pas spécifique à GNOME mais s’adapte à l’environnement de bureau.

  • Quand libsecret est utilisé pour stocker des mots de passe, ils sont ajoutés à la bonne collection.

  • Dans la chambre noire : l’aperçu (et haut à gauche) est calculé avec une version simplifiée et plus rapide du pipeline de transformations. L’étape de dématriçage (demosaic) dans le pipeline d’aperçu a été modifiée ce qui devrait donner un aperçu, une pipette et un histogramme avec de meilleurs résultats surtout en présence de zones surexposées.

Améliorations de performances

  • Une version OpenCL a été ajoutée pour les algorithmes de dématriçage VNG/VNG4 et Markesteijn (pour les capteurs X-Trans).

  • darktable élimine les périphériques OpenCL virtuels. En effet, OpenCL est prévu pour déporter du calcul sur le GPU, mais l’utiliser pour une implémentation qui fait les calculs sur le CPU n’est pas intéressant. Cette modification évite des crash avec certaines implémentations d’OpenCL comme pocl.

  • Le module « profil de couleur d’entrée » (input color profile) est plus rapide d’un tiers quand il est utilisé avec une matrice de couleurs (c’est le cas par défaut).

Autres changements

  • L’exporteur de galerie web est améliorée, et les galeries générées sont maintenant utilisables sur écrans tactiles. Un exemple de galerie générée ici.

  • La fonctionnalité d’étiquetage (tag) rapide recherche maintenant n’importe quelle sous-chaîne des étiquettes, pas seulement en début de chaîne.

  • Le schéma XML des fichier XMP est maintenant plus clair et moins sujet à erreur. Par contre, cette modification de format implique qu’un XMP généré par darktable 2.2 n’a aucune chance d’être lisible avec une version antérieure (c’est déjà rarement possible d’ouvrir un fichier XMP antérieur à cause des problèmes de versions de modules).

  • Rawspeed: corrections pour pouvoir utiliser libjpeg (par opposition à libjpeg-turbo).

  • On peut maintenant utiliser les variables $(GPS.LATITUDE), $(GPS.LONGITUDE), $(GPS.ELEVATION) et $(GPS.LOCATION) pour faire référence à la position dans un filigrane.

  • Correction de crashs qui arrivaient en cas de profil ICC manquant.

  • Gestion des profils de couleurs en noir et blanc.

  • Mac OS X : la poubelle est maintenant gérée correctement.

  • Les données des fichiers .xmp sont maintenant ajoutés aux fichiers EXR (utilisés pour les images à haute plage dynamique).

  • Corrections de bugs pour les écrans HighDPI (qui ont une résolution physique supérieure à la résolution logique).

  • Utilisation de Pango pour la disposition du texte, ce qui permet de gérer correctement les affichages de droite à gauche.

  • Nombreuses corrections de bugs et de fuites mémoires.

  • Le manuel utilisateur a été mis à jour.

  • Dans le module « courbe de tonalité », un nouveau mode « automatique XYZ » fait son apparition pour le mode d’« échelle des canaux a et b », qui donne des couleurs peu saturées dans les tons clairs, et proches du mode « automatique » sur les tons assombris.

Changements spécifiques aux scripts Lua

  • Tous les appels asynchrones ont été ré-écrits :

    • L’implémentation spécifique à darktable de yield() n’existe plus
    • darktable.control.execute permet d’exécuter des commandes shell sans bloquer Lua.
    • darktable.control.read permet d’attendre qu’un fichier devienne lisible sans bloquer Lua.
    • darktable.control.sleep permet de mettre l’exécution d’un thread en pause.
    • darktable.gui.libs.metadata_view.register_info permet d’ajouter des champs au module de métadonnées dans la chambre noire.
  • On peut créer un TextView depuis Lua pour permettre à l’utilisateur d’entrer des morceaux de textes longs.

  • Il est maintenant possible de créer un widget dans la fenêtre de préférences de Lua.

  • On peut régler la précision et le pas des réglettes.

Changements dans les dépendances

Pour ceux qui installent ou compilent darktable à la main : CMake 3.0, gcc 4.7 ou clang 3.3 sont nécessaires (gcc 5.0 ou supérieur recommandés). libexiv2 est requis en version 0.24, gtk en version 3.14 et glib en 2.40. OpenJPEG2 est maintenant géré, et SDL n’est plus nécessaire. Mac OS X version 10.6 n’est plus supporté.

La version 32 bits avait déjà du plomb dans l’aile avec la 2.0, ça n’est plus vraiment la peine d’essayer avec darktable 2.2. Soit votre machine est très vieille et darktable sera à peine utilisable dessus, soit il est temps de passer au 64 bits.

Gestion des appareils photos

Gestion de base pour : Canon EOS-1D X Mark II, Canon EOS 5D Mark IV, Canon EOS 80D, Canon EOS 1300D, Canon EOS Kiss X80, Canon EOS Rebel T6, Canon EOS M10, Canon PowerShot A720 IS (dng), Canon PowerShot G7 X Mark II, Canon PowerShot G9 X, Canon PowerShot SD450 (dng), Canon PowerShot SX130 IS (dng), Canon PowerShot SX260 HS (dng), Canon PowerShot SX510 HS (dng), Fujifilm FinePix S100FS, Fujifilm X-Pro2, Fujifilm X-T2, Fujifilm X70, Fujifilm XQ2, GITUP GIT2 (chdk-a, chdk-b), (most nikon cameras here are just fixes, and they were supported before already), Nikon 1 AW1 (12bit-compressed), Nikon 1 J1 (12bit-compressed), Nikon 1 J2 (12bit-compressed), Nikon 1 J3 (12bit-compressed), Nikon 1 J4 (12bit-compressed), Nikon 1 J5 (12bit-compressed, 12bit-uncompressed), Nikon 1 S1 (12bit-compressed), Nikon 1 S2 (12bit-compressed), Nikon 1 V1 (12bit-compressed), Nikon 1 V2 (12bit-compressed), Nikon 1 V3 (12bit-compressed, 12bit-uncompressed), Nikon Coolpix A (14bit-compressed), Nikon Coolpix P330 (12bit-compressed), Nikon Coolpix P340 (12bit-compressed, 12bit-uncompressed), Nikon Coolpix P6000 (12bit-uncompressed), Nikon Coolpix P7000 (12bit-uncompressed), Nikon Coolpix P7100 (12bit-uncompressed), Nikon Coolpix P7700 (12bit-compressed), Nikon Coolpix P7800 (12bit-compressed), Nikon D1 (12bit-uncompressed), Nikon D100 (12bit-compressed, 12bit-uncompressed), Nikon D1H (12bit-compressed, 12bit-uncompressed), Nikon D1X (12bit-compressed, 12bit-uncompressed), Nikon D200 (12bit-compressed, 12bit-uncompressed), Nikon D2H (12bit-compressed, 12bit-uncompressed), Nikon D2Hs (12bit-compressed, 12bit-uncompressed), Nikon D2X (12bit-compressed, 12bit-uncompressed), Nikon D3 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed), Nikon D300 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed), Nikon D3000 (12bit-compressed), Nikon D300S (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed), Nikon D3100 (12bit-compressed), Nikon D3200 (12bit-compressed), Nikon D3300 (12bit-compressed, 12bit-uncompressed), Nikon D3400 (12bit-compressed), Nikon D3S (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed), Nikon D3X (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed), Nikon D4 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed), Nikon D40 (12bit-compressed, 12bit-uncompressed), Nikon D40X (12bit-compressed, 12bit-uncompressed), Nikon D4S (14bit-compressed), Nikon D5 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed), Nikon D50 (12bit-compressed), Nikon D500 (14bit-compressed, 12bit-compressed), Nikon D5000 (12bit-compressed, 12bit-uncompressed), Nikon D5100 (14bit-compressed, 14bit-uncompressed), Nikon D5200 (14bit-compressed), Nikon D5300 (12bit-uncompressed, 14bit-compressed, 14bit-uncompressed), Nikon D5500 (12bit-uncompressed, 14bit-compressed, 14bit-uncompressed), Nikon D60 (12bit-compressed, 12bit-uncompressed), Nikon D600 (14bit-compressed, 12bit-compressed), Nikon D610 (14bit-compressed, 12bit-compressed), Nikon D70 (12bit-compressed), Nikon D700 (12bit-compressed, 12bit-uncompressed, 14bit-compressed), Nikon D7000 (14bit-compressed, 12bit-compressed), Nikon D70s (12bit-compressed), Nikon D7100 (14bit-compressed, 12bit-compressed), Nikon D80 (12bit-compressed, 12bit-uncompressed), Nikon D800 (14bit-compressed, 12bit-compressed, 12bit-uncompressed), Nikon D800E (14bit-compressed, 12bit-compressed, 12bit-uncompressed), Nikon D90 (12bit-compressed, 12bit-uncompressed), Nikon Df (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed), Nikon E5400 (12bit-uncompressed), Nikon E5700 (12bit-uncompressed), Olympus PEN-F, OnePlus One (dng), Panasonic DMC-FZ150 (1:1, 16:9), Panasonic DMC-FZ18 (16:9, 3:2), Panasonic DMC-FZ300 (4:3), Panasonic DMC-FZ50 (16:9, 3:2), Panasonic DMC-G8 (4:3), Panasonic DMC-G80 (4:3), Panasonic DMC-G81 (4:3), Panasonic DMC-G85 (4:3), Panasonic DMC-GX80 (4:3), Panasonic DMC-GX85 (4:3), Panasonic DMC-LX3 (1:1), Panasonic DMC-LX10 (3:2), Panasonic DMC-LX15 (3:2), Panasonic DMC-LX9 (3:2), Panasonic DMC-TZ100 (3:2), Panasonic DMC-TZ101 (3:2), Panasonic DMC-TZ110 (3:2), Panasonic DMC-ZS110 (3:2), Pentax K-1, Pentax K-70, Samsung GX20 (dng), Sony DSC-F828, Sony DSC-RX100M5, Sony DSC-RX10M3, Sony DSLR-A380, Sony ILCA-68, Sony ILCA-99M2, Sony ILCE-6300

Une revalidation des différents modes pour tous les boîtiers Nikon a été faite, mais la gestion de ces boîtiers n’a pas pu être réactivée faute d’image pour tester (si vous êtes l’heureux possesseur de l’un de ces appareils, soumettez vos fichiers pour réactiver leur gestion dans la prochaine version) : Nikon E8400, Nikon E8800.

Pré-réglages de balance des blancs pour : Canon EOS 1200D, Canon EOS Kiss X70, Canon EOS Rebel T5, Canon EOS 1300D, Canon EOS Kiss X80, Canon EOS Rebel T6, Canon EOS 5D Mark IV, Canon EOS 5DS, Canon EOS 5DS R, Canon EOS 750D, Canon EOS Kiss X8i, Canon EOS Rebel T6i, Canon EOS 760D, Canon EOS 8000D, Canon EOS Rebel T6s, Canon EOS 80D, Canon EOS M10, Canon EOS-1D X Mark II, Canon PowerShot G7 X Mark II, Fujifilm X-Pro2, Fujifilm X-T2, Fujifilm X-T10, Fujifilm X100T, Fujifilm X20, Fujifilm X70, Nikon 1 V3, Nikon D5500, Olympus PEN-F, Pentax K-1, Pentax K-70, Pentax K-S1, Pentax K-S2, Sony ILCA-68, Sony ILCE-6300

Profils de bruit pour : Canon EOS 5DS R, Canon EOS 80D, Canon PowerShot G15, Canon PowerShot S100, – Canon PowerShot SX100 IS, Canon PowerShot SX50 HS, Fujifilm X-T10, Fujifilm X-T2, Fujifilm X100T, Fujifilm X20, Fujifilm X70, Nikon 1 V3, Nikon D5, Nikon D5500, Olympus E-PL6, Olympus E-PM2, Olympus PEN-F, Panasonic DMC-FZ1000, Panasonic DMC-GF7, Pentax K-1, Pentax K-S2, Ricoh GR, Sony DSLR-A900, Sony DSC-RX10, Sony ILCE-6300, Sony NEX-5, Sony SLT-A37

Traductions

Nouvelles traductions en Hébreux et en Slovène. Mises à jour des traductions en Catalan, Tchèque, Danois, Néerlandais, Français, Allemand, Hongrois, Italien, Polonais, Slovaque, Espagnol, Suédois et Ukrainien.

Version Windows ?

La question d’une version Windows de darktable se pose depuis longtemps, et a toujours été très controversée. Les développeurs se sont déjà expliqués sur l’absence de version Windows à plusieurs reprises : That other OS, Why don’t you provide a Windows build?. Dans les grandes lignes : aucun des développeurs actuels de darktable n’utilise Windows, et les développeurs font avant tout ce qu’ils font sur darktable pour s’amuser et pour leurs besoins personnels. Avoir plus d’utilisateurs n’est pas un but en soi, et inversement avoir beaucoup d’utilisateurs sous Windows apporterait certainement beaucoup plus de rapports de bugs difficiles à déboguer, bref, plus de douleur que de plaisir pour les développeurs. La vraie difficulté n’est pas de porter darktable, mais de le maintenir. Ce n’est pas une opposition dans l’absolu, mais la condition nécessaire pour qu’un port Windows officiel émerge est qu’un développeur se porte volontaire pour le maintenir activement. Certains développeurs se sont même mis d’accord sur une liste de critères pour que quelqu’un puisse être considéré comme un mainteneur crédible. Jusqu’ici, les tentatives de portages étaient des efforts ponctuels sans vision sur le long terme, et ont été considérées comme hostiles par l’équipe de darktable. Une des dernières en date est celle de Partha, qui avait donné beaucoup d’espoir à certains mais a rapidement été abandonnée.

Une lueur d’espoir est apparue récemment : une pull-request a été ouverte sur GitHub par peterbud, qui a fait un travail de fond pour porter darktable et ses dépendances, et semble décidé à mener le travail jusqu’au bout. Les discussions avec les développeurs sont constructives. Le chemin est long, mais c’est sans doute la première fois qu’on peut avoir un vrai espoir de voir l’effort aboutir.

Quelques nouveaux sites sur darktable

Pour conclure cette dépêche, voici quelques conseils de lecture et de visionnages.

darktable-fr: site francophone sur darktable

Il semblerait qu’on n’en ait encore jamais parlé ici : la communauté francophone d’utilisateurs de darktable a maintenant son site : https://darktable-fr.tuxfamily.org/.

Au menu : des dépêches, un forum, des styles pour darktable, des liens vers d’autres sites…

Les vidéos de Frédéric de Thézy

Frédéric de Thézy est un photographe amateur, qui partage sa pratique sous forme de vidéos : des sorties photos, des vidéos de développement de photos avec darktable, et des tutos. Vous pouvez aussi visiter directement la chaîne Youtube.

Les vidéos d’Aurélien Pierre

Aurélien Pierre est photographe spécialisé dans les portraits et photos de nus artistiques. Il publie régulièrement des vidéos sur darktable, avec une approche très méthodique et très pro. Il a également une chaîne Youtube.

Weekly edit, par Harry Durgin

Harry Durgin est un photographe amateur. Il vit à Hawaii, ce qui explique en partie ses photos à couper le souffle de couchers de soleils, de lave versée dans l’océan ou de forêt tropicale, mais il faut aussi une bonne dose de compétence en photo et en post-traitement pour en arriver là !

Il a tendance à détourner les outils de leur fonction d’origine : le module « passe-bas » applique un flou et réduit le contraste local ? Lui l’utilise pour renforcer les contrastes ! Le module « filigrane » est prévu pour ajouter son nom ou un logo SVG dans un coin de l’image ? Lui l’utilise pour combiner plusieurs images, en transformant un bitmap en SVG auparavant. Ces techniques originales ne sont pas forcément à recommander à des débutants, mais son site, http://weeklyedit.com/ est une mine d’or de techniques à explorer pour des utilisateurs avertis.

Harry poste une vidéo par semaine, avec à chaque fois une petite explication textuelle, des liens directs vers les points de la vidéo où il utilise chaque outil, des sous-titres, les fichiers RAW utilisés… Il propose d’éditer des images envoyées par les lecteurs de son site.

Les vidéos sont en anglais.

Benchmarks sur Phoronix

Une question qui revient souvent à propos de darktable est : quel CPU et quelle carte graphique acheter pour en profiter au maximum ? Un nouvel élément de réponse est maintenant disponible dans l’article More Darktable GPU/CPU Benchmarks – 27 Different Setups sur Phoronix.com.

Les tutos de Carafife

Un peu hors-sujet dans la rubrique « nouveaux sites », mais comment passer à côté des tutos darktable de Carafife ? Voici maintenant 33 vidéos qui couvrent la quasi-totalité des outils proposés par darktable. Il a permis à de nombreux utilisateurs francophones de prendre en main darktable (comme le prouvent de nombreux témoignages d’utilisateurs dont l’ordinateur a failli valser plusieurs fois avant de les avoir visionné). Il va avoir du boulot pour nous faire de supers tutoriels avec ces nouvelles fonctions.

Lire les commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *