省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

ART / RawTherapee 機能紹介 - 対数トーンマッピング

f:id:yasuo_ssi:20210904211415j:plain

[お知らせ]

 本記事は、2022.12に一部記述(トーンマッピングを使った割り付けをめぐる ART とdarktable の差に関する情報)を補訂しました。

------------

 ARTの対数トーンマッピング(log tone mapping / 露出タブにあり)も、RawTherapee本家5.8には搭載されておらず、ART / RawTherapeeにのみ搭載されている機能です。このモジュールの基本的な目的は、別のフリーのRaw現像ソフト darktableに登載されているフィルミックRGBと同じです。なお、従来のトーンマッピングは、ARTでは、テクスチャ増幅と改名され、ローカル編集タブに移動しています。

 そもそもdarktableにおけるフィルミックRGBの開発目的は、次の通りです。近年デジタルカメラのセンサーのダイナミックレンジが広がってきたり(現在カメラセンサーのダイナミックレンジは10~14EV, 因みに人間の視覚のダイナミックレンジは20EV)、あるいはHDRによって画像のダイナミックレンジが広がってくる一方、主たる出力デバイスであるディスプレイのダイナミックレンジが広がっているわけではありません(8~10EV)。さらに紙にプリントした画像のダイナミックレンジはさらに狭く、5~7EV程度です。従って、ダイナミックレンジの広い画像を如何にダイナミックレンジの狭いディスプレイ出力に割り付けるかが問題となり、ダイナミックレンジの広いカメラでは、従来のツールでは割り付けきれない、あるいは割り付けるのが難しいという問題が出てきていましたこのような問題を解決するツールとして開発されたのがフィルミックRGBというモジュールです。

 ARTにおける本ツールの目的も全く一緒ですが、大きな違いがあります。datktableのフィルミックRGBはカメラRaw入力のディスプレイ出力への割り付け(マッピング)だけではなく、S字状のトーンカーブの適用や彩度(Saturation)の補正などの機能も含まれ、従来のフォトレタッチソフトでよく使われてきたトーンカーブ編集モジュールをも置き換えることを狙っています。このため、フィルミックRGBをオンにするとデフォルトで弱いS字のトーンカーブが適用されます。

 さらに、darktable(シーン参照ワークフロー)ではトーンカーブを編集したい場合は、直接ユーザが曲線を編集するトーンカーブモジュールではなく、パラメータを指定してトーンカーブを編集するようになっており、フィルミックRGBにあるlookタブのコントラストやシャドウ/ハイライトバランススライダーをいじって調整します。それ以上に踏み込んでいじりたい場合は、トーンイコライザーを使います。また、従来のトーンカーブ編集モジュールではトーンカーブをいじると同時にそれに付随して彩度も変わりますが、フィルミックRGBでは、lookタブにある、middle tones saturationとlatitude スライダーを動かすことで彩度を調整するよう、分離されています。

 つまり、darktableでは、従来のトーンカーブ編集モジュールだと、直接カーブをいじるために、トーンの変化と彩度(saturation)や色相(Hue)の変化が分離しきれないのを嫌って、それを分離するためにこのように直接カーブを編集させず、パラメータで指定するように推奨しているものと思われます。

 しかしARTの対数トーンマッピングにはトーンカーブを補正する機能はなく、カメラRaw入力のディスプレイ出力へのマッピングのみとなっています。従って、ARTでは、トーンカーブの編集については別途トーンカーブ編集モジュール等と併用することが前提となっています。ARTではdarktable同様トーンイコライザも採用していますが、トーンカーブ編集モジュールの使用を非推奨とはしていません。

 

 また、対数で表されるRawファイルへの露光量 (EV値というのはlog2の対数値ですので、1EVプラスになると光量としては2倍に、1EVマイナスになると光量は1/2になります)を、ディスプレイのリニアな出力値に割り付け直す際の計算方式がdarktableとARTでは異なっているということです。因みに対数で表現されるRawファイルの露光量(EV値)を、リニアな値で表現されるディスプレイの明るさ(トーン)に割り付けるので、対数トーンマッピングと称する訳です。他に、ARTでは調整の基準となる明るさを指定していますが、darktableは、ユーザに基準となるピクセルを画面から選べるようにしています。

 ARTの対数トーンマッピングでは、darktableのフィルミックRGBに比べてパラメータが大幅に絞り込まれ、初心者でもあまり迷わず使える、というあたりを狙っているようです。

f:id:yasuo_ssi:20210902005243p:plain

対数トーンマッピング ダイアログ

 では、パラメータの説明です。

基準とする中間グレー値は、その画像の明度の平均をいくつに設定するかを指定するパラメータです。風景写真やポートレイトなどの通常の写真は18%グレイが基準ですので、デフォルト値の18を変える必要はありません。しかし意図的に暗く撮ったり、明るく撮った写真(例えば夜の花火の写真など)はここを変える必要がある場合があります。

