background

ガンマのはなし その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%グレー

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

カラープロファイルありの50%グレー

ガンマ2.2の環境で作られた50%グレーは、物理的な明るさが0.52.2で21%となる。ガンマ1.8のモニタで同じ明るさを再現するには、0.21(1/1.8)で0.43。つまりガンマ2.2の50%グレーとガンマ1.8の43%グレーは物理的に同じ明るさになる、というわけだ。

簡単にまとめるとこうなる。

1 = x12.2,y2 = x21.8
1 = y2なのでx12.2 = x21.8
2 = x1(2.2/1.8)
2 = 0.51.222 ≒ 0.4286

いちいち式を立てるのは、y=xγ以外の式を覚えるのがめんどくさいからである(笑)。

このように、カラープロファイルを使用すれば自分の環境以外での見え方を再現することができる。また、この変換はコンピュータが画像を表示する時に行われているので、データ自体には影響を与えずにすむという利点がある。難点はファイルサイズが数kbほど増えてしまうことと、表示に若干の負荷がかかることだが、現代の通信環境ではさほど問題ではないだろう。

モニタに限らず、プリンタやスキャナ、デジタルカメラといった色を扱う機器のカラープロファイルは通常製造元が用意している。ドライバをインストールするときに同時にインストールされるか、サイト等で配布しているはずだ。ただ、そのプロファイルは該当機種の平均的なデータであって、自分が所有している個々の機器の情報ではない。理想を言うならすべての機器のキャリブレーションを行って、プロファイルを自作した方が色ズレは防げる。まあこれはあくまで理想であって、現実はモニタのプロファイルを作っておくぐらいだと思うけど。

例えばMacのモニタは調整後にカラープロファイルを保存する。さんざん縞模様と灰色の一致点を訊かれたあげく、最後に保存名を決定するアレである。

Macのモニタ設定の画面

これはモニタのガンマ値を調整しているわけではなくて、モニタの素の状態でのガンマ特性(ネイティブガンマ)を測定しているのである。自分のモニタのガンマ特性が標準からどれだけ外れているかを把握しておけば、OSはそこから標準のガンマ値に補正することができる。だから数値を指定するだけで任意のガンマ値に変更できるのだ。(Windowsの場合はよく知らないので、プロファイルの作成方法とかは各自で調べて欲しい。)

さて、製作者が自分の情報をカラープロファイルにして画像に埋め込んだとする。問題はその画像を表示する側が、カラープロファイルに対応しているかどうかである。

たとえば自分の使用しているブラウザがカラープロファイルに対応しているかどうかは、このサイトがわかりやすい。
International Color Consortium

リンク先の四分割された画像の色合いが同じに見えたなら、カラープロファイルに対応していることになる。ちなみに下図は自分が調べられた範囲。

ブラウザのICCプロファイル対応状況

特にWindowsユーザで、Macのモニタガンマ1.8での見え方が気になる、というような人は積極的にカラープロファイルを利用するといいだろう。Macはデフォルトブラウザも画像ビューアもカラープロファイルに対応している。自分の環境をsRGBに合わせ、sRGBのカラープロファイルを埋込んでおけば、Macでもガンマ2.2をシミュレートした状態で表示されるわけだ。

ただし、ネット上にアップロードする画像の中で、カラープロファイルを埋込むのはあくまで写真やイラストといった、作品として独立した画像に限った方がいい。たとえばWebサイトの背景画像にカラープロファイルを埋込んだりすると、HTMLやCSSで指定する色にはカラープロファイルが指定できないので、sRGB以外の環境で見ると背景色と背景画像の色がズレてしまうからだ。

では、実際にレンダリングした画像にプロファイルを埋込んでみよう。一般的なsRGBのモニタで、キチンと調整後のプロファイルを作ってることが前提。

まず、Photoshopでは「カラー設定」で作業用ワークスペースを「sRGB IEC61966-2.1」に指定しておく。CMYKその他は印刷のプロでもない限り初期設定のままでいいだろう。こうすると、モニタの設定に関わらず、Photoshop内の画像はsRGBのカラースペースで表示されることになる。また、カラーマネージメントポリシーでは「埋込まれたプロファイルを保持」を選択、項目確認すべてにチェックを入れておくといい。うんざりするぐらい確認ダイアログが表示されるようになるので、嫌でもカラースペースを意識するようになる(笑)。

Photoshop CS4のカラー設定

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

プロファイルなし画像を開く時のダイアログ

「そのままにする(カラーマネージメントなし)」を選択すると、プロファイルは割り当てられないものの作業用ワークスペース(ここではsRGB)で開くことになる。モニタがsRGB以外のプロファイルを使用している場合は、開いた時点で色が変わってしまうので注意しよう。

ファイルを開いたあとはすぐsRGBに変換してしまってもいいし、そのままでも構わない。で、WebにUPする画像は「Web用に書き出し(またはWebおよびデバイス用に保存)」を使って、「sRGBに変換」と「カラープロファイルの埋込み」にチェックを入れる。

PhotoshopのWeb書き出し

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

