DaVinci Resolveや、そこから書き出した動画ファイルをYouTubeにアップロードするワークフローを考察する上で、重要な知識の一つが映像のガンマ処理だと考えています。これまでyamaqblogでも取り上げた、YouTubeでのカラーシフト問題の背景にあるのが、このガンマです。そこで、知っているようで深い理解が得られていないと思われる、映像のガンマ処理についてまとめてみました。これまでの歴史を踏まえた内容になっているので、じっくりご覧ください。
ガンマが必要になった背景
テレビ放送が生まれた頃の表示デバイスは、CRT(Cathode Ray Tube)いわゆるブラウン管でした。テレビ放送が4:3から16:9に移行するタイミングに合わせて、テレビ受像機の表示デバイスは液晶パネルに移行していきます。今では家庭用テレビの大半は液晶タイプになっていますが、表示のための内部処理ではCRTの名残があります。
CRTのガンマ値は、メーカーが異なっても2.35あたりでした。このガンマ値というのは、入力信号に対する出力信号の特性を示す時の、下記のような式で使われる指数部の値です。XとYの二次元のグラフに表すと、横軸Xが入力で縦軸Yが出力を示しています。この図の横軸と縦軸の数値は、0から1.0の範囲です。
ガンマ値が「1」の場合は、入力値の1乗なので、入力と出力は同じ値になります(下図点線)。右肩上がりの45度の直線になることから、「リニア」な特性と呼ばれることもあります。ガンマ値が1よりも大きくなると、入出力のグラフでは下側に窪んだカーブになり、入力に対して出力は暗い傾向になります。ガンマ値が1より小さいと、反対に上側に膨らんで明るい傾向になります。パソコンモニターの規格sRGBのガンマ値は2.2、デジタルシネマは2.6と規定されています。ガンマ値が大きい(ガンマが深い)ほどカーブは下側に窪み、映像の印象は暗く見えます。デジタルシネマを鑑賞する劇場は照明機器を消して真っ暗な場所にできるので、暗部の表現で微細な違いを表現でき、このようなガンマ値が深く設定されているのです。
テレビ放送は、カメラで被写体を撮影して、その結果がテレビ画面に表示されます。被写体の光から画面で表示する光までの、全体での総合的なガンマ値のことをシステムガンマと呼びます。テレビ放送の技術的な研究から、システムガンマが1.2近辺が適切だと結論づけられています。これにより、CRTガンマは2.35(下図緑線)だったので、カメラのガンマ値は1.2/2.35で、0.51と計算から求めることができます(下図青線)。時代は移り変わり、CRTから液晶テレビに変わった現在でもこの影響が残っていて、CRTの頃のような見え方を基準にしているため、液晶テレビのガンマ値は2.35に近い2.4と規定されています(下図赤線)。これはテレビ放送の規格である、ITU-R-BT.709を基にした改訂版と言えるBT.1886で規定されています。
BT.709が規定された頃はまだCRTが多く使用されていたので、モニターのガンマ値は2.35と決まっていたため、規格の中では特に規定はされていませんでした。その後、CRTから液晶モニターに置き換わったため、規格の中で規定する必要が出てきました。BT.709を補足するための勧告が作成されて、それがBT.1886となりました。
システムガンマ
映像でのガンマ値は、入力と出力のレベルの関係を表す時に使用されますが、カメラで使用されるガンマをOETF(Opto-Electronic Transfer Function)と呼びます。これに対して、モニターで使用されるのがEOTF(Electro-Optical Transfer Function)です。カメラは被写体からの光と電気信号を経てデジタルデータに保存されます。モニターは、Macのデジタルデータを私たちの視覚で見える光に変換します。
このように、被写体からの光が何らかの処理を経由して、最終的にはもう一度光に戻されます。この全体的な光の特性を見た場合のガンマ値を、システムガンマと呼ぶことがあります。先ほどのOETFやEOTFと同じ呼び方をすると、Opto-Optical Transfer FunctionなのでOOTFと呼びます。カメラからの入力側をOETF、モニターの出力側をEOTF、全体のガンマ値をOOTFを呼びます。このシステムガンマOOTFは、HDTVテレビでは1.2近辺がひとの視覚には最適であるとの研究結果をもとにしています。
macOSで採用されているシステムガンマ
前述のように、HDTVを規定したBT.709から始まり、その後発の規格BT.1886で規定したシステムガンマは、カメラガンマを過去の流れから0.51として、モニターガンマを2.4とBT.1886で規定したので、0.51×2.4で1.224となっています。理想的なシステムガンマと考えられている1.2に近い値になっていることがわかります。
同じように映像を表示するコンピュータを見てみましょう。AppleのMacでは、システムガンマが1.0(リニア)になっているようです。カメラガンマが0.51の前提で計算すると、1/0.51で1.9608となります(上図黒線)。BT.709のガンマが2.4であることから比較すると、カーブが浅く上側に位置するため、Macの表示の方が明るく見える傾向であることがわかります。なぜこの値になっているかの理由は不明ですが、映像制作者はこのシステムガンマの特性についての理解を持っていなければ、映像の正確な色再現ができない場合が出てくるでしょう。その一例がYouTube動画です。
Rec.709-Aってなに?
DaVinci Resolveのプロジェクト設定の中にある、カラーマネージメント設定や、Color Space Transformプラグインの中には、「Rec.709-A」の名称の項目があります。Rec.709は理解できても、「A」って何?の疑問を持たれている方が少なくないと思います。おそらくこの「A」は「Apple」に由来しているものと思われます。下のスクリーンショットは、DaVinci Resolve17.4.3のものです。
macOSで採用されている、ある意味特殊なガンマ値に対応するための設定項目がこのRec.709-Aなのです。Windows版のDaVinci Resolveでもこの項目はあるため、WindowsーMac相互でメディアファイルの見え方を統一したい時などで利用することを想定していると私は考えています。
今回この記事を書くにあたり、こちらのWebサイトの情報がとても参考になりました。合わせてご覧いただくことをお勧めします。執筆者の方にお礼を申し上げます。