ソフトウェアがRAWファイルのホワイトバランスをJPEGよりも正確に補正できるのはなぜですか?


11

後処理JPEGホワイトバランス補正がRawのホワイトバランスほど正確でないのはなぜですか?

私の理解では、jpegを撮影するとき、カメラは内部的に次の手順を実行します。

  1. (デモザイク/デベヤリング)アルゴリズムを使用して未加工センサーデータを変換します。
  2. 線形空間に変換

    a。ルックアップテーブルを使用して生の値を線形空間にマップする

    b。次に、各ピクセルの黒レベルが計算され、差し引かれます。

    c。各ピクセルの値は、ホワイトレベルを使用して0.0から1.0に再スケーリングされます

    d。値は再スケーリングされ、0.0から1.0の論理範囲にクリップされます。

  3. ホワイトバランスを調整してカメラの色空間をCIE XYZ空間にマッピングする

    a。CameraToXYZ_D50 = Chromatic_adapatation_matrix * CameraToXYZ_matrixを使用してXYZ(D50)に変換

  4. CIE XYZをsRGBに変換

    a。CIE XYZ to Linear RGB行列を使用して線形RGBを計算する

    b。線形RGBのガンマ曲線変換を使用してRec709 sRGBを計算する

  5. sRGBを8ビットに変換し、JPEGを使用して圧縮

これが正しければ、JpegがRawと同じ方法でホワイトバランスを修正できなかった理由がわかりません。

それは単にJPEGの不可逆圧縮と32ビットtiffファイルがこの問題を起こさないためでしょうか?

ここに画像の説明を入力してください


1
JPEG WBはrawほど正確ではないと思いますか?正確とはどういう意味ですか?通常、カメラは推測を行わないだけでなく、生の変換アプリケーションを使用する熟練した人が推測できないということですか?または、他の何か?
マイケルC

つまり、カメラに同じ画像のrawとjpegのコピーを保存し、それらをlightroomで開いて、カラーピッカーを使用して画像のまったく同じ場所をクリックしてホワイトバランスを修正しようとすると、rawが出力されます。 jpegがまだ変な色をしている間、完璧です。
スカイド

2
それは非常に異なる質問です。私はあなたが実際に尋ねていると私が思うことを反映するようにタイトルを編集します...
私のプロフィールを読んでください

5
最初の画像は「元のrawファイル」ではありません。これは、生の変換アプリケーションが生成して画面に8ビットで表示した生データを無限に解釈できる数の1つです。
マイケルC

2
おそらく最も重要なポイントではないかもしれませんが、ステップ2は実際には2つの異なるステップであり、それらは提示された順序で実行されない場合があります(WBが最終的なJPEGに「ベイク」される追加の方法になります)色)。
junkyardsparkle

回答:


9

ソフトウェアがRAWファイルのホワイトバランスをJPEGよりも正確に補正できるのはなぜですか?

実際の生データを操作して生データを解釈すると、画面に表示される生ファイルの最初の8ビット解釈とは異なり、すべての情報が含まれる8ビットjpegを使用する場合とは根本的に異なります。ファイルは画面に表示されるものです。

「未加工」ファイルで白いクリッカーを使用すると、画面に表示される画像(未加工画像ファイル内のデータの多くの可能な解釈の1つであるjpegのような8ビットレンダリング)は修正されません。)。元の変換アプリケーションに、元のファイルのデータに戻って、異なるカラーチャンネル乗数のセットを使用して表示可能な画像に再変換するように指示しています。

画面に表示される最初のバージョンの作成に使用されたのと同じ生データから別の画像を作成しています。しかし、アプリケーションは最初からずっと元に戻り、生ファイルのすべてのデータを使用して、データの処理方法に関するさまざまな指示に基づいて、生データの2番目の異なる解釈を作成します。画面に表示される限られた情報から始まり、それを修正することではありません。そうした場合、jpegを操作したときと同じ結果が得られます。¹

未加工ファイルには、未加工ファイルを「開いた」ときにモニターに表示される情報よりもはるかに多くの情報が含まれています。生の画像ファイルには、8ビットのjpegファイルに収まるそのデータのほぼ無限の異なる解釈を作成するのに十分なデータが含まれています。²