Photoshopの色校正

モニタがAdobe RGBに対応している場合、Adobe RGBを使用するかどうかは悩みどころだ。ネットはsRGBが標準だし、Adobe RGBを表示できるユーザはあんまりいない。sRGBのモニタでAdobe RGBの画像を開くと、ソフトがカラープロファイルに対応していなければ色がズレてしまうし、対応していてもsRGBの色域外はクリップされる(前回の最後の画像のようになる)。そして、カラープロファイルに完全対応しているブラウザのシェアは悲しくなるほど少ない。デジタルカメラで撮影した写真を、自分のモニタで楽しむぐらいが今の限界じゃないだろうか(ごめん)。

カラーマネージメントは、一般のユーザにとってはまだまだ普及途上の概念だ。あと10年ぐらいしたら状況も変わって、色に関する悩みも解決しているかもしれない。それまではあんまりこだわらず、大らかな気持ちでいるのがベターじゃないだろうか。

というわけで、次回からはCGの話に戻って、いよいよリニアなんちゃらの話に移ろう。

スポンサーサイト





ガンマのはなし その3

2011年06月19日(Sun)

というわけで今回はモニタの調整(補正とかキャリブレーションとも言われる)について。このへんの話は検索すればすぐに解説サイトが見つかるから、ウチでやる必要はあんまりないかなと思わなくもない。とはいえ、うっかり微妙なサイトにリンクを貼ってしまったりするのもどうかと思うので、今回からちょっと寄り道して色関係の話に触れていこうと思う。

6. モニタの調整

モニタのキャリブレーションは、厳密にやろうとすると結構面倒くさい。モニタの明るさを計測する専用の機材やソフトが必要になってくるからだ。けど、そのテのものは出版や映像分野のプロが使うのであって、素人が趣味でグラフィックを扱う分にはあまりこだわらなくても問題はない。第一、厳密な調整が必要なほど高性能なモニタを使っている人はそう多くないはずだ。

Mac OSXならモニタの調整はシステム環境設定の「ディスプレイ」→「カラー」→「補正...」で行うことができる。Windowsも7からはOSの機能として調整機能がついたらしい(7は触ったことがないので未確認)。それ以前のWindowsユーザは、ビデオドライバに付属しているツールやAdobe PhotoshopのオマケのAdobe Gamma、フリーのツールなどを使おう。最悪、モニタが輝度とコントラストとガンマを操作できるなら、ひとまずの調整は可能である。

具体的な調整方法はツールによってマチマチなので、以下原理的な部分だけ。

まず最初に考えるのはモニタの置き場所だ。モニタに光が当たった状態では正確な色はわからない。窓からの光や照明の光が入らないようにする。もちろん自分の目にも入らないようにする。モニタにフードカバーをつけることも必要かもしれない。

次に調整を行う時間。昼と夜とでは部屋全体の明るさが異なる。普段パソコンを使っている時間帯にするのがいいだろう。CRTモニタは暖まるまで明るさが安定しなかったりするので、電源を入れてから何十分かはスリープさせずに放置しておく。モニタそのものに輝度などの調節機能がついている場合、まずはシステム設定やツールのようなソフトウェアの調整機能をリセット(つまり何も調整してない状態に)してからモニタを調節するといいだろう。ハードで大まかに調整してから、ソフトで微調整するほうが効率がいい。

あと肝心なのが、なるべく目が疲れていない時に調整すること(笑)。

調節する項目は輝度(明るさ)、コントラスト、ガンマ、色温度だ。輝度とコントラストの調整は図で表すとこんな感じになる。

輝度とコントラストの調整

なので、まずは輝度を調節して黒を合わせることから始める。

黒から白までの階段状グレースケール

コントラストをできるだけ上げた状態で、上図のグレースケールの左端がぎりぎり判別できるぐらいに輝度を合わせる。まったく黒潰れしてしまうと輝度が低すぎるし、余裕で見分けられるぐらいだと高すぎる。ぎりぎりを目指そう。

輝度が高すぎる、低すぎる

次にコントラストを調整して、グレースケールの右側白い部分がかろうじて区別できるぐらいを目指す。完全に白飛びしてしまっているとコントラストが強すぎるし、全然余裕だとコントラストが弱すぎる、ということになる。

コントラストが強すぎる、弱すぎる

これで黒(0.0)と白(1.0)が合ったことになる。

で、いよいよガンマを合わせる。ガンマを合わせるには下図のような図を使う。ガンマのことを調べていたら、大抵お目にかかるガンマチャートだ。

1.6から2.4までのガンマチャート

この図を使って、横線と灰色の部分の明るさが同じになるようにガンマを合わせればいい……というのはよく耳にするが、これは一体何をしているのだろうか。

輝度とコントラストを調整した現時点で、明るさが確定したのは0と1の部分のみである。それ以外の灰色の部分は、モニタのガンマ値が不定なのでまだ正確ではない。そこで、0と1を使って明るさが「物理的に0.5」の縞模様を作っておく。たとえば合わせたいガンマ値が2.2の時、入力されるデータが何%のグレーならモニタに出力される明るさが「物理的に0.5」になるだろうか?

