✖
ColorMunki Photo と ArgyII でディスプレイキャリブレーション
付属ソフトウェアでキャリブレーションするでもいいんだけど、簡単すぎてボケっとしていても終わってしまう。キャリブレーションで何をやっているか多少は理解したいのと、OSS のキャリブレーションソフトウェアを使えるようになっておいたほうが嬉しい気がする。
ということで、まず dispcal による一発で .icc まで作る方法をメモ。dispcal は ArgyII CMS のツールをいろいろ使いつついい感じにやってくれるディスプレイキャリブレーションツール、という位置付けのようだ。
以下のように適当にパラメータを指定して dispcal を起動する。
sudo dispcal -v -d 1 -H -G 2.2 -b 80 -t 6500 -P 0.5,0,1.0 -o FooLCD
- -v で進捗を多少わかりやすくする
- -d はマルチディスプレイ環境でのディスプレイ番号。
- --help するとどのディスプレイにどの番号が割り当てられているかはわかる
- -H は高精度測光を有効に
- -G はガンマ
- -b はターゲットディスプレイ輝度 (cd/m^2)
- -t は色温度
- -P はキャリブレーション用ウィンドウの位置とサイズ
- -o を指定すると .icc まで一気につくれる
最初はセンサーのキャリブレーション (-N をつけるとスキップできる)
Setting up the instrument Instrument Type: ColorMunki Serial Number: 2055xxx Firmware version: 288 Chip ID: 01-64a2131500005d Version string: 'colormunki FW V1.32 Build Nr. 1303' Calibration Ver.: 6 Production No.: 86471 Place instrument on test window. Hit Esc or Q to give up, any other key to continue: Target white = 6500.000000 degrees kelvin Daylight spectrum Target white brightness = 80.000000 cd/m^2 Target black brightness = native brightness Target effective gamma = 2.200000
キャリブレーションポジションにして RET
Calibration complete
と出たあとすぐに以下のようになる
Place instrument on test window. Hit Esc or Q to give up, any other key to continue: Display adjustment menu: Press 1 .. 7 1) Black level (CRT: Offset/Brightness) 2) White point (Color temperature, R,G,B, Gain/Contrast) 3) White level (CRT: Gain/Contrast, LCD: Brightness/Backlight) 4) Black point (R,G,B, Offset/Brightness) 5) Check all 6) Measure and set ambient for viewing condition adjustment 7) Continue on to calibration 8) Exit
言われた通り、センサーを下に設定して、カバーをつけてディスプレイに置く
5 を入力すると、一通り測定して、ターゲットとどれぐらい差があるか表示される。error が大きいものが小さくなるように、1~4 を選び、ディスプレイ側の設定を調整しておく。
7 を選ぶと実際に測定がはじまる。結構時間がかかるので待つ。
patch 6 of 6 Black = XYZ 0.05 0.04 0.07 Red = XYZ 28.84 16.90 5.00 Green = XYZ 32.79 54.32 12.65 Blue = XYZ 19.10 16.57 77.21 White = XYZ 82.51 88.85 93.32 Automatic black point hue correction level = 0.71 patch 96 of 96 Target white value is XYZ 76.038267 80.000000 87.071348 Adjusted target black XYZ 0.05 0.04 0.06, Lab 0.50 0.22 -0.18 Target black after min adjust: XYZ 0.066 0.063 0.082, Lab 0.707 0.309 -0.254 Gamma curve input offset = 0.000000, output offset = 0.000783, power = 2.200000 Total Iteration 2, Final Samples = 32 Final Repeat threshold = 0.900000 Creating initial calibration curves... Doing iteration 1 with 16 sample points and repeat threshold of 1.272792 DE patch 16 of 16 Brightness error = 1.025640 cd/m^2 (is 81.025640, should be 80.000000) White point error = 0.895632 deltaE Maximum neutral error (@ 0.699752) = 1.270848 deltaE Average neutral error = 0.795649 deltaE Number of measurements taken = 35 Computing update to calibration curves... Doing iteration 2 with 32 sample points and repeat threshold of 0.900000 DE patch 32 of 32 Brightness error = -0.424393 cd/m^2 (is 79.575607, should be 80.000000) White point error = 0.674218 deltaE Maximum neutral error (@ 0.023835) = 1.287983 deltaE Average neutral error = 0.728424 deltaE Number of measurements taken = 54 The instrument can be removed from the screen. Written calibration file 'FooLCD.cal' Luminance XYZ = 0.000000 83.164907 0.000000 White point XYZ = 0.932069 1.000000 1.070937 Black point XYZ = 0.000512 0.000495 0.000724 Created fast shaper/matrix profile 'FooLCD.icc'
FooLCD.cal と FooLCD.icc というのがでてきてるはず。
このままだとまだプロファイルが設定された状態にはなっていないので、以下のように dispwin を使ってシステムに適用する。
sudo dispwin -d 1 -v -I FooLCD.icc About to open dispwin object on the display About to install './MacBookAirLCD.icc' as display's default profile Installed './MacBookAirLCD.icc' and made it the default About to destroy dispwin object
-I を指定することで、~/Library/ColorSync/Profiles/ にコピーされ、プロファイルが設定される。
トラブル
以下のようなエラーがでた場合、カバーの蓋が開いてないので開ける……
dispcal: Error - Aprox. fwd matrix unexpectedly singular
dispcal: Error - dispcal: inverting Jacobian failed (1)
このエントリを参照するエントリ
✖
✖
カラーマネジメント関係はあと
- 環境光をちゃんとする
- プリンタプロファイルをつくる
とかをやりたいけど、今すぐできないのでもどかしい
✖
医療費の領収書だけはとっておかないといけないから専用の引き出しをつくろう
✖
表色系
「表色系」は文字通り色の表しかたで、まず2つに分けられる。1つが「混色系」でもう1つが「顕色系」らしい。「混色系」は XYZ 表色系とか RGB 表色系とかで、いわゆるコンピュータ表現で使う物理的なものらしい。「顕色系」は人間の知覚にあうように調整したものらしく、特定の環境下での色の見えかたを定義するものらしい。
顕色系は知覚的と言ってるので、なんとなく混色系と機械的に変換できないような気が自分はしてしまったが、L*a*b* 表色系はホワイトポイントを設定するので顕色系に分類にされるっぽい (あくまでホワイトポイントに対して相対的なもののようだ)。なんか難しいが、知覚的かどうかが問題なのかな。
XYZ 表色系は知覚的ではなく、すなわちガンマが適用されていないリニアな状態になっている。L*a*b* はすごいざっくり言うと人間の知覚ガンマを適用して XYZ 表色系を圧縮したイメージをすれば良いっぽい。L*a*b* 的には、人間の視覚のガンマ値は 1/3 となってる (XYZからの変換式に出てくる)。
このエントリを参照するエントリ
カラーマネジメントシステムと文字コード
カラーマネジメントシステムは、文字コードの処理と似たようなことをするシステムだと思うとイメージしやすいと思った。
最近のウェブアプリケーションの文字コードの取り扱いのベストプラクティスは「中は全部 UCS 系 (UTF-8 とか)、入出力でちゃんと内部エンコーディングに変換する」となっているけど、カラーマネジメントと同じような感じで、「中は全部 XYZ、入出力でプロファイルを使って変換する」みたいな感じっぽい。
カラーマネジメントシステムの場合その内部エンコーディングをプロファイル接続空間 (PCS) と言うらしい。PCS は使う範囲の色をカバーしていればなんでもよくて、XYZ とか L*a*b* とか、知覚できる全ての範囲をカバーする色空間にしとくのが無難っぽい。例えば Mac のカラーマネジメントシステムである ColorSync は、PCS として XYZ 表色系を使っている。
カメラと写真
カメラはセンサーなので、ICC プロファイルを作ることができるし、写真に写る物体の色をできるだけ「正確に」カラーマッチングさせることができる。これはとにかく客観的な再現性を重視する商品写真のようなもので重要なんだと思う。
一方で、個人的で主観的な要素を多々含むような写真の場合、カメラは色再現のシステムのごく一部に過ぎなくなる。主観を持った人間が (撮影者とは限らず) 色再現のシステムに組込まれて「主観的な記憶色」とカラーマッチングを行うことになる。カメラとその人間を含めて、入力機械になる。
ColorMunki Photo と Argryll CMS で環境光を測定
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 cho45
このエントリを参照するエントリ
色順応・CIECAM02
このへんの理解ができると面白そうなんだけど、だいぶ意味がわからない。
色順応は赤いのをずっと見つづけたあとに白を見ると緑に傾いて見えるみたいな現象のことなのかな。これを利用して利用者の環境光まで考慮してカラーマッチングするのかな……
CAM (Color Appearance Model) は、「色の見え方」を数値化しようというしてるとか説明されているけど L*a*b* と比べてどうメリットがあるのかよくわからない。
色票などのカラーパッチなどでテストすると、Lab値であらわした色は、人間が実際に見えている感覚と同じに表現している色もあるのですが、青とか緑とか黄色は、どうしてもゆがんでいるんです。それがCIECAM02で表わすとゆがみが少ない。人間が見ている感覚と色の表現方法がちゃんと対応していることになり、より高精度の表現ができます。
http://vision-lab.tp.chiba-u.jp/~yaguchi/colorvision_colorimetry.pdf この pdf がわかりやすい。
CIEXYZ (目への信号刺激) -> CIELAB (明度・色情報) -> CIECAM (色の見えかた) で「色」に対する抽象度があがっていく
対象物の物理的な色 (XYZ) から、知覚される色 (LAB)、環境による錯視も含めた色の見え方 (CAM) と考慮する領域が増えていく
CAM ベースのカラーマネジメントシステムは Windows Vista 以降に搭載されているらしい。これは上記で引用したキヤノンの kyuanos をベースにしたものらしい。