Pourquoi le logiciel peut-il corriger la balance des blancs plus précisément pour les fichiers RAW que pour les fichiers JPEG?

11

Pourquoi les corrections de balance des blancs JPEG post-traitement ne sont-elles pas aussi précises que la balance des blancs avec Raw?

Ma compréhension est que lors de la prise de vue en jpeg, l'appareil photo fait en interne les étapes suivantes:

  1. Convertissez les données brutes du capteur à l'aide de l'algorithme (dématriçage / débayage).
  2. Convertir en espace linéaire

    une. Utilisation de la valeur brute de la table de correspondance dans l'espace linéaire

    b. Le niveau de noir pour chaque pixel est ensuite calculé et soustrait.

    c. La valeur de chaque pixel est ensuite mise à l'échelle de 0,0 à 1,0 à l'aide de Whitelevel

    ré. Les valeurs sont remises à l'échelle sont découpées dans une plage logique de 0,0 à 1,0.

  3. Mappage de l'espace colorimétrique de la caméra à l'espace CIE XYZ avec réglage de la balance des blancs

    une. Convertir en XYZ (D50) en utilisant CameraToXYZ_D50 = Chromatic_adapatation_matrix * CameraToXYZ_matrix

  4. Convertir CIE XYZ en sRGB

    une. Calculer le RVB linéaire à l'aide de la matrice CIE XYZ vers RVB linéaire

    b. Calculer Rec709 sRGB en utilisant la transformation de la courbe gamma sur RVB linéaire

  5. Convertir sRGB en 8 bits et compresser en JPEG

Si cela est correct, je ne comprends pas pourquoi Jpeg n'a pas pu corriger la balance des blancs de la même manière que Raw!

Est-ce simplement à cause de la compression avec perte du fichier JPEG et tiff 32 bits n'aurait pas ce problème?

entrez la description de l'image ici

skyde
la source
1
Qu'est-ce qui vous fait penser que JPEG WB n'est pas aussi précis que raw? Qu'entendez-vous par exact ? Voulez-vous dire que la caméra ne devine pas aussi bien qu'une personne qualifiée utilisant une application de conversion brute? Ou autre chose?
Michael C
Je veux dire que si je dis à mon appareil photo d'enregistrer une copie brute et jpeg de la même image, puis de les ouvrir dans lightroom et d'essayer de corriger la balance des blancs à l'aide du sélecteur de couleurs en cliquant sur le même emplacement exact dans l'image, le résultat brut apparaît parfait alors que le jpeg a toujours une couleur bizarre.
skyde
2
C'est une question très différente. Je vais modifier le titre pour refléter ce que je pense que vous demandez réellement ...
Veuillez lire mon profil
5
La première image n'est PAS "LE fichier brut d'origine". Il fait partie d'un nombre infini possible d'interprétations des données brutes que votre application de conversion brute a produites et affichées sur votre écran en 8 bits.
Michael C
2
Ce n'est probablement pas le point le plus important, mais votre étape 2 est en fait deux étapes distinctes, et elles peuvent ne pas être exécutées dans l'ordre dans lequel vous les présentez (ce qui serait une manière supplémentaire par laquelle le WB est "cuit" dans le JPEG final Couleur).
junkyardsparkle

Réponses:

9

Pourquoi le logiciel peut-il corriger la balance des blancs plus précisément pour les fichiers RAW que pour les fichiers JPEG?

Il y a une différence fondamentale entre travailler avec les données brutes réelles pour produire une interprétation des données brutes différente de l'interprétation 8 bits initiale du fichier brut que vous voyez sur votre écran par rapport à travailler avec un jpeg 8 bits où toutes les informations dans le fichier est ce que vous voyez sur votre écran.

Lorsque vous utilisez le sélecteur blanc sur un fichier "brut", vous ne corrigez pas l'image affichée sur votre écran (qui est un rendu 8 bits de type jpeg qui est l'une des nombreuses interprétations possibles des données dans un fichier d'image brute ). Vous dites à l'application de conversion brute de revenir en arrière et de reconvertir les données du fichier brut en une image affichable à l'aide d'un ensemble différent de multiplicateurs de canaux de couleur.

