darktableの目玉機能であるフィルミックRGBモジュールのレファレンスです。デフォルトのグラフには、緩いS字カーブが示されますが、これはトーンカーブです。但し、他の現像ソフトやフォトレタッチソフト等のトーンカーブとは異なりカーブを直接いじれません。また単位も異なっています。トーンカーブ上のオレンジの点は中間グレー点です。つまり、その画像のすべての色を混合し平均化したときの平均的な明るさとなります。その下のスライダーを動かして調整します。やや灰色の帽子状のカーブはdesaturation curve、つまり彩度を表すカーブです。シャドウとハイライトの両端でカーブが急激に落ちていますが、これは彩度が落ちているという意味です。中間はフルに彩度があるということです。これもスライダーを動かすことで変化させられます。フィルミックRGBを一旦オンにすると、まず、このデフォルトの緩いS字カーブが画像に適用になります。デフォルトのグラフは、横軸がカメラ(のRawファイル)入力で、明るさ(EV)ベース、縦軸がディスプレイ出力(輝度 100%表示)で、縦軸の尺度は知覚ベースの非リニアな値に基づいたグラフとなっています。このグラフは表示を変えることができますが後述します。
■sceneタブ
フィルミックRGBの最初のタブはシーン(scene)です。white relative exposure (白の相対的露出)は中間グレーより明るい部分の露出を、black relative exposure (黒の相対的露出) 中間グレーより暗い部分の露出をコントロールするパラメーターです。
更に詳しく説明すると、white relative exposure は、ディスプレイ出力の中間グレー点(18%)から最明点(100%)の間に、カメラ(Raw)入力の0.0EVから最高何EVまでを割り付けるかを決めます(それ以上の明るい部分は切り捨てられます)。この最高値を指定します。
Black relative exposure は、ディスプレイ出力の最暗点(0%)から中間グレー点(18%)の間に、カメラ入力の最低 -何EVから0.0EVまでを割り付けるかを決めます(それ以下の暗い部分は切り捨てられます)。この最低値を指定します。
dynamic range scaling (ダイナミックレンジ・スケーリング)は、画像のダイナミックレンジの拡張・縮小を行うパラメータで、左に寄せるとダイナミックレンジがより拡張され (ヒストグラムが左右に広がる)、右に寄せると縮小します (ヒストグラムが狭まる)。
以上がフィルミックRGBの最も中核的なパラメータです。フィルミックRGBの開発目的は、近年デジタルカメラのセンサーのダイナミックレンジが広がってきたり、あるいはHDRによって画像のダイナミックレンジが広がってくる一方、主たる出力デバイスであるディスプレイのダイナミックレンジは広がりません。従って、ダイナミックレンジの広い画像を以下にダイナミックレンジの狭いディスプレイ出力に割り付けるかが問題となり、従来のツールでは割り付けきれないという問題が出てきていました。このような問題を解決するツールとして開発されたのがフィルミックRGBというモジュールなのです。
auto tune levels (自動調整) は上記の値を画像によって自動調整します。画面をマウスでいじることで調整するための画像中の参照範囲を変えることもできます。なお、ホワイトバランスがきちんと調整されていないと、自動調節をかけても適切な結果が得られませんので、この機能を使うときは画像のホワイトバランスをあらかじめ適切に設定する必要があります。また、画像の最明点が白、画像の最暗点が黒でない場合もうまくいきません。このような場合は自動調整を使わないでください。おおむね風景写真などではうまくいく可能性が高いです。
自動調整を使わない場合は、先に、ヒストグラムを見ながら、dynamic range scaling (ダイナミックレンジ) をなるべく大きくとり、その後、白や黒の相対的露出を動かして調整するのが良いでしょう。
■reconstructタブ
reconstruct (ハイライト再構成)タブは、ハイライト・クリッピングを修正する機能です。基本的には、失われていないチャンネルから失われたチャンネルの情報を再構成して、クリッピング領域を再建します。
threshold(閾値)は、明るさのどこからを再建すべきクリッピング領域とするかを決定します。transitionはクリッピングしていない領域とクリッピングしている領域をどのようにつなぐかを決定します。thresholdの設定によって、どの部分が再建すべきハイライトクリッピング領域とされたかは、display highlight reconstruction mask (ハイライト再構成マスクを表示) をオンにするとモノクロの二値化された画像でマスク画像として確認できます。
strucrue/Textureは、ハイライトクリッピングの復元を周囲の色に合わせて行うかそれともはっきり再建するか、bloom/reconstructは、周りのテクスチャに合わせるかそれともなるべくシャープに再建するか、gray/colorful detailsはハイライト部分の彩度を下げるか上げるかという設定です。
■lookタブ
look (表示) タブのパラメータです。contrast (コントラスト) は、S字のトーンカーブの傾きを調整することで画像のコントラストを決定します。latitude (ラティテュード) は、ミッドトーンの彩度(saturation)が高い領域の幅を決定します。shadows/highlight balance (暗部/明部バランス)はこの彩度の高い領域を暗いほうに寄せるか、明るいほうに寄せるかを決定します。middle tones saturation (中間域彩度) は彩度のカーブの緩くして彩度の高い領域を減らすか、あるいは急にして彩度の高い領域を増やすかを決定します。これを動かすと彩度のカーブの形が変わります。
contrastとshadows/highlight balanceが補正するカーブの曲線を指定するパラメータであり、latitudeとmiddle tones saturation は彩度(saturation)を調整するパラメータです。一般的なトーンカーブ編集モジュールが、カーブを直接ユーザがいじることによって編集しているのに対し、ここではcontrastとshadows/highlight balanceパラメータを指定してカーブの形を編集している、ということです。
さらに、Raw入力とdisplay出力の割り付けを示した下図に即して説明し直すと、以下のRaw入力のDisplay出力への割り付け方の間隔(トーンカーブに相当)を調整するのが、contrast と shadows/highlight balanceスライダーで、彩度(Saturation)の出方を調整するのがlatitudeとmiddle tones saturationスライダーだということができます。そして、下のグラフの灰色の濃い部分が彩度の高い部分です。この幅を決定するのがlatitudeスライダーです。middle tones saturationは彩度の高さ自体を決定するのでこのグラフには現れません。shadows/highlight balanceはこの領域を中間グレー点を中心に左に寄せるのか(シャドー寄り)右に寄せるのか(ハイライト寄り)を決定します。
従来のトーンカーブ編集モジュールだと、直接トーンカーブ曲線をユーザが動かすとトーンが変わるだけでなく、彩度も変わります。それが切り離せないのを嫌ってこのように両者を分離してパラメータで調整させるようにしているのがlookタブの役割だと言えます。
なお、dynamic range scalingを0.0、contrastを1.0に設定すると、トーンカーブがほぼ対角線状になり、露光量を、トーンカーブ調整を行うことなく、機械的にディスプレイ出力にリニアに割り付けたのに近い形になります。
■displayタブ
次はdisplayタブですが、マニュアルによると、通常はdisplayタブのパラメータは動かさなくて良いとされていますので説明を省略します。
■optionsタブ
color scienceはdesaturation (彩度減少) の方法を選択しますが v3だとdarktable 3.0相当、v4は3.4相当になります。
preserve chrominance (色の維持) は、補正カーブを動かすときにRGBそれぞれの補正値を一致させて、色が動かないようにするか、それともその制約を外すかを決定します。これを外すと補正カーブを動かすと彩度や色相が変化することがあります。contrast in highlight (明部コントラスト) とcontrast in shadows (暗部コントラスト) は補正カーブの両端のカーブをきつくするか(hard)緩くするか(soft)を決定します。
use custom middle-gray values (中間グレー値の調整) は中間グレー値に任意の値を使うかですが、通常はチェックを外します。チェックを外した場合、中間グレー値は一般的な18%になりますが、この値は知覚的には半分(50%)の明るさに見える点とされています。
auto adjust hardness (ガンマ自動調整) のチェックを外すと、lookタブにhardnessのスライダーが現れます。ここでいうhardnessとはいわゆるガンマ調整のことで、任意に画像を暗くしたり明るくしたりという調整が可能になりますが、これは色空間に伴う知覚的ガンマ補正とは別で、別途に追加で調整します。通常はここでは自動調整で良いので、チェックをつけておきます。
add noise in highlight (明部へのノイズ付加) はハイライト部分にノイズを加え、周辺との遷移を自然に見せます。type of noise (ノイズのタイプ) はそのノイズのタイプを指定します。
■グラフの切替
なお、フィルミックRGBのトーンカーブグラフは通常のEV値によるものを含めて、以下の4種類を切り替えることができます。右下を除いて縦軸がディスプレイ出力、横軸がカメラ入力で、一番左上が既に説明したデフォルトのグラフ(カメラ入力はEV(露光)値、ディスプレイ出力はRGBのリニアな%値出力)、右上はカメラ(Raw)入力がEV(露光)値ではなく、RGBの%値表示になっており、かつ尺度も対数ベースではなくリニアになっています。左下は、右上のものを尺度を対数ベースに直したものです。中間グレー点である18%が真ん中に来るように調整されています。これが一般的なトーンカーブグラフに近いものだと思います。但し、あくまで彩度と切り離されたカーブなので、一般的なトーンカーブと全く同じではありません。
右下のダイナミックレンジマッピングは、カメラ(Raw)入力をどうディスプレイ出力に割り付けるかを図示したグラフです。トーンカーブの曲線を目盛の間隔に直したグラフと言えます。
いずれのグラフも、カメラ露光量の0.0EVがディスプレイの中間グレー点に対応するよう割り付けています。もし0EVを18%グレーに対応付けたくない場合は、中間グレー点自体の値をoptionsタブ上でマニュアルで変更することになります。また、もしトーンカーブによる補正がなく、機械的に露光量とディスプレイ出力が対応付けられているとすれば、トーンカーブは対角線状になるはずですが、実際にはデフォルトで緩いS字トーンカーブ補正が掛かっているのでこのようなカーブになっています。