2014/11/04

LUT / ガンマ

たまに書くお勉強シリーズ(?)。
(※過去のお勉強は ツール名表記 / PCIe / bit深度 あたり)


今回は、LUT / ガンマ についてです。

vol.3 にYUJIさんのリニアワークフロー記事が載っておりますが、その関連です。
このあたりは勉強すればするほど沼が深いというか……(^^; ゆるゆる理解して行っている途中です。

(※あとvol.3が入手困難という声をたまに聞くのですが、当blog右の[shop]からお求めいただけます)


LUT

ルックアップテーブル。らっと。
シーンリニアワークフローとか色調補正とかの文脈で出てくる上に、「ルック」という単語も含まれてるおかげで、てっきり映像分野の用語かと思い込んでいたんです。
が、「Look Up Table」自体はもともとはそれに限らない、技術的に一般な用語だったんですね。

http://ja.wikipedia.org/wiki/ルックアップテーブル

複雑な計算とかをあらかじめ済ませて表に並べておいて、それを見に行くことで毎度の計算するのを省き、高速化を計ろう、というのが考え方の肝です。
もともとlook upに「探す」「訪ねる」という意味があり、「table look up」で「データテーブルから特定のデータを探し出す(探索)」の意味になるとのこと。
スプレッドシートでも「vlookup」「hlookup」関数は、活躍度たかいですね。

wikipediaには「画像処理におけるルックアップテーブル」ていう項目もちゃんとありますね。
> [LINK]

映像分野では、LUTを映像に適用することを「らっとをあてる」と言います。
結果、上記の説明のように
「入力」→「なんらかの計算」→「出力」となり、映像の見えが変わります。
映像データの癖を吸収するのにも使いますし(補正)、もっと戦略的に見た目を演出する(ルック)のにも使います。
前者については、ボーンデジタル社から国内版が出ている「カラーコレクションハンドブック」でも「キャリブレーション」の項目で登場していることからも伺えます(第二版 p.48)。後者については「LUT Film Emulation 」あたりで検索するといろいろ見れます。要は「ある(フィルムの)ルックにする=そのルックに適合するよう補正する」ということなので、同じと言えば同じですが。
攻めにもLUT、守りにもLUT。片方の用途でしか認識していない両者の会話は事象の地平を彷徨うとかなんとか。

で、このLUTをRGBそれぞれに用意した「3D-LUT」になると、これは映像分野の用語になるようですね。3Dという呼び方は、RGBをXYZ空間に見立てているところに由来。
(なので、上記のLUTは 1D LUT ということになります)

こちらについてはディスプレイの老舗EIZO様のサイトから。
http://www.eizo.co.jp/eizolibrary/other/itmedia02_04/
< の、下の方。
事例としてこちらも
http://www.pronews.jp/special/1203281535.html
< の2ページ目

cf. 3D-LUT用のファイル形式は「.cube」「.3dl」など、各ツールにあるみたいですね。
参考:
DaVinciでの1D/3D LUTの作成
http://wolfcrow.com/blog/how-to-create-luts-with-adobe-speedgrade-and-davinci-resolve/
各種LUTファイルが書き出せる Pomfort LiveGradeのマニュアルの当該ページ
http://www.synergykk.com/lgm/706-lgm0401

LUT自体は「映像用語」ではなく、もともとはもっと広い意味があるというのが新鮮でした。


ガンマ

シーンリニアワークフローまわりを調べていて、まず気をつけたいなと思ったのが、
ひとくちにガンマと言っても、CG作業していて出会うガンマはほとんどの場合「ガンマ補正」なんだな、ということです。
フォトレタッチツールのフィルタなり、コンポジットツールのエフェクトなりは
当然ながら、入力された画を「補正する」ために使うもの。補正する側の職場で「ガンマ」って言ったら、ガンマ補正のガンマです(強引)

「じゃあ補正じゃない方のガンマは? 」というと、「ガンマ特性」です。
これは、出力機器がもっている、入力値に掛けてしまうガンマ値を表したものです。
ここで言う「機器」とは、「ディスプレイ」や「プリンタ」などです。
これって、入力に対してある種の改変をくわえて出力しているわけで、
「なんでそんなことしてしまうのん?(*゚ー゚)?」とついつい思ってしまいますが……
これは、「人間の知覚は非線形(データ的に線形・比例的なグラデーションを見ても、偏って見えてしまう。ある偏らせ方をした=ガンマを掛けたグラデーションを、滑らかなグラデーションと知覚する)」に対応した結果です。
かつ、この知覚の具合は周囲の明るさによっても変化する上、自己発光 するディスプレイともなるとあれやらこれやら……といったあたりはCRT時代からの因縁めいて闇が深いご様子ですが、詳しくは、さっきも登場したカラーコレクションブック第二版だとp.35 とか p.79 あたりの内容になるかと。
ただ要点をかいつまむと、「2.2という数字は、もっとも一般的に普及している室内照明(視聴環境)を想定して導いた適正ガンマ。他の照明だとまた違う数字になる」ご様子。


なめらかなグラデーションをデータそのまま表示しても、人間にはちゃんと見えないので、機器の方がそれを直すような特性を持っている。
じゃあ、もともとちゃんと見える場合は?ディスプレイから出力されるときには、なんしか改変されて(あえて言うと“間違った状態で”)出て行くことになります。
これでは困るので、「出て行くときに適正になるように、打ち消す」のが、ガンマ補正
出力されるときにガンマが改変されるのを「Gamma Decode」、(それを見越して)ガンマをデータに織り込むのを「Gamma Encode」 と呼ぶようですね。
参考 : http://en.wikipedia.org/wiki/Gamma_correction
「収録データ側にガンマが掛かるから、出力機器側で戻してるんだよ」的なニュアンスの呼び方ですね。

で、
ガンマ特性とガンマ補正では、式が違います

ガンマ特性は
y = x ^ γ(エックスのガンマ乗)

ガンマ補正は
x' = x ^ (1/γ) (エックスの、ガンマ分の1乗)

要は裏返しただけです。打ち消し合う関係なので。
よって値が変化した時の振る舞いも逆で、
前者は「値が大きくなるほど暗く
後者は「値が大きくなるほど明るく
なる点に注意が必要です。

同じ「がんまにーてんに」といっても、ディスプレイガンマを指すなら前者(=元より暗く見えてる)、ガンマ補正なら後者(=元より明るく見せてる)ことになります。

冒頭でも言いましたが、おそらくより口にする機会が多いのは後者。ほとんど後者。
結果「ガンマあげてみようか」って言ったら「明るくしてみようか」の意味になります。
ところがもし、ディスプレイを調整してみよう、ガンマをいじってみよう、みたいなことがあったとしたら……ガンマを上げるにつれて、見た目は暗くなっていくでしょう。


ただただ「ガンマ」と言っていたあの頃は、ガンマ『補正』値の方しか知らなくて、
「γ=2.2」と書いてある図を見て

「なんで暗くなっとんねん(゚Д゚)」

と混乱していましたが、あれはガンマ『特性』の図だったのでしょう。
きっと図内には式も書いてあったでしょうし、よく読めっていう話しですね!
でも、当時は読んでも分からなかったんでしょう、きっと。
今も分かり切ったとは言い難いですが、気づくことはできそうです。

と言うわけで、「ガンマ補正」と検索すると真っ先に出てくるこちらの記事も
http://w3.kcua.ac.jp/~fujiwara/infosci/gamma.html
先に挙げた記事と関連する、EIZO様の記事も
http://www.eizo.co.jp/eizolibrary/other/itmedia02_07/
どちらも以前より興味深く読める気がしますし、
さらに、sRGBAdobeRGBが「ただ単に色の範囲を表すだけでなく、ガンマ値も込み」という意味も、いまならなるほどです。
これらはいずれも『ガンマ(補正値)2.2』で、2.2のガンマ特性をもつディスプレイで見たとき適正に見えるようにするのも込みの規格なんですね。(※厳密には、2.2ではないのですが。)

で、あーなるほど、
色空間はsRGBだけどガンマ補正はしない『リニアsRGB』っていうのもあるんですねー
ほう?
みたいな。
色空間とか言い出すと「RGBかYUVかCMYKかの話しでしょ?」ってなったり「カラープロファイル?色域??ACESとは——」「カラーコレクションカラーマネジメントカラーマッチング」とか用語が乱れ飛び、なんかもう倦んできて「リニアなディスプレイ出ればいいのに」などと特に他意無くとぼやきたくなるんですが、そしたら「そんなものは多分永遠に登場しないと思います」と教わったので笑みがこぼれました。
そこは人間の知覚がーっていう話しに立ち戻ったりもするので、確かに永遠に登場しないのですよ。きっと。

今知った 1 :
(Raw撮影できるカメラでは、Color Space と Gamma Space という呼び方で、別々に指定できるようになってるんですね)
今知った 2 :
(ディスプレイによる Gamma Decode を見越して収録機器側で Gamma Encode をかけるわけですが、最近はそれをやらない(=リニアで撮る)カメラもあるんですね(というかRawで撮影するカメラがそれか。))



■参考

カラーコレクションハンドブック 第二版
http://www.borndigital.co.jp/book/5090.html

(▲)こちらを読んでみたレビュー記事:
【ブックレビュー】カラーコレクション・ハンドブック 第二版
http://sproutmel.blogspot.com/2014/11/blog-post.html


あとから読んで、最初にこちらを読んでおけば……ってなりました(涎

ライティングしてみる その2 @ アメリカでCG屋をやってみる
http://takumikim.blogspot.jp/2013/10/blog-post.html
AfterEffectsでのリニア合成のお話(1) @ hiroshisaito.net
http://hiroshisaito.net/blog/2011/05/after-effects-1.html

wikipediaの関連ページ
http://ja.wikipedia.org/wiki/ガンマ値
http://ja.wikipedia.org/wiki/色空間#sRGB_.2F_AdobeRGB
http://en.wikipedia.org/wiki/Gamma_correction
http://en.wikipedia.org/wiki/SRGB


sRGBの「厳密には2.2ではない」くだりについては、こちらが分かりやすいです。
「sRGBのガンマは2.2」ってのは本当? @ イメージスキャナ開発室
http://imeasure.cocolog-nifty.com/blog/2009/11/srgb22-2780.html

ACESを使用したリニアワークフロー(UPDATED) @ VFX-MUDA BLOG
http://mudavfx.blogspot.jp/2012/10/aces.html

CG de カラマネ! @CGWORLD.jp
http://cgworld.jp/regular/cg-cms/

Scene-linear Workflow/ACES @ AREA Japan
http://area.autodesk.jp/column/trend_tech/scene_linear_workflow/

OpenColorIO
http://opencolorio.org/index.html

今日から始めるデジカメカラーマッチング
http://camera.itmedia.co.jp/dc/articles/1007/09/news004.html


追記@20150203
完全に余談なんですが……
リニアワークフローを調べていて下記の記事にたどり着く人はかなり多いと思います。

fieldjamのDesignVizエッセンス
第1回:リニアワークフローについて<その1>
http://area.autodesk.jp/column/tutorial/designviz_essence/1_about_linearworkflow_1/

この中で一瞬触れられている「Mac OSのガンマは1.8」という件ですが、
10.6から、OS X のガンマもWin同様 2.2 になりました。
この記事の掲載が2009年3月、10.6の発表が前年6月、提供開始が09年8月ということで、
なかなか、いろいろ難しいなあと思います。

ピクサーのLinear Workflow の記事
http://renderman.pixar.com/view/LinearWorkflow
ちゃんとじっくり読みたい…

0 件のコメント:

コメントを投稿