ガンマ補正の話

問題発覚中!
コンテンツ中のチャートは、CRTのディスプレイでは正しい値が読み取れないことがあるので改修予定です。
中間色を出すためのタイリングの問題です。
LCDでは問題ないかと思います。

画像を正しい明るさで見てますか?
ガンマ値チェッカあります

心得
 おれは gamma=1.0 至上主義なので、ページ内にある正しいとか正しくないとかの表現の基準は gamma=1.0 であるかそうでないかにあります。実際はPCの用途に応じて意図的に gamma≠1.0 にする必要があることもありますので、gamma=1.0 以外を正しくないと言い切ってしまうのは正しくありません。その点を踏まえて読んでください。


写真の黒ツブレの話

 デジカメで撮った写真をPC上で見たとき、なんか暗く感じませんか?暗いところが真っ暗につぶれてハッキリ見えなかったりしませんか?シャッターを切ったときの印象だともっと明るい気がしたのに、デジカメの写りってこんなもんなのかな、と思ったりしてるでしょう?
 こんな写真なんかもディスプレイの調整をするとちゃんと見えるかもしれない話です。


ディスプレイの明るさ曲線の話

 PCは画素の明るさを、0〜255 の数値で表しています。ディスプレイは、0の明るさを受け取ったら 0%、255の明るさを受け取ったら 100% の明るさで画素を光らせるわけです。
 では、ちょうど真ん中の明るさの値である 128 を受け取ったら、ディスプレイはその画素を何%の明るさで光らせるのでしょうか?

 当然50%の明るさで光らせてくれることを期待しますが、たいていの人のディスプレイはそうしてはくれません。だいぶ暗くなるはずです。

 下のグラフは、画素の明るさ値とディスプレイに映し出される明るさの関係です。この関係の曲線を、ガンマ曲線と言います。


明るさ曲線

 曲線を式で表すと
映し出される明るさ = (明るさ値 / 255) gamma × 100%
でしょうか。
 この gamma をガンマ値と言いまして、この値が 1 になるように調整すると明るさ値と映し出される明るさの関係が直線になるわけです。
(数学になじみがない人には小数でのべき乗は未知の世界かもしれませんが、gamma は必ずしも整数値ではありません)

 じゃあなんで最初からちゃんと gamma=1 になってないかと言えば、実はよく知りません。ディスプレイにガンマ補正回路を入れると高くなるからでしょうか。
なんにしても、たいていは gamma≠1 なので、そのままでは正しい明るさでPCの画面を見ることはできません。たいていは gamma=2.2 くらいになってるらしいです。
 ちなみに Macintosh のディスプレイはこの辺ちゃんと考えてあるそうですね。自動調整なんでしたっけ?詳しくは知らないけど。


ガンマ補正の仕方

 まず、PCの画面の設定が 24bit色以上のモードになっていることを確認してください。このとき、下の図はどんな風に見えるでしょうか。

ガンマ補正チャート
ガンマ補正チャート(ダウンロードできます)

 多分下のどっちかに見えるはずです。

×こんな風に市松模様が見えますか?
これはディスプレイが正しく調整されていません。
調整しましょう。
ガンマ値チェッカであなたの環境のガンマ値を知ることもできます。
こんな風に見えますか?
それならディスプレイは正しく調整されています。
調整の仕方は読み飛ばして、興味があったら原理を読んでください。

 さて。市松模様が見えた人は、ディスプレイを調整しなければいけません。
 具体的な方法は PCやディスプレイの環境によってまちまちですので、ここではウチのPCの調整画面でも載せておきます。

 この PC は Windows XP な PC で、ATI の Radeon Mobility-M6C なるグラフィックカードが入っているようです。
 [画面のプロパティ]-[設定]-[詳細設定]-[色] とやると、下の画面が出てきます。


色の調整

 この画面で、右の色曲線ってやつをいじるわけです。
 ガンマ補正チャートを見ながら曲線の中ほどにある■をつまんで、市松模様が薄くなるような場所を探します。
 赤、青、緑全てについて調整してできあがりです。
 (ちなみにこのダイアログには「ゲームガンマ」なるボタンがありますが、自分はあんまりゲームしない人なので、どんな効能があるボタンなのか未確認です)

 グラフィックカードによっては調整の自由度が低くて全部の明るさについて具合のいい調整ができないかもしれません。この場合は、真ん中の明るさの具合がよくなるように調整します。
 調整することすらできないグラフィックカードなら、ディスプレイの明るさとコントラストをいじって、一番具合のいい所を探すしかないです。

 ちなみに、ディスプレイの明るさやコントラストをいじったら、ガンマ補正はやり直しなので注意してください。ガンマ補正はディスプレイの状態に密着した設定なのです。


