toruのブログ

月1くらいで記事書きたい。

HDRコンテンツの輝度マップ生成用の3DLUTを作る

背景

HDTVTest に Star Wars: The Rise of Skywalker の解析動画が上がっていた[1]。この解析で利用されていた輝度マップは 低輝度領域はモノクロ高輝度領域はカラーと輝度レンジが明確に分かれるタイプで、今まで見たことが無かった。

この輝度マップは3DLUTを使えば簡単に作れると考え、実際に自分で作ることにした。

目的

  • HDRコンテンツの輝度マップ生成用の 3DLUTを作る
    • HDRコンテンツの低輝度領域(0~100nits) はモノクロにする
    • HDRコンテンツの指定した範囲の高輝度領域(100~1000nits)はカラーの輝度マップを適用する
  • 対象とする HDRコンテンツは以下のいずれかとする
    • Transfer characteristics: SMPTE ST2084, Gamut: ITU-R BT.2020, White point: D65
    • Transfer characteristics: SMPTE ST2084, Gamut: DCI-P3, White point: D65

結論

3DLUT の作成に成功した。作成した3DLUTをHDRコンテンツおよび自作のテストパターンに適用した例を図1~図3に示す。

各図には4つの画像が貼り付けてある。内訳は以下の通りである。

  • 左上: オリジナルのHDRコンテンツ
  • 右上: 以前にブログで作成した輝度マップ[2]
  • 左下: 【今回作成】Y成分に準じた輝度マップ
  • 右下: 【今回作成】RGBの各チャネルの Code Value 最大値に相当する輝度に準じた輝度マップ

従来(右上)と比較すると高輝度領域の細かな輝度変化が格段に認識しやすくなった。高輝度領域の解析には、こういった輝度マップが有用かもしれない。

名称
図1 f:id:takuver4:20200426175454j:plain
図2 f:id:takuver4:20200426175512j:plain
図3

作り方

概要

大したことはしてないので簡潔に説明する。以下の図4に示す通りである。

f:id:takuver4:20200426180832p:plain
図4. 作成した輝度マップの処理内容

図4から分かるように輝度マップは3つの領域に分けて作成した。

  • ①SDRの輝度領域(0~100nits)
  • HDRの指定した輝度領域(100~1000nits)
  • HDRの指定外の超高輝度領域(1000~10000nits)

まず、Linear に戻した後で Y成分を計算した。係数は RGB to XYZ 変換の Y の係数を利用した。

その後、①のSDRはグレースケールとして処理し、②のHDRは Turbo を使って色を塗り、③のHDRは Majentaでベタ塗りした。なお、図中の Turbo とは Google AI Blog にて紹介されていた Rainbow Colormap のことである[3]。

コードは make_luminance_map_3dlut.pymake_3dlut_for_luminance_map のところである。最初は30行くらいで書けると思っていたのだが、全然そんなことはなかった。色々と調整しているうちに難解なコードになってしまった…。

各チャネルの最大 Code Value 値に基づいたマップ

HDRコンテンツを解析する上では、Y成分だけでなく R, G, B の各チャネルの最大値について調べることも重要である(理由は…申し訳ありませんが省略させて下さい)。そこで R, G, B の各チャネルの最大値の Code Value から算出した輝度のマップも作成した。

図1~図3 の右下の結果がそれに該当する。作成の際は図4の「RGB to Y 変換」で Y を算出するのではなく、R, G, B チャネルのうちの最大値 の Code Value に相当する ST2084 の輝度を算出するようにした。

3DLUTのダウンロード

作成した 3DLUT 一式は以下に置いてある。もしも興味のある方がいれば自由に使って頂いて構わない(トラブル発生しても責任は取れません)。

3DLUT一式のダウンロード

2020/04/29 追記 3DLUT一式のダウンロード その2※

※オリジナルの HDR動画と sRGB のカラーマップを Side By Side で比較しやすいように、sRGBのカラーマップを ST2084 の箱に入れる版の3DLUTを追加した(意味が解らない人は使わないで下さい)

考察というか感想

動画に対して複数の3DLUTを適用して同時再生すると楽しい!

参考資料

[1] HDTVTest, "[HDR] Star Wars: The Rise of Skywalker 4K Blu-ray HDR Analysis", https://www.youtube.com/watch?v=Hssiak8c4Js&feature=youtu.be

[2] toruのブログ, "Turbo を利用した HDR10 画像の輝度マップ作成", https://trev16.hatenablog.com/entry/2019/08/25/131001

[3] Google AI Blog, "Turbo, An Improved Rainbow Colormap for Visualization", https://ai.googleblog.com/2019/08/turbo-improved-rainbow-colormap-for.html