未加工ファイルを開いて画面で確認するときはいつでも、「未加工ファイル」を表示していません。³ 生ファイル内のデータのほぼ無数の可能な解釈うちの1つを表示しています。生データ自体には、各ピクセルウェルごとの単一(モノクロ)の輝度値の測定値が含まれています。バイエルマスクカメラセンサー(大多数のカラーデジタルカメラはバイエルフィルターを使用)のに、各ピクセルウェルのに「赤」、「緑」、または「青」(実際の「色」)のいずれかであるカラーフィルターがあります。ほとんどのバイエルマスクのフィルターは、「赤」の場合はやや黄緑色からオレンジイエロー、「緑」の場合はやや青緑色、「青」の場合はやや青紫色から-これらの色は、多かれ少なかれ、網膜の3種類の錐体の感度の中心に対応しています)。各ピクセルで測定された単一の輝度値から色情報を取得する方法の詳細については、RAWファイルがピクセルごとに3色を格納するか、1色のみを格納するかを参照してください

生ファイルのホワイトバランスを変更すると、画面に表示される生ファイルの8ビット解釈は変更されませんが、線形14ビット単色生データの解釈方法が変更されます。次に、更新されたホワイトバランスで画面に表示されます。つまり、8ビット画面に表示される各ピクセルの3つのカラーチャネルの256の個別のガンマ補正ステップではなく、RAWファイルが各ピクセルに対して含む、16,384の個別の単色線形ステップの利点をすべて使用しています。その生ファイルの表現。また、マスクされたピクセルや、ファイルが8ビット形式に変換されて画面に表示されるときに破棄されるその他の情報など、生の画像データに含まれるその他すべての情報を利用しています。

生ファイルを開いたときにモニターに表示される画像がどのように見えるかは、ファイルを開くために使用したアプリケーションがファイル内の生データを解釈して表示可能な画像を生成する方法によって決まります。ただし、これは「元のRAWファイル」を表示する「唯一の」方法ではありません。これは、アプリケーション(またはrawファイルに添付されたjpegプレビューを生成したカメラ)がrawファイルの情報を処理して画面に表示する方法です。

各アプリケーションには、生データの処理方法を決定する独自のデフォルトパラメータセットがあります。最も重要なパラメータの1つは、生データの変換に使用されるホワイトバランスの選択方法です。ほとんどのアプリケーションには、ユーザーが選択できる多くの異なるパラメーターセットがあり、ユーザーは生ファイルのデータを最初に解釈するために使用される一連の命令内の個々の設定を自由に変更できます。多くのアプリケーションでは、カメラで推定された(カメラでAWBを使用する場合)、または写真が撮影されたときにユーザーが入力する(カメラでCT + WB補正を使用する場合)ホワイトバランス/カラーチャンネル乗数を使用します。しかし、生データを解釈するために使用できるのは、それだけではありません。

14ビットのrawファイルでは、0(純粋な黒)と1(純粋な白)の間に16,384の離散値があります。これにより、各値の間の非常に小さなステップが可能になります。ただし、これらはモノクロの輝度値です。データがデモザイクされ、ガンマ曲線が適用され、特定の色空間への変換が行われると、WB変換乗数は通常、これらの14ビット値に適用されます。プロセスの最後のステップは、損失のあるファイル圧縮を行う前に、結果の値を8ビットに再マッピングすることです。8ビットは、0(純粋な黒)と1(純粋な白)の間の256の離散値のみを許可します。したがって、値間の各ステップは、14ビットの場合よりも64倍大きくなります。

次に、これらのより粗いグラデーションでWBを変更しようとすると、拡大しようとする領域は、結果のファイルの単一のステップよりも、使用しているデータの各ステップを押し上げます。そのため、これらの領域のグラデーションはさらに粗くなります。縮小する領域は、これらの各ステップを、結果のファイルの単一のステップよりも小さなスペースに押し込みます。しかし、これらのステップはすべて、「0」と「1」の間の256ステップのグラデーションに合うように再調整されます。これにより、スムーズな移行ではなく、バンディングやポスタリゼーションが発生することがよくあります。

fasterより高速でリソースを節約するために、一部のraw処理アプリケーションには、設定スライダーを移動したときに画面上の既存の8ビット表現を実際に変更する「クイック」モードがあります。これにより、問題の色が変化したjpegに表示される紫色の色合いなど、バンディングやその他の望ましくないアーティファクトがよく発生します。ただし、これは表示しているプレビューにのみ適用されます。ファイルが変換されて保存(エクスポート)されると、同じデータが実際に生データに適用され、再処理され、バンディングやその他のアーティファクトは見られません(またはそれほど深刻ではありません)。

²確かに、視野全体に1つの純粋な色が含まれている写真を撮ることができます。ただし、ほとんどの写真には、さまざまな色相、色合い、明るさのレベルが含まれています。

