CIECAM02/jp: Difference between revisions

From RawPedia
Jump to navigation Jump to search
m (→‎幾つかの定義: Change the written style of this section because only this is different from others.)
m (→‎3つのプロセス: Change the written style of this section because only this is different from others.)
Line 72: Line 72:


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


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


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


 RawTherapeeで応用するために、勝手に4つのアルゴリズムを作ってみた:
 RawTherapeeで応用するために、独自に4つのアルゴリズムを作りました:
# コントラスト調整を備えた、明度(J)と色度(C)で調整するアルゴリズムJC   
# コントラスト調整を備えた、明度(J)と色度(C)で調整するアルゴリズムJC   
# コントラスト調整を備えた、明度(J)と彩度(S)で調整するアルゴリズムJs
# コントラスト調整を備えた、明度(J)と彩度(S)で調整するアルゴリズムJs
Line 86: Line 86:
# Hを含む全ての変数で調整するアルゴリズム
# Hを含む全ての変数で調整するアルゴリズム


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


 私はプロセス2を次の2つの機能で行うようにした:
 私はプロセス2を次の2つの機能で行うようにしました:
#明度、あるいは明るさに対して2つのトーンカーブ。原理的には露光タブの2つのトーンカーブに類似する。
#明度、あるいは明るさに対して2つのトーンカーブ。原理的には露光タブの2つのトーンカーブに類似しています。
#色度、彩度、カラーレベル(鮮やかさ)を調整するカーブ。
#色度、彩度、カラーレベル(鮮やかさ)を調整するカーブ。
 ここで更に、フーリエ変換を使った別なアルゴリズムを追加することや、RawTherapeeの既存の機能で置き換えることも出来るだろう。
 ここで更に、フーリエ変換を使った別なアルゴリズムを追加することや、RawTherapeeの既存の機能で置き換えることも出来ます。


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


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


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


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


==データ==
==データ==

Revision as of 06:33, 6 April 2020

CIE色の見えモデル2002とCAT02ホワイトバランス

By J.Desmis

CIECAM02(CIE色の見えモデル2002)について