前々回の式に代入してみよう。

出力y = 入力xγ
入力x = 出力y(1/γ)
x = 0.5(1/2.2) ≒ 0.729

入力が0.73、つまり「データ上の73%グレー」が「物理的に0.5」と同じ明るさに見える時、そのモニタのガンマ値は2.2であるということになる。ガンマ値を1.8に合わせたいのなら、68%グレーと同じ明るさになるようにすればいい。これを一覧にしたのがガンマチャートである。

ビデオドライバや調整ツールによっては、たまに調整していないニュートラルな状態をガンマ1.0と表示しているものがある。混乱の元なのでやめて欲しいところだけど、普通のモニタでガンマ値が1.0ということはまずないなので、自分のモニタのガンマ値を確認したい時はガンマチャートでざっくり見当をつけよう。

ちなみにこの図、長時間見つめていると目がチカチカして疲れてしまう(笑)。全体的な明るさを測るものなので、少し距離をとって見るとか、焦点を外してぼんやり見た方がいいだろう。

また、ツールによってはガンマを赤・緑・青の色別に調整できるものもある。これは、ガンマ特性が色ごとに異なるためである。もし先ほどのグレーのグラデーションに一部だけ赤っぽいとか緑っぽいとか色が付いているように見える場合は、各色のガンマを調整しよう。

色の付いたグレースケール

最後に色温度を設定する。色温度はざっくり言うと「白の色合い」だ。何を言ってるんだ、白は白に決まってるじゃないか、と思った人は手元にある白い紙とモニタの白を見比べてみよう。シャツの白でもいい。同じ白でも色味にかなりの違いがあるはずだ。この白い(光の)色を、絶対的な尺度で表したのが色温度である。なんで温度なのかというと、私たちの世界には「光を完全吸収する物体は温度によって決まった波長の光を発する」という物理法則があるからだ。その波長の光を発する時の温度で色を表現しようというわけである。なので色温度の単位は絶対温度のケルビン。温度が高くなるほど黄色から白色を経て青っぽくなっていく。

色温度の模式図
(だいたいこんな感じ。正確なものではないので注意。)

室内の明かりはかなり黄色っぽいし、蛍光成分の含まれたシャツはかなり青っぽい。青みがかった方が清潔で白さが強く見えるので、Windowsのモニタはものによってはかなり高い色温度に設定されている。最近のトレンドはD65(6500K)なので、サックリ設定してしまおう。急にモニタが黄ばんでしまったと不安になるかもしれないが、大丈夫、問題ない。人間の目はかなりいい加減だ。すぐに慣れるはずである。

7. カラースペース

モニタをキチンと調整したら、まず明るさ1(白)と0(黒)が決まる。ガンマも設定したので灰色などの中間色も決まった。色温度を設定して、白色点(白の色味)も定まった。これで、モニタが表示する色はすべて設定できた。

……本当にそうだろうか?

あと一つ、忘れていることがある。それは赤・緑・青の各色が「どの赤」で「どの緑」で「どの青」かということだ。これを定義するものを、カラースペース(色空間)という。

色を正確に定義しようという試みは、ずっと昔から行われていた。「暗いくすんだ赤」とか「すっきりした水色がかった明るい黄色」とか主観の入った表現では、人によって意図する色が同じになるとは限らない。普遍的で、誰が扱っても同じになる色の表し方が必要だったのだ。

そこで考案された表色系には、美術の時間でお馴染みのマンセル色体系(色相・明度・彩度で色を表す)や、Photoshopで見たことがあるかもしれないL*a*b*表色系など、様々な方法がある。

xy図

これはそんな表色系の一つ、xyY表色系のxy成分を図にしたものだ。この傾いたお椀の中に人間の目に見える色(可視光線の波長)が全部含まれていて、これとY成分である明度で色を定義する。こうやって色の座標を定義しておけば、数値で色を指定することができるというわけだ。

ところで、モニタは人間の目に見える全ての色を表現できるわけではない。先ほどの図で表すと、一般的なモニタが表示できる色の範囲はこのようになる。

一般的なモニタの色空間

この三角形の範囲のことを「モニタが表現できる色空間」というように表現する。この三角の外の色はモニタで表示することはできない(今表示されているのは、この図が疑似的に表されたものだからである)。で、もともとはこの範囲も機器によってマチマチだったけど、あるときちゃんと規格化しようという話になった。数字でキッチリ決めておけば、デジカメでもプリンタでも同じ色を表現できるというわけだ。これがsRGBと呼ばれる色空間の規格である。

ところが、この範囲はけっこう狭い。印刷物なら表現できる色が、sRGBでは表示できなかったりする。これではDTPで厳密な色校正はできない。そこでAdobeは独自にAdobe RGBという別の空間を設定した。Adobe RGBは特に緑の領域がsRGBより広く、印刷物が表現できる色空間をだいたいカバーしている。そして高性能なモニタは、このより広いAdobe RGBの色空間を表示できるようになっている。デジカメの中にもsRGBだけでなくAdobe RGBをサポートしているものもある。

