ガンマのはなし その4
2011年06月25日(Sat)
8. カラープロファイル
Macユーザはモニタガンマを1.8に設定しているかもしれない。印刷業界に関わっている人は色温度を5000Kに合わせているかもしれない。プロの写真家はAdobe RGBのモニタを使用しているかもしれない。自分と異なる環境で作られたデータを見る場合、製作者の意図した色で表示されていない可能性がある。しかし、それでは安心して画像データを見ることはできない。どうにかして環境に依存せず色を再現することはできないものか。
考え方は二通りある。一つはすべての機器の色を規格化して、統一してしまおうという考え方だ。これはつまりsRGBのカラースペース(色空間)そのものである。(ちなみにsRGBのガンマ値が2.2と言われているのは、あくまで「ガンマ値2.2でおおむね近似できる」という意味である。sRGB自体はもう少し複雑なカーブを描く。)
しかし、sRGBはもともと廉価なモニタを基準に策定された規格だ。商業用の広い色域を持つ機器まで、低い基準に合わせろというのは乱暴な話である。
もう一つの考え方は、画像ファイルにそのデータが作られた環境を記録しておき、表示する機器がその環境を考慮して色を再現する、という考え方である。
たとえば、こんな環境の人たちがデータをやりとりする場合を考えてみよう。

表示する側がその画像の製作環境を知っていれば、製作者の見ていた色を再現することができる。この「どんな色空間やガンマ値で作られたか」という情報をカラープロファイル(ICCプロファイル)という。プロファイルは発音を変えればプロフィール。言わば身上書である。その中には、製作者の色空間をL*a*bやXYZといった絶対的な色空間に変換するためのデータが記録されている。

製作者は自分の使用した色空間などの情報を、プロファイルとして画像ファイルの中に埋め込んでおく。表示側はそのプロファイルの情報を元に、画像を絶対的な色空間に変換する。で、そこから自分自身の色空間に再変換して表示する。もし表示側がカラープロファイルに対応していなければ、画像データをそのまま(自分の色空間で)表示するというわけだ。
具体的に確認してみよう。
50%グレーで塗りつぶした画像を二つ作成し、一つはsRGB(ガンマ2.2)のカラープロファイルを埋め込んで保存、もう一つは埋め込まずに保存する。この画像をカラープロファイルに対応したソフト&ガンマ1.8のモニタの環境下でそれぞれ表示させてみる。

カラープロファイルが埋め込まれたファイルは50%グレーが43%グレーに変化している。

ガンマ2.2の環境で作られた50%グレーは、物理的な明るさが0.52.2で21%となる。ガンマ1.8のモニタで同じ明るさを再現するには、0.21(1/1.8)で0.43。つまりガンマ2.2の50%グレーとガンマ1.8の43%グレーは物理的に同じ明るさになる、というわけだ。
簡単にまとめるとこうなる。
y1 = x12.2,y2 = x21.8
y1 = y2なのでx12.2 = x21.8
x2 = x1(2.2/1.8)
x2 = 0.51.222 ≒ 0.4286
いちいち式を立てるのは、y=xγ以外の式を覚えるのがめんどくさいからである(笑)。
このように、カラープロファイルを使用すれば自分の環境以外での見え方を再現することができる。また、この変換はコンピュータが画像を表示する時に行われているので、データ自体には影響を与えずにすむという利点がある。難点はファイルサイズが数kbほど増えてしまうことと、表示に若干の負荷がかかることだが、現代の通信環境ではさほど問題ではないだろう。
モニタに限らず、プリンタやスキャナ、デジタルカメラといった色を扱う機器のカラープロファイルは通常製造元が用意している。ドライバをインストールするときに同時にインストールされるか、サイト等で配布しているはずだ。ただ、そのプロファイルは該当機種の平均的なデータであって、自分が所有している個々の機器の情報ではない。理想を言うならすべての機器のキャリブレーションを行って、プロファイルを自作した方が色ズレは防げる。まあこれはあくまで理想であって、現実はモニタのプロファイルを作っておくぐらいだと思うけど。
例えばMacのモニタは調整後にカラープロファイルを保存する。さんざん縞模様と灰色の一致点を訊かれたあげく、最後に保存名を決定するアレである。

