darktable 3.2.1 の新機能(2)

大きな変更の補足1(フィルミックRGBの概要)

3.2.1ではフィルミックRGBがV4になりました。他に、細部の表示や、モジュールの作り直しによるレスポンスの向上もありますが、それらは、現像されたJpeg画像に反映されるものではありません。現像結果に注目してみれば、最大の改訂はフォルミックRGBのバージョンアップです。

フィルミックRGBはdarktableだけに搭載されたオリジナルな機能(注1:)です。そこで、筆者の理解している範囲で、フィルミックRGBとは何かについて補足しておきます。

  • ベースカーブの問題点

人間の目の光の強さに対する反応は線形ではなく、対数をえがきます。ベースカーブは反応を対数の変換関数で表したもので、全てのカメラメーカーとRAW現像ソフトが採用しています。しかし、ベースカーブには、次の問題点があります。

  1. 人間の目は、複数のシーンを頭の中で合成するフュージョンを行っています。たとえば、色を感じるセンサーは網膜の中央部にしかなく、周辺の信号はモノクロなのですが、頭の中で合成して、全てカラーであると感じています。同様に、明暗のシーンを見た場合でも、暗部と明部を別々に信号処理して、頭の中で合成しているものと思われます。1点のデータだけでみれば、人間の目の光に対する反応はベースカーブのように対数的に反応するのですが、あるシーン全体で考えればフュージョンであると考える方法が合理的と思われます。

  2. RAW現像は、今のところJpegへの変換です。Jpeg規格は各8ビットのRGB色空間ですが、紙に印刷する場合のダイナミックレンジは7ビットで、8ビットでは大きすぎますし、ディスプレイに表示する場合には10ビットで、逆に不足します。カメラのセンサーのダイナミックレンジが7ビット以下であった2010年くらいまではこの矛盾は表面化しませんでした。しかし、最近のフルサイズセンサーは14ビットのダイナミックレンジがあります。また、動きの少ない被写体であれば、ダイナミックレンジがこれほど広くないセンサーでも感度を変えたマルチショットを合成することで、大きなダイナミックレンジを得ることができます。一言で言えば、デジタル写真はHDRになったのです。HDRにベースカーブを使うと、多くのデータが捨てられてしまうことになります。そこで、ベースカーブに代わる目のフュージョンに対応した変換関数を導入する方法がフィルミックRGBモジュールになります。

  3. Lab色空間には独立性の限界があります。ベースカーブとは直接関係はありませんが、RAW現像ソフトは、通常は、RGB色空間のデータをLab色空間に変換して処理します。これは、明暗と色のデータを分離することで、RAW現像を行いやすくするためです。しかし、Lab色空間の各成分の処理が独立であるためには7ビット以下のダイナミックレンジが必要な条件で、より広いダイナミックレンジのデータにLab色空間を使うと独立性が失われます。簡単に言えば、色合いを変えると連動して明暗も変化してしまいます。RAW写真の現像の基本は露光変化で、各ピクセルのRGBに係数をかけるだけです。内部処理は32ビットの浮動小数点ですから、掛け算を繰りかえすと、桁位置による劣化がゼロにはなりませんが、おそらく、露光変化は、全てのRAW現像処理の中で、最も画像劣化しない処理と思われます。究極を考えれば、画像1ピクセル単位で、露光変更できれば、Lab空間を使わなくとも、明暗の処理は可能です。つまり露光モジュールの性能を上げることがせきれば、RGB色空間のままで、明暗と色合いを独立して処理ができるはずです。これが、RGBワークフローを導入する理由です。この場合には、Lab色空間に基づくモジュールの多くは、使うべきでないモジュールになります。

  • フィルミックRGBV4の実装

ベースカーブをやめて、フィルミックRGBを利用することは、どのカメラメーカーも、darktable以外のどのRAW現像ソフトも採用していません。カメラメーカーは、写真を今のまま7ビットの紙に出力し続けるのか、切り替えるのか、今後の展望を明示すべきと思いますが、態度をはっきりさせていません。しかし、コンピュータの規格の互換性の流れを考えれば、静止画の規格は、動画の規格のサブセットになるばずです。つまり、紙の時代は、ほぼ、終わっています。現在の普及型のディスプレイのダイナミックレンジは10ビットですが、まだ、高価とはいえ10ビットを超える市販のHDRディスプレイが出てきています。最近のKritaは、HDRディスプレイにも対応しています。編集の手間、作品に見るために必要な時間を考えると、静止画には、動画にない長所がありますでの、静止画がなくなることはないでしょう。しかし、出力のダイナミックレンジは拡大していくと思われます。そのためには、JpegのRGB8ビットとベースカーブのレガシーはどこかで、捨てることになると思われます。

とはいえ、フィルミックRGBは、今のところダイナミックレンジ問題の1つの解決法のであって、他のより強力な手法が出てきて、入れ替わる可能性もあります。また、darktableの開発チームの多くは、ベースカーブに基づく、Lab色空間のモジュールを作ってきたので、心安らかでない人も多いはずです。外から見ていると、分裂しないで、チームが続いていること自体が奇跡のようにも思われます。

以下のワークフローの説明が、そのあたりの事情に対応していると思われます。

なお、非参照はJpegファイルを編集する場合になると思われます。

 


  • 3つの可能なワークフローが明確化されました。 以前のバージョンには、ベースカーブモジュールを自動適用するか否かの選択設定がありました。 その意図には多くの質問が出されました。 新しい設定では、3つのワークフローを導入しました。

表示参照:ベースカーブモジュールを使用

シーン参照:フィルミックRGBモジュールと露出モジュールを使用(新しいデフォルト)

非参照:ベースカーブもフィルミックRGBも使用しません


 

また、V3のフィルミクRGBモジュールに比べて、V4では、ベースカーブモジュールへの接近が図られています。利用方法は、最初に、ミニマムのプリセットを使うか、自分で設定した自由度の高いプリセットを使うかを選択するようになりました。

フィルミックRGBが出てくる前は、ベースカーブモジュールしかなく、そのパラメータは、カメラメーカーを選ぶだけです。カメラメーカーによっては、2,3の代替パラメータが準備されていますが、それにしても、2,3の中から1つを選ぶだけで、他のパラメータ設定はありません。

一方、V3までのフィルミックRGBはパラメータが非常に多く、初心者にが扱いにくいものでした。プリセットもダイナミッレンジごとに、9,11,13EVといった多数の選択肢があり、トライアルアンドエラーで、そのうちの1つを選んでいました。今回のミニマムのプリセットは1種類だけです。このプリセットでは、露光の調整はしないので、プリセットのあと必ず露光モジュールを使う必要があります。使ってみた使用感はベースカーブモジュールに近く、簡単に使えます。また、特にのダイナミックレンジが大きくない画像では、プリセットそのままで、非常に安定した画像が得られます。ですから、ベースカーブをつかうのと同じように気軽にフィルミックRGBが使えるようになりました。一方では、従来のように、カーブを細部まで、調整して、自分が求めるような画像を作り上げるプリセットを自作するモードは更に細分化して磨きがかかっています。

今回は長くなったのでここまでにして、次回に実例を示します。

 

注1:

RAW現像ソフトではオリジナルですが、アイデアBlenderを利用しています。