sRGBとAdobe RGB

表示できる色域が広いということは、それだけ沢山の色が表示できる……というのとは、ちょっと違う。なぜなら、通常パソコンで扱う色は基本的にRGB各色256階調・約1677万色の固定だからだ。するとどういうことが起こるだろうか。

先ほどモニタの調整で色温度(白色点)を設定した。この白色点もxy図で座標を表すことができる。この白色点を彩度0として、そのカラースペースで表示できる限界の色を彩度100%としよう。

各色空間での彩度

特に違いの大きい緑だけを取り出してみるとこんな風になる。

色空間による緑の違い

絶対的な色を扱うxyYなどの表色系に対して、パソコンのRGBで指定する色はあくまで相対的なものである。たとえばAdobe RGBのモニタで彩度100%の「すごい緑(データは0, 255, 0)」を選んだとする。そのデータをsRGBしか表示できないモニタで表示させると、表示されるのは「緑(データ上は同じ0, 255, 0)になってしまう。Adobe RGBで「緑」を選んだらなら、sRGBでは「まあまあ緑」に彩度が落ちてしまうのだ。

sRGBしか表示できないモニタでAdobe RGBで撮った写真をそのまま開くと、くすんだ色になってしまう。逆にsRGBで撮られた写真をそのままAdobe RGBのモニタで表示すると、本来の色より鮮やかすぎる色になってしまう。

また、Adobe RGBの方が色域が広いからといって、sRGBで作られた画像をAdobe RGBだと偽って開くと、元の色より彩度がきつくなるだけでなく、彩度の高い部分が正しく表示されなくなってしまう。どちらにしても、元の色とは違う色で表示されてしまうことになる。

sRGBの画像をAdobe RGBで開いた図

パソコンで色を正しく扱うためには、その色がどんな色空間で決定されたのかを把握する必要があるのだ。これを実現するのがカラープロファイル(ICCプロファイル)である。

(つづく)



ガンマのはなし その2

2011年06月15日(Wed)

4. コンピュータとガンマ

時代は下り、コンピュータの出力装置(モニタ)としてCRTディスプレイが使用されるようになってきた。このとき、モニタに入力されるのはもちろんテレビ局の電波ではなく、CPUがいろいろ計算した結果であるところの出力である。

最初、コンピュータはモニタが持つガンマ特性を考慮していなかった。50%のグレーを表示するとき、コンピュータはそのまま白の半分、50%の力で表示するように命令を送信していたのだ。当然ガンマ特性によって表示される明るさは白の四分の1程度になってしまうが、特に問題はなかった。なぜなら前回説明した通り、人間の目は暗い部分ほど敏感で、この四分の1程度の明るさを「だいたい中間ぐらいの灰色」と認識していたからである。

ところが、このことはMacintoshにとっては少し問題だった。MacはもともとWYSIWYG(What You See Is What You Get)という、「モニタの見た目とプリンタの印刷結果は一致しているべきである」という至極まっとうな考え方を推進していた。モニタ上で1インチに見えるならプリンタは1インチに印刷するべきであるし、モニタ上で灰色なら印刷結果も灰色であるべき、と考えたのだ。しかし、どうもモニタで表示される灰色よりも、印刷結果の灰色の方がちょっとだけ明るかったのである。

紙にインクで印刷する時、中間色を表現するには細かい線や網点を使用する。新聞やマンガ雑誌を見れば、写真やスクリーントーンの部分は小さな点の集まりになっている。

110615-1

この細かい線や網点を印刷すると、結果は意図した明るさよりも暗くなってしまう。理由はいくつかあって、紙の質が悪いとインクが滲んで太ってしまうからとか、黒インクの下に拡散光が吸収されてしまうからとかあるんだけど、とりあえず印刷業界はこの「意図したよりも暗くなる度合」のことをドットゲインと呼んだ。そして、これはガンマ特性によく似ていた。明るい部分や暗い部分より、中間値の方がより暗くなるのである。

ドットゲインは紙や印刷機によって変化するけど、一般的にはガンマ値にしてだいたい1.8ぐらいであることがわかっていた。なので、コンピュータが明るさ0.5を出力したとき、ガンマ値2.2のモニタの明るさは約21%となり、プリンタの印刷結果は約29%の明るさとなる。この違いが、モニタよりプリンタの方がちょっと明るいという結果をもたらしていたのだ。

110615-2

そこでAppleは、見た目を一致させる為にモニタのガンマ値を1.8で調整するようにした。MacのモニタがWindowsより明るいと言われるのはこのためである。DTPを意識してドットゲインに合わせたガンマ値を持っていたからだったのだ。

もっともこれはちょっと前までの話で、最近では最終的な表示媒体が動画やインターネットコンテンツなどの「モニタで見るもの」であることが多くなってきた。なので、Mac OSX 10.6では初期設定のガンマ値は2.2に変更されている。もちろん、自分の用途に合わせて任意の値に変更することは可能である。