Vous créez une autre image à partir des mêmes données brutes qui ont été utilisées pour créer la première version que vous voyez sur votre écran. Mais l'application remonte au début et utilise toutes les données du fichier brut pour créer une seconde interprétation différente des données brutes en fonction de vos différentes instructions sur la façon dont ces données doivent être traitées. Cela ne commence pas par les informations limitées affichées sur votre écran et ne les corrige pas. Si c'était le cas, vous obtiendriez le même résultat que lorsque vous travailliez avec le jpeg. ¹

Le fichier brut contient beaucoup plus d'informations que ce qui est affiché sur votre moniteur lorsque vous «ouvrez» un fichier brut. Les fichiers d'images brutes contiennent suffisamment de données pour créer un nombre presque infini d'interprétations différentes de ces données qui tiendront dans un fichier jpeg 8 bits.²

Chaque fois que vous ouvrez un fichier brut et le regardez sur votre écran, vous ne visualisez pas "LE fichier brut". ³ Vous en voyez une parmi un nombre presque infini d'interprétations possibles des données du fichier brut. Les données brutes elles-mêmes contiennent une seule valeur de luminosité (monochrome) mesurée par chaque puits de pixel. Avec les capteurs de caméra masqués Bayer (la grande majorité des appareils photo numériques couleur utilisent des filtres Bayer), chaque pixel possède un filtre de couleur devant lui qui est soit «rouge», «vert» ou «bleu» (les «couleurs» réelles de les filtres de la plupart des masques Bayer sont d'un vert légèrement jaunâtre à un jaune orangé pour «rouge», un vert légèrement bleuâtre pour «vert» et un violet légèrement bleuâtre pour «bleu» -ces couleurs correspondent plus ou moins au centre de sensibilité des trois types de cônes de nos rétines ). Pour une discussion plus complète sur la façon dont nous obtenons des informations sur les couleurs des valeurs de luminosité uniques mesurées à chaque pixel, veuillez voir les fichiers RAW stockent 3 couleurs par pixel, ou une seule?

Lorsque vous modifiez la balance des blancs d'un fichier brut, vous ne modifiez pas l'interprétation 8 bits du fichier brut que vous voyez sur votre écran, vous modifiez la façon dont les données brutes monochromatiques linéaires 14 bits sont interprétées et puis affiché sur votre écran avec la balance des blancs mise à jour.Autrement dit, vous utilisez tous les avantages de ces 16 384 pas linéaires monochromes discrets que le fichier brut contient pour chaque pixel, et non les 256 pas discrets corrigés gamma dans trois canaux de couleur pour chaque pixel que vous voyez sur votre écran 8 bits comme une représentation de ce fichier brut. Vous profitez également de toutes les autres informations contenues dans les données d'image brutes, y compris des éléments tels que les pixels masqués et d'autres informations qui sont supprimées lorsque le fichier est converti au format 8 bits à afficher sur votre écran.

L'aspect de l'image que vous voyez sur votre moniteur lorsque vous ouvrez un fichier brut est déterminé par la façon dont l'application que vous avez utilisée pour ouvrir le fichier interprète les données brutes du fichier pour produire une image visible. Mais ce n'est pas la "seule" façon d'afficher "LE fichier brut d'origine". C'est simplement la façon dont votre application - ou la caméra qui a produit l'aperçu jpeg attaché au fichier brut - a traité les informations du fichier brut pour les afficher sur votre écran.

Chaque application possède son propre ensemble de paramètres par défaut qui déterminent comment les données brutes sont traitées. L'un des paramètres les plus importants est la manière dont la balance des blancs utilisée pour convertir les données brutes est sélectionnée. La plupart des applications ont de nombreux ensembles de paramètres différents qui peuvent être sélectionnés par l'utilisateur, qui est alors libre de modifier les paramètres individuels dans l'ensemble d'instructions utilisé pour interpréter initialement les données dans le fichier brut. De nombreuses applications utiliseront les multiplicateurs de balance des blancs / canal de couleur estimés par l'appareil photo (lors de l'utilisation de l'AWB dans l'appareil photo) ou saisis par l'utilisateur (lors de l'utilisation de la correction CT + WB dans l'appareil photo) au moment où la photo a été prise. Mais ce n'est pas la seule balance des blancs légitime qui peut être utilisée pour interpréter les données brutes.