増幅度(Gain)は、露出の露出補正とほぼ同じです。実際にカメラで撮るとき、1絞り開けたり、絞ったりして撮ることがありますが、それと同じです。1絞り分開けるなら、+1EV、1絞り絞るなら、-1EVです。但し、露出補正は、処理パイプラインのLinear RGB処理の比較的早い段階で適用され、対数トーンマッピングはLinear RGB処理の最後の段階で適用されるため、他のモジュールの動作の影響で、実際には若干動作が異なります。

 と、説明しましたが、実際に使ってみると露出補正で明るくするよりも、こちらで調整して明るく調整したほうがダイナミックレンジ拡大効果が大きいようです。露出補正で明るくするとヒストグラムの山全体が明るいほうに移動する感じですが、増幅度を上げると、シャドウ部の移動量は少なく、ハイライト部が明るくなって全体的にダイナミックレンジが上がる感じです。

 なお、以上2項目は、通常露出補正で調整している場合設定する必要はありません。ただし露出補正は現像処理パイプラインの比較的早い段階で調整されます。しかし初めの段階で調整したくない場合(例えばマスクの作成に露出調整の影響を与えたくない場合など)は、露出補正で調整せずここで調整を行います。

白の相対的露出黒の相対的露出は、このモジュールの中核的パラメータで、darktableのフィルミックRGBにあるパラメータと全く同じです。white relative exposure (白の相対的露出)は中間グレーより明るい部分の露出を、black relative exposure (黒の相対的露出) は中間グレーより暗い部分の露出をコントロールするパラメーターです。

 更に詳しく説明すると、white relative exposure は、ディスプレイ出力の中間グレー点(通常は18%)から最明点(100%)の間に、カメラ入力の0.0EVから最高何EVまでを割り付けるかを決めます(それ以上の明るい部分は切り捨てられます)。この最高EV値(上限EV値)を指定します。

 Black relative exposure は、ディスプレイ出力の最暗点(0%)から中間グレー点(通常は18%)の間に、カメラ入力の最低 -何EVから0.0EVまでを割り付けるかを決めます(それ以下の暗い部分は切り捨てられます)。この最低EV値(下限EV値)を指定します。

 以下の図は、ARTではなく、darktableのフィルミックRGBモジュールのグラフですが、これを見ると分かりやすいかと思います。但し、具体的な割り付け方は、ARTとdarktableで計算方法が異なっています*1

f:id:yasuo_ssi:20210906101617p:plain

カメラ(Raw)入力のディスプレイ出力への割付け
(darktableの割付けグラフ)

 上のグラフの場合、ディスプレイの明るさの0~18%の間に、Rawデータ中、-8.0~0.0EVの範囲を割り付け(→Black relative exposureの設定値は-8.0になる)、ディスプレイの18~100%の間に、Rawデータの0.0~+4.0EVの範囲を割り付けています(→white relative exposureの設定値は+4.0になる)。ディスプレイの18%の明るさは、知覚的には半分の明るさに見えるポイント(いわゆる18%中間グレー点)で、0EVは必ず中間グレー点に割り付けられます。基準とする中間グレー点の値を変更すると、0EVが割り付くグレーの濃度も変わります

 以上を簡単にまとめると、まず基準とする中間グレー点を上げると画像が明るくなり、下げると暗くなります。そして、白の相対的露出を上げると、センサー画像のOEV以上の内、基準となる中間グレー点より上に貼り付く幅が広がるとともに、下げると、狭まります。黒の相対的露出を下げると、基準となる中間グレー点より下に貼り付く幅が広がるとともに、上げると狭まります。ただ相対的露出の上げ下げの効果は、元の画像のヒストグラム分布がどうであるかによって効果が異なります。

 例えば、一番明るい領域が、やや低い値で頭打ちになっている画像では、白の相対的露出を下げると、明るい部分の諧調が豊かになる効果がありますが、フルにダイナミックレンジを使っている画像では、同じことをやると、逆に明るい部分の諧調が減ってしまいます。

 ともあれ、本機能を使う時は、上の出力割り付けグラフを頭の中において考えて下さい

 これでカメラのRawファイル入力を、どうディスプレイ出力に割り付けるかの基本が決まりますが、ARTの場合、これにトーンカーブやトーンイコライザによる調整が加わって最終的にカメラRaw入力がどうディスプレイに割り付くかが決まります。

 なお、ART では、白の相対的露出、黒の相対的露出の補正幅がdarktableより広く、より強力になっています。

遷移のスムーズ化(Regulalization)は、上のパラメータを指定することで作成されるトーンの変化が隣接するトーン領域にも影響を与えてなるべくスムーズに変化させるようにするか、それともトーン領域毎で急に変化することを許容するかというパラメータです。値を高くすると変化がよりスムーズになり、ローカルな細部テクスチャがよりよく保たれます。低くするとメリハリが出ますが、細部は失われがちになります。