5. モニタのガンマ値

さて、そういうわけで一般的なCRTモニタは2.2、Mac用のモニタは1.8というガンマ値を持っているということになった。しかしこれは標準の話で、自分のモニタが2.2や1.8であるとは限らない。なぜならモニタには個体差があるからだ。モニタごとの見え方を揃えるには、モニタガンマを調整する必要がある。いわゆるガンマ補正である。

ガンマ補正というと、2.2のガンマ曲線を1.0のリニア(直線)にしてしまえばいい、むしろガンマ1.0が至上だ、そもそもすべてのモニタはガンマ1.0となる増幅装置を備えるべきじゃないか、と考える人もいるだろう。しかしそれは大きな誤解である。何度も繰り返したように、人間の目は線形で明るさを感じるわけではない。

テレビ放送が送信前の信号に逆ガンマをかけて「明るく」したのは、ブラウン管がリニアなデータを「暗く」表示してしまうからではなかった。撮影された元々リニアでない「暗い」データを、ガンマ特性で二重に暗くしてしまうからだったはずだ。しかしコンピュータの中では、色は初めからデータそのものである。50%グレーはデータ上0.5であり、リニアなデータなのだ。だからモニタがガンマ特性2.2で「暗く歪めて」表示することによって、人間の目に自然なリニアに見える。もしモニタのガンマが1.0だったなら、人間の目はそれを「明るく歪んでいる」と感じてしまうはずである。

ちょっと実験してみよう。

110615-3

画像処理ソフトで、黒と白を1ドットずつ交互に表示した画像を作る。黒(0.0)と白(1.0)が半々なので、遠目に見れば全体の輝度は白の半分になる。つまり「物理的な50%グレー」だ。この灰色はモニタのガンマ値を変更しても変化しない。0は何乗しても0、1は何乗しても1だからである。

110615-4

これを、画像処理ソフトの50%グレーで塗りつぶした画像と並べてみる。この右側の灰色は「データ上の50%グレー」である。

おそらく左の方が明るく、右の方が暗く見えているだろう。それは、あなたのモニタのガンマ値が1.0よりも大きいからだ。もし同じぐらいの明るさに見えたなら、あなたのモニタのガンマ値は1.0ということになる。

110615-5

同じようにして、上段にドットで表現した「物理的に均等なグラデーション」を、下段に「データ上の均等なグラデーション」を作ってみる。さすがにちょっと見辛いけど、できるだけこの画面を遠目に眺めてみよう。2メートルぐらいがいいんじゃないかな。

上段と下段、どちらが「なだらかなグラデーション」に見えるだろか。

たぶん多くの人が、上段のグラデーションは暗い部分の階調が少なく、明るい方に偏っていると感じてしまうだろう。人間の知覚は情報量の少ない、暗い部分の変化には敏感だ。だから暗い部分は変化が大きいと感じ、明るい部分はあまり変化していないと感じてしまう。結果、物理的に均等なグラデーションは偏ってるように見え、物理的には均等ではないグラデーションの方が自然な変化に見えるのだ。多くの人が自然と感じるのなら、そちらを優先させるべきである。明るすぎるモニタに人類の方が適応するなんて、本末転倒な話じゃないか。

それでもやはりモニタが「歪んで」いるのは良くないことだ、でも50%グレーは人間の目に50%に見えるべきだと主張するのなら、今度はコンピュータが持つデータを暗く歪めてやらなければならない。50%グレーはデータ上0.21、10%グレーは0.006、90%グレーは0.79……いや、Macでは1.8で表示しなければならないから、50%グレーは0.29に、10%グレーは……。

んなアホな(笑)。

そんなことをすれば、今度は画像処理ソフトが困ることになる。たとえばバイリニア法という、画像の拡大縮小に使用される単純な補完方式だと、中間ピクセルを決定するのにピクセル同士の平均値を使用している。1と0の中間は0.5、というわけだ。なのに1と0の中間は0.21にすべし、ということになったら、それに合わせて計算の手間を増やさなければいけない。万事において余計な処理が増えてしまうことになる。

しつこいぐらい同じことを繰り返すのは、これを理解することが重要だからだ。

コンピュータの中のデータはリニアである。モニタに表示すると物理的に「暗く歪む」。そして人間の知覚はそれを「明るく歪め」て感じ、結果トントンで「データ通りのリニア」に見える。なので、モニタのガンマは2.0付近に合わせるのが丁度いい。1.0に合わせるのは論外なのだ。

モニタのガンマ補正とは、ガンマ値1.76とか2.43とか中途半端な個体差をもつモニタを、2.2または1.8、ないし自分の意図した値に調整する作業のことなのである。

というわけで、次回はちょっと寄り道してモニタ調整の話。



ガンマのはなし その1

2011年06月12日(Sun)

話をしよう。

と言っても、ゲームの話でもなければ神様の話でもない。以前から触れようか迷っていた、ガンマについての話である。あとついでに、リニアなんちゃらとかいうやつの話だ。「なんちゃら」という言い方をしたのは、所詮なんちゃら程度の話で充分だろう、と思われるからである。