Avec un fichier brut de 14 bits, il y a 16 384 valeurs discrètes entre 0 (noir pur) et 1 (blanc pur). Cela permet de très petits pas entre chaque valeur. Mais ce sont des valeurs de luminance monochrome . Lorsque les données sont dématriçées, des courbes gamma sont appliquées et une conversion vers un espace colorimétrique spécifique est effectuée, les multiplicateurs de conversion WB sont généralement appliqués à ces valeurs de 14 bits. La dernière étape du processus consiste à remapper les valeurs résultantes jusqu'à 8 bits avant d'effectuer une compression de fichier avec perte. 8 bits ne permet que 256 valeurs discrètes entre 0 (noir pur) et 1 (blanc pur). Ainsi, chaque pas entre les valeurs est 64X plus grand qu'avec 14 bits.

Si nous essayons ensuite de modifier le WB avec ces gradations beaucoup plus cours, les zones que nous essayons d'étendre repoussent chacune des étapes des données que nous utilisons plus qu'une seule étape dans le fichier résultant. Les gradations dans ces domaines deviennent donc encore plus grossières. Les zones que nous rétrécissons poussent chacune de ces étapes dans un espace plus petit qu'une seule étape dans le fichier résultant. Mais ensuite, ces étapes sont toutes réalignées pour s'adapter à la gradation de 256 étapes entre «0» et «1». Cela se traduit souvent par des bandes ou une postérisation au lieu de transitions en douceur.

¹ Afin d'être plus rapides et moins gourmandes en ressources, certaines applications de traitement brut auront un mode "rapide" qui modifie réellement la représentation 8 bits existante sur votre écran lorsque vous déplacez un curseur de réglage. Cela se traduit souvent par des bandes ou d'autres artefacts indésirables, tels que la teinte violette que vous voyez dans le jpeg de couleur modifiée dans la question. Cependant, cela n'est appliqué qu'à l'aperçu que vous consultez. Lorsque le fichier est converti et enregistré (exporté), les mêmes instructions sont en fait appliquées aux données brutes lors de leur retraitement et les bandes ou autres artefacts ne sont pas visibles (ou ne sont pas aussi graves).

² Bien sûr, vous pouvez prendre une photo contenant une seule couleur pure dans tout le champ de vision. mais la plupart des photos contiennent une grande variation de teintes, de teintes et de niveaux de luminosité.

³ Veuillez voir: Pourquoi mes images RAW sont-elles déjà en couleur si le débayage n'est pas encore fait?

Cela expliquerait la formation de bandes ou la postérisation dans l'image causée par une précision réduite, mais il devrait toujours être possible de déplacer le point blanc dans la bonne position non?

Vous pouvez modifier la couleur d'un jpeg dans une certaine mesure, mais la plupart des informations nécessaires pour produire toutes les couleurs que vous pouvez produire avec les données brutes ne sont plus là. Il a été ignoré lors de la conversion en RVB et de la réduction à 8 bits avant la compression. Il ne vous reste plus qu'à travailler avec les valeurs de chaque pixel dans ces trois canaux de couleur. Les courbes de réponse pour chacun de ces canaux peuvent être redessinées, mais il suffit d'augmenter ou de diminuer la valeur de ce canal de couleur dans chacun des pixels des images. Il ne revient pas en arrière et ne refait pas le dématriçage sur la base de nouveaux multiplicateurs de canaux, car ces informations ne sont pas conservées dans le JPEG.

Il est essentiel de comprendre que dans l'exemple d'image ajouté à la question, la deuxième image n'est pas dérivée de la première image. La première et la seconde images sont deux interprétations différentes d'exactement les mêmes données brutes.Ni l'un ni l'autre n'est plus original que l'autre. Ni l'un ni l'autre n'est plus «correct» que l'autre en termes d'être une représentation valide des données contenues dans le fichier brut. Ce sont deux façons parfaitement légitimes d'utiliser les données du fichier brut pour produire une image 8 bits. La première est la façon dont votre application de conversion brute et / ou l'aperçu jpeg généré dans votre appareil photo a choisi d'interpréter les données. La seconde est la façon dont votre application de conversion brute a interprété les données après que vous lui ayez dit quelles valeurs de capteur brutes vous vouliez traduire en gris / blanc. Lorsque vous avez cliqué sur la même partie de l'image jpeg, une grande partie des informations de couleur nécessaires pour corriger l'image pour ressembler à la deuxième version du fichier brut n'était plus là et ne pouvait donc pas être utilisée.

Est-ce simplement à cause de la compression avec perte du fichier JPEG et tiff 32 bits n'aurait pas ce problème?

