HLGとはなにか

TL; DR

glasnsciです。普段は写真と天体撮影で休日の時間をプチプチ潰していますが、ここしばらくの自粛で脂肪と鬱憤は貯まるばかりです。ところで、本年1月に愛機のEOS 5D Mark IVを点検・修理に出すのと同時にCanon Log用の有償FWを適用してもらいました。いよいよワタクシも本格的な動画撮影について小さな一歩を踏み外そうとしています。そこで、本稿ではシネ撮影1でしばしば使われているHLG(Hybrid Log Gamma)撮影について、備忘録を兼ねて紹介します。結構長いですが、中身はお察しください。

人間は褒めて伸ばすらしいですが、奇怪科では叩いて延ばします

ある昼下がりのことです。ワタクシは奇怪棟三階の廊下に面したnagahiro先生の教官室で、先生・悪友Nと談笑していました。ある先生の板書を見て「エントロピーがでかい」とか、「その話、動かざること岩の如し」などと言ってゲラゲラと笑い、いい気分に浸っておりました。nagahiro先生の教官室は、教官室ゾーンのほぼ端っこに位置しています。そんな中、教官室のもう片方の端に位置するX先生の教官室の扉が開き、先生が出てきます。

X先生はおかしなことがたくさん発生する我らが奇怪科の中でも良識と良心を持ち合わせた先生で、なにか相談をすると親身になってくださいます。悪ガキが多い本校の学生どももX先生ばかりはその御身からあふれる後光の偉大さのあまりひれ伏す、そんな尊敬を一身に集める先生です。

そんなX先生がこちらに向かって歩いてくる様子を見、「あ、ドーモ、先生。お疲れさまです」と、ワタクシはおもむろに挨拶。それに対して、X先生は開口一番に

「glasnsciさ、最近先生のことバカにしてない?」

はっ。ワタクシは布団の上で目が覚めました。夢だった。気をつけよう。

まずHDR合成の復習をします

HDR合成、High-dynamic Range合成は、主に写真で使われる処理手法です。ある撮影した写真の露出量を0 EVとしたときに ± 1~3 EV程度露出をずらした写真を撮影します。露出アンダーな写真の明るい部分と、露出オーバーな写真の暗い部分を0 EVの写真に重ね合わせる手法がHDR合成でした。かつて、フイルム撮影をしていた時代は覆い焼きなどで露出時に救い出すことが(困難ですが)可能でした。しかしながらディジタル写真では(特にハイライト側の)ラティチュードが狭いため、現像時に救済することが不可能なことが多く、このような手法が生まれました。

Salvation Armyも露出オーバーは救えないのです。アーメン。

f:id:fornax:20200518121037p:plain

動画でもスチルみたいにHDRな絵を作りたい!

HDR合成の特徴は複数枚の写真を合成することでした。しかしながら、経時変化する様子を逐次撮影している動画では、同じ手法は使うことができません。コマ間で写っているものが動いてしまいます。そのためHDR合成をすると、経時変化した際に動いた物体は、いかがわしいアーチファクトとしてボヤボヤした映り込みになってしまいます。

では、どうすればいいんでしょう。

昔の偉い人は考えました。せや、ガンマカーブを変化させればええんや!(偉い人)。多分コダックの人かなあ。

フイルムとデジタルの違い

フイルム写真では、光がハロゲン化銀が塗布されたフイルムに当たると銀粒子の潜像が形成されるので、該フイルムを現像液や定着液に浸して現像処理する、というプロセスでした。フイルム写真の露光に関して最も特徴的なのは相反則が成立しない領域が存在する(相反則不軌が存在する)2、ということです。また、フイルムカメラはラティチュード(≈ダイナミックレンジ)が広いという特徴があります。

対して、ディジタル写真で得られるまでにはセンサー(撮像素子)が光を取り込んで、画像処理エンジンがそれを処理し画面や記録媒体に出力するというプロセスが必要です。撮像素子に光が当たると光電効果によって、素子の中にある小さな小さなセルからは電荷が飛び出してきます。光子を一つ取り込んで電化が必ずしも一つ飛び出してくるわけではありません。センサーによっていくつ光子を取り込んで、いくつ電荷を吐き出すかは異なります。が、ここはあくまで定数倍しているだけなので、光子と電荷の関係はリニアになっています。問題はここから後で、セルに入った電荷をいくつカウントして、輝度をいくつ上げるかというのは必ずしもリニアな関係にならないものです。しかしながら、フイルムに比べれば、基本的に素子に受光した光子数と吐き出される輝度値はほぼリニアな関係になっていると思っても問題はありません。

人の感知量

ところで、人の感覚は対数になっている、と聞いたことがある方は多いと思います。かつて、Weberは判別可能な刺激量の差 \Delta Rはある基準刺激量を Rとしたときに、その比が一定になることを発見しました。

\dfrac{\Delta R}{R}=\rm{const.}

弟子のFechnerは上式を積分してFechnerの法則(Weber-Fechnerの法則とも)を見出しました。これは、刺激量の強度を Rとしたときに、感覚的に受け取る刺激量E

E=C\ln{R} \ \ Cは定数

で与えられるものです。

Weber-Fechnerの法則が代表する対数スケールの身近な例として、音圧レベルでのデシベルが挙げられます3。これは、基準圧力 p_0=20\ \mu\rm{Pa}、ある地点での音圧 pとしたとき、その地点での音圧レベル \rm{SPL} (dB)は

 \mathrm{SPL} =10\log\left(\dfrac{p}{p_0}\right)^2