今までガンマについて触れずにいたのは、自分自身がきっちり理解をしてなかったからだ。気になるたびに調べては似たような説明を読み、その時は納得するものの、しばらくするとまたあやふやになる。いい加減な事を書くのは個人の勝手だけど、鵜呑みにする人が現れたら困る。迂闊には触れられない。だけどようやくPoser 8のまともな使い方が分かってきて、さらにリニアなんちゃらを取り上げたサイトを見かけるようになって、さすがに「よくわからないから保留」のままではまずいと思うようになった。

このへんの話がいまいちピンと来ない人の中には、私と同じように「自分の持つ既存の知識と噛み合わないから」という人もいるんじゃないかと思う。逆に、ガンマ自体「なにそれ強いの?」と初耳な人もいるかもしれない。そこで、これから私が自分なりに確認したことを、数回に分けてまとめてみたいと思う。できるだけ正確に努めようと考えているけど、具体的な理屈よりは「ああ、こういうことなんだ」という納得感が伝わればいいかなと。

前置きが長くなったけど、本文はもっと長いので安心して欲しい(笑)。

1. ガンマとはなにか

ガンマの話のはじまりは、ブラウン管テレビが作られたころまで遡る。

ブラウン管というのはブラウンさんが作った真空管の一種である。陰極線管(英語でCathode Ray Tube: CRT)ともいう。原理は蛍光灯やネオンサインと同じだ。真空(に近い)状態のガラス管中の電極に電圧をかけて、放電で電子を飛ばすのである。高校の理科か物理の教科書で、細長いガラス管の中の電子ビームを磁石で曲げている写真を見た記憶がある人もいるだろう。アレである。

110612-1

ブラウン管では、陰極(マイナス極)から発射された電子の粒が、表示画面の裏側に塗布された蛍光物質に衝突することで画面を光らせる。この時、発せられる光の量は陰極にかかる電圧によって変化する。電圧が強ければ強く光り、弱ければ少ししか光らない。ところが、この関係は残念ながら正比例ではなかった。大雑把に表現すると、次のようになったのである。

光量=電圧γ

はいそこ、数式が出たからって逃げない(笑)。

この式をグラフで表すと下図のようになる。ガンマγの値によって曲線の形は変化する(実際にはガンマは1以下にはならない)。形がγの文字に似てるので、この曲線をガンマカーブと言うそうな。ホントかなー。

110612-2

でもって、製造されたブラウン管を色々調べてみると、このガンマ値はだいたい2.0~2.5ぐらいであることがわかった。ぐらい、というのはブラウン管ごとに個体差があったからで、一概にいくらとは言い切れなかったからである。この性質を「このブラウン管はガンマ2.0のガンマ特性を持つ」というような言い方をする。

さて、数式というものはただの記号の羅列ではない。意味を持つ言葉である。ではこの意味するところはなんだろうか。

まったく光が出ていない真っ暗な状態を入力・出力ともに0であるとする。そして画面がちゃんと白く見える状態を入力・出力ともに1であるとする。すると、入力が半分の0.5であるとき、出力すなわち明るさは0.5ではなく、ブラウン管が持つガンマ値によって増減することになる。ブラウン管のガンマ値は2.0~2.5。1より大きいので、明るさは0.5よりも小さくなる。つまり暗くなってしまうのだ。仮にガンマ値が2.0だとすると、光の量は0.5の2.0乗で0.25。黒と白の中間、50%の灰色を表示しようと考えたのに、得られたのは25%の明るさだったのである。

ところが、このガンマ特性はブラウン管にとってはあまり問題にはならなかった。なぜか。

なぜなら人間は、そもそも明るさを均等に知覚してはいなかったからである。

2. 知覚とガンマ

もともと人間の目(というか知覚)は、変化をおおむね倍々で捉えるという法則がある。つまり、10が20に変化したとき「明るくなった」と感じたなら、次は20が40になって初めて「同じくらい明るくなった」と感じるのだ。これは音についても同じで、音の強さを表すデシベルを0dBから10dB、20dBと変化させたとき、それにかかる電力が10倍、100倍と変化していることは、音響や電気に詳しい人ならよく知っているはずだ。

これは言い換えると「人間は暗い部分の変化には敏感で、明るい部分の変化には疎い」ということになる。これをグラフに表すとだいたいこんな感じになる。

110612-3

そう、人間の目は「γ=だいたい0.5ぐらい」のガンマ特性を持っているのだ。だから入力を半分にしたとき、ブラウン管から発せられる明るさはずっと暗いにも関わらず、人間にはちゃんと「白と黒の中間ぐらいの灰色」と感じられるのである。もっと言うと、私たちが普段「真ん中ぐらいの灰色」と感じている灰色は、物理的な光の量という意味では白の四分の1程度の明るさしか持っていないということになる。

3. テレビとガンマ

さて、これで困ったのはテレビではなくテレビ局だった。