これはモニタのガンマ値を調整しているわけではなくて、モニタの素の状態でのガンマ特性(ネイティブガンマ)を測定しているのである。自分のモニタのガンマ特性が標準からどれだけ外れているかを把握しておけば、OSはそこから標準のガンマ値に補正することができる。だから数値を指定するだけで任意のガンマ値に変更できるのだ。(Windowsの場合はよく知らないので、プロファイルの作成方法とかは各自で調べて欲しい。)
さて、製作者が自分の情報をカラープロファイルにして画像に埋め込んだとする。問題はその画像を表示する側が、カラープロファイルに対応しているかどうかである。
たとえば自分の使用しているブラウザがカラープロファイルに対応しているかどうかは、このサイトがわかりやすい。
International Color Consortium
リンク先の四分割された画像の色合いが同じに見えたなら、カラープロファイルに対応していることになる。ちなみに下図は自分が調べられた範囲。

特にWindowsユーザで、Macのモニタガンマ1.8での見え方が気になる、というような人は積極的にカラープロファイルを利用するといいだろう。Macはデフォルトブラウザも画像ビューアもカラープロファイルに対応している。自分の環境をsRGBに合わせ、sRGBのカラープロファイルを埋込んでおけば、Macでもガンマ2.2をシミュレートした状態で表示されるわけだ。
ただし、ネット上にアップロードする画像の中で、カラープロファイルを埋込むのはあくまで写真やイラストといった、作品として独立した画像に限った方がいい。たとえばWebサイトの背景画像にカラープロファイルを埋込んだりすると、HTMLやCSSで指定する色にはカラープロファイルが指定できないので、sRGB以外の環境で見ると背景色と背景画像の色がズレてしまうからだ。
では、実際にレンダリングした画像にプロファイルを埋込んでみよう。一般的なsRGBのモニタで、キチンと調整後のプロファイルを作ってることが前提。
まず、Photoshopでは「カラー設定」で作業用ワークスペースを「sRGB IEC61966-2.1」に指定しておく。CMYKその他は印刷のプロでもない限り初期設定のままでいいだろう。こうすると、モニタの設定に関わらず、Photoshop内の画像はsRGBのカラースペースで表示されることになる。また、カラーマネージメントポリシーでは「埋込まれたプロファイルを保持」を選択、項目確認すべてにチェックを入れておくといい。うんざりするぐらい確認ダイアログが表示されるようになるので、嫌でもカラースペースを意識するようになる(笑)。

Poserはカラープロファイルに対応していない。レンダリング画像にカラープロファイルは埋込まれないし、プレビュー画面はモニタのプロファイルそのままで表示されている。つまりモニタと同じプロファイルを持つことになる。ガンマ1.8で表示していればガンマ1.8を持ち、Adobe RGBで表示しているならAdobe RGBのカラースペースを持っているわけだ。なので、Poserでレンダリングした画像を開く時はモニタのプロファイルを割り当てて開くことになる。

「そのままにする(カラーマネージメントなし)」を選択すると、プロファイルは割り当てられないものの作業用ワークスペース(ここではsRGB)で開くことになる。モニタがsRGB以外のプロファイルを使用している場合は、開いた時点で色が変わってしまうので注意しよう。
ファイルを開いたあとはすぐsRGBに変換してしまってもいいし、そのままでも構わない。で、WebにUPする画像は「Web用に書き出し(またはWebおよびデバイス用に保存)」を使って、「sRGBに変換」と「カラープロファイルの埋込み」にチェックを入れる。

また、Photoshopは「ビュー」>「色の校正」にチェックを入れると「ビュー」>「校正設定」で他の環境での見え方をシミュレートすることができる。カラープロファイルを埋込まない場合、この機能を使えばガンマ1.8や2.2のモニタでの見え方を確認しておくことができる。

モニタがAdobe RGBに対応している場合、Adobe RGBを使用するかどうかは悩みどころだ。ネットはsRGBが標準だし、Adobe RGBを表示できるユーザはあんまりいない。sRGBのモニタでAdobe RGBの画像を開くと、ソフトがカラープロファイルに対応していなければ色がズレてしまうし、対応していてもsRGBの色域外はクリップされる(前回の最後の画像のようになる)。そして、カラープロファイルに完全対応しているブラウザのシェアは悲しくなるほど少ない。デジタルカメラで撮影した写真を、自分のモニタで楽しむぐらいが今の限界じゃないだろうか(ごめん)。
カラーマネージメントは、一般のユーザにとってはまだまだ普及途上の概念だ。あと10年ぐらいしたら状況も変わって、色に関する悩みも解決しているかもしれない。それまではあんまりこだわらず、大らかな気持ちでいるのがベターじゃないだろうか。
というわけで、次回からはCGの話に戻って、いよいよリニアなんちゃらの話に移ろう。