Non, bien que la compression avec perte en soit une grande partie. La réduction à 8 bits l'est également, ce qui fait que chaque étape entre "0" (noir pur) et "1" (saturation complète) est 64 fois plus grande qu'avec un fichier brut de 14 bits. Mais cela va au-delà de la compression JPEG.

Quelques paragraphes de cette réponse à RAW en TIFF ou PSD 16 bits perdent la profondeur de couleur :

Une fois que les données du fichier brut ont été transformées en un fichier TIFF corrigé gamma démosaïqué, le processus est irréversible.

Les fichiers TIFF ont toutes ces étapes de traitement "intégrées" aux informations qu'elles contiennent. Même si un fichier TIFF 16 bits non compressé est beaucoup plus volumineux qu'un fichier brut typique dont il est dérivé en raison de la façon dont chacun stocke les données, il ne contient pas toutes les informations nécessaires pour inverser la transformation et reproduire les mêmes données exactes contenu dans le fichier brut. Il existe un nombre presque infini de valeurs différentes dans les données au niveau des pixels d'un fichier brut qui auraient pu être utilisées pour produire un TIFF particulier. De même, il existe un nombre presque infini de fichiers TIFF qui peuvent être produits à partir des données d'un fichier image brut, selon les décisions prises sur la façon dont les données brutes sont traitées pour produire le TIFF.

L'avantage des TIFF 16 bits par rapport aux TIFF 8 bits est le nombre d'étapes entre les valeurs les plus sombres et les plus lumineuses pour chaque canal de couleur dans l'image. Ces étapes plus fines permettent une manipulation supplémentaire avant de finalement convertir en un format 8 bits sans créer d'artefacts tels que des bandes dans les zones de gradation tonale.

Mais juste parce qu'un TIFF 16 bits a plus d'étapes entre "0" et "65 535" qu'un fichier brut 12 bits (0-4095) ou 14 bits (0-16383), cela ne signifie pas que le fichier TIFF affiche une plage de luminosité identique ou supérieure. Lorsque les données d'un fichier brut 14 bits étaient transformées en fichier TIFF, le point noir aurait pu être sélectionné à une valeur telle que 2048. Tout pixel du fichier brut avec une valeur inférieure à 2048 se verrait attribuer une valeur de 0 dans le TIFF. De même, si le point blanc était fixé à, disons, 8 191, alors toute valeur dans le fichier brut supérieure à 8191 serait fixée à 65 535 et l'arrêt de lumière le plus brillant dans le fichier brut serait irrévocablement perdu. Tout ce qui est plus clair dans le fichier brut que le point blanc sélectionné a la même valeur dans le TIFF, donc aucun détail n'est conservé.

Il existe ici un grand nombre de questions qui couvrent une grande partie du même terrain. En voici quelques-unes qui pourraient vous être utiles:

Les fichiers RAW stockent 3 couleurs par pixel, ou une seule?
RAW vers TIFF ou PSD 16 bits perd la profondeur des couleurs
Comment commencer avec les paramètres JPEG intégrés à Lightroom?
Pourquoi l'apparence des fichiers RAW change-t-elle lors du passage de "table lumineuse" à "chambre noire" dans Darktable?
nikon d810 manual WB n'est pas la même chose que "As Shot" dans Lightroom
Pourquoi les images RAW sont-elles moins bonnes que les JPEG dans les programmes d'édition?
Associez les couleurs dans Lightroom à d'autres outils d'édition
Pendant la prise de vue en RAW, devez-vous le post-traiter pour que l'image soit belle?

Pourquoi y a-t-il une perte de qualité de l'appareil photo vers l'écran de l'ordinateur
Pourquoi mes photos sont-elles différentes dans Photoshop / Lightroom par rapport à l'utilitaire Canon EOS / dans l'appareil photo?
Pourquoi mes images sont-elles différentes sur mon appareil photo et importées sur mon ordinateur portable?
Comment émuler le traitement intégré à la caméra dans Lightroom?
Conversion jpg intégrée à Nikon vs lightroom
Pourquoi mon aperçu Lightroom / Photoshop change-t-il après le chargement?