これまでのことから、普通の灰色(50%グレー)を画面に映したいと考えたとき、送信する信号を白の半分にすればいいことは分かった。しかし、実際に私たちが50%と感じている灰色の被写体を撮影すると、得られる電気信号は半分よりずっと少なかったのである。見た目には50%の灰色でも、物理的な光の量は四分の1程度しかないのだから、これは当然のことだった。

110612-4

これをそのまま電波で送信すれば、ブラウン管のガンマ特性と合わさって、ガンマ値4ぐらいのものすごく暗い映像になってしまう。いくら人間の目が暗い部分に敏感だとしても、これでは暗すぎる。結局、ブラウン管のガンマ特性を打ち消す必要が出てきたのだ。

ガンマカーブを打ち消して直線にするためにはどうすればいいか。y=xγをy=xにするのだから、右辺がxとなるような別のx’を入力してやればいい。これを式にすると

x=x’γ

この式をx’について解くと

x’=x(1/γ)

となる。したがって、入力される信号にあらかじめブラウン管のガンマ値の逆数のガンマカーブを掛けておくといい、ということになるのだ。

そこで当時の人々は、「ブラウン管で暗くなる分、あらかじめ送信前の信号を明るく底上げしてしまおう」と考えた。これは道理である。各ご家庭お茶の間のテレビ一台一台にガンマ補正のための増幅装置を付けるより、電波で流す前の電気信号を増幅した方がずっと簡単で手間もコストもかからないからだ。

110612-5

暗くなる分だけ画像を底上げするにしても、ブラウン管には個体差があるので実際のガンマ値はわからない。そこでアメリカで策定されたNTSCというカラー放送の規格では、ブラウン管テレビのガンマ値を2.2(PALは2.8)と決め打ちした。あとの調整は各ご家庭で、というわけである。

かくして、ブラウン管(CRT)のガンマ値は2.2となった。

(つづく)



ちゃちいのはリベンジ予定。

2011年06月07日(Tue)

M3復興会議の雑誌風絵を作ってるとき、「これはブログに書いとかなきゃなあ」と考えていたことがあったんだけど、怒濤のような追い込み期間を経てすっかり忘れてしまっていた。

「DD Magazineの自分のページ、アイテムそのままレンダしてもあんな風にはなりません」

みたいな(笑)。まあ商品のプロモ画像とか見たら勘違いはしないと思うけど、自分の絵は明らかにレタッチ入ってるんで。てなわけで、どのへんにレタッチが入ってるのかというお話。取り上げるのは左ページのやつ。

110607-01

まあ一目瞭然(笑)。シンプルな立ち絵で、目標はシャープでオサレな感じ。服はPOIのギャラリーで使用しているBeowulfのジャケットとカサブランカのシャツと60'sスーツのパンツの組み合わせ。自分の手持ちアイテムの中では一番スリムな線が出てるんじゃないかと思っている。ちなみにライトはレイトレ影の無限光1灯、拡散IBL1灯。あとIDLで面光源に平面1枚を使っている。

まずフィギュアをロードして、簡単にポーズを付ける。でもってセットを選ぶ。セットと言ってもシンプルなコンクリ壁だけが欲しかったので、いろいろロードしてみてテクスチャが一番いい感じだったThe Armoryを使用。テクスチャが少し大振りだったので、マテリアルルームでさっくり50%に縮小する。柱がちょっとヘンな感じかなー。

110607-02

で、背景小道具は一旦非表示にして服をロードして着用したところ。

110607-03

Beowulfも60'sスーツも「デフォ体型? 何ソレ」というスタンスの素敵服である(もちろん褒め言葉)。でもって、服を着せたらポーズの微調整。ジャケットの裾を持たせたり、あと、靴を履かせたら地面とちゃんと接地するように腰位置と足首の向きを調節する。

110607-04

開き方が控えめなのは、カサブランカシャツが前部分しかなくてこれ以上開くとお腹が見えてしまうからである(笑)。60'sスーツのシャツを使わなかったのは、ネクタイの形が細すぎるから。

で、カサブランカのシャツの裾がベルト位置と合ってないのでマグネット。

110607-05

カサブランカのネクタイが短すぎるのでマグネット。あと幅も調整。

110607-06

Beowulfの裾が広がりすぎなのでマグネット。

110607-07

で、はみ出す部分を非表示にしてこんな感じ。

110607-08

癖のないシンプルな立ちポーズはいくらでも必要になるので、こまめにライブラリ保存しておくと便利。っていうか、市販のアイテム付属のポーズっていかにも「ポーズ取ってます」って感じで使い辛いんだよなー。

110607-09

あとは別アイテムのパイプなどを並べる。コンクリ柱があんまりいい感じゃなかったので、その場で作って差し替え。テクスチャは元のやつを縮尺変更して流用する。

ここまで来てようやくマテリアル調整に行く。大きい背景小道具や複数フィギュアなど、シーンが重たくなりそうな場合は先に別ファイルで調整してから読み込んだりするけども、今回はアイテムも少ないシンプルなシーンなのでその場でやってしまう。