イントロダクション-歴史

 人の目によって知覚される色の体系作りは長い間試みられてきました。19世紀ごろに始まり、多くの努力が払われてきましたが、大きな進展が見られたのは20世紀に入ってからです。

 筆者は視覚システムに関する生理学の専門家でも、複雑な測色学の研究者でもありませんが、モデルを理解するために必要最小限と思われる情報を集めました。それから更に興味を持った読者がウェブを使って情報を集めたり、筆者が追加したりしました。

 周知のように、写真の世界では、今でも50年前のモデルが使われています;RGBと、その派生モデル(HSV、HSL、CMYK。。。)、それにXYZとLab及びその派生モデル(Luv、Lch)です。ここでは誰でも知っているRGBモデルについて説明することは省きます。従属的なこと以外、CAM(色の見えモデル)が関係するRGBの要素は何もないからです。XYZ(1931年)というモデルは、人間の目が知覚する色を忠実に表現するためにCIE(国際照明委員会)が行った最初のステップでした。要約すると、色は、三刺激値、CIE標準観測者、スペクトル電力分布から得られる、X、Y、Z、という3つの値で特徴付けられる、というものです。この色モデルは、RawTherapeeの中にも取り入れられており、特にホワイトバランスはこのモデルが考慮されています。XYZは当初からCAMのことを考えて作られた訳ではないと思いますが、今日の知覚条件で色をモデル化出来るようになったその前身とも言え、大躍進と呼べるモデルでしょう。

 LabはXYZモデルとは距離を置く形で、1976年、CIEにより設計された色モデルです。特徴は、輝度の強さを示すパラメータと、色を表現する2つの補色次元のパラメータからなる、色モデルです。人間の視覚が色の違いを認識するのに近い形で計算する、という明確な目的で研究されてきました。Labモデルは、RawTherapeeの中でも大いに使われており、殆どの調整機能(シャープ化、ノイズ低減、トーンマッピング、Lab調整など)のベースとなっています。CAMの特性も幾つか取り入れていますが、その有益性はまだ多くありません。R.Huntの功績により、CIMCAM97から更に発展したのがCIECAM02で、写真で利用できる一般的な最初のモデルとなりました。可逆性を有し、比較的シンプル、純粋に色の認識だけを配慮したモデルではなく、色々なパラメータを求めてきた研究者の多くの成果が使われています。幾つか例を挙げると:

  1. 同時対比:色の見え方が、その周辺の色の環境で変わってくる現象のこと。例えば、背景の色が白か黒で、同じ物体の色が異なって見えてしまう。背景色が暗いほど、色がより鮮やかに見える。
  2. ハント効果:輝度で色合い(鮮やかさ)が増すこと。色の映りは、暗い中でより、明るい中での方が、活き活きとしていて、コントラストも強い。
  3. スチーブン効果:輝度によって知覚するコントラストが増加すること。輝度が増すと、暗い色がより暗くなったように見えてしまい、明るい色はより明るく見えてしまう現象のこと。
  4. ヘルムホルツ‐コールラウシュの効果:輝度と色度によって明るさが変わる現象。同じ輝度の中では、無色より色のある物体の方が明るく見える。純色に近いほど明るく見える。
  5. 色順応:幾つかの色刺激に対して、人間の視覚システムが持つ調整機能のこと。時空環境によって、人間の視覚は色の知覚感度を変えられる。「色の見えモデル」はこれを基本にしている。

 色順応とは、人間の視覚システムが持つ、光源の変化に対応する能力です。言い換えると、人間の目は光源に順応して色を認識するようにできており、物の色を正確に知覚することが出来るのです。例えば、白熱球の下では、白い紙が初め黄色に見えます。しかし、人間の目は自動的に黄色い光源による色モデルを作るので、暫くすると白い紙として見ることができます。もし私たちの目が、異なる光源により変化する色しか認識できなければ、さぞかし不便でしょう。人類誕生の時から、人間は、朝であろうが、昼であろうが、夕方でも、その果実が熟しているかどうか見極めなければならないからです。色順応という能力がそれを可能にしているのですが、それが様々な光学的錯覚を生み出す元であることもまた然りです。RawTherapeeのユーザーなら名前くらいは聞いたことがあると思いますが、従来の色順応モデルは「ブラッドフォード変換」と呼ばれるものです。

 備考:ここまでの説明が、マンセル表色系の補正であることを疑う人はいないでしょう。CIE色の見えモデルには幾つか弱点があるものの、原則的にはマンセル表に沿って作られています。

 CIECAM02について初めて興味を持ったのは2007年で、これでスプレッドシートを作れば、最適な入力ICCプロファイルを作れると考えました。2012年の初頭、色見本‐カラーパレット(肌や、空の色など)はないものか、というユーザーからの要望に対応しようとしました。それによって、比較や反復プロセスで、より優れたホワイトバランス調整ができると思ったのです。また、私はその頃光源の違いでカラーレンダリングも変わるという、CRI(カラーレンダリング指数)の概念について勉強していました。CRIの値が低いと、同じ色温度の場合、レンダリングが悪化するという概念です(カラーマネジメント-補足の項を参照)。

 CIECAM02に基づいたこのモジュールは、上の2点について作業するための基本的要素は持っていますが、極めて重要な要素である、ピペットがまだ欠けています(組み入れるのは容易ではありません)。

 長い間、私はCIECAM02を、斬新な色モデルというより、実際のプログラムに作り上げるには難しい代物と考えていました。それに、Labなどに比べ、努力の割に報われる成果が小さいと思っていました。ところが、同僚のリクエストでファイルをもう一度開けた時に、Photoshopがプラグインされていて、そこでCIECAM02の効果を初めて知って驚きました。今では、パーフェクトではありませんが(画像によっては全く使い物になりません)、この色モデルは、カラーマネジメントの点で、今日最も効果の高いものであると確信しています。私が提案したこのモデルのモジュールは、“入門編”です。もっとCIECAM02のデータを集めれば、RawTherapeeに既に備わっている機能(様々なカーブを持つLab調整やトーンマッピングなど)に近いものを作ることが可能でしょう。おそらく質が大きく向上すると思います。

 有効な関係書物がないので、この複雑なモデルの理解には苦労します。以下の説明の中には個人的な解釈に基づくものもあります。誤りがあるかもしれないので、専門家の方が読んで、おかしいと思われたら指摘してもらいたいと思います。