で与えられます。底がeから10になっていますが、変換公式を使えばいいだけですよね。人間の耳は対数スケールなのです。たとえ鼓膜を震わす圧力が10 Pa増えようとも、感知できる音量が10×const dB増えるわけではないのです。

ガンマカーブとHLG

ガンマカーブは入力xに対する輝度値の出力yを表したカーブy=x^\gammaのことで、スチル写真の分野ではトーンカーブがだいたい同じものに該当しています。一般にはテレビやPCディスプレイは特有のガンマ特性を持っているため、これらに合わせてガンマカーブの補正(=ガンマ補正)を行い、\gamma=1になるようになっています。ガンマカーブは光情報を電子情報に変換するときに使われ、また電子情報を光情報に変換するときに使われています。

今日一般的に使われるように記録方式がITU-R BT.709という規格で、線形のガンマカーブを使用することになっています。線形ガンマカーブの問題は、人の目にたいしてラティチュードが狭いため線形ガンマで変換したデータでは人の目の認識できる階調を十分に表現できないという点です。ハイライト側やシャドー側の階調を抑えて後から復元できるようにしたいというニーズは強いのです。人の目で見るのに対して不自然だから、という理由ももちろんありますが、階調がきっちり復元されていないとポストプロダクション(後処理)の際に階調が破綻するから、という理由もあります。

このようなニーズに答えるために、BT.2100という規格が登場しました。BT.2100はガンマカーブに対数スケールを導入することによって、主にハイライト側の階調が破綻しないようにしたものです。

BT.2100では変換に OETFOpto-Electro Transfer Function:光電子変換関数)を使い、入力される光の強度E(規格化した値)に対して、対数スケールの変換を行います。

 \mathrm{OETF}(E)=
\begin{cases}
{}
\sqrt{3E} & (0\leq E<1/12)\\
a\ln{(12E-b)}+c & (1/12\leq E<1)
\end{cases}

ここに、 a = 0.17883277, b=1-4a, c=0.5-a\ln(4a)となります。E, \mathrm{OETF}の範囲は0から1まで(0から255まで)になります。対数関数とその他の関数を複合した関数使用して変換するから、Hybrid Log Gamma:HLG撮影なのです。OETFには自然対数項が入っていて、これが人の感覚に合わせた対数的な輝度表現・階調表現として機能します。

HLG撮影ではコントラストが減る方向に(明るくはなりますが)変換します。撮影データはコントラストが減っていますので、減ったコントラストは復元したいと思うのが人情であります。きっと寅さんもそう思うに違いないでしょう。そもそも、階調を復元できるようにわざわざ複雑な関数4を使って撮影したので、撮影したデータに逆関数を作用させれば、もとの階調を復元できるはずです。これをEOTF(Electro-optic transfer function)といって、ガンマカーブをもとに戻す役割を果たします。これで、減ったコントラストももとに戻り、かつBT.709で失われるはずだった階調も無事に記録することができるようになりました。

HLG撮影の利用方法

HLG撮影ではコントラストが減って、階調豊かに記録されるようになるので、ポストプロダクションでより強い強調処理をかけられるようになります。そのため、映画を撮影するようなシネカメラでは必ずHLG撮影できるような機能が実装されています。また、シネカメラの製造元ではLUT(ラット): Look Up Tableを配布しており、HLG撮影したデータからもとの階調を復元できるようにしてあります。LUTは彩度や明度の変換式が書かれたもので、うがって言えば、ガンマカーブを変換する関数です。個人でもLUTを作成することは可能であり、HLG撮影する場合も、Adobe Premiere ProやDaVinci Resolveを使ってLUTを当ててシネマチックな映像を作るのに使ったりします。

終わりに

長かった……。最後の方が駆け足になりましたが、以上でHLG撮影の背景とその概要・使いみちに関しての報告を終わります。なお、本稿はglasnsciが個人で調べて書いているので、所々に誤りがあるかもしれません。見つかった際は修正していきます。次回は多分、LUTの編集の仕方を(多分)同志sonnarが投稿してくれるでしょう。

参考

https://www.itu.int/rec/R-REC-BT.709
https://www.itu.int/rec/R-REC-BT.2100
よくわかる、HDR徹底解説! ガンマカーブの違い | EIZO株式会社


  1. 映画での撮影のこと

  2. フイルムで撮影する際にはフイルム面に入射した光量と得られるフイルムの潜像の量には線形的な関係が成り立ちます。これを相反則と言います。しかしながら、極低輝度の超長時間露光時・極高輝度の超短時間露光時においては、この線形的な関係が崩れることが知られています。これを相反則不軌といいます。極低輝度超長時間露光では形成された潜像が再びハロゲン化銀に戻ってしまうため、また、極高輝度超短時間露光では潜像を形成するのに十分必要なだけのエネルギーを授受できないために潜像形性が妨げられることが知られています。普通の写真では、線形的な関係が成り立つ領域で写真を撮影しているため、気になりません。とくに高輝度側で問題になることはありませんが(ナノ秒オーダーで問題になるため)、長時間露光は民生用カメラで行われるバルブ撮影でありえます。

  3. デシベルは他にも電子工学分野のゲイン(利得)でも使います。

  4. 疑問を呈したい