Michael C
la source
2
Cela expliquerait la formation de bandes ou la postérisation dans l'image causée par une précision réduite, mais il devrait toujours être possible de déplacer le point blanc dans la bonne position non?
skyde
2
Oui, cela a du sens, cela signifie qu'il est possible d'écraser la couleur du brut lors de la conversion dans la gamme de couleurs TIFF. Et à cause de cela, nous avons encore perdu des informations qui pourraient être nécessaires pour la correction de l'équilibre des couleurs.
skyde
1
Je suis avec skyde: le fait qu'il y ait des étapes moins discrètes dans la résolution des couleurs ne signifie pas que la balance des blancs donne de bons résultats différents visibles. Surtout si la version jpeg a un ton violet intense. Une théorie plus appropriée serait que les valeurs de correction internes possibles soient fixées à une plage plus étroite en jpeg qu'en raw, ce qui vient s'ajouter au fait qu'un raw est interprété à partir de données brutes de capteur et jpeg sont des valeurs de couleur discrètes.
Horitsu
1
Je me joins également à skyde ici. Ceci est juste une longue histoire non pertinente sur les différences entre les formats raw et jpeg. Il n'y a rien ici, qui répond réellement à la question d'origine.
jarnbjo
1
@jarnbjo La plupart de la réponse est consacrée à expliquer la différence entre les données brutes réelles dans le fichier image et ce que l'on voit sur leur écran quand on "voit" une parmi de nombreuses interprétations possibles des données brutes. D'après mon expérience, la plupart de ces types de questions se posent en raison d'un manque fondamental de compréhension que ce que l'on voit sur son écran n'est jamais "LE" fichier brut. D'après mon expérience, le fait de l'indiquer de plusieurs façons augmente les chances que l'ampoule s'allume enfin pour le questionneur. YMMV.
Michael C
3

La réponse est simple car votre appareil photo et votre processeur RAW (LR, Darktable, pour n'en nommer que quelques-uns) utilisent des algorithmes différents pour traiter les fichiers RAW. Les raisons sont nombreuses et nous ne pouvons pas évaluer ces algorithmes car beaucoup sont des secrets commerciaux. Par exemple, la température de couleur de la lumière du jour de Canon (EOS 700D) est d'environ 5200K, tandis que celle de Lightroom est de 5500K. Dans certaines situations, cela fait une différence.

Pour être précis, les fichiers RAW n'ont pas de température de couleur prédéfinie. Il est inclus en tant que méta-informations. Les processeurs RAW appliquent une WB particulière lorsqu'ils effectuent les opérations que vous décrivez.

Edit: et basé sur votre commentaire: Vous ne pouvez pas changer beaucoup de température de couleur sur un fichier JPEG car il est déjà "cuit". La température de couleur est déjà appliquée et vous n'avez pas assez de profondeur de couleur pour "décaler" les couleurs.

Roméo Ninov
la source
Les algorithmes de Darktable ne sont pas des secrets commerciaux.
Veuillez lire mon profil
@mattdm, c'est vrai. Mais ceux de LR, ON1, CaptureOne, d'autres processeurs RAW non disponibles sont ...
Romeo Ninov
Mais est-ce vraiment pertinent pour la question? Les bases de la correction de la balance des blancs sont largement connues et mises en œuvre dans des logiciels ouverts.
Veuillez lire mon profil
Les bases oui. Mais la mise en œuvre peut être différente. Et exactement ces détails sont généralement gardés secrets (pour les logiciels non disponibles)
Romeo Ninov
1

Il est possible d'équilibrer les JPEG JPEG, mais les outils d'édition utilisés pour fonctionner sur RAW par rapport aux autres images ont tendance à se comporter différemment (différents algorithmes). Plus loin:

  • L' outil compte-gouttes est imprécis, ce qui rend difficile la réplication des résultats.

  • La profondeur de bits des fichiers JPEG limite le nombre de couleurs pouvant être décalées par rapport au format RAW.

  • La courbe gamma gâche tout.

  • Les calculs sur données linéaires vs données logarithmiques se comportent différemment.

Ce n'est pas exactement comment cela fonctionne, mais pour illustrer:

  • Supposons que vous souhaitiez multiplier certaines données (1, 4, 8) par 2. Le résultat est (2, 8, 16). Avec des données linéaires, le résultat maximum, 16, est quatre fois le résultat minimum, 2.

  • Mais avec les représentations logarithmiques, l'écart entre les valeurs adjacentes, telles que 2 5 et 2 6 , est beaucoup plus grand que la différence entre les valeurs linéaires, 5 et 6. En outre, le résultat maximum, 2 16 , n'est pas seulement 32 768 fois plus grand que le résultat minimum, 2 2 , il est également 256 fois la valeur d'origine, 2 8 .

xiota
la source