自動ボタンは白の相対的露出黒の相対的露出の値を自動的に設定します。他のパラメータには影響を与えません。

 なお、このモジュールの自動調整ですが、darktableの自動調整よりうまくいくようです。いくつか試した範囲では、darktableのフィルミックRGBの自動調整でうまく調整できず、マニュアルで調整する必要のある画像も、ARTの対数トーンマッピングの自動調整だと適切な結果が得られるようです。以下その例を示します。ARTでは大抵の場合、自動調整で終わりにして構わなそうです

 なお、ARTの対数トーンマッピングでは先も述べたようにトーンカーブ調整との併用を前提としていますので、トーンカーブ調整も行わないと、darktableのフィルミックRGBとは異なり、眠い画像になってしまいます。ただしトーンカーブ調整も通常は自動調整でOKでしょう。おそらくデフォルトで読み込んだ際、環境設定を変えていなければ、既にトーンカーブ調整の自動調整がオンになっているはずです。なお、トーンカーブの自動調整はRawファイルに含まれるプレビュー用jpegデータを基に調整しますので、このJpegデータが欠落してると利用できません。またプレビューデータのトーン分布が不適切だとそれがそのまま反映されます。

f:id:yasuo_ssi:20210902130124p:plain

darktable フィルミックRGB自動調整結果

 darktableでは、上のサンプルに対し、自動調整(auto tune levels)を掛けたところ、変に黒っぽくなってしまいました。自動調整を掛ける前のデフォルト値の方がましでした。

f:id:yasuo_ssi:20210902130410p:plain

ART 対数トーンマッピング自動調整結果 (左: 調整前 / 右: 調整後)
(但しトーンカーブの自動調整と併用)

 ARTでは、問題ありません。ただこの事例の場合、調整前と比べてさほど変化量は大きくありませんでした(多少明るめになっています)。

 もっともdarktableのフィルミックRGBの自動調整結果が白の相対的露出が+2.42、黒の相対的露出が-1.00になっていますが、そもそもなぜこんなにダイナミックレンジが狭く自動調整されてしまうのか、そちらの方が問題のように思います。

 

 長々と解説してきましたがが、以上要点を述べれば...

・対数トーンマッピングは、ダイナミックレンジが広いRaw画像をうまく出力に割り付ける機能 (カメラ/Raw入力のダイナミックレンジがさほど広くなければ使う必要はない)

・使うときは、通常、難しいことを考えず、自動調整をオン、さらにトーンカーブも自動調整をオンで大抵大丈夫

というあたりでしょうか。

 なお、明暗のダイナミックレンジの差が広すぎる画像を、ディスプレイの0-100%の範囲に割り付ける方法として、本機能以外に"ダイナミックレンジ圧縮"があります。"ダイナミックレンジ圧縮"と本機能の違いは、ダイナミックレンジ圧縮は一律圧縮を掛けるのに対し、対数トーンマッピングはレンジの割り付け方を調整できる点、さらにダイナミックレンジ圧縮の方は、露出補正より前のかなり早い段階で適用されるので、調整の余地は対数トーンマッピングより大きいという点でしょうか。

 また、筆者の場合はRaw編集だけでなく、一旦フィルムスキャンをしたTIFFファイルのトーンの再割り付けに本機能を使うことが多いです。この場合、Rawファイルと異なり、既に一旦ディスプレイの0-100%の範囲にデータが割り付いています。すでに述べたように、予め露出補正を行っているなら中間グレー点の調整等は必要ないとされていますが、TIFFファイルのトーンの再割り付けを行うケースでは露出補正を使うより、中間グレー点の調整で明るさを調整するほうが、より柔軟な編集が行いやすいように思います。露出補正はRaw (入力) データ側、中間グレー点の調整はディスプレイ (出力) データ側の調整になりますので、TIFFファイルの再編集のように、入力が既に一旦ディスプレイに貼り付いている場合は、中間グレー点をいじるほうが、データクリップを起こしにくく最終結果により近い調整が可能なためかと思います。

--------------

 因みに、darktableでは、トーンカーブについてはフィルミックRGB上 (あるいはトーンイコライザ上) でパラメータを指定して間接的にいじることしかできない方向を推奨しているのに対し、ARTでは、トーンカーブの補正は別途トーンカーブ編集モジュールでユーザが直接自由に編集できる余地を残しているので、darktableの推奨のシーンワークフローより編集の自由度が高いと言えます。なお、darktableでも、推奨されているシーン参照ワークフローでは非推奨とされていますが、従来型のディスプレイ参照ワークフローではトーンカーブモジュールも残されてはいます。

 ARTは、なるべくパラメータ設定などをシンプルにして、ユーザが迷いにくいユーザインターフェースを狙うだけではなく、RawTherapeeとdarktableの良いところ取りも狙っているようです。

 現像プロセスのパイプライン処理についてもdarktableを見習って、かなり整理しなおしているようです。例えばRawTherapeeでは、どのモジュールがパイプラインのどの段階で適用になるかを整理して公表していませんが、ARTではdarktableに見習って公表しています。

bitbucket.org

 

ーーーーーーーーーーーー

参考ビデオ

www.youtube.com−−−−−−−−−−−−−−−−−

下記記事もご参照ください。

yasuo-ssi.hatenablog.com

yasuo-ssi.hatenablog.com

 

yasuo-ssi.hatenablog.com

yasuo-ssi.hatenablog.com

*1:ART はトーンマッピングを行う際に、リニアに割り付けていますが、darktable は S字曲線 [スプライン曲線] を使って割り付けています。以下の議論をご参照ください。

discuss.pixls.us