シリコンスタジオ川瀬氏が説くゲームグラフィックスをHDR映像としてHDRテレビに出力する方法
本稿は,当日行われた4セッションのうち,とくに密度の濃かったHDR関連のセッションについてレポートしたものである。それ以外の3セッションについては,こちら(関連記事)を参照いただきたい。
講演を行ったシリコンスタジオ事業統括本部 技術統括部ミドルウェア開発部リード・ソフトウェアエンジニア/シェーダ・アーキテクト川瀬正樹氏は,日本におけるHDRレンダリング技術の先駆者であり,DirectX 8時代から独自のアプローチでHDRレンダリング技術を実装して,そのノウハウを国内外に広めたことで知られている。
シリコンスタジオが取り組むHDR対応と実例について
シリコンスタジオのプラベートセミナー,最後のプログラム「シリコンスタジオが取り組むHDR(High Dynamic Range)対応と実例について」セッションでは,リアルタイムグラフィックスのHDR出力にまつわる実装実験で得られた知見が報告された。
リアルタイムグラフィックスにおいて,HDRレンダリングが標準的に採用されるようになって10年近くが経過するが,これまでHDRレンダリングといえば,ライティング計算を(ディスプレイ表示用階調のガンマ空間ではなく),リニア空間で行うことを指していたわけだが,HDR出力対応のディスプレイ機器やテレビ製品が市販されるようになった昨今では,HDRレンダリングした映像をどうやってHDRのまま出力していくべきか……という点についてまでを考えていかなくてはならなくなる。ミドルウェアメーカーのシリコンスタジオとしては,このあたりの知見をいち早く蓄えていこうということで,早々と実装実験に挑戦したというわけだ。
GPU側からHDR出力を行って,HDR対応のディスプレイ/テレビで出力するためには,これまでの非HDR(以下,Standard HDRの略語,SDRと記する)前提のディスプレイ/テレビを想定したパイプラインにHDR対応の処理系を組み込んでいかなければならない。
まず第一に,HDRでは,従来のガンマカーブとは異なるEOTF(Electro-Optical Transfer Function)を利用する必要がある。
コンテンツ側(すなわちCG側)としては,どのHDR方式のEOTFに対応するかを選定したうえで,そのEOTFの逆関数であるOETF(Opto-Electronic Transfer Function)を掛けた映像信号を出力する必要がある(従来のSDRでいうところのガンマ補正に相当)。
要するに,従来のSDRでも気にしていたガンマの取り扱いがHDR対応EOTF/OETFになるということである。
HLGは,従来のSDRとの互換性が高く,コンテンツ制作者がSDR環境でHLG対応HDR映像を確認したとしても,明るい部分が飛んでしまうような感じになる程度で,映像としてはまあまあ見られるという特徴がある。しかし,PQは,想定される最大輝度にもよるが,数値量と輝度の対応がかなり変わってしまうので,SDR環境でPQ対応HDR映像を見ると,かなり変な映像に見えてしまう。仕様上はPQのほうがより高いダイナミックレンジを表現できるが,民生向けのHDR対応ディスプレイ/テレビは,当面は1000nit+α程度,将来的にかなり明るいモデルが出てきたとして2000nit程度だと言われているので,HLGで十分だという声がある。ちなみに,現時点の映像制作現場で活用されているHDRマスターモニターで最も明るいものでも最大4000nit程度である。
HDR対応ディスプレイ/テレビは,色空間モードとして現実世界の物体色の99%をカバーするBT.2020規格の色空間に対応していることもあり,HDR映像の出力に関してはこれとセットで用いられることが多い。
採用しているレンダリングパイプラインやテクスチャなどの関連アセットが従来方式のsRGB(BT.709)前提で制作/設計されている場合は,レンダリングをsRGB色空間で行い,これをOETF変換の前にsRGB色空間からBT.2020色空間に変更しなければならない,と川瀬氏は解説していた。
これに対して川瀬氏は「実際には必須です」と強調していた。
なぜかというと,実際問題として,リニア空間でレンダリングしたHDR映像をそのままディスプレイ/テレビに出力することはできないからである。
どういうことかというと,現在のHDR対応ディスプレイ/テレビと呼ばれているものは,表現できる最大輝度のばらつきがある。
川瀬氏のスライドでは「1000nit〜2000nit」と記されているが,民生向けHDR対応テレビだと,筆者の取材した範囲では1000nit+α程度だし,業務用のマスターモニターでも1000nitや4000nit程度までである。
あえて極端な話で喩えるが,屋外シーンで光源として太陽光(約16億nit)を設定した場合は,シーン全体の照度も非常に高くなる。そのシーンのレンダリング結果は,たかだか最大輝度が数千nitのHDRディスプレイではそのまま出力できないことは想像ができるだろう。かといって,高輝度値を含む描画結果を,たかだか数千nit程度で丸め込んで(最大値以上の値はすべて最大値としてしまって)表示したとしたら,それはそれで表示が不自然に見えてしまうはずだ。
つまり,数億レベルの輝度値を含む映像を最大数千nitの輝度表現能力を持つディスプレイ/テレビ向けにトーンマッピングしてやる必要がある……というわけだ。川瀬氏は,HDRのデータを“MDR”(SDRではないが正しいHDRでもない)機器用に変換する必要があると表現している。
単純に考えれば,SDR時代に用いていたSカーブを,表示したいHDR対応ディスプレイ/テレビに合わせてスケールすればいいことになる。
例えば,1000nitのHDRディスプレイ/テレビへの出力を行うのであれば,SDR(100nit)向けに使っていたトーンカーブを10倍して利用すれば辻褄の合うHDR対応版トーンマップ処理ができそうに思える。
しかし,この単純拡大をやると,Sカーブ特有の暗部階調を緩やかに割り当てる特性までも拡大されてしまい,SDR対応ディスプレイ/テレビ向けに作り込んでいた画作りとの乖離が起きてしまう。
そこで川瀬氏が考案したのは,輝度値0.5(50nit)相当までをSDR映像と共通化した独自のHDRトーンマップ用のトーンカーブである。
このトーンカーブの特徴は0.5以上を緩やかに飽和させるカーブ付けているところだ。こうすることで,HDR出力の最大輝度値の大小にはあまり影響されず,SDR映像の輝度領域の大部分を一致させることができるのだ。
裏を返せば,SDR映像を見ながら画作りしても,HDR出力時にも大きな破綻が起きにくいということでもある。
このほか,HDR出力に対応させる場合に注意すべき点として,川瀬氏は,「HDR出力を行うにあたっては,レンダリングピクセルフォーマットは10ビット以上を使うこと」「半ば当然だが,出力ピクセルフォーマットにsRGBフォーマットは使わない」「ユーザーインタフェース画面(メニュー,ゲージ,HUDなど)はSDRで描画する」といった「HDR対応に際しての注意点」について言及していた。
さて,HDRレンダリングの定番表現となっている高輝度領域に対して,溢れ出し効果(グレア),逆光表現(レンズフレア)などを,光学的なシミュレーションによって生成している場合はとくに変更する必要はないが,物理的根拠が薄くアーティスティックな演出意図で生成しているケースでは弱めに設定したほうが無難だと川瀬氏は指摘する。これは,HDRディスプレイ/テレビによって表示される映像の高輝度部を自分の目で見ることによっても十分に「眩しい視覚現象」は起こるからである。
また,HDRレンダリングした映像に対しての露出調整……実質的にはトーンマップを行う際の基準値の算出については,HDR出力だからといって,別段,特別なバイアスを適用する必要はないと川瀬氏は解説する。
HDRディスプレイ/テレビがいくら高輝度領域でも正確な色表現が行えるからといって,見るのは今までどおり,我々人間の視覚である。「より高輝度な領域まで正確に映せる」だけなのだから,HDR出力するからといって,あえて露出を変化させる必要はないのだ。川瀬氏は「映像中の暗い部分はSDR出力時と同じ状態であることが正しい」とも述べていた。
最後にもう一つ,川瀬氏は,実際にHDR出力実装を試みた経験者だからこそ語れる,興味深い事柄について言及した。
SDRテレビが最大輝度100nit……というのは遠いブラウン管テレビ時代の規格定義であり,そもそも現在の液晶パネル(+LEDバックライト)や有機ELパネルベースのSDRディスプレイ/テレビの輝度性能はすでに最大100nitではないし,そもそも発色ですらもsRGBに囚われていないものが多い。普通にSDR映像として出力し,これを現在のSDRディスプレイ/テレビに入力したとしても,SDRディスプレイ/テレビ側の高画質化映像エンジンが独自の解釈で色域を拡大したり,疑似的なHDR表示を行っていたりする。
なので,定義どおり,規格どおりにHDR出力すると,「SDRディスプレイ/テレビ側の高画質化映像エンジンによるSDR映像の疑似HDR表示」よりも味気ないものに見えてしまうことがあるという。
そこで,SDR時の画質作り込みもSDRディスプレイ/テレビ側の輝度を100nitよりは高い輝度になっているものとして画調を作り込んだほうがいいかもしれないと川瀬氏は語る。
例えば,具体的にはSDR出力用のトーンマップのトーンカーブを,例えば300nit基準にして画調を作り込んだとすれば,さらにHDR出力用のトーンマップのトーンカーブもここから延長されるようなものにするわけである。上で,川瀬氏は輝度値0.5(50nit)相当までをSDR映像と共通化した独自のHDRトーンマッピング用のトーンカーブを紹介したわけだが,300nit基準にSDR映像の画調を作り込んだ場合は,当然3倍の輝度値1.5(150nit)相当までをSDR映像と共通化したHDRトーンマッピング用のトーンカーブを用いることになる。単純にHDRトーンマッピング用のトーンカーブを3倍にしてしまうと高輝度部分も3倍になってしまうので,そうした領域は3分の1に抑え込んだトーンカーブにする必要がある。
このテクニックを使うと,SDR出力時とHDR出力時の輝度感や色味の違いを抑えることができる半面,SDR出力用のトーンマップのトーンカーブの倍率を上げてしまっているので,HDRとしての表現力はその逆数分に低減されてしまっている。つまり,上で300nit基準でSDR映像を作り込んだ場合は,これに合わせてHDR出力用のトーンマップのトーンカーブで作ったHDR映像は,HDR効果として3分の1になっていることになる。なので,SDR出力用のトーンマップのトーンカーブをスケールするにしても,せいぜい3倍の300nit基準暗いが上限だと思う……と川瀬氏は語る。
注意点としては,こうした「3倍」のようなバイアス操作は「リニア空間の輝度量に対しては行わないこと」と川瀬氏は注意を促していた。これをやってしまうと,それは露出の変更になってしまうためだ。つまり,このテクニックは,あくまでトーンマップの工夫だということである。
HDRはまだ過渡期だが本格HDR時代に備えよ
昨年より,HDR対応4Kテレビの製品ラインナップは充実してきているが,HDRコンテンツのほうは,VODシステムやUHDブルーレイで対応が始まった程度で,まだまだ一般に普及しているとはいいがたい。ただ,規格上,HDMIケーブル1本で,4KまでのHDR映像出力が市販テレビにに対してできるようになったことを考えると,今後,ゲーム業界において対応が活発化していく可能性はある。実際,Unreal Engine 4などの主要ゲームエンジンがHDR出力対応を果たしてきており,PCゲームを先駆けとしてHDR出力対応ゲームも徐々に出てくるはずだ。
今後,シリコンスタジオに限らず,HDR出力への対応実験を始めようとする映像制作スタジオ,CGスタジオ,ゲームスタジオは多くなるはずで,今回のHDR出力にまつわる知見の公開は相当有用なものだったといえる。
当面は「SDR出力を無視できない」「SDR出力が主流で,ハイエンド環境プレイヤーのためにHDR出力に対応する」というスタンスにならざるを得ないため,現状のコンテンツ制作パイプラインをがらりとは変えずにHDR対応を行っていく……という開発スタイルが中心になっていくことだろう。
川瀬氏も,そうした現実路線な近況動向を踏まえつつも,いずれHDR出力が当たり前となったときには,レンダリングパイプラインのすべてを広色域に対応することや,制作に参加するアーティストをはじめ多くのスタッフの作業用ディスプレイをHDR/広色域対応にしていくことが必要になるだろう,と予見していた。たしかに,よくHDR/広色域対応テレビのデモ映像で見られる,南国のシアン色のような珊瑚礁の風景,アマゾン棲息の色鮮やかな昆虫や野鳥,色鮮やかな草花……などをCGやゲームで再現しようとなると,テクスチャマップからHDR/広色域を前提に制作しなければならなくなり,制作者すべてのディスプレイ機器をHDR/広色域対応となければまともな制作はできなくなるのは理解できる。
川瀬氏も,セッションのまとめとにおいては,「現状や当面は,映像の出力だけをHDR/広色域に対応させることから始め,おいおい広色域対応に踏み出していくのが現実的なソリューションではないか」とコメントしている。つまり,直近では,「完全SDR/sRGB色域で制作,およびレンダリング」→「ディスプレイ/テレビ出力時に広色域変換。OETF変換してHDR出力」という対応に済ませておき,いずれ「テクスチャなどは従来どおりsRGBで設計」→「レンダリング時のテクスチャマップ読み出し時に広色域に変換」→「光源色などは広色域前提で設定し,ライティング計算も広色域対応」→「OETF変換してHDR出力」といったパイプラインにステップアップしていく,ということだ。テクスチャ設計までをHDR/広色域次元で行うのはそのあとということになる。
現在は,広色域とHDRといったフィーチャーが4Kテレビ/4Kディスプレイとペアになっているため,広色域/HDR環境がハイエンド製品となってしまっているが,いずれ,フルHDクラスの広色域/HDR対応のテレビやディスプレイ製品も出てくるはずで,そうなったときこそが,本格的な広色域/HDR時代の到来ということになるだろう。ゲームファンで,テレビやディスプレイの買い換えを検討している人は,そうした製品のリリース動向にアンテナを張っておく必要があるかもしれない。
シリコンスタジオのVR戦略とノンゲーム分野への進出
おまけ〜ソニーPCLの350インチ,4K,LEDディスプレイの実力やいかに?
このシリコンスタジオのセミナーでは,HDR出力対応ディスプレイとしてソニーPCLが業務用に販売/リースをしているLEDディスプレイ「4K VIEWING」が用いられていた。なお,つい先日発表されたばかりのCLEDIS技術ベースのLEDディスプレイ(参考URL)とは別モノである。
この4K VIEWINGの画面解像度は3840×2160ピクセルで,画面サイズは355インチ(8m×4.2m)。ただし,今回の設置事例では設置環境の天井高の問題で,縦方向がフルスペック4Kになってはいない。具体的には上下に4K映像をクリップアウト表示させる,縦解像度は1872ピクセル,画面サイズは約350インチになっていた。
各画素はSMD(Surface Mount Device)型LEDチップでドットピッチは約1.9mm。SMD型LEDチップ自体はソニー製というわけではなく,メーカー名非公表の中国のLEDメーカーのものを採用しているとのことである。
各画素小さなRGB(赤緑青)の3原色サブピクセルLEDで構成されており,当然自発光するため発色は鮮烈で明るい。黒はLED画素の非点灯で表現されるため,黒の締まりは良好で極めてハイコントラストだ。公称コントラストは非公開だが,最大輝度は1000nitとなっている。
視野角は垂直水平約160°。斜めから掠め見ると色変移こそ起こらないが,若干暗く見えるのは,各画素LEDが凸状に実装されているためだ。そう,掠め見ると凸状画素同士の遮蔽の影響が出るのである。
350インチといえば,もはや,画面サイズ的には小規模サイズの映画館といった感じである。この画面サイズの4K映像は,もちろんプロジェクタからの投射映像としては見たことがあるが,直視型ディスプレイとして見たのは初めての経験だ。
数メートル離れて見た感じでは1枚映像パネルにしか見えないこの4K VIEWINGだが,実は,40cm×30cmのLEDディスプレイモジュールをタイル状に並べて構成しているものだったりする。1モジュールあたりの解像度は208×156ピクセルで,4K画面は20×14モジュール構成で実現されている。つまり実際には4160×2184ピクセルのディスプレイとして構成されることになる。ちなみに,ソニーPCL担当者によれば,最大で8K×2Kの超横長構成での実動経験があるそうである。
継ぎ目がほとんど見えないのはモジュールの継ぎ目をドットピッチの1.9mmと同等に抑え込めているためだ。視距離1m以内にまで近づいて単色フレームを表示させると淡い「田」の事情の継ぎ目が見えるが,自然画像ではほとんど気にならないのが凄い。
現在の最新仕様では,HLG方式のYUV=4:2:2フォーマットのHDR映像入力に対応しており,今回のシリコンスタジオのHDR映像実演はこの形式に準じたものになっているとのことであった。
気になるのはお値段だ。基本はレンタルやリース提供が前提となるが,販売提供もあり,その場合は1億2000万円程度とのこと。
現在,映画コンテンツのHDR対応化が進んでいるが,現在のプロジェクタによる投射系アプローチではHDRの映像表示は難しいとされている。であれば,こうした直視型のLEDディスプレイが次世代シアター向けスクリーンの本命となっていく可能性もあるのかもしれない。