ガンマ補正チャートの原理

 ディスプレイが未調整な状態では、明るさとして確実なのは 0% と 100%の明るさだけです。そこで、これだけを基準に各階調の明るさを調整しなければいけません。

 明るさ0%の画素と明るさ100%の画素を交互に細かく並べると、それは見た目に50%の明るさになります(ディスプレイのフォーカスの具合によってはそうでもないかもしれないけど、それを言い出すとキリがなくなるので無視)。
 これを利用すると、見た目に50%になって欲しい明るさ値(128)の明るさを調整できます。双方の明るさを比べながら、見た目が同じになるようにすればいいわけです。
 つまり、ガンマ補正チャートを拡大するとこんなふうになってるわけです。



 このようにして、明るさ値128の見た目の明るさを50%に正しく調整できると、今度はこの明るさも基準にすることができます。
 0%の明るさと50%の明るさの画素を交互に並べれば見た目に25%の明るさになりますし、50%と100%を交互に並べれば見た目に75%の明るさになるので、それぞれ明るさ値64と明るさ値196の調整ができるわけです。
 これを延々と繰り返して全部の明るさ値の明るさを調整すればカンペキですが、それは根性のある人だけがんばればいいんじゃないでしょうか。


注意

 ガンマ補正チャートはダウンロードして使うことができますが、JPGのような非可逆フォーマットで保存はしないでください。このチャートは1画素1画素が正しく再現されていなければならないので、必ず可逆フォーマットで保存してください。拡大、縮小もしてはいけません。原寸で保存し、原寸で見てください。

 調整時の画面の設定は、24bitカラー以上を強く推薦します。チャートの画素の明るさ値が正しく再現されている必要があるからです。16bitカラーはまだ許容範囲かもしれませんが、8bitカラーならヘタに調整しない方がいいと思います。

 ディスプレイの明るさやコントラスト、その他をいじったら、ガンマ補正もやり直さなければいけません。また、経年劣化や気温もろもろの条件で狂いが出るかもしれないので、たまに調整し直した方がいいと思います。

 PNGなんかの画像フォーマットには、その画像を作った環境のガンマ値が記録できるとかなんとか。そして、見る人のディスプレイのガンマ値に応じて表示を補正するんでしょうね。
 でもこのガンマ値って値は、Windows においてはOSが管理してるものでは(多分)ないので、PNGを保存するソフトがガンマ値を取得する方法によっては、表示時の補正が仇になる可能性はあります。OSからガンマ値を取得できないとすれば、おそらく未調整のディスプレイの代表値である gamma=2.2 とみなす可能性もあるでしょう。ガンマ調整を行った環境では、gamma=1 として保存されなければいけません。

 当然世の中のたいていの人は、ガンマ補正なんてせずにPCを扱ってると思います。
 だから、ガンマ補正された環境で作られた画像は、そういう人たちの目にはかなり暗く見えるでしょう。
 また逆に、ガンマ補正してない人が作った画像は、かなり明るく見えます。
 でも、デジカメの写真なんかはガンマ補正された環境でないと正しく見られないと思います。
 WEBに画像を載せるとき、どう調整したらいいものやら悩ましいですね。

 なお、チャートの精度については保障しません。
 書いてあることもウソ言ってるかもしれないです。
 なんかおかしいと思ったら、掲示板ichikawa0904@yahoo.co.jpまで連絡ください。


おまけ

 gamma=1 以外に調整するためのチャートです。それぞれのチャートの市松模様が薄くなるように調整するとディスプレイの表示はそのガンマ値となります。
 Macintosh は gamma=1.8、Windows は gamma=2.2 くらいになってるらしいので、あえて gamma=2.0 くらいに調整しておくと大半のユーザーにそこそこに見られる画像が作れるかも。
 ちなみにテレビはおおむね 2.2 で、放送局の方で逆ガンマ補正してるんだそうです。

gamma=1.8
gamma=1.8に調整

gamma=2.0
gamma=2.0に調整

gamma=2.2
gamma=2.2に調整


ぶつぶつ
 でも、調整できないならまだしも、なんだって意図的に gamma≠1.0 にするんですかね。
 DTPでは印刷の仕上がりに合わせて 1.8 くらいにしておくと聞きますが、PCの表示を印刷に合わせるってのはいかがなものかと思うわけです。プリンターを調整するのが筋だと思うのですが…
 全部の機器を gamma=1.0 にすればみんなハッピーだと思うんですけど、どうなんですかね。補正回路のコストは知りませんけど。



戻る