✖
sRGB 仕様・ガンマの種類
A Standard Default Color Space for the Internet - sRGB
とりあえずガンマの意味がよくわからなくなった……
なんかいくつかあって難すぎる…… ちょっと訳してみる
いわゆる「ディスプレイのガンマ」ってやつは最後の display gamma っぽい。CRT gamma はディスプレイの物理的な (ハードウェアとしての) 特性値で、LUT gamma はディスプレイカードとかに設定されているガンマ値かな。
camera gamma は当然カメラのセンサー特性のことだと思う。viewing gamma はカメラからディスプレイ出力までを考慮した全体的なガンマ?
ディスプレイキャリブレーションでターゲットにするガンマは当然 display gamma だと思う。キャリブレーションでガンマを求めたら、ディスプレイカードの LUT ガンマを調整するのかな…
ディスプレイのガンマを理解する
ガンマの種類を読んでいて、そもそも「ガンマ」のついて理解がなさすぎるな、ということでそこからちゃんと理解する必要がある。
ガンマは信号の出入力間の関係性を示していて、具体的には、出入力信号強度間に output signal intensity = input signal intensity ** gamma という関係があるときの gamma らしい。ディスプレイのガンマが1ならリニア(変化なし)だし、1を超えているなら黒っぽくなり、1未満なら白っぽくなる。
- 自然界の物体の色は反射率に対してリニア、すなわち gamma = 1
- CRT ディスプレイにおいて物理的特性から gamma ≒ 2.2
- 人間の目・脳は gamma ≒ 1/3〜1/2.2 で知覚
人間の目は信号強度が強くなるほど圧縮して知覚するらしい (明るくなるほど、明度差を感じるための必要な信号差が大きくなる)。これは音の大きさとかでもそうだし、人間の知覚ってそういうものらしい ヴェーバー‐フェヒナーの法則
CRT にリニアな信号を入れると、人間が知覚する場合はある程度中和されて、階調変化が自然に見えるようになるようだ? (γ=0.733~1.0 程度になるっぽい)
理想的なディスプレイ
とりあえずこれらを踏まえて「理想的なディスプレイ」を考えてみる。つまり階調をできるだけフルで生かせるディスプレイを作る場合、どういう特性のものがいいか?
- 人間の目のガンマ特性的に信号強度が強い場合は階調がいらない
- ディスプレイが人間の目と逆のガンマ特性を持っていれば階調的には効率が良い
要は γ=2.2~3 なら階調的には嬉しいはず
理想的なカメラ
物理的な反射特性はリニアだけど、前述の通り信号強度が強い場合は階調がいらないので、γ=1/3~1/2.2 だと一番効率が良いはず
理想的な viewing gamma
カメラとディスプレイを含めたシステム全体のガンマとしては、当然 1.0 になるのが理想だと思われる。すなわちカメラで撮影された画像が、そのままディスプレイで見れる。
ただ、実際には「閲覧環境」というのが関係するので、1.0 にはならないっぽい。
ターゲット display gamma
ターゲットにする display gamma は、仕様で定められている閲覧環境と自分の閲覧環境との差のことを考慮しないないといけない。
今さらだけど環境光によってガンマが変わるってのがいまいちイメージできないけど、
- 暗い環境ほど相対的にディスプレイが明るくみえるので、より黒くなるように設定しなければならない?
- 明い環境ほど相対的にディスプレイが暗くみえるので、より白くなるように設定しなければならない?
sRGB に書いてある viewing gamma は
- 1.5 - 完全に暗い部屋でのプロジェクタスライド用
- 1.25 - かなりくらい部屋でのモニタ用 (これは15ルクスぐらいの環境光を前提にしたテレビ系を想定してる)
- 1.125 - CG を見るとき典型的な 64ルクスぐらいの環境光を前提にした場合 (ITU-R BT.709 っていう放送規格?と一緒らしい?)
viewing gamma 1.125 を想定していて、display gamma 2.2 を設定しろ、ということは、viewing gamma 1.0 に正規化すると display gamma は 1.956 相当になる。
だけど、普通のオフィスとか家庭の環境だと、200ルクスぐらいは少なくともあるらしいので、sRGB が想定している環境からはだいぶ離れている? 明るい環境ならもっと小さなガンマ値を設定しないといけないはずだけど、どうやって求めたらいいかわからない。
とはいえ、現実的には昨今 display gamma は 2.2 にしとくのが無難っぽいのでそれほど深く考えても無駄な感じがする。