幾つかの定義

  1. 明るさ(CIECAM02でBrillianceと呼ぶ用語):
    ある色刺激から知覚する光の量=明るい、つやつやしていると言った感じの色刺激の指針
  2. 明度(LabやCIECAM02でLuminanceと呼ぶ用語):
    類似した観視環境で白に見える色刺激に対して言う、その色刺激の透明度のこと
  3. 色相と色相角度(Labの一部とCIECAM02で使われる用語):
    赤、緑、青、黄色‐で近い色を表現することができるその色刺激の色相角度
  4. 鮮やかさ(CIECAM02で使われる用語):
    灰色と比べて、知覚される色の量。鮮やかさと感じる色刺激の指針
  5. 色度(LabやCIECAM02で使われる用語):
    同一の観視環境で白に見える色刺激の明るさに対して言う、その色刺激の“色合い”のこと
  6. 彩度(CIECAM02で使われる用語):
    色刺激の明るさに比較した、その色刺激の色合いのこと

 これら概念を計算式でまとめると:

  1. 色度=鮮やかさ/白の明るさ
  2. 彩度=鮮やかさ/明るさ
  3. 明度=明るさ/白の明るさ
  4. 上記3つの関係から、彩度=色度/明度とも置き換えられます。

 CIECAM02はこれら概念を使うにあたって、幾つか相関関係にある変数も作っています:

 J : 明度あるいは透明度のことで、LabのLに近い

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

 h : 色相角、Labの色相に近い

 H : 色相、色は4色(赤、黄色、緑、青)間の基本色2色の組み合わせで表現されます。例えば、30B70Gあるいは40R60Y。

 Q : 明るさ

 M : 鮮やかさ

 ac, bc : Labのaとbに近い

 ところで、色度、鮮やかさという近い関係の変数が既にあるのに、更に似たような‘彩度’を別な変数として取り入れているのは何故でしょうか?Huntは次のように述べています:

「色の知覚に関する3つの基本要素は、色相、明るさ、鮮やかさである。明るさには明度という、相対する概念があり、鮮やかさには色度と彩度があるが、色相は何も持たない。色度の相関関係は、色の違いを表す数式の中で幅広く使われているが、最近は色の科学や技術の中で‘彩度’が使われることは少なくなってしまった。おそらくこれは、多くの産業界で色の違いを評価する場合は、同一の光源の中で均一な色サンプルを使うことが多いからであろう。この様に、視角角度の狭いサンプルに対しては、‘色度’が適した変数である。ところが、視角角度の広いサンプルの場合は、‘彩度’の相関関係の方が適していると思われる。実践では、物体を一定方向の光で見ることが多く、その様な環境では、影の中でも一定である‘彩度’の方が、色度より便利な認識方法なのである。画像イメージでは、芸術家やコンピューターグラフィックス関係者が、一定彩度の色を頻繁に使っている。光学イメージでは、彩度は暗い部分の大きい画像で重要な知覚変数である。最近、試験的な研究が成果を上げており、彩度の相関関係の理解は大きく進んでいる。」.

3つのプロセス

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

プロセス1

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