ありがたいことに60'sスーツのテクスチャが一枚ものなので、Beowulfのジャケットにそのまま貼ってレンダしながらだいたいのUVスケールを合わせる。良質なアイテムは大概UVの歪みもなくそのまま布テクスチャを貼り込める。袖とか横向きになってるやつは、イメージマップノードでマッピングをUVじゃなくVUに指定する。マテリアルグループが分かれてなかったら諦めてPhotoshopへ。

ネクタイはマグネットで無理矢理伸ばしているので、そのままテクスチャを貼ると伸びてしまう。なので柄はPhotoshopで合成することにして、ここでは拡散色を灰色にしておく。

で、さっくりライティングを決め、表情を微調整して本番レンダ。ざっと修正個所を確認する。

110607-10(クリックで原寸生レンダ)

はみ出しているところは中身を非表示にして部分レンダ。ポケットも縮尺を調整。髪は「レイトレースで表示」のチェックを外して再レンダ、2:8ぐらいの割合で合成する。バックルの映り込みは適当な写真をPhotoshopでオーバーレイ合成することにする。

それから、肩の修正用にジャケットの拡散色をグレーにしたものを同じ条件で撮っておく。あとレイトレも影もオフにして、マスク用の背景なしのアルファチャンネルもレンダ。

で、肩。こればっかりはPoserではどうしようもない。一番まともなラインのUziliteさんの服やカサブランカスーツでさえこの有様なんだから、他のアイテムの惨状は推して知るべし。ジオメトリを書き出してモデラで修正するという手もあるけど、正直UVの歪みを直すことまで考えたら圧倒的に時間がかかる。最終的な表示解像度を考えたら全然現実的じゃない。ということで肩のラインはPhotoshopでレタッチ。

はみ出し等の修正が済んだら、レイヤーを複製してゆがみフィルタをかける。イマドキの細くてカッチリした感じにしたかったので、思い切りよく修正。肩だけでなく脇のめり込んだ部分もなるべく直線になるように、ぐいぐいと引っ張る。やりすぎたあたりは再構築ブラシの「滑らかに」や「ゆるく」などを使う。確定する前にゆがみメッシュを保存しておくのを忘れずに。

110607-11

フィルタをかけたら、背景のコンクリ壁が一緒に歪んでしまっているのがちょっと気になる。そこで残しておいた元レイヤーを手前に重ね、別撮りしたアルファチャンネルに同じゆがみフィルタをかける。

110607-12

レイヤーサムネールをCommand+クリックして選択範囲を取得、元画像のレイヤーマスクにして肩の周辺だけ重ねる。

110607-13

人物と背景を別レイヤーにコピーしとけばいいんじゃないかという話もあるけど、隙間の処理とかが面倒くさいので一枚のままでやる。これだけ壁と人物の距離が近いと、IDLの場合人物なしでレンダしたら壁の明るさが変わってしまうので別撮りは使えない。ちなみに右ページのアランの肩は背景別撮りで修正している。

で、今度は柄の修正。できるだけフラットな感じの部分をスタンプツールでコピーする。修正範囲が広いようならテクスチャファイルを探して貼り付けた方が早いと思う。

110607-14

次に、灰色のジャケットに保存したメッシュでゆがみフィルタをかけ、その上にストライプ柄をオーバーレイで重ね、グループマスクで必要な部分だけ表示する。

110607-15

いまいちキッチリとは合ってないけどその辺はふんいきで。

ネクタイも同じ要領で、まず新規レイヤーに適当な柄を直線ツールとコピーで描く。で、グループ化してネクタイ部分をペンツールで選択、グループにマスクを作る。

110607-16

あとは色調とか明るさを好みに調整。ひとまず修正作業終わり。

110607-17

だいたいいつも修正作業が終わった辺りで「お楽しみはこれから」みたいな気持ちになる(笑)。今回は誌面バランス的にリアル寄りにするつもりだったから、若干グラデーションをかけて、

110607-18

彩度をちょっとだけ落としてレンズフィルタをかけて完成。

110607-19

あとは誌面次第でトリミングしたり文字入れしたり。

肩のラインに限らず、最近の服は「難しいカタチは作らない」傾向になってるような気がする。V4服はそんな感じ、M4服はそれ以下、みたいな。たぶん、本当のスーツみたいな形状の服を作れるベンダーはいないんじゃないかなあ、なんて思ったりもして。単純に技術云々ならモーフや追加ボーンを注ぎ込めばなんとかなるかもしれないけど、売り物で大事なのは技術じゃなくて「わかりやすさ」や「安定性」だからなあ。

……なんて挑発的なことを書いたら、誰かが奮起して高品質な服を作ってくれないかなー(笑)。





Menu

Profile

Kyotaro

確定名:Kyotaro
ネタを探しているらしい。

Categories

Calendar

05 | 2011/06 | 07
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

Comments

Archives

Track back

RSS feed

Links

Search

※2011年4月6日のサーバ障害の為、エントリのアドレスが以前のものからズレています。当Blogのエントリにリンクを張っておられた方は、お手数ですがアドレスのご確認をお願い致します。

※Internet Explorer非推奨。