³参照してください:ベイヤー処理がまだ行われていないのに、RAW画像がすでにカラーになっているのはなぜですか?

これは、精度の低下によって引き起こされる画像のバンディングまたはポスタリゼーションを説明しますが、ホワイトポイントを正しい位置に移動することは可能ですか?

jpegの色をある程度変更できますが、生データで生成できるすべての色を生成するために必要な情報のほとんどは存在しません。RGBへの変換および圧縮の8ビットへの削減中に破棄されました。あとは、これらの3つのカラーチャネルの各ピクセルの値だけです。これらの各チャネルの応答曲線は再描画できますが、行うのは、各画像ピクセルのそのカラーチャネルの値を増減することだけです。その情報はJPEGに保存されないため、新しいチャンネルマルチプライヤに基づいてデモザイキングに戻ったり、やり直したりすることはありません。

質問に追加されたサンプル画像では、2番目の画像は最初の画像から派生したものではないことを理解することが重要です。両方の第1および第2の画像は全く同じ生データの2つの異なる解釈があります。どちらも他より独創的ではありません。どちらも、生ファイルに含まれるデータの有効な表現であるという点で、他よりも「正しい」とは言えません。どちらも、生ファイルのデータを使用して8ビット画像を生成する完全に正当な方法です。1つ目は、生の変換アプリケーションやカメラで生成されたjpegプレビューがデータを解釈する方法です。2つ目は、生の変換アプリケーションがグレー/白に変換したい生のセンサー値を伝えた後のデータの解釈方法です。jpegイメージの同じ部分をクリックすると、2番目のバージョンのrawファイルが存在しないようにイメージを修正するために必要なカラー情報の多くが存在せず、使用できませんでした。

それは単にJPEGの不可逆圧縮と32ビットtiffファイルがこの問題を起こさないためでしょうか?

いいえ、不可逆圧縮はその大部分ですが。同様に、8ビットへの削減は、「0」(純粋な黒)と「1」(完全な飽和)の間の各ステップを14ビットのrawファイルの64倍にします。しかし、それはjpeg圧縮を超えています。

この回答からRAWからTIFFまたはPSD 16ビットへのいくつかの段落で色深度が失われます

生ファイルのデータがデモザイクされたガンマ補正済みTIFFファイルに変換されると、このプロセスは元に戻せません。

TIFFファイルには、それらに含まれる情報に「組み込まれた」すべての処理ステップがあります。圧縮されていない16ビットTIFFファイルは、それぞれがデータを格納する方法が原因で、元の元の一般的なrawファイルよりもはるかに大きくなりますが、変換を元に戻し、まったく同じデータを再現するために必要なすべての情報が含まれていません生ファイルに含まれています。特定のTIFFを生成するために使用された可能性のあるrawファイルのピクセルレベルデータには、ほぼ無限の数の異なる値があります。同様に、TIFFを生成するための生データの処理方法に関する決定に応じて、生画像ファイルのデータから生成できるTIFFファイルはほぼ無限にあります。

16ビットTIFFと8ビットTIFFの利点は、画像の各カラーチャネルの最も暗い値と最も明るい値の間のステップ数です。これらの細かいステップにより、最終的に8ビット形式に変換する前に、色調グラデーションの領域にバンディングなどのアーティファクトを作成することなく、追加の操作が可能になります。

ただし、16ビットTIFFは、12ビット(0-4095)または14ビット(0-16383)のrawファイルよりも「0」から「65,535」までのステップ数が多いため、TIFFファイルで同じかそれ以上の明るさの範囲。14ビットの未加工ファイルのデータがTIFFファイルに変換されたとき、ブラックポイントは2048などの値で選択されている可能性があります。2048未満の値を持つ未加工ファイルのピクセルには、値0が割り当てられます。 TIFFで。同様に、白色点がたとえば8,191に設定されている場合、8191を超える未加工ファイルの値は65,535に設定され、未加工ファイルの最も明るい光の停止は取り返しのつかないほど失われます。選択した白色点よりもRawファイルで明るいものはすべてTIFFで同じ値になるため、ディテールは保持されません。

同じ理由の多くをカバーする多数の既存の質問がここにあります。役立つと思われるそれらのいくつかを以下に示します。

RAWファイルは1ピクセルあたり3色を保存しますか、それとも1色のみですか?
RAWからTIFFまたはPSD 16bitに色深度が失わ
れるLightroomでカメラ内のJPEG設定から始めるにはどうすればよいですか?
ダークテーブルで「ライトテーブル」から「ダークルーム」に切り替えると、RAWファイルの外観が変わるのはなぜですか?
nikon d810のマニュアルWBがLightroomの「As Shot」と同じではない
編集プログラムでRAW画像がJPEGより見栄えが悪いのはなぜですか?
Lightroomの色を他の編集ツールと一致
させるRAWでの撮影中に、画像を美しくするために後処理する必要がありますか?

