CIECAM02/jp

CIE色の見えモデル02/16-CAT02/16-対数符号化

Contents

1 CIE色の見えモデル(CIECAM02/16)と対数符号化

1.1 色の見えモデル 歴史と出会い

 何年もの間、私たちは人間が知覚する色のモデル化を研究してきました。中世以降、多くの努力が払われてきましたが、進展を始めたのは19世紀からで、20世紀に入ると大きな進展がありました。

 筆者は、人間の視覚システムが専門の生理学者でも、複雑な測色学の研究者でもありません。それでも、理解を深めるための基本的な情報を集めたつもりです。それに興味を持った読者の一人が更に情報をウェブサイトから集めて来たので、筆者も加わり理解を深めることになりました。

 一般に、写真画像の世界では、私たちは50年以上前の色モデルを使っています。RGBとその派生モデル(HSV、HSL、CMYK。。。)、XYZ、そしてLabとその派生モデル(Luv,Lch)です。この先、皆さんが知っているRGBモデルについての説明は省きます。従属的なこと以外、CAM(色の見えモデル)と関係することがないからです。XYZは、1931年にCIE(国際照明委員会)が、人間の視覚に忠実な色の描写と定義した最初の色モデルです。要約すると、色は“刺激値”、“標準観測者”そして“スペクトルパワー分布”から得られる、X、Y、Zという3つの値で特徴付けられる、と定義されます。この色モデルはRawTherapeeでも、特にホワイトバランスに関連した部分で、使われています。このモデルは色の見えモデルは考慮していないのですが、色を認識と言う形で最初にモデル化したもので大躍進と言えるでしょう。

 LabモデルはXYZモデルとは距離を置く形で1976年にCIEが設計した色モデルです。輝度と2つの補色次元に該当する強さの変数が使われることで特徴付けられます。人間の目が知覚する色の違いと同じように色の距離を計算する研究から生まれたモデルです。RawTherapeeにもこのモデルは組み込まれていて、殆どの機能の基本部分で使われています:シャープニング、ノイズ除去、トーンマッピング、Lab調整などです。色の見えモデルの特性も幾らか組み込まれていますが、まだその有益性は大きくありません。CIECAM97(CIE色の見えモデル97)から派生したのが、G.Huntの研究を応用したCIECAM02(CIE色の見えモデル02)です。可逆性を有し、比較的“単純”で、写真画像で一般的に使える最初の色モデルとなりました。この色モデルはまた、純粋に視覚による認識という観点だけでなく、同じ分野における多くの研究者による知覚特性の発見を考慮しています。

 筆者がCIECAM02に出会ったのは2007年で、ICC“入力プロファイル”にとって最良なスプレッドシートを開発していた時です。2012年、“色(肌や空の色)を参照するためのパレットのようなものがあれば、比較や反復処理に便利だ”というユーザーからのリクエストがありました。また、筆者はその頃、基本光源に対して異なる光源で色のレンダリングが変わるという、演色評価数(CRI:Color Rendering Index)という概念について研究していました。CRIの値が低いと同じ色温度の色でもレンダリングが悪化するという考えです(カラーマネジメント‐捕捉の項に詳細があります)。

 CIECAM02に基づいて、先の2つの基本的要素を含むパッチは作りましたが、重要なエレメントである“ピペット”がまだ欠けています。開発は容易ではありません。長い間、筆者はCIECAM02を斬新なアイデアとしてではなく、実装するのが難しいモデルと考えていました。また、Labの活用に比べ、得るものが少ないと思っていました。しかし、同僚のMichael Ezraのリクエストで画像を再度開いて驚きました。それはCIECAM02の実例を示す画像でした。今では、弱点があるものの(画像によっては、使い物になりません)、カラーマネジメントの点から見て最も効果的な色モデルであると確信します。今のこのモジュールは、“最初の”試みです。CIECAM02のデータをもっと集めてくれば、既にRawTherapeeに備わっている機能と似たような特徴(様々なトーンカーブを備えたLab調整やトーンマッピングなど)を持たせることも可能でしょう。その暁には、画像の編集の質が飛躍的に良くなると思います。

 複雑さに加え、この色モデルに関する有効な書物が少ないので苦労します。解釈の一部は個人的見解なので、専門家の人が読んでおかしいと感じたら指摘してもらいたいと思います。