プロセス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

 用語として“正反対(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. その他

データ

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

  • Ybは背景の相対輝度のことであるが、RawTherapeeもこれを取り入れ、灰色の%として表示するようにした。灰色18%は、CIEのLでいう50%のことである。
  • プロセス3のYbに関して言えば、ユーザーのモニターがキャリブレートされものであるなら、Ybは18ないし20に近いものであろう。TVやプロジェクターを使っていても(キャリブレーションするのは難しそうだが)、多少、暗いか、明るいか、経験的に調整できると思う。要は画像を視覚化するデバイス次第であり、写真を映し出す、それを観る環境は一定と考えられる。Ybの値を調整したいなら、環境設定のカラーマネジメントタブで、設定を変える。
  • だが、プロセス1のYbは厄介である。
    • 何故なら、撮影された画像が一定の露出であることは滅多にないし、輝度の違いも小さいはずがない。
    • 私はあえてCIECAMのモジュールをLab調整の後に置き、最終的なRGBへの変換、出力デバイスへの移動の直前にした。これは、ユーザーが既にRawTherapeeの様々な機能を使って、現像予定画像において“平均的な”ヒストグラムを作り終えたと想定しているからだ。
こうして、個人的に知りようもないはずのYbを、処理を施した画像の平均的輝度から計算するようにしたのだ。もちろん、将来的にRawTherapeeがCIECAMに順応したピペットを作れれば、画像の異なる部分(暗い、通常の明るさ、明るい)で、それぞれのYbを使うことが出来るだろう。例えば、ある画像が3つの輝度領域を持っていたとしよう:
  • 標準部分は、画像の平均的Ybで20%に設定する
  • 露出不足部分(ピペットによって境界線を引く)の輝度が計算されれば、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%以上ならば、環境として“平均”を選び、それ以外はユーザーの設定に従う。環境設定で一般タブのテーマの選択は最終的なレンダリングに影響する。設定は、“周囲環境”によって簡単に行える。周囲環境を暗くすると、画像の同時コントラストは高くなる。
  • ホワイトポイントモデル
  • “WB RT + output” : プロセス1に関して、RawTherapeeのホワイトバランが正確であると想定するモデルである。CIECAMはD50を参考にしているので、RawTherapeeのホワイトバランスをD50と同等の環境下の値にする。プロセス3に関しては、必要に応じて、出力デバイスのホワイトポイントを設定する。環境設定パネルのカラーマネジメントタブで、モニターやTV、プロジェクターのホワイトポイントを設定する(今の選択肢だけで十分かどうかは定かでない)。
  • WB RT+CAT02 + output” : プロセス3に関しては、上記と同じであるが、プロセス1に関してはRawTherapeeのホワイトバランスと、CAT02(CIEが作った色順応モデルの一つ)の効果をミックスするモデルで、CAT02の順応度をスライダーで加減できるようにしている。ミックスすることの有利性を活かし、効果を高めるためにはRawTherapeeのホワイトバランスも調節する必要があるだろう。
  • CAT02は、色順応モデルの一つで、画像のXYZ値のそれぞれのホワイトポイント値Xw0、Yw0、Zw0を、XW1、YW1、ZW1に変換する。アルゴリズムはVon Kriesの一つに似ており、色チャンネル乗数を考慮しているRawTheraeeのホワイトバランス調整とは異なる。
  • “CAT02順応”と“自動”チェックボックス
  • CAT02に関しては、上記の“WBRT+CAT02+output”を参照のこと。
  • しかし、 “ホワイトポイントモデル”をゼロに設定していても、色順応のスライダーは役に立つと思う。通常、色順応のチェックボックスは“自動”を選んでおき、色順応以外の目的で使われる内部の“D”係数をCIECAMに自動計算させる。値が65以上の場合はチェックボックスを外し、手動でスライダーを調整するのが良いだろう。予想もしない効果となるかもしれない。

アルゴリズム

 アルゴリズムは、JとC、JとS、QとMを組み合わせた3つのアルゴリズムと(もちろん、他の組み合わせも可能だ)、全ての変数を調整する“全て”というアルゴリズムを作った。私個人の裁量で先の3つのアルゴリズムからはac、bc、hの調整機能を除いた。CIECAMの基本に拘るのであれば、最も一般的に使われるのは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のアルゴリズムと似ているが、色度の代わりに彩度(CIECAM)を使った。その理由は定義の説明で紹介した、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だけに影響する)、全てを調整するアルゴリズム。

トーンカーブとカラー

カーブ

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

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

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

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

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

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

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

色域の制御(LabとCIECAM

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

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

 プロセス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であった。

CIECAM02の限界

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

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


 将来のCIECAM○○が、CIECAM02の欠点を克服してくれるかも知れない。

R.HuntによるCAMの12原則

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

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

CIECAM02 Wikipedia [1]

Color Appearance Model - Fairchild [2]

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