ガンマについて
- 2015/03/13
※専門家に怒られてしまうかもしれませんが、記事内では分かりやすさを優先して数値やグラフを大雑把に扱う部分もあります。ご注意ください。
ガンマとは何か?その答えは意外にシンプルです。スティーブ・ライト氏の著書『ノードベースのデジタルコンポジット コンポジターのための理論と手法』より引用します。
数学的な概念でいうと、ガンマとは『べき関数』、つまり他の値を指数として累乗される値です。
引用元:スティーブ・ライト 『ノードベースのデジタルコンポジット』(1)
ガンマとは、ある入力値を変更するために用いる「べき指数」です。非常に短い数式で説明することができます。
ガンマは、入力値を大きくしたり小さくしたりします。基本的なポイントですが、ガンマ値は1より大きいときに入力値を小さくします。これはちょっと変だと感じるかもしれません。ガンマ値はべき乗(累乗)にも関わらず、掛け算するほど入力値を小さくするのです。これはガンマの計算が行われるとき、入力値は0.0~1.0という正規化(Normalization)された値になっているためです。
たとえば256階調を持つ8bitのRGBの中間のコード「128」は、最初に128÷256 = 「0.5」という値に正規化されてから、ガンマの計算が行われることになります。そして「0.5」という入力値にガンマ値「2」を適用すると、0.5×0.5 = 「0.25」になり、元より小さい値になります。
一方、ガンマ値が1より小さくなると、入力値を大きくします。たとえば「0.5」に対してガンマ値「0.1」を適用すると、0.5の0.1乗 = 約「0.93」になります。なお、ガンマ値「1」では変更ありません。0.5を1乗しても、「0.5」のままです。
もう1つだけ注意点があります。ガンマによる計算では、入力値が「0」と「1」のときだけは結果が変わらないという特徴があります。べき乗の計算なので、0を何乗しても0のまま、1を何乗しても1のままです。そのため、入力を横軸、出力を縦軸にしたグラフにするとガンマカーブ(Gamma curve)と呼ばれる曲線が現れます。
さて、ガンマについての基本的なポイントをまとめます。
◆ガンマ値が1より小 →入力値を大きくする
◆ガンマ値が1 →変わらない
◆入力値が0と1 →変わらない
このガンマの特徴は、色調補正(カラコレ)で非常に役に立ちます。
ほとんどのソフトウェアに画像の輝度を調整するガンマ操作が備わっており、通常は1よりも大きい値を適用すると画像が明るくなります。
引用元:スティーブ・ライト 『ノードベースのデジタルコンポジット』(2)
Photoshopの[レベル補正]をはじめ、さまざまなソフトウェアにガンマ機能があります。ガンマで画像の明るさを変えるのは、非常に便利なやり方です。中間調だけを変えるので、白飛びや黒潰れが増えない(クリッピングが発生しない)というメリットがあります。知っているとクリエイターの助けになるでしょう。
Photoshopの[レベル補正]のガンマ値は標準で1ですが、2にすると明るくなり、0.5にすると暗くなります。最初の説明と食い違っていると思われるかもしれません。しかし、表示が間違っているわけではありません。ここに表示されているのは「補正値」であり、実際には入力した値の逆数のガンマが適用されています。
これはガンマについて非常に混乱しやすい部分です。よく「ガンマ2.2を適用して画像を明るくする」と言う人がいます。しかし、実際には逆数である約0.45(1/2.2)というガンマを適用しているのです。
Photoshopよりもっと身近にもガンマは存在します。人間の視覚です。「ガンマは面倒だ」と思っているクリエイターも、自分の内面にあるガンマを知れば考えを変えるかもしれません。マーク・クリスティアンセン氏の著書『After Effects CS4 スタジオテクニック プロが教える効果的なビジュアルエフェクトとコンポジット』にはこのような記述があります。
人間の視覚は、微光を明るく調整し、薄暗くてもみえるようにします。これは生きていくために必要とされる機能です。人間の目は微量の光に非常に敏感に反応し、明るさが増加するにつれて反応の敏感さが薄れます。目は明るさのレベルを効率的に上げ、実際のリニア特性で表現するとずっと暗いはずの暗いオブジェクトを、実際よりも明るく見せています。
18%グレー(またはその前後のレベル。正確な数字については意見の相違があります)が人間の目に中間グレーに見えるという事実は、人間の目が次のような独自のガンマ補正を行っていることを示しています。 目視のガンマを0.4として 0.18^0.4(0.18の0.4乗) = 0.504 中間グレーになります。引用元:マーク・クリスティアンセン『After Effects CS4 スタジオテクニック』(3)
人間の目は暗いところで敏感で、明るいところで鈍感です。このことは実は誰でも経験しています。暗い場所でライトをつければ明るくなったと感じますが、太陽の下でライトをつけてもよく分かりません。増えている光の量は同じはずなのに、感じ方は全く違います。
写真撮影では適正露出を確認するために「反射率18%グレーカード」という道具を使うことがあります。これはその名の通り可視光線を18%だけ反射する紙ですが、人間の目にはちょうど中間グレー(Middle gray)に見えます。なぜ50%ではなく18%なのでしょうか?人間の視覚にガンマが働いているからです。視覚のガンマ値は文献によって「0.4」だったり「0.42」や「0.43」だったりしますが、だいたいそのあたりということで考えれば問題ないでしょう。
分かりやすいように大雑把に数字を扱いますが、人間は約20%の光を約50%に感じるということで話を進めたいと思います。人間の視覚はまるでガンマ値を適用したように働き、実際には極めて暗い「約0.2」のリニアの光を「0.5」という感覚の明るさまで引き上げて受け取っています。「実世界の輝度」と「知覚輝度」にどれほどのギャップがあるか、より詳細な説明があります。スティーブ・ライト氏によれば、「実世界」と「知覚」では輝度のバランスが大きく異なるそうです(4)。
人間の視覚は、光が強ければ強いほど鈍く、弱ければ弱いほど敏感になっていくのです。そして、この人間の視覚とよく似た働きをしているものがあります。
カメラにも人間の視覚と同じようなガンマがあります。現代のカメラのCMOS/CCDイメージセンサーは光に対してリニアな信号を発生させますが、カメラはこの信号にガンマ値を適用して変換したデータを収録します。カメラのガンマにも複数の規格がありますが、ここではとりあえず「約0.45」というガンマ値で説明したいと思います。この変換プロセスは一般的にガンマ補正(Gamma correction)という専門用語で呼ばれます。このプロセスの主な目的を、デジタル映像の専門家であるチャールズ・ポイントン氏は以下のように説明しています。
ビデオ、デスクトップグラフィックス、プリプレス、JPEGやMPEGで行われるガンマ補正の主な目的は、RGB(またはCMYK)それぞれの限られたビット数から最高の視覚性能を得るために、知覚と同一の領域に光をコードすることです。
The main purpose of gamma correction in video, desktop graphics, prepress, JPEG, and MPEG is to code light power into a perceptually-uniform domain, so as to obtain the best perceptual performance from a limited number of bits in each of the R, G, and B (or C, M, Y, and K) components.引用元:Charles Poynton "Frequently-questioned answers about gamma - GammaFQA"(5)
カメラが行うガンマ補正の最も重要な役割は、現実世界のリニアの光を人間の視覚特性に合わせて効率よく保存することです。カメラは、暗い光ほどより詳細にデータを保存します。
リニアの光の「約0.2」は「視覚の中間グレー」ですが、実際には人間の感覚よりずっと暗い光でした。この「0.2」の光はカメラが行うガンマ値「約0.45」の適用によって0.45乗の「約0.5」という値まで引き上げられたデータで保存されます。ガンマ補正により、暗い光ほど豊富な階調データになります。その一方で明るい光のデータは圧縮され、微妙な階調を失います。しかしこの「眩しい光」には人間も鈍感なので、データを損失しても問題ありません。これはちょうど人間の視覚と同じなのです。
ガンマ補正が優れている点は、高いデータ効率です。一般的な8bit画像はたったの256階調しかデータを保存できません。もしもリニアの光をそのままデータにしたら、いったいどうなるでしょう?「0.2」の光は「0.2」というデータで保存されます。つまり、256階調のだいたいコード「0」~「50」あたりの範囲に、「黒」から「視覚の中間グレー」が押し込められることになります。猛烈なバンディング(マッハバンド)という問題が発生するのは明白です。バンディングを避けるためには画像のbit数を上げるしかありません。しかし人間の目は暗ければ暗いほど敏感なので、チャールズ・ポイントン氏によれば最低でも12bit(4096階調)が必要だということです(6)。データサイズは一気に膨れ上がります。しかもその膨大なデータの大部分は「人間には違いを認識できない眩しい光」というデータなのです。
誤解されやすいのですが、カメラが行っているガンマ補正は「カラコレ」ではありません。光を効率的にデジタルのコード(符号)に変換するプロセスです。このため、ガンマ補正はGamma encoding(ガンマエンコーディング)と呼ばれることがあります。エンコードとはデジタル符号データを変換保存することです。その他、Gamma compression(ガンマ圧縮)と呼ぶ人もいます。これらの呼び名が一般的かどうかは分かりませんが、実情にあった呼び名と言えます。
ガンマ補正は効率的な仕組みですが、ひとつの課題を残します。カメラは「0.2」の光を「0.5」というデータに保存しました。今度は「0.5」のデータを、どうにかして「0.2」の光に戻さなければなりません。
カメラがエンコード(符号化)したデータは、ディスプレイでデコード(復号)されます。テレビやPCの画面にもガンマが存在しているのです。これは一般的にディスプレイガンマ(Display gamma)とかモニターガンマ(Monitor gamma)と呼ばれるものです。
ディスプレイガンマにもバラつきがありますが、ここではとりあえず「約2.2」というガンマ値で説明します。カメラが保存した「0.5」というデータは、ディスプレイガンマの働きによって2.2乗され、「0.2」という光で出力されます。一度デジタルデータになった光が、適切な強さで再びリニアの光に戻ります。
ディスプレイの光は、元の光から大きく変化した点があります。光が強ければ強いほど大雑把な階調で、弱ければ弱いほど細かい階調になっています。しかし人間はそれに気づきません。視覚と一致しているからです。
ディスプレイガンマは、もともとはCRT(Cathode Ray Tube, ブラウン管)の電子銃が持つ物理的な特性でした。CRTのガンマ特性(Gamma characteristic)などと呼ばれたものです。テレビジョン放送の開発時に、このCRTのガンマ特性を打ち消すためにカメラ側でガンマ補正を行う仕組みが生み出されたと言われています。幸運にも、CRTのガンマ特性は人間の視覚のガンマのほぼ逆数であったため、結果としてカメラは人間の視覚と同じ働きを獲得しました。
CRTモニター自体は2000年代に急速に液晶ディスプレイに置き換わりました。そのためカメラがガンマ補正を行う当初の理由はほとんど無くなってきています。しかし、それでも私たちにはディスプレイガンマが必要だとチャールズ・ポイントン氏は説明します。
仮にCRTの物理的な理由のためのガンマ補正が必要なかったとしても、知覚的な理由のためにガンマ補正は発明しなければならなかったでしょう。現代の液晶ディスプレイやプラズマディスプレイにはCRTのような特性はありませんが、ノンリニア特性を模倣するために信号処理を行っています。
If gamma coorrection had not already been necessary for physical reason at the CRT, we would have had to invent it for perceptual reasons.Modern display such as LCDs and PDPs don't have CRT physics, but the CRT's nonlinearity has been replicated through signal processing.引用元:Charles Poynton. "Digital Video and HDTV, Second Edition"(7)
また、ピクサー・アニメーション・スタジオのテクニカルディレクター、Jeremy Birn氏もディスプレイガンマは単なる過去の遺物ではないと『[digital] ライティング & レンダリング 第3版』において主張しています。
このような入力信号と出力の明るさの関係は、デジタル入力を搭載した最新のフラットパネルモニターでも依然として使用されています。それらの規格は、初期のテレビおよびブラウン管(CRT)モニターで使用されていたものと似ていますが、単に昔の規格の遺物というだけではなく、実際にデジタル信号を有効に活用するものです。
引用元:Jeremy Birn『[digital]ライティング&レンダリング 第3版』(8)
カラリストのAlexis Van Hurkman氏も著書『カラーコレクションハンドブック第2版 映像の魅力を100%引き出すテクニック』の中でディスプレイガンマの有用性を述べています。
ビデオ画像処理の専門家は、デジタルディスプレイに移行する際にシーンの輝度を厳密にリニアに再現するのは不適切だと判断しました。CRTのようなガンマは、録画(およびカラーグレーディング)されたシーンの知覚表現を最大限に高めるために引き続き適用されています。
引用元:Alexis Van Hurkman『カラーコレクションハンドブック第2版』(9)
ディスプレイガンマが役に立つことはよく分かりました。しかし、同時にガンマがずっと映像制作者を悩ませ続けてきたこともまた事実です。
チャールズ・ポイントン氏によれば、テレビジョン放送用ガンマの規格はその歴史の最初から曖昧だったようです(10)。
1953年、アメリカではFCC(連邦通信委員会)がカラーテレビジョン放送のNTSC規格を承認しました。このときガンマ「2.2」という仕様が明文化されました。しかし、この2.2がカメラのガンマを指すのかCRTモニターのガンマを指すのか不明瞭でした。実際のCRTモニターのディスプレイガンマは、約2.4だったとのことです(もっとも約2.35~2.5のばらつきがあったようです)。結果的に"2.2"はカメラのガンマと解釈され、カメラは1/2.2=約0.45のガンマエンコードを行うようになりました。NTSCは過去のものとなりましたが、この2.2という数字は現在の規格にも受け継がれています。
カメラ側が1/2.2というガンマ補正を行い、CRTモニターで約2.4のディスプレイガンマが働くと、トータルガンマは「1」ではなく「1.1」になりますが、視聴環境を考慮すると望ましい結果だったようです。ここで言うトータルガンマとは、カメラとモニターを合わせて考えたときのガンマです。スティーブ・ライト氏はエンド・ツー・エンド・ガンマと呼び、チャールズ・ポイントン氏はEnd-to-end exponentと呼びます。その他システムガンマと呼ぶ人もいたり、定まった呼称がないのですが、ここでは手短にトータルガンマと呼ぶことにします。意外なことに、トータルガンマは必ずしも「1」が良いわけではありません。
人間の目の働きは周囲の環境で変わり、暗い環境で見るモニターはコントラストが低く見えます。そのため暗い環境であるほど、やや高めのトータルガンマによって中間調を暗くした方が適切なコントラストに感じます。人間の視覚に適切なトータルガンマは、明るいオフィスでは1.1、薄暗いリビングルームでは1.2、暗い映画館では1.5と言われます。そういった事情もあり、ディスプレイガンマの推奨設定は1つに統一されていません。
・2.4:BT.1886で記述されているHDビデオディスプレイ用の推奨ガンマ設定です。ガンマ2.4は、かつてはカラー重視のモニタリングの規格として定義され、1~10%の周囲照明がある視聴環境(ハイエンドのマスタリングシステムで現在使用されている周囲照明レベルは1%)で使用するべきCRTディスプレイのガンマの平均測定値を再現します。
・2.35:「周囲が薄暗い」環境のディスプレイ用にEBUが採用したものです(「EBU Guidelines gor Consumer Flat Panel Display [民生用フラットパネルディスプレイのEBUガイドライン]」をWebで検索してください)。
・2.2:民生用テレビの一般的な設定で、周囲照明が5%(薄暗いリビングルーム)~20%(オフィス環境)の視聴環境に適しています。引用元:Alexis Van Hurkman『カラーコレクションハンドブック第2版』(11)
実際のところ、各家庭のテレビのガンマはいくつなのでしょうか?正直に言うとよく分かりません。民生用テレビは、多くの場合独自の調整がされています。視聴者のモニターがばらついていることは映像制作者の悩みであり、残念ながら解決していません。
カメラ側のガンマはどうでしょうか?現在のビデオカメラで使用される代表的な規格に、Rec.709があります。正式名称は ITU-R Recommendation BT.709 と言います。HDTV(高精細度テレビジョン放送)のための規格として、国際電気通信連合(ITU)によって1990年に規格化されました。エンコーディングガンマは、式を見ると単純なものではないことが分かります。
Rec.709のエンコーディングガンマの式には「0.45」というべき指数を見つけることができます。しかしガンマカーブの暗部にガンマ=1の直線部分が存在すること、カーブ部分がオフセットされていることにより、実際のエンコーディングガンマは「0.5」の近似とのことです。このような複雑な式になってることにも、もちろん理由があります。
ビデオカメラのような実際のシステムでは、画像の暗部のノイズを最小化する目的で、黒付近の関数の傾きを制限する必要があります。
In a practical system as a video camera, in order to minimize noise in dark regions of the picture it is necessary to limit the slope (gain) of the function near black.引用元:Charles Poynton. "Digital Video and HDTV, Second Edition"(12)
コンピューターのガンマもさまざまな規格がありますが、ここではガンマ2.2のsRGB規格のみ紹介します。sRGBはコンピューターのモニター、プリンター、インターネットのためにつくられたカラースペースです。1996年、マイクロソフト社とHP(ヒューレット・パッカード)社が共同でつくり、1999年にIEC(国際電気標準会議)によってIEC 61966-2-1として標準化されました。Macintoshでも2009年に発売されたOS X v10.6(Snow Leopard)より標準のカラースペースとして採用されています。
sRGBのエンコーディングガンマの式には「1/2.4」つまり「約0.42」というべき指数が含まれています。しかしRec.709と同じようにガンマカーブの暗部にガンマ=1の直線部分が存在すること、カーブ部分がオフセットされていることにより、実際のエンコーディングガンマは「0.45」の近似になります。
sRGBの特筆すべき点は、人間がディスプレイからエンコードする、という点です。クリエイターはガンマ2.2のディスプレイで画像をつくることにより、知らず知らずのうちに逆数のガンマ0.45が適用された画像をつくることになります。どういうことか、なるべく分かりやすく説明したいと思います。
ここからは、あなたが一般的なガンマ2.2のsRGBのコンピューターディスプレイで今このページを閲覧していると仮定して話を進めます。コンピューターのモニターに映し出される「中間グレー」について考えてみたいと思います。256階調のRGBの中央の値は「128」です。RGB:128のグレーは「だいたい中間のグレー」に見えます。
しかし厳密に言えば少し違うようです。Photoshopのカラーピッカーを見ると、「Lab」の「L」が54になっています。この「L」とはCIE(国際照明委員会)が定義したLightnessという、人間の視覚の輝度を表す単位です。
ですから厳密さを求めるなら視覚の中間グレーはLightnessが50のとき、つまりRGB:119ということになります。「119」のグレーは視覚上は50%の輝度です。これはいわゆる「18%グレー」です。前述の通り、人間が中間だと感じる光は、実際にはずっと暗い光です。
ではモニターの光の50%はどこかというと、RGB:187あたりのようです(186や188とする説明もあります)。いずれにせよ256段階の中ではかなり高い値です。実際これは「明るいグレー」に見えます。しかし光の強度は確かに約50%のようです。白と黒のピクセルを同じ分量だけ配置すると、およそRGB:187のグレーと同じ明るさに見えます。
(※液晶ディスプレイは角度によって明るさが違って見えます。正面から、数歩下がって見てください。)
sRGBは、リニアの光の強度をそのまま記録しているのではなく、ガンマ補正されたRGB値です。RGB値は明らかに、「弱い光」により多くのコードを使っています。クリエイターはガンマ2.2のモニターを見ながら画像を扱うことで、弱い光ほど詳細に描き、強い光ほど大雑把に描くわけです。カメラと同じような「ガンマ補正」を知らず知らずのうちに行っています。もちろんそれは、データサイズを小さく抑える効率的なプロセスです。
今回はガンマについて説明してみました。分かりやすくするために説明を省略したり、大雑把に説明した部分もあるので、技術的な正確さは欠けているかもしれません。より詳しい情報を得たい方にはhttp://www.poynton.comがオススメです。
1. Wright, Steve. Digital Compositing for Film And Video Third Edition. Focal Press, 2010. (スティーブ・ライト, Bスプラウト訳. 『ノードベースのデジタルコンポジット コンポジターのための理論と手法』. ボーンデジタル, 2012(以下、『ノードベースのデジタルコンポジット』と記す), p.253.)
2.前掲『ノードベースのデジタルコンポジット』 p.253.
3. Christiansen, Mark. Adobe After Effects CS4 Visual Effects and Compositing Studio Techniques. Adobe Press, 2008. (マーク・クリスティアンセン, Bスプラウト訳. 『After Effects CS4 スタジオテクニック プロが教える効果的なビジュアルエフェクトとコンポジット』. ボーンデジタル, 2009, p.370.)
4. 前掲『ノードベースのデジタルコンポジット』 p.323.
5. Charles Poynton. "Frequently-questioned answers about gamma - GammaFQA". http://www.poynton.com/notes/color/GammaFQA.html (参照2015-03-10).
6. Charles Poynton. "Digital Video and HDTV, Second Edition: Algorithms and Interfaces". Morgan Kaufmann, 2012(以下"Digital Video and HDTV, Second Edition"と記す), p.31.
7. 前掲"Digital Video and HDTV, Second Edition", p.316.
8. Birn, Jeremy. Digital Lighting and Rendering (3rd Edition) . New Riders, 2013. (Jeremy Birn, Bスプラウト訳. 『[digital] ライティング & レンダリング 第3版』. ボーンデジタル, 2014, p.242.)
9. Alexis Van Hurkman. Color Correction Handbook: Professional Techniques for Video and Cinema (2nd Edition). Peachpit Press, 2013.(『カラーコレクションハンドブック第2版 映像の魅力を100%引き出すテクニック』. ボーンデジタル, 2014(以下『カラーコレクションハンドブック第2版』と記す), p.35.)
10. 前掲"Digital Video and HDTV, Second Edition", p.324.
11. 前掲『カラーコレクションハンドブック第2版』, p.36.
12. 前掲"Digital Video and HDTV, Second Edition", p.321.
13. International Telecommunication Union. http://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.1886-0-201103-I!!PDF-E.pdf (参照2015-03-10).
- 関連記事
-
- VFX制作のコンポジット作業で注意すべき10項目 (2016/07/01)
- 影を合成するテクニック (2015/12/13)
- 画面の見映えを良くする配色のテクニック (2015/08/22)
- グロー表現のクオリティーを高める3つのポイント (2015/07/25)
- 分かる!リニアワークフローのコンポジット (2015/06/13)
- リアルな実写合成(VFX)にはノイズ除去が重要 (2015/05/15)
- デジタルで画づくりするテクニックまとめ! (2015/04/29)
- ガンマについて (2015/03/13)
- 映画のVFX制作で使用するDPX画像ファイルは何が優れているのか? (2015/02/11)
- 画のクオリティーをアップする煙合成のコツ (2014/12/16)
- なぜ映画の背景はボケているのか?被写界深度についての考察 (2014/11/10)
- 画像を美しく加工するために押さえておきたいピクセルの知識 (2014/08/06)
- 実写合成(VFX)テクニック・色合わせの3つのチェックポイント (2014/06/09)
- 加算とスクリーンを正しく使い分けて綺麗な光を描くヒント (2014/05/18)
- カラコレに役立つRGBカラーの基礎知識 (2014/04/29)