1.2 初めに

 以下の説明は次の2つのモジュールに関係します(どちらのモジュールに関する説明なのか、その都度明確にしてあります:

  •  ローカル編集タブに備わっている“対数符号化”
  •  高度な機能のタブに備わっている“CIE色の見えモデル02/16”

 色の見えモデルのアルゴリズムは、前者のモジュールでは一部の機能に、後者のモジュールでは全ての機能に使われています。CIE色の見えモデル02/16は多くの有益性を備えていますが、ダイナミックレンジの広い画像には適しません。色域が狭いので、特に強いハイライトの処理に弱点があります。しかし、この人間の目の色の知覚を真似た色の見えモデルに、対数符号化を使ったトーンマッピングを組み合わせることで欠点を補い、写真撮影でしばしば直面するダイナミックレンジの問題を解決しています。画像の数学的解析及び撮影時の画像の認識(センサー、カメラ内部での処理、ソフトウェアによる処理など)と、ユーザーの目と脳による生物学的な知覚の違いの調和を図ります。

1.3 対数符号化

 Rawtherapeeで使われているこの部分のコードは以下のコードに似ています:

  •  Alberto Griggio が設計した、ARTの“対数トーンマッピング”のコード。
  •  Aurélien Pierreが設計したDarktableの“フィルミック”のコード。

 どちらも、ACES(アカデミー色符号仕様)によって開発された対数符号から着想したものです。

1.3.1 3つのプロセスに基づいたアルゴリズム

 このアルゴリズムは最初に、画像(HDRを含む)データの中の最も暗いブラックと、最も明るいホワイトを取り出し、理論的平均グレー(18%グレー)とそれらの差を計算します。場面の明るさに関係する明度の指標Evで表されます。ブラックとホワイトのEv値は、画像の平均輝度或いは中間輝度(Yb%)と共に、RGB値のバランスを変えるために使われます。そうすることで画像のレンダリングを殆ど変えることなく、シャドウ部分を明るく、ハイライト部分を暗くして、実質的にコントラストを落とします。

 この後に続く2つのプロセスは、ユーザーが手動で行う補正です:画像のローカルコントラストを上げたり(“対数”変換時に下がったローカルコントラスト)、表示デバイスに関する観視環境を調整したりします。

1.4 色の見えモデルの定義

 色の見えモデルは、人間の目の色に対する知覚特性を数学的に表現しようとするモデルです。例えば、色の見え方が、その物体色の物理的な計測値と一致しないような観視環境を考慮しています(色の見えモデルの色空間は、RGBやXYZとは異なります、Labは似ている部分がありますが、やはり同じではありません)。

1.5 CIE色の見えモデル02/16

 このモジュールは、異なる光源における、人間の目の色に対する知覚特性を真似るように設計された“CIE色の見えモデル02”をベースにしています、例えば画像を見る時の様々な環境を考慮しています。それぞれの色を計算に入れ、人間の目がその色を知覚する見え方に近くなるように変えます。また、出力を意図した環視条件(モニター、TV、プロジェクター、プリントなど)に適応させて、色の見え方やコントラストが維持されるようにします。

1.6 色の見えモデルが考慮している人間の目の知覚特性

  •  同時対比:物体と並んでいる環境の比色特性次第で物体色の見え方が変わるという現象です。例えば、物体の背景色が白と黒と異なれば、同じ物体色でも違って知覚されます。背景色が暗いほど、物体の彩度が下がって見えます。
  •  ハント効果:輝度の環境で物体色の鮮やかさが変わるという現象です。影の中より明るい光の中の方が物の色が鮮やかに見えます。
  •  スティーブンス効果:輝度によって知覚するコントラストが変わる効果です。輝度が増えると、暗い色はより暗く、明るい色はより明るく見えます。
  •  ヘルムコルツ‐コールラッシュ効果:物体色の明るさは、輝度や色度に関するという現象です。同じ輝度の中では、色のある物体の方が無色の物体より明るく見えます。最も彩度の高い色が明るく見えます。
  •  色順応:人間の視覚システムの色刺激に対する調整力のことです。この能力が時空環境に応じて人間の色の解釈を変えてくれます。色の見えモデルが取り入れている非常に重要な要素です。

 色順応は人間の視覚システムが持つ、光源の変化に対応する能力です。言い換えると、私たちは光源の色に順応して、物体色を正しく維持しています。例えば、白熱球の下では白い紙が黄色く見えます。ところが、私たちは黄色い光で物を見る色モデルを自動的に作る能力があるので、白い紙として見ることが出来るようになります。もしも、こうした能力がなく、光源の違いで常に物の色が変わって見えたらさぞかし不便でしょう。人間は誕生の時から、朝昼晩の異なる光の中でも果実が熟しているかどうかを知る必要があったからです。但し、こうした能力が様々な光学的錯覚を生む原因にもなります。

 注釈:“マンセル補正”はここでは問題になりません。原則、CIECAM02はマンセル表に沿って作られているからです。つまり、モデルに短所があるとしても、この補正が考慮されています。

1.7 色の見えモデルが使うデータと語彙

データ

CIECAM02の用語と変数の定義

1.8 3つの処理からなる色の見えモデル02/16

  1.  “元”或いは“画像条件”:撮影条件やそれに該当するデータのことで、最初の処理は、色の見えモデルで補正する前に、これの条件・データを通常化(例:D50のホワイトバランスで)することです。
  2.  2番目の処理:1のデータを調整することです。
  3.  3番目の処理:最終画像を見る条件(モニター、TV、プロジェクター、プリントなど)、同様にその周囲環境を考慮します。2番目の処理から得たデータを観視条件と周囲環境を考慮して、出力媒体に適用します。

1.9 2つのタブ(高度な機能とローカル編集)で使われる色の見えモデルの違い

  •  高度な機能タブの“色の見えモデル02/16”:2012年にRawTherapee特有の機能として開発されたもので、全ての機能に色の見えモデル02/16の概念が使われています。機能の水準も変えられます:
    •  標準:基本的な処理に必要な機能と変数が備わったモードです。
    •  高度:高度な処理に必要な機能が含まれたモードです。
  •  ローカル編集タブに入っている“対数符号化”は、単純化した色の見えモデルの機能を備えています。対数符号化の効果が更に強くなります。機能水準を変えることも出来ます:
    •  基本:対数符号化に特化した機能と変数で構成されています。
    •  標準:人間の目が持つ視覚特性を考慮するために必要な色の見えモデルの機能が補間的に備わっています。
    •  高度:色の見えモデルの機能(“すべて”)と変数に加え、マスクも備わっています。

1.10 色の見えモデル02/16と対数符号化の使用例

 機能の効果と限界を知るために5つの例を用意しました。

1.10.1 例1 (高度な機能タブの色の見えモデル)

 著しく露出不足の部分があるハイダイナミックレンジの画像を、プロセス1(元或いは画像条件)を使って処理してみます。色の見えモデルを使って、元の光の環境を変えます。

1.10.1.1 準備

 濃い影と強い逆光、両方が入っている処理の難しい画像です。まず、画像をRawTherapeeのデフォルト設定を使って開き、“カラーピッカー”をスクリーンショットのように置きます。これらを使って、この後の調整による変化を確認します。

Rawファイルへのリンク: [1]

色の見えモデルの下準備
1.10.1.2 画像を明るくする

 高度な機能のタブを開き、“色の見えモデル02/16(CIECAM02/16)”を有効にします。“画像条件”の中の“撮影時の周囲環境”のドロップダウンリストから“暗い”を選択します。何とこれだけです!

周囲が暗い画像を明るくする

 更に、“画像の調整”機能を使って調整を加えてみます。

  •  明るさ(J)やコントラスト(J)を変える。
  •  色度(C)を変える。

 更に、機能水準を高度に変えて試してみます。

  •  コンボボックスで画像の調整のアルゴリズムを“明度 + 彩度(JS)に”変える。
  •  彩度(S)を調節し、先に色度(C)を調節した時との違いを比べる。それぞれ、シャドウ部分、中間トーン部分、ハイライト部分での違いを見る。

1.10.2 例2 - 色順応

 ホワイトバランスの自動調整を行ってから、CIECAM02/16の“Cat02/16の自動プリセット シンメトリカルモード”を有効(✔)にして色順応変換を実行します。

1.10.2.1 高度な機能タブのCIECAM02/16の色順応 – 準備

Rawファイルへのリンク: [2]

 最初のステップは、数学的にほぼ完璧なホワイトバランスの設定です。ホワイトバランスのコンボボックスから“自動”の中の“色温度の相関関係”を選びます。

ホワイトバランス-色温度の補正

結果が以下の様になります:

  •  色温度 : 7450K
  •  色偏差 : 1.050

 デフォルト設定の“カメラ”のホワイトバランスは、色度が7862K、色偏差が1.134でした。

 どちらの場合も、画像が黄色味を帯びています。数学的にはこのホワイトバランスで正しいのですが、計算に使われている場面条件は9月朝8時のロンドンの光(D50 から離れている)がベースになっているからです。その時、私たちの視覚と脳では、色順応が働きその物体色が正しく維持されて見えていたはずです。

 この補正を行うためにCIECAM02/16を使います。

1.10.2.2 色順応を自動でセットする
  •  高度な機能のタブにある“色の見えモデル02/16(CIECAM02/16)”を有効にします。
  •  “Cat02/16の自動プリセット シンメトリックモード”のオプションを有効にします。それだけです!
ホワイトバランス-色温度の補正

 画像を観察すると、空は青く、行き交う人の肌色が自然に見えます。

  •  効果を調整する場合は、“観視条件”の中のCAT02/16(色順応変換02/16)スライダーを使います。例えば、60に変えてみて見ます。
  •  色温度に注目して下さい – ホワイトバランスの色温度は変わっていません。

1.10.3 例3 - 観視条件

 この例では、主にプロセス3の機能(及びプロセス2の多少の調整)を使い、出力デバイスと画像を見る環境(例えば、家族で休日に撮った写真画像をTVで見る)の影響を示します。

Rawファイルへのリンク: [3]

 通常のTV設定を使います(有機ELテレビの取扱い説明書を参考にしました)

  •  光源 = D65
  •  平均輝度 (Yb%) = 18 (テレビ画面の平均輝度が正しく調整されていると仮定して)

 観視環境:

  •  絶対輝度:夕方であれば絶対輝度は平方メートル当たり10カンデラと推定します(理想を言うなら、計測するべきですが)
  •  周囲 = 薄暗い:テレビは暗い壁を背にして設置されています。
尖塔の風景‐観視環境の調整

 重要な注意点:この画像を貴方のPCで見た場合は映りが悪いかもしれません。何故なら、観視条件(光源、周囲環境、絶対輝度)が異なるからです。

1.10.3.1 友達に見せる:天気がすごくよかったから、色が鮮やかだったから。。。

 是非、友達に自分の写真を自慢したいと思うことはあるでしょう。その場合は、コントラストや色度を増やすなど、画像を少し調整して鮮やかに、爽やかに見せることも出来ます。

観視環境‐少し明るくする

1.10.4 例4 (ローカル編集タブ – ハイダイナミックレンジの画像)

Image à forte dynamique - Local Adjustments

1.10.5 例5 (ローカル編集タブ – 覆い焼きと焼き込み)

Local adjustments Dodge and Burn

2 CIECAM02の用語と変数の定義

明るさ [或いは輝き] (CIECAM02/16で使われる用語) :

色刺激から知覚される明るさの量=色刺激がどの程度明るく輝いて見えるかという指標。

明度 [或いは輝度] (Lab, CIECAM02/16で使われる用語) :

同じような観視条件の下で、白に見える色刺激の明るさと比較したその色刺激の鮮明さ。

色相と色相角 (Labの一部、CIECAM02/16で使われる用語) :

色相角は、レッド、グリーン、ブルー、そしてイエローと同じように表現される色刺激の色相環上の角度のこと。

鮮やかさ (CIECAM02/16で使われる用語) :

グレーと比較して知覚される色の量=色刺激がどの程度色付いて見えるかという指標

色度 (Lab, CIECAM02/16で使われる用語) :

同一の観視条件の下で白に見える色刺激の明るさと比較してその色刺激の“彩色”の程度。

彩度 (CIECAM02/16で使われる用語) :

色刺激自体の明るさと比較したその色刺激の彩色の程度

要約すれば:

色度= (鮮やかさ) / (白の明るさ)

彩度= (鮮やかさ) / (明るさ)

明度= (明るさ) / (白の明るさ)

となり、式を移項すれば

彩度= (色度) / (明度)、とも表せます。

 CIECAM02は何種類かの相関変数を発展させて使っています:

J:Labの明度に近い、明度、或いは鮮明さのこと

C:Labの色度に近い色度のこと

h:Labの色相に近い色相角のこと

H:色相。4つの色(レッド、イエロー、グリーン、ブルー)の間の2つの基本色の組み合わせで表される色。例えば、30B70G、或いは40R60Y。

Q:明るさ

M:鮮やかさ

ac, bc:Labの補色次元a、bに近い変数

 ところで、色度、鮮やかさという変数が既にあるのに、更に似たような彩度が追加されているのは何故でしょう。Robert Hunt(2001年)は次の様に述べています:

「色の知覚の3つの基本は、色相、明るさ、そして鮮やかさであるが、明るさは明度、鮮やかさは色度という、相対する変数を持つ。しかし、色相にはそれがない。色度の相関関係は色の違いを示す計算式で幅広く使われているが、彩度は色の科学や技術の分野であまり使われていない。恐らくこれは、多くの産業では色の違いを評価する場合、一律のサンプルを均一な照明で観察するからであろう。この様に、狭い視角でサンプルを観察する場合は、色度は適切な変数である。しかし、広い視角でサンプルを観察する場合は、彩度の相関関係を使う方が適切かもしれない。現実の世界では、一定の角度の照明で個体を見ることの方が一般的である。この場合、彩度は影の中でも一定なので色度より役立つ知覚の指標である。画像の世界では、アーティストやコンピューターグラフィックス関係者が一定である彩度の方を多用している。光学的画像でも、広くて暗い環境の中では彩度が重要な知覚の指標となり得る。最近の実験研究では彩度の相関関係の利用が大幅に改良されている」

3 3つのプロセス

 CIECAMによる調整は3つの作業が必要ですが、使われている用語がそのプログラムの設計者によって異なるので、便宜上一つに統合することにしました(断っておきますが、本文はCIECAMの論文でもなければ、講習でもありません、あくまでこのモデルを理解し、使うための補助です)。

3.1 プロセス1

 “出発点(origin)”、“フォワード(forward)”、“入力(input)”、“元(source)”などが一般的に使われていますが、私は“元”を使うことにしました。この言葉は観視環境と対応しますし、その観視環境やそのデータを“標準”の領域に移すという意味とも符合するからです。ここで言う、“標準”とは、中間或いは標準的環境やデータのことで、CIECAMの補正を考慮していない状態、“周囲が平均的”という表現は、D50のホワイトバランスを指すことにしました。

3.2 プロセス2

 2番目のプロセスは、様々な調整目的のために相関関係にある変数(J、C、h、H、M、s、a、b)の扱いをどうするかということです。これらの変数を使った、画像編集ソフトを作ることも可能でしょう。

 RawTherapeeで応用するために、独自に4つのアルゴリズムを作りました:

  1. コントラスト調整を備えた、明度(J)と色度(C)で調整するアルゴリズムJC
  2. コントラスト調整を備えた、明度(J)と彩度(S)で調整するアルゴリズムJs
  3. 明るさ(Q)と鮮やかさ(M)で調整するアルゴリズムQM
  4. Hを含む全ての変数で調整するアルゴリズム

 各アルゴリズムのモジュールは単純で、測色の問題を解決しようと言うよりは、学術的な試みです。それでも、結果は個人的には上手く出来たと思っています。

 私はプロセス2を次の2つの機能で行うようにしました:

  1. 明度、あるいは明るさに対して2つのトーンカーブ。原理的には露光タブの2つのトーンカーブに類似しています。
  2. 色度、彩度、カラーレベル(鮮やかさ)を調整するカーブ。

 ここで更に、フーリエ変換を使った別なアルゴリズムを追加することや、RawTherapeeの既存の機能で置き換えることも出来ます。

3.3 プロセス3

 用語として“正反対(inverse)”“反対方向(reverse)”“出力(output)”“観視環境(viewing condition)”などが使われていますが、私は“観視環境”を選びました。最終画像を見る環境同様、それを反映する媒体(モニター、TV、プロジェクター。。。)のことも包含していると思ったからです。プロセス3は、プロセス2から得られたデータを、観視環境を考慮した領域で最適に表示するプロセスです。

 注意:印刷された写真と、モニター上で見る写真のカラーレンダリングは異なります。たとえ、そのプリンターが最上位機種で、且つ、キャリブレーションが完璧であっても、観視環境は異なります。通常、印刷された写真はアルバムの中で見ることが多く、背景色は黒で、あまり明るくない環境、タングステンライトの下で見ることが多いのではないでしょうか。一方、モニター上で見る画像の背景は明るく、D50の明るさです。もちろん、“印刷”のための出力に合わせることも出来ますが、ここでは観視環境とはモニターやTVの事にします。

 どちらの観視環境を優先するかの論議はさておいて、CIECAMはどちらかと言えばソフトプルーフィング(画面上での校正)が目的のモデルです。平均的輝度(%グレー)だけでなく、“観視環境”で設定されるホワイトポイント(モニター、プロジェクターなどの出力デバイスのホワイトポイント)の色温度も考慮されます。

 これらをRawTherapeeに使うため以下の様に単純化しました:

  1. RawTherapeeユーザーの95%が編集画像を観る時の観視環境は:
    • モニターのホワイトポイントが6000Kに設定されている
    • キャリブレーションが行われたモニターのYb(背景領域の相対輝度)は18%
    • 但し:
      • “環境設定”で、他の環境が選ばれている場合は、それに従う
      • モニターの設置場所(平均的明るさ、或いは暗い)に合わせて、観視環境を変える
      • 部屋の明かりは時間によって変わるので、それに合わせて “順応領域の絶対輝度(La)”を変える必要があるでしょう。例えば、夜間に照明なしで見れば、Laは0或いは1に近く、逆に明るい環境であればLaは1000に近くになります。
  2. あまり一般的ではありませんが、あり得る話です。何しろ自分がそうしたのですから。RawTherapeeの画像をTVで見るケースです。この場合の観視環境は通常とは異なり、環境に合わせた設定が必要です。TVのホワイトポイント、TVのYb(勘に頼るしかないでしょう)、周囲の環境も異なるでしょう。普通、テレビ鑑賞の背景色は鈍い色と思われますし、照明も弱いと思います。
  3. また、自分の写真展を準備するとしたら、よりプロフェッショナルな対応をする必要があるでしょう。会場の観視条件や、写真を投影するプロジェクターのホワイトポイント、キャリブレーションの有無、会場の明るさ、など。RawTherapeeでは、ユーザーが観視環境を設定することになるので、そのデータをJPEG或いはTIFEに合わせて設定することになります。
  4. その他

4 データ

 どのデータを取り入れ、どの様に単純化するかは、筆者の裁量で決めましたが、どの様に調整したか説明します:

  • Ybは背景の相対輝度のことですが、RawTherapeeもこれを取り入れ、灰色の%として表示するようにしました。灰色18%は、CIEのLでいう50%のことです。
  • プロセス3のYbに関して言えば、ユーザーのモニターがキャリブレーションされたものでしたら、Ybは18ないし20に近いと思われます。TVやプロジェクターを使っていても(キャリブレーションは難しそうですが)、多少、暗いか、明るいか、経験的に調整できると思います。要は画像を視覚化するデバイス次第であり、写真を映し出す、それを観る環境は一定と考えます。Ybの値を変える場合は、環境設定のカラーマネジメントタブで行います。
  • しかし、プロセス1のYbは厄介です。
    • 何故なら、撮影された画像が一定の露出であることは滅多にないし、輝度の違いも小さいはずがないからです。
    • 私はあえてCIECAMのモジュールをLab調整の後に置き、最終的なRGBへの変換、出力デバイスへの移動の直前にしました。理由は、ユーザーが既にRawTherapeeの様々な機能を使って編集の調整を終えているので、画像のヒストグラムが“平均的な”ものになっていると想定したからです。
こうして、個人的に知りようもないはずのYbを、処理を施した画像の平均的輝度から計算するようにしました。もちろん、将来的にRawTherapeeがCIECAMに順応したピペットを作れれば、画像の異なる部分(暗い、通常の明るさ、明るい)で、それぞれのYbを設定出来ます。例えば、ある画像が3つの輝度領域を持っていたとしましょう:
  • 標準部分は、画像の平均的Yb20%に設定する
  • 露出不足部分(ピペットによって境界線を引く)の輝度が計算できれば、Ybを5%に設定する
  • 露出過多部分はYbを70%に設定する、というように。
  • Laは順応領域の絶対輝度のことで、これもRawTherapeeに取り入れました。
  • プロセス1に関しては、Laは撮影時の輝度に一致しています。例えば、影の中で撮影した場合、Laは2000cd/㎡に近くになり、また、室内灯の下で撮影すると、Laはその光源の種類により、20~300cd/㎡となるでしょう。画像の再生ともなれば、これらの値は更に低くなると思います。
  • プロセス1の“撮影輝度”と“自動”チェックボックス
    • チェックボックスが有効になっていると、LaはExifデータ(シャッタースピード、ISO、絞り、露出補正)とRawホワイトポイント、露光補正量から算出されます。
  • プロセス3に関しては、Laは画像の観視を行う場所の輝度と一致させます。ユーザーがモニターをキャリブレーションしている場合は、この値の入力が必要です。もしくは、測定器により値を求めなければなりません。値の大きさは、殆どの場合、15~100でいいと思いますが、映画館の暗がりの様な所では、1~10になることもあるでしょう。
  • これら2つのLa値はCIE色の見えモデル機能の中で調整するようにしました。
  • 周囲環境
ここも、単純化しました。
  • プロセス1に関しては、背景が暗い博物館での撮影とか、黒い背景で撮影したポートレート写真など、撮影条件の幾つかを考慮します。通常、RawTherapeeのユーザーは、違和感を感じる画像の色に対しては、プログラムの様々な機能を使って、調整していると思いますが、私は敢えて“周囲環境(暗い)”というチェックボックスを設け、ユーザーが選べるようにしてみました。これを選択すると、画像が明るくなります(前述の“標準”に戻す)。
  • このデータは、観視する際の画像の周囲環境を考慮したものです。周囲環境が暗いほど、画像のコントラストを増やす必要があります。“周囲環境”の変数は、D-Lightingやトーンカーブとして変化するものだけではなく、レッド/グリーンとブルー/イエローの軸上の色でも変化します。周囲環境のYbが20%以上ならば、環境として“平均”を選び、それ以外はユーザーの設定に従うようにしました。環境設定で一般タブのテーマの選択は最終的なレンダリングに影響します。設定は、“周囲環境”によって簡単に行えます。周囲環境を暗くすると、画像の同時コントラストは高くなります。
  • ホワイトポイントモデル

 単純にするため3つの方式を採用しました。

  • “WB RT + output” : プロセス1に関してはRawTherapeeのホワイトバランスが正しいと想定しています;CIECAMはD50を参考にします:RawTherapeeのホワイトバランスはD50と同等のものに戻されます;一方、プロセス3に関しては、出力デバイスのホワイトポイントの調整が必要となるでしょう。環境設定パネルに行き、カラーマネジメントの設定で変更を行います。
  • WB RT+CAT02/16 + output” : プロセス3に関しては、上記と同じですが、プロセス1に関してはRawTherapeeのホワイトバランスと、CAT02/16(色順応変換)の効果をミックスするモデルで、CAT02/16の順応度をスライダーで加減できるようにしています。ミックスすることの有利性を活かし、効果を高めるためにはRawTherapeeのホワイトバランスも調節する必要があるでしょう。
  • 任意の色温度+色偏差+CAT02/16+output“” :これは本質的にシンメトリカルプロセス(以下を参照)を使うことと同じで、ユーザーによる最初のホワイトポイント調整が可能となります。
  • CAT02/16は、色順応変換の一つで、画像のXYZ値のそれぞれのホワイトポイント値Xw0、Yw0、Zw0を、XW1、YW1、ZW1に変換します。アルゴリズムはVon Kriesの一つに似ており、色チャンネル乗数を考慮しているRawTheraeeのホワイトバランス調整とは異なります。
  • “CAT02/16”と“自動”チェックボックス
  • CAT02/16に関しては、上記の“WBRT+CAT02/16+output”を参照して下さい。
  • しかし、 “ホワイトポイントモデル”をゼロに設定していても、色順応のスライダーは役に立つと思います。通常、色順応のチェックボックスは“自動”を選んでおき、色順応以外の目的で使われる内部の“D”係数をCIECAMに自動計算させます。値が65以上の場合はチェックボックスを外し、手動でスライダーを調整するのがいいでしょう。予想もしない効果となるかもしれません。

5 標準(及びシンメトリック)方式とCAT02/16ホワイトバランス方式

CIECAMの使い方には2つの方法があります。

5.1 標準方式

  • 標準方式は“画像”の変数と“観視環境”の変数を切り離して処理します。この場合、“La”、“Yb”、“観視環境”、CAT02/16(色順応変換)がプロセス1、3に関して最適となるので、適した処理と言えます。プロセス2に関してはユーザーがスライダー或いはカーブを使って調整する必要がありますが、扱い易いモードでしょう。

5.2 シンメトリック

  • これは“バランス”方式のことで、以下の様に構成されています:
    • プロセス1、2に関して、"La"、 "Yb"、 "周囲", "CAT02/16"、に同じ値を使います。特殊なケースを除いて、“La”を400、“Yb”を18にすることを奨めます。
    • “ホワイトポイントモデル”は“任意の色温度+色偏差+CAT02/16+[出力]に設定します。
    • “画像環境”では、色温度を5000k、色偏差を1.0、つまり輝度D50 に合わせてあります。
    • “観視環境”では、色温度スライダーをホワイトバランスの色温度に合わせます。色偏差は経験に基づいて調節します(実際にはXYZのYのことで、RGBのGのことではありません)。
    • 色順応としてはかなり有力な効果を得られたと思います:
      • Von Kriesやブラッドフォードモデルに比べ、遥かに効果的です
      • CIECAMに関する変数(同時対比やHuntの原則など)を考慮しているので、“CAT02/16”と“CAT02/16の逆数”を別々に適用する方法より優れています
  • 元画像の色温度が低く(2500K以下)、Laが非常に低い場合は、この色順応モデルは機能しないことがあります。これがCIECAMの限界とも言え、その場合はCAT02/16の値を下げて対処します。

5.3 自動色順応-CAT02/16プリセット

 効果的に色順応変換を利用するために、“CAT02/16プリセット”というチェックボックスがあります。

 このチェックボックスは色調の自動調和のために必要なプリセットを提供し、CIECAMの一連の設定をやり易くします。

5.3.1 CAT02/16の機能とは

 ホワイトバランスとは(自動、手動に関わらず)画像の数学的解析で、多少の差はありますが(ホワイトバランス次第で)、光源と物体色(花、空、肌、など)そして標準観測者2°によってきまる測色に相当します。

 例えば、Itcwbによる自動ホワイトバランス補正は、画像の色の大部分とスペクトルデータの参考色パネルを比較します。

 但し、それが貴方の好みと一致するかどうかは別の話です。アルゴリズムが上手く機能しないこともありますが(稀です)、殆どの場合、私たちの目と脳は物の色を昼光D50で見ているように順応する能力を持っています。これは人間の持つ心理学的プロセスです。

 CAT02/16は、この人間の目と脳の働きを真似するアルゴリズムです。ある意味入力プロファイルまたは幾つかの作業・出力プロファイルに存在する色順応に相当します(例えば、sRGBは光源D65においてブラッドフォード順応に対応しています)。

 つまり、CAT02/16は、数学的解析の後に、画像の印象に“暖か味”や“冷感”を加えます。

5.3.2 CAT02/16の調整

 殆どの場合、このプリセット対応できます。では、これを選択すると何が行われるのか?

  • ホワイトバランスの設定(色温度、色偏差1.0)を考慮した上で、それらを“観視環境”に送ります。
  • それらをCIE色の見えモデル02/16のシンメトリックモードに入れます。
  • “画像環境”と“観視環境”を平均値で調整します。
    • 絶対輝度: 400
    • 平均輝度%: 18
    • 周囲環境:普通
  • 画像環境のCAT02/16を90に設定
  • 観視条件のCAT02/16を90に設定
  • ホワイトポイントモデルをD50 に相当する色温度5000K、色偏差1.0にして“フリー”に設定。貴方の画像環境がこれと異なり、その条件を認識しているのであれば、例えば光源の設定をD65 変えることも出来ます。

5.3.3 何を調整するか?

 殆どの場合、設定を変更するのであればCAT02/16の観視環境だけで十分でしょう。

 補正が強すぎると感じる場合は、“観視環境の色温度”を調整します。例えば、ホワイトバランスの補正結果が7600Kであれば、光源の種類に応じて、この観視環境の色温度を同じよう値に調整します。また、デフォルトで1.0に設定されている“色偏差”の値を調整してもいいでしょう。

 残念ながら、CIE色の見えモデル02/16と人間の視覚と脳の反応の対応は完全ではありません。画像環境次第で変わります。実用的な対処が必要なので、“CAT02/16の観視環境”と“観視環境の色温度”スライダーを備えています。

 更に進んだアプローチもあります。“画像環境”と“周辺環境”を実際の条件に応じて調整します。例えば、(観視環境の)“周辺環境”を調整します。

 光源D50で設定されている画像環境の色温度と色偏差の調整には注意が必要です。ホワイトポイントを異なる光源のそれに変える場合は、画像環境も調整する必要があります。例えば、光源をD65に帰る場合、色温度を6504Kに調整します。色偏差(デフォルトは1.0)は変えません。

6 アルゴリズム

 アルゴリズムは、JとC、JとS、QとMを組み合わせた3つのアルゴリズムと(もちろん、他の組み合わせも可能です)、全ての変数を調整する“全て”というアルゴリズムを作りました。筆者の裁量で先の3つのアルゴリズムからはac、bc、hの調整機能を除きました。最も扱い易いのはJCアルゴリズムでしょう。スライダーやカーブを使って目標とするカラーレンダリングを調整します。しかし、あくまでアルゴリズムの選択は出力デバイス、周囲環境、設定、部屋の明るさ次第です。

  • “JC”アルゴリズム
    • JはLabのLに近い明度で、CはLchのcに近い色度です。しかし、LabやLchと異なる最も重要な点は、JもCも数々の視覚効果を(同時対比、ハント効果、スチーブン効果など)、考慮している点です。これらの効果はLabではあまり考慮されていませんし、RGBにおいては尚更関係しません。
    • Jの値の範囲は0~100で、LabのLや明度などと同じ、明るさの相対値です。Cの範囲は理論上0~180(但し、これより高い場合もあり得る)になります。
    • JとCで使われる2つのスライダー値の範囲は‐100~+100で、Lab調整の“明度”と“色度”のスライダーと類似しています。
    • このアルゴリズムでは、レッドと肌色トーンの保護が可能で、Lab調整のそれと似ています。
    • コントラストスライダーは、Jに対するS字カーブ効果を加減するもので、明度Jのヒストグラムの平均を考慮しています。
  • “JS”アルゴリズム
    • JCのアルゴリズムと似ていますが、色度の代わりに彩度を使っています。その理由は定義の説明で紹介した、R.Huntの意見を参照して下さい。
    • 肌色トーンの保護はJCより精度が劣りますが、赤のコントロール域は広くなります。
  • “QM”アルゴリズム
    • 相対値ではなく絶対値であるQとMを使ったアルゴリズムです。このアルゴリズムは白の明るさを考慮しています。簡単に言うと、同じJ=100の白でも、太陽光の下で見る方が、暗い部屋で見る時より、明るいということを考慮しています。
    • 白の明るさに関しては、順応輝度LaとCAT02、そして“Yb”(ピペットがないので今のところ加減は出来ません)をパラメータとして使っています。
    • 通常使用では、JCより使い難いアルゴリズムだと思いますが、コントラストの強い画像や、野外のHDRプロセスに使えるでしょう。
    • 肌色トーンの保護はJCより精度が劣りますが、赤のコントロール域は広くなります。
    • Jとは異なる明るさQを使うので、コントラストの調整結果もJCとは異なります。
  • “全てを考慮する”アルゴリズム 
    • CIECAMの変数である、J、Q、C、S、M、Jコントラスト、Qコントラスト、h、肌色トーンの保護(Cだけに影響する)、全てを使って調整するアルゴリズムです。

7 トーンカーブとカラー

7.1 カーブ

  • 露光補正タブと同様、J(明度)とQ(明るさ)に対して働く2つのトーンカーブがあります。どちらか1つを使うことも、2つを使って“明るさ”と“明度”の両方の調整も出来ます。但し、“明るさ”のカーブを動かし過ぎると簡単に調整範囲を超えてしまうので注意が必要です。これは“明るさ”が絶対値だからです。一方“明度”は相対値です。同じJ値でも、影にあるJより昼光に照らされるJの方が明るく映ります。よって、ハイライトやシャドウに対するレンダリングは、“明度”と“明るさ”では異なります。
  • 色に関するカーブは3つあります:色度(最も一般的)と、彩度、そして鮮やかさです。これら3つのカーブは、選んだ変数そのものを加減するのに使います。例えば、彩度のスライダーは、既に飽和に達している色が色域から出てしまわないように加減するために使います。これら3つのカーブは、“レッドと肌色トーンの保護”でも使え、特に肌色トーンは色度で調整するのが適当でしょう。個人的には、色によって飽和レベルは異なるので、カーブの種類は“パラメトリック”を使うのが適当だと思います。

7.2 トーンカーブに表示されるヒストグラム

 機能効果が比較できるよう、CIECAM02/16適用前・後の値を 表示出来きます。適用後を見るためには、 ”CIECAM02の出力ヒストグラムを表示する”、というオプションを有効にします。

7.3 カラーカーブに表示されるヒストグラム

 色度(彩度/鮮やかさ)の分布を、色度(彩度/鮮やかさ)、或いはLabモードの色度の強さに応じて表示します。ヒストグラムが右に移るほど、その色の鮮やかさが色空間の限界に近いことを示しています。逆に左に移るほど色は褪せてきます。

 横軸は色度(彩度/鮮やかさ)、或いはLabモードの色度の値を表しています。横座標の尺度はオープン系です。

 縦座標は関係するピクセル量を表しています。

8 色域の制御(LabとCIECAM)

  • このチェックボックスは、作業色空間のデータ量を抑制するために使います。この作用をCIECAMモード(プロセス3)に入れることも出来ましたが、システムの動作が鈍くなるので別にしています。
  • 使われているアルゴリズムは、Lab調整とほぼ同じで、相対的な測色をベースに調整されていますが、CIECAMモードで調整した場合との違いは僅かです。
  • 色域制御を有効にすると、CIECAMのコードが幾つか変換されます。

9 コンピューターコード、計算精度、動作速度

 プロセス1と3に関するコードは、厳格にCIECAM02モデルの一つ(M.Fairchild,BilyBiggs等による)に従いながら、RawTherapeeへの適用の最適化を図りました。色域の補正にはChangjun Li, Esther Perales, M Ronnier Luo and Francisco Martínez-Verdúの成果を採用しています。

 プロセス1と3はシンメトリックであり、多くの浮動小数点計算を行うので、倍精度を使うことが必須です。そのためメガピクセル当たりの計算に約1秒を要します。しかし、テストを何回も繰り返した結果、倍精度を使わなくとも、画質はあまり変わりません。計算精度の設定は“環境設定/カラーマネジメント”で行います。

 精度に関しては、幾つかチェックポイントを設けて比較したところ(CIECAMの動作前後で)、違いは非常に小さく、例えばXYZの入力値が6432.456の時、出力値は6432.388でした。

10 CIECAM02の限界

 このモデルは完全ではなく、以下にその限界を指摘しておきます。このモデルは一定の画像に対してだけ正しく働きます:

  • Ybの設定に関しては、これまでの説明文の中でその限界を既に示しましたので省きます。
  • CIECAMという色空間はsRGBやProPhotoではありません、Labとも違います。よって、色空間をコントロールするのが難しいのです。CIECAMの色空間は狭い、という問題は以前から指摘されていたもので、スライダー(J、C,sなど)を極端に動かすと思わぬ結果をもたらしてしまうことがあります;ハイライト部分で、黒や白のスポットが現れたりすることがあります。その場合は、RawTherapeeの他の機能(ハイライト復元、インパルスノイズ低減など)を使って補正します。
  • 作業色空間が大きいと(WidegamutやProPhoto)、時折、それより狭いsRGBのような色空間では見られなかった黒い影が画像に発生することがあります(CIECAMは最も色空間が狭い)。
  • ノイズの多い画像はCIECAMに影響します。色ノイズを正しい色と認識してしまうこともあるので、CIECAMのモジュールをノイズ低減モジュールの後に持って来ました。
  • CIECAMモデルは画像の中央ほど効果が高く、周辺部分はあまり考慮されていません。
  • 以上のことから、CIECAMに難しい画像(露出オーバー、色の飽和など)の補正は期待出来ません。一方、通常の画像(多くの画像がそうだと思いますが)に対しては非常に進んだモデルと言えるでしょう。

 将来のCIECAMでは、今のCIECAM02の欠点が克服されているかも知れません。

11 R.HuntによるCAMの12原則

  1. 色の見えモデルは様々なアプリケーションソフトで使用できるよう、限りなく包括的であるべきだ。但し、このモデルの動的作用が非常に複雑なので、現段階において、適応するアプリケーションは多くない
  2. モデルは非常に暗い対象から、非常に明るく輝く対象まで、広範囲な色刺激の強さを扱うべきだ。これは色刺激に対して単純な対数や増幅機能で応ずるのではなく、モデルの動的応答を最大にする、という意味である。
  3. モデルの色刺激に対する順応性は、星の光の様な非常に低い暗所視から太陽光の様な非常に高い明所視まで、極力広い範囲に及ぶべきだ。そのため、桿体視覚を含むべきであるが、多くのアプリケーションソフトがその様な桿体視覚を無視しているので、それを含まないア プリケーショ ンでも使えるモデルであることが望ましい。
  4. モデルの観視環境は、異なる輝度要素を持つ背景や、ほの暗い、暗い、平均的な周囲観視環境まで広く取るべきだ。画像の映写やディスプレイ表示は多岐に渡るので、モデルは異なる周囲環境をカバーする必要がある。
  5. モデルが使いやすいように、錐体の分光感度にはCIEのx,y,zやx10,y10,z10の線形変換を使うべきだ。また、分光感度の計算には等色関数を使うべきだろう。暗所視データ-は未知の場合が多いが、その場合、近似値を提供する方法を前もって示すべきである。
  6. モデルは様々な認識要因に関し、その適応性の度合いを示すべきだ。ヘルソンジャッド効果については随意である。
  7. モデルは色相(色相角と直角位相)、明るさ、明度、彩度、色度、鮮やかさの予想がつけられるものであるべきだ。
  8. モデルは可逆性を有するべきだ。
  9. 上記の条件を満たす上で、必要以上に複雑なモデルであってはならない。
  10. モデルが特定のアプリケーションソフトのための簡易版であっても、特定条件に対する完全なモデルと同じ予想がつけられるべきである。
  11. 色の見え方の予想が、他のアプリケーションソフトで最適に使われているモデルの予想よりも明白に劣ってはならない。
  12. 関係のない色(他の色から孤立した暗い周囲の中にある色)に関しても、モデルは適用されるべきだ。

12 更なる情報に関する幾つかのリンク

CIECAM02 Wikipedia [4]

Color Appearance Model - Fairchild [5]

Mémoire Laborie ENS Louis Lumière [6]