カメラからコンピュータの画面に品質が低下するのは
なぜですか?Photoshop / LightroomとCanon EOSユーティリティ/カメラで写真が異なるのはなぜですか?
カメラで画像がラップトップにインポートされたときと異なるのはなぜですか?
Lightroomでカメラ内処理をエミュレートするにはどうすればよいですか?
Nikonインカメラとlightroomのjpg変換
読み込み後にLightroom / Photoshopプレビューが変更されるのはなぜですか?


2
これは、精度の低下によって引き起こされる画像のバンディングまたはポスタリゼーションを説明しますが、ホワイトポイントを正しい位置に移動することは可能ですか?
スカイド

2
はい、これは意味があります。これは、TIFF色域に変換されたときにrawからの色が切り取られる可能性があることを意味しています。このため、カラーバランスの修正に必要な情報が失われました。
スカイド

1
私はskydeを使用しています。色の解像度の離散的なステップが少なくても、ホワイトバランスがはっきりと異なる結果をもたらすわけではありません。特にjpegバージョンが濃い紫色の場合。より適切な理論は、可能な内部補正値がrawよりもjpegの方が狭い範囲にクランプされるというものです。これは、rawがrawセンサーデータから解釈され、jpegが離散的なカラー値であるという事実に加えられます。
堀津

1
私もここでスカイドに参加します。これは、RAW形式とJPEG形式の違いについての長くて無関係な話です。ここには何もありません。実際に元の質問に答えます。
jarnbjo 2018

1
@jarnbjo答えのほとんどは、画像ファイル内の実際の生データと、生データの多くの可能な解釈の1つを「表示」したときに画面に表示されるものとの違いの説明に費やされています。私の経験では、これらのタイプの質問のほとんどは、画面に表示されるものは決して「THE」生ファイルではないという根本的な理解の欠如が原因で発生します。それをいくつかの異なる方法で述べることは、電球が最終的に質問者のために続く可能性を高めることも私の経験でした。YMMV。
マイケルC

3

簡単な答えは、カメラとRAWプロセッサ(LR、Darktableなど)が異なるアルゴリズムを使用してRAWファイルを処理するためです。理由はたくさんあり、それらの多くは企業秘密であるため、これらのアルゴリズムを評価することはできません。たとえば、Canon(EOS 700D)の昼光色温度は約5200Kですが、Lightroomは5500Kです。状況によっては、違いが生じます。

正確には、RAWファイルには色温度が事前定義されていません。メタ情報として含まれています。RAWプロセッサは、指定した操作を実行するときに特定のWBを適用します。

編集:そしてあなたのコメントに基づいて:それはすでに「調理されている」ため、JPEGファイルの多くの色温度を変更することはできません。色温度がすでに適用されており、色を「シフト」するのに十分な色深度がない。


Darktableのアルゴリズムは企業秘密ではありません。
プロフィールを読んでください

@ mattdm、true。しかし、LR、ON1、CaptureOne、その他の非オープンソースRAWプロセッサーは...
Romeo

しかし、それは本当に質問に関連していますか?ホワイトバランス補正の基本は広く知られており、オープンソフトウェアに実装されています。
プロフィールを読んでください

基本はい。ただし、実装は異なる場合があります。そして、それらの詳細は通常、秘密に保たれます(非オープンソースソフトウェアの場合)
Romeo

1

JPEGのホワイトバランスを調整すること可能ですが、RAW画像と他の画像の操作に使用される編集ツールは、動作が異なる(アルゴリズムが異なる)傾向があります。さらに:

  • スポイトツールは不正確であり、それが困難な結果を再現することができます。

  • JPEG のビット深度は、RAWと比較してシフトできるカラーの量を制限します。

  • ガンマカーブ台無しのすべてのアップ。

  • 線形データと対数データの計算は、動作が異なります。

これは正確にどのように機能するかではなく、説明するためです。

  • 一部のデータ(1、4、8)に2を掛けるとします。結果は(2、8、16)になります。線形データでは、最大結果16は最小結果2の4倍です。

  • しかし、対数表現では、2 5と2 6などの隣接する値の間のギャップは、線形値5と6の間の差よりもはるかに大きくなります。さらに、最大結果2 16は、最小結果2 2、これも元の値2 8の 256倍です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.