「表色系」は文字通り色の表しかたで、まず2つに分けられる。1つが「混色系」でもう1つが「顕色系」らしい。「混色系」は XYZ 表色系とか RGB 表色系とかで、いわゆるコンピュータ表現で使う物理的なものらしい。「顕色系」は人間の知覚にあうように調整したものらしく、特定の環境下での色の見えかたを定義するものらしい。

顕色系は知覚的と言ってるので、なんとなく混色系と機械的に変換できないような気が自分はしてしまったが、L*a*b* 表色系はホワイトポイントを設定するので顕色系に分類にされるっぽい (あくまでホワイトポイントに対して相対的なもののようだ)。なんか難しいが、知覚的かどうかが問題なのかな。

XYZ 表色系は知覚的ではなく、すなわちガンマが適用されていないリニアな状態になっている。L*a*b* はすごいざっくり言うと人間の知覚ガンマを適用して XYZ 表色系を圧縮したイメージをすれば良いっぽい。L*a*b* 的には、人間の視覚のガンマ値は 1/3 となってる (XYZからの変換式に出てくる)。

  1. トップ
  2. tech
  3. 表色系

カラーマネジメントシステムは、文字コードの処理と似たようなことをするシステムだと思うとイメージしやすいと思った。

最近のウェブアプリケーションの文字コードの取り扱いのベストプラクティスは「中は全部 UCS 系 (UTF-8 とか)、入出力でちゃんと内部エンコーディングに変換する」となっているけど、カラーマネジメントと同じような感じで、「中は全部 XYZ、入出力でプロファイルを使って変換する」みたいな感じっぽい。

カラーマネジメントシステムの場合その内部エンコーディングをプロファイル接続空間 (PCS) と言うらしい。PCS は使う範囲の色をカバーしていればなんでもよくて、XYZ とか L*a*b* とか、知覚できる全ての範囲をカバーする色空間にしとくのが無難っぽい。例えば Mac のカラーマネジメントシステムである ColorSync は、PCS として XYZ 表色系を使っている。

  1. トップ
  2. tech
  3. カラーマネジメントシステムと文字コード

カメラはセンサーなので、ICC プロファイルを作ることができるし、写真に写る物体の色をできるだけ「正確に」カラーマッチングさせることができる。これはとにかく客観的な再現性を重視する商品写真のようなもので重要なんだと思う。

一方で、個人的で主観的な要素を多々含むような写真の場合、カメラは色再現のシステムのごく一部に過ぎなくなる。主観を持った人間が (撮影者とは限らず) 色再現のシステムに組込まれて「主観的な記憶色」とカラーマッチングを行うことになる。カメラとその人間を含めて、入力機械になる。

ColorMunki Photo と Argyll CMS で環境光を測定してみる。ColorMunk Photo の付属ソフトはかなりできることが少ないけど、Argyll CMS を使えば測定器として最大限生かせるらしい。

Argyll CMS

Mac の場合、Argyll CMS は単にダウンロードして適当なところに展開すれば良い。

OS X 10.7.5 な環境だけど、一部のコマンドは root 権限がないと以下のようなエラーがでる

Error - Configuring USB port 'usb:/bus253/dev3/ (X-Rite ColorMunki)' to 1 failed with -4 (No such device (it may have been disconnected))

sudo すればだいたいうまくいく。あと、SIGINT とかでプロセスを殺すと変な接続状態になって認識できなくなることもある。

環境光の測定

晴れている午前中、レースカーテン越しでそれなりの明るさの部屋の環境光を計ってみる。環境光を測るには spotread -a すればいいらしい。

$ sudo ./spotread -a

Spot read needs a calibration before continuing
Set instrument sensor to calibration position,
 and then hit any key to continue,
 or hit Esc or Q to abort:

まずだいたい毎回センサーのキャリブレーションをする必要があるので画面の指示に従ってセンサーを操作する。キャリブレーションポジションにうつして RET を叩く。

斜め下のポジション

Calibration complete

と出たらセンサーのキャリブレーション完了で、続いて測定操作に移る

Place instrument on spot to be measured,
and hit [A-Z] to read white and setup FWA compensation (keyed to letter)
[a-z] to read and make FWA compensated reading from keyed reference
'r' to set reference, 's' to save spectrum,
'h' to toggle high res., 'k' to do a calibration
Hit ESC or Q to exit, instrument switch or any other key to take a reading: 

環境光の測定なので、センサーを上に設定して RET を押すと数秒で測定される。

環境光測定

 Result is XYZ: 323.007085 333.893310 293.768785, D50 Lab: 157.377963 0.824818 -6.492927
 Ambient = 1049.0 Lux, CCT = 5207K (Delta E 2.538508)
 Suggested EV @ ISO100 for 1049.0 Lux incident light = 8.7
 Closest Planckian temperature = 5142K (Delta E 2.173893)
 Closest Daylight temperature  = 5248K (Delta E 1.352266)
 Color Rendering Index (Ra) = 98.9

こんな感じで出てきておもしろい。見ての通り、環境光の強さやら何やらを測定してくれる。Ra も測定してくれてる。ほぼ太陽光なのでさすがに高い値になってる。

【国内正規代理店品】X-rite エックスライト キャリブレーションツール ColorMunki Photo カラーモンキー・フォト KHG0100-PH - x-rite

x-rite

5.0 / 5.0

このへんの理解ができると面白そうなんだけど、だいぶ意味がわからない。

色順応は赤いのをずっと見つづけたあとに白を見ると緑に傾いて見えるみたいな現象のことなのかな。これを利用して利用者の環境光まで考慮してカラーマッチングするのかな……

CAM (Color Appearance Model) は、「色の見え方」を数値化しようというしてるとか説明されているけど L*a*b* と比べてどうメリットがあるのかよくわからない。

色票などのカラーパッチなどでテストすると、Lab値であらわした色は、人間が実際に見えている感覚と同じに表現している色もあるのですが、青とか緑とか黄色は、どうしてもゆがんでいるんです。それがCIECAM02で表わすとゆがみが少ない。人間が見ている感覚と色の表現方法がちゃんと対応していることになり、より高精度の表現ができます。

http://web.canon.jp/technology/interview/kyuanos/kyuanos_p4.html

http://vision-lab.tp.chiba-u.jp/~yaguchi/colorvision_colorimetry.pdf この pdf がわかりやすい。

CIEXYZ (目への信号刺激) -> CIELAB (明度・色情報) -> CIECAM (色の見えかた) で「色」に対する抽象度があがっていく

対象物の物理的な色 (XYZ) から、知覚される色 (LAB)、環境による錯視も含めた色の見え方 (CAM) と考慮する領域が増えていく

CAM ベースのカラーマネジメントシステムは Windows Vista 以降に搭載されているらしい。これは上記で引用したキヤノンの kyuanos をベースにしたものらしい。