実践的なHDR出⼒対応〜レンダリングパイプラインの構築〜

シリコンスタジオ株式会社
ミドルウェア開発部
リード・ソフトウェアエンジニア
川瀬 正樹©Silicon Studio Corp., all rights reserved.

内容• 本セッションの⽬的• ⾊空間• 前提として押さえておきたいこと• 基本的なレンダリングフローの検討• その他の考慮すべきこと• 互換性重視レンダリングフローの構築• まとめ©Silicon Studio Corp., all rights reserved.

2

本セッションの⽬的

本セッションの⽬的
⾊空間
前提として押さえておきたいこと
基本的なレンダリングフローの検討
その他の考慮すべきこと
互換性重視レンダリングフローの構築
まとめ©Silicon Studio Corp., all rights reserved.

本セッションの⽬的• HDR出⼒レンダリングフロー構築のためのノウハウ– レンダリングフローを構築する際の考え⽅– SDRとの互換性の保ち⽅• レンダリングフローを独⾃に構築できる– 必要な条件によって最適なフローも変化– 各々に最適なフローを必要に応じて構築できる©Silicon Studio Corp., all rights reserved.

4

⾊空間

本セッションの⽬的
⾊空間
前提として押さえておきたいこと
基本的なレンダリングフローの検討
その他の考慮すべきこと
互換性重視レンダリングフローの構築
まとめ©Silicon Studio Corp., all rights reserved.

⾊空間(Color Space)とは︖• ⾊を定量化するための空間– よく知られる⾊空間(⾊空間として参照される規格等)
sRGB, Adobe RGB, ProPhoto RGB, DCI-P3, ACEScc, ACEScg,
BT.709, BT.2020, BT.2100 PQ, BT.2100 HLG, etc.

• ⾊域・伝達関数・輝度や鑑賞条件等で定義される– ⾊空間がどのような定義を含むかは各々異なる• 規格によって厳密さや内容も異なる• ⾊空間以外の規定も含む規格も– 例えばBT.709はビデオ信号規格• ⾊空間だけでなく解像度や⾛査線、画像伝送レート等も含む©Silicon Studio Corp., all rights reserved.

6

⾊空間を構成する要素• ⾊域(Gamut)• 伝達関数(Transfer Function)• 輝度条件や鑑賞条件、ビット深度等©Silicon Studio Corp., all rights reserved.

7

⾊域(Gamut)• そもそも三原⾊と⽩が具体的に何を指しているか︖– ⾚(r,g,b)=(1,0,0)とは物理的にはどのような⾊︖– ⽩(r,g,b)=(1,1,1)とは物理的にはどのような⾊︖• 三原⾊と⽩⾊点の⾊度座標で定義される– ⼀般的にCIE 1931 xy⾊度座標– ⽩⾊点も定義されるため、⾊温度も意識する必要あり©Silicon Studio Corp., all rights reserved.

8

ITU-R BT.709

CIE 1931 xy©Silicon Studio Corp., all rights reserved.

CIE 1976 u’v’

9

ITU-R BT.2020

CIE 1931 xy©Silicon Studio Corp., all rights reserved.

CIE 1976 u’v’

10

Adobe RGB

CIE 1931 xy©Silicon Studio Corp., all rights reserved.

CIE 1976 u’v’11

DCI-P3

CIE 1931 xy©Silicon Studio Corp., all rights reserved.

CIE 1976 u’v’

12

⾊空間を構成する要素• ⾊域(Gamut)• 伝達関数(Transfer Function)• 輝度条件や鑑賞条件、ビット深度等©Silicon Studio Corp., all rights reserved.

13伝達関数(Transfer Function)• いわゆるガンマカーブ• EOTFまたはOETFで定義される– EOTF(Electro-Optical Transfer Function: 電気－光伝達関数)• テレビ側デガンマ– OETF(Opto-Electronic Transfer Function: 光－電気伝達関数)• コンテンツ側ガンマ補正• sRGBやAdobe RGB, BT.709等も全て伝達関数をもつ– ⾊域だけを指す訳ではない©Silicon Studio Corp., all rights reserved.

14

さまざまな⾊空間の伝達関数• 伝送関数(Transfer Function)の例– sRGB⾊空間: 暗部に線形領域をもつガンマカーブ(γ~2.2)– BT.709: 暗部に線形領域をもつガンマカーブ(γ~1.9)• BT.2020もほぼ同じ(ビット深度によって⾼精度な定義あり)– Adobe RGBやWide Gamut RGB: γ~2.2(563/256=2.19921875)– Display P3: sRGBガンマの数値計算精度を上げたもの(γ~2.2)– DCI-P3: γ2.6
– BT.2100 PQ: Perceptual Quantizer / ST.2084– BT.2100 HLG: Hybrid Log-Gamma / ARIB STD-B67©Silicon Studio Corp., all rights reserved.

15

OETF例• 代表的なSDR伝達関数– sRGB– Adobe RGB– BT.709 / BT.2020– DCI-P3©Silicon Studio Corp., all rights reserved.

16

OETF例• sRGB– 𝐿 ≤ 0.0031308• 𝑉 = 12.92𝐿– 𝐿 > 0.0031308• 𝑉 = 1 + 0.055 𝐿1/2.4 − 0.055©Silicon Studio Corp., all rights reserved.

17

OETF例• Adobe RGB– 𝑉 = 𝐿256/563 = 𝐿1/2.19921875©Silicon Studio Corp., all rights reserved.

18

OETF例• BT.709 / BT.2020(10-bit RGB)
– 𝐿 ≤ 0.018• 𝑉 = 4.500𝐿– 𝐿 > 0.018• 𝑉 = 1 + 0.099 𝐿0.45 − 0.099• BT.2020(12-bit RGB)
– 𝐿 ≤ 0.0181• 𝑉 = 4.500𝐿– 𝐿 > 0.0181• 𝑉 = 1 + 0.0993 𝐿0.45 − 0.0993©Silicon Studio Corp., all rights reserved.

19

OETF例• DCI-P3– 𝑉 = 𝐿1/2.6©Silicon Studio Corp., all rights reserved.

20

暗部の⽐較(BT.709, γ1.9, sRGB, γ2.2, DCI-P3)©Silicon Studio Corp., all rights reserved.

21

単⼀ガンマ近似との⽐較︓sRGBとγ2.2補正©Silicon Studio Corp., all rights reserved.

22

単⼀ガンマ近似との⽐較︓BT.2020とγ1.9補正©Silicon Studio Corp., all rights reserved.

23

⾊空間を構成する要素• ⾊域(Gamut)• 伝達関数(Transfer Function)• 輝度条件や鑑賞条件、ビット深度等©Silicon Studio Corp., all rights reserved.

24輝度条件や鑑賞条件、ビット深度等• 規格によっては細かく規定されている– ただし実際の運⽤で必ずしも準拠しているとは限らない• 例えばディスプレイ輝度は– sRGB: 80cd/m2(=nt: nits)– Adobe RGB: 160cd/m2– BT.709/BT.2020のテレビ出⼒(BT.1886): 100cd/m2– DCI-P3: 48cd/m2• 他にも周囲環境の明るさや⾊温度など©Silicon Studio Corp., all rights reserved.

25

本セッションで頻繁に参照する規格等• BT.709/BT.2020– Recommendation ITU-R BT.709/2020あるいはRec. ITU-R BT.709/2020の略• ITU-R(ITU Radiocommunication Sector: 国際電気通信連合の無線通信部⾨)の勧告• Rec.709/Rec.2020とも略される– HDTV(BT.709)やUHDTV(BT.2020)のSDR信号規格• 伝達関数は暗部に線形領域をもつγ1.9程度のカーブ– カメラ側ガンマ補正が由来• ただしテレビ側の出⼒は⼀般的にBT.1886(Rec. ITU-R BT.1886)– 頻繁に(むしろ主に)⾊域の説明に使われる• その場合⾊域だけを指している事が多い• 本セッションでもBT.709やBT.2020は主に⾊域を指します©Silicon Studio Corp., all rights reserved.

26

本セッションで頻繁に参照する規格等• BT.2100– Recommendation ITU-R BT.2100– HDTV(2K)やUHDTV(4k/8K)のHDR信号規格• ⾊域はBT.2020と同じ– ⾊域だけを指す場合はBT.2020が参照されることが多い• 伝達関数はPQもしくはHLG(任意)– PQはEOTF側で、HLGはOETF側で定義されている» 本セッションでは扱わない(シリコンスタジオによるHDR出⼒対応の理論と実践 [Kawase16])– PQとHLGの相互変換等も可能(⼀部の情報は失われる)– HDRの⾊空間定義を含むが⼀般にはあまり参照されない• ⾊空間としてはBT.2100 PQではなくBT.2020 PQと表記されることが多い– ⾊域はBT.2020という名称で参照されることが多いため©Silicon Studio Corp., all rights reserved.

27

本セッションで頻繁に参照する規格等• BT.1886– Recommendation ITU-R BT.1886– HDTV(BT.709)やUHDTV(BT.2020)のテレビ出⼒側の変換関数• EOTFおよびテレビ側の映像調整に関する勧告• 伝達関数(EOTF)は線形領域のないγ2.4– マスターモニタのデファクトスタンダードが由来• 現在の家庭⽤テレビのリファレンス– 本セッションでも主に家庭⽤テレビのEOTF(γ2.4)を指します©Silicon Studio Corp., all rights reserved.

28

本セッションで頻繁に参照する規格等• PQ(Perceptual Quantizer)– Dolbyが開発– 規格としてはSMPTE ST-2084あるいはBT.2100のPQ EOTF

• SMPTE(Society of Motion Picture and Television Engineers: ⽶国映画テレビ技術者
協会)の定める伝達関数• Recommendation ITU-R BT.2100の定める伝達関数の⼀つ– 最⼤10,000cd/m2(nt: nits)の絶対輝度を表現• 現状他の全ての伝達関数は相対輝度– PQ以外は信号の最⼤値＝ディスプレイに表⽰できる最⼤輝度– PQ⾃体は⾊域を定義しない• 本セッションでもPQは伝達関数(EOTF/OETF)のみを指します©Silicon Studio Corp., all rights reserved.

29

本セッションで頻繁に参照する規格等• sRGB– MicrosoftとHewlett-Packardが開発– IEC(International Electrotechnical Commission: 国際電気標準会議)の定める標準⾊空間– BT.709と同じ⾊域をもつ• ただし伝達関数(ガンマ)はBT.709とは異なるので注意– sRGBは暗部に線形領域をもつγ2.2程度のカーブ– BT.709は暗部に線形領域をもつγ1.9程度のカーブ– 本セッションでは主にsRGBガンマを指します• 伝達関数を含む⾊空間としても使⽤• ⾊域だけを⽰す場合は主にBT.709を使⽤©Silicon Studio Corp., all rights reserved.

30

本セッションで頻繁に参照する規格等• scRGB– MicrosoftとHewlett-Packardが開発– IEC(International Electrotechnical Commission: 国際電気標準会議)の定める
sRGBの拡張⾊空間– sRGB(BT.709)と同じ原点／⽩⾊点をもつ– 負の数も含む線形⾊空間• 本来のRGB値の範囲は-0.5〜7.4999と定められている• 負の数により内部データとしては広⾊域も格納できる• レンダリングでの運⽤上はBT.709⾊域のHDRフォーマットとみなせる– 従来の⼀般的な線形HDRレンダリングフォーマット

– 他にも⾮線形等いくつか類似の⾊空間がある– 本セッションでは実数の線形sRGB⾊空間として扱います©Silicon Studio Corp., all rights reserved.

31前提として押さえておきたいこと

本セッションの⽬的
⾊空間
前提として押さえておきたいこと
基本的なレンダリングフローの検討
その他の考慮すべきこと
互換性重視レンダリングフローの構築
まとめ©Silicon Studio Corp., all rights reserved.

前提として押さえておきたいこと• トーンマップのHDR出⼒拡張• ⽩レベル(Paper White Level)の調整• SDR時のシステムガンマとの互換性• ⾊域変換と⾊域マッピング• ビデオ出⼒設定の仕様• “シリコンスタジオによるHDR出⼒対応の理論と実践”
CEDEC 2016 [Kawase16] も参照©Silicon Studio Corp., all rights reserved.

33

前提として押さえておきたいこと• トーンマップのHDR出⼒拡張• ⽩レベル(Paper White Level)の調整• SDR時のシステムガンマとの互換性• ⾊域変換と⾊域マッピング• ビデオ出⼒設定の仕様©Silicon Studio Corp., all rights reserved.

34

トーンマップのHDR出⼒拡張• 従来のトーンマップはHDRデータをSDR領域に圧縮– 最⼤1.0に飽和• HDRではこれを任意の幅に拡張する• トーンマップのHDR拡張に際して重要なこと– SDRとの互換性を保つ– あらゆる最⼤輝度への対応• さまざまな最⼤輝度のHDRテレビに対応するため©Silicon Studio Corp., all rights reserved.

35

トーンマップのHDR出⼒拡張• HDR専⽤に開発された関数はSDRと互換性が低い– HDR専⽤に新たなパラメタの調整が必要– 原理的に同じような⾒た⽬に出来ない• SDRとの互換性を損なわないトーンマップが必要– SDRトーンマップの輝度圧縮領域のみを拡張• イメージの⽀配的な構成部分である暗部領域を変えない©Silicon Studio Corp., all rights reserved.

36

HDR出⼒拡張したトーンマップ

4,000nt

2,000nt

1,000nt

500nt
100nt

©Silicon Studio Corp., all rights reserved.

37

HDR拡張トーンマップの作り⽅• 飽和部分から上下を分離– 最も膨らんでいる部分• 暗部はSDRと共通• ⾼輝度領域だけを拡⼤– 最⼤出⼒輝度に合わせて飽和©Silicon Studio Corp., all rights reserved.

38

HDR拡張トーンマップの作り⽅• 飽和部分から上下を分離– 最も膨らんでいる部分• 暗部はSDRと共通• ⾼輝度領域だけを拡⼤– 最⼤出⼒輝度に合わせて飽和

4,000nt

2,000nt

1,000nt

500nt
100nt

©Silicon Studio Corp., all rights reserved.

39

HDR拡張トーンマップ• ⽀配的な暗部領域が同じなので互換性が⾼い– 共通のトーンマップパラメタを利⽤できる– SDR調整だけでも使⽤できる• ほとんどあらゆるトーンマップに適⽤可能– いわゆるSカーブならすべて拡張可能– Reinhardのような飽和部分のみももちろん可• このような場合は分離せずに全体を拡⼤するだけ©Silicon Studio Corp., all rights reserved.

40

SDRシミュレーション
実際の1/4の輝度で出⼒©Silicon Studio Corp., all rights reserved.

41

HDRシミュレーション
SDRの4倍のダイナミックレンジ
暗い部分の絵作りは変化しない©Silicon Studio Corp., all rights reserved.

42前提として押さえておきたいこと• トーンマップのHDR出⼒拡張• ⽩レベル(Paper White Level)の調整• SDR時のシステムガンマとの互換性• ⾊域変換と⾊域マッピング• ビデオ出⼒設定の仕様©Silicon Studio Corp., all rights reserved.

43

⽩レベル(Paper White Level)の調整• 規格上の標準輝度– sRGB: 80nt
– BT.1886: 100nt• 実際の製品の明るさは– PCモニタ︓おおよそ150〜350nt程度– 家庭⽤テレビ︓おおよそ200〜450nt程度©Silicon Studio Corp., all rights reserved.

44

⽩レベル(Paper White Level)の調整• 規格上の標準輝度は実情に即していない– 規格上のSDR輝度からHDR輝度を計算すると…
• SDRと⽐較して1/2〜1/4程度に暗くなる• 実情に合わせた⽩レベルで出⼒するなら– 例えば80ntや100ntではなく300ntとみなす必要がある©Silicon Studio Corp., all rights reserved.

45

⽩レベル(Paper White Level)の調整• 例えば以下のようにみなした場合– SDRテレビ輝度(⽩レベル)が300nt– HDRテレビ最⼤輝度が1,000nt

300nt基準のHDR出力
実情に合わせた調整

100nt基準のHDR出力PQ(ST-2084)規格通り
300nt相当のSDR出力
SDRモニタの実情

100ntのSDR出力
BT.1886規格通り©Silicon Studio Corp., all rights reserved.

46

⽩レベルの調整(トーンマップ)• トーンマップ時の飽和輝度(相対輝度)– テレビの最⼤出⼒輝度は⽩レベルに関わらず固定– à⽩レベルに反⽐例して相対飽和輝度を下げる• 𝑛 = !⁄"!

𝑛 : 相対飽和輝度(1.0 = ⽩)𝑚 : ディスプレイ最⼤絶対輝度(nt)𝑤𝑐 : ⽩レベル(nt)• ⽩レベルが300ntで最⼤1,000-ntモニタなら– トーンマップ飽和は 1000 / 300 = ~3.333• ⽩レベル80ntで最⼤10,000ntなら125.0– sRGB規格の標準⽩レベルでPQの最⼤輝度に出⼒する場合©Silicon Studio Corp., all rights reserved.

47

⽩レベルの調整(OETFエンコード)• PQ OETFの⼊⼒は絶対輝度(nt: cd/m2)– 正確には1.0を10,000ntとみなす正規化値(nt値 / 10,000)• PQ OETFのための絶対輝度を求める– 露出／トーンマップ済相対輝度(レンダリング結果)から絶対輝度(nt)へ換算• 露出／トーンマップ済レンダリング結果(相対輝度)は1.0が⽩なので• 𝐿 = 𝑤𝑐𝑥
𝐿 : 絶対輝度(nt)𝑥 : 露出／トーンマップ済相対輝度(1.0 = ⽩)𝑤𝑐 : ⽩レベル(nt)• 換算後の絶対輝度𝐿を正規化してPQ OETFを適⽤– 𝑦 = !⁄"#### = $"%⁄"####– 𝑉 =PQ_OETF(𝑦)©Silicon Studio Corp., all rights reserved.

48

⽩レベルの調整(OETFエンコード)• ⽩レベルが300ntで最⼤1,000-nt HDRモニタの場合– トーンマップ飽和相対輝度は• 𝑛 = !⁄"! = 1000 / 300 = ~3.333(前述)– トーンマップ飽和相対輝度をPQ OETF⼊⼒のための絶対輝度(nt)に換算• 𝐿 = 𝑤𝑐𝑥 = 300 x ~3.333 = 1000
• 狙い通りモニタ最⼤輝度(1,000nt)に⼀致する©Silicon Studio Corp., all rights reserved.

49

⽩レベル調整時の注意• 出来れば200nt以下に抑える事を推奨– ⾼いほど⽩⾶びが発⽣しやすい– せっかくのHDRの効果を活かせない©Silicon Studio Corp., all rights reserved.

⽩レベルを300ntにした場合事実上100ntの1/3で⽩⾶びする

50

SDR出⼒のHDR化• SDRとの差が埋まらない場合は逆にSDRを調整すべき– テレビがSDRとしては明る過ぎると考える– SDRでHDRシミュレーションを⾏う(MDR的な出⼒)• HDRにおける⽩レベル調整と逆の調整• HDR同様に1.0を超える拡張トーンマップを適⽤• OETF(sRGBガンマ補正)前に0.0〜1.0に正規化– 既存タイトルではなく新規開発の場合は検討を強く推奨• 可能ならユーザがカスタマイズできるように– 暗い部屋なら80nt〜100ntベースでHDR感を存分に堪能したい︕©Silicon Studio Corp., all rights reserved.

51

⽩レベル調整／HDR化の注意• 露出で調整しないように– 露出を変えるとSカーブの互換性を保持できない• 露出3倍àトーンマップ ≠ 1/3飽和トーンマップà結果を3倍– à露出は常にSDR時の設定(18%グレー等)と同じに• あくまでトーンマップ飽和／OETF前スケールで調整する©Silicon Studio Corp., all rights reserved.

52

SDR出⼒(SDRの100%出⼒が⽩)従来のSDR©Silicon Studio Corp., all rights reserved.

53

HDRシミュレーション(最⼤400nt, 基準⽩レベル100nt)
実際の1/4(100nt/400nt)の輝度で出⼒©Silicon Studio Corp., all rights reserved.

54

SDRシミュレーション(参考)
実際の1/4(100nt/400nt)の輝度で出⼒©Silicon Studio Corp., all rights reserved.

55

SDRによるHDRシミュレーションの注意点• 8-bit RGBでは精度が不⾜する可能性が⾼い– 分解能の不⾜によるバンディング(シュブルール錯視)– ディザリングを⾏う– 可能なら10-bit RGBモード等を利⽤する©Silicon Studio Corp., all rights reserved.

56

前提として押さえておきたいこと• トーンマップのHDR出⼒拡張• ⽩レベル(Paper White Level)の調整• SDR時のシステムガンマとの互換性• ⾊域変換と⾊域マッピング• ビデオ出⼒設定の仕様©Silicon Studio Corp., all rights reserved.

57

SDRシステムガンマとの互換性• 従来のSDRテレビにおけるOETFとEOTFの関係– コンテンツ側OETF• sRGB(⼀般的なGPUレンダリング)– 暗部線形領域をもつγ~2.2の補正• ビデオコンテンツではBT.709/BT.2020準拠の場合も– 暗部線形領域をもつγ~1.9の補正– 家庭⽤テレビ側EOTF• BT.1886(マスモニのデファクトスタンダードが由来)– 線形領域の無いγ2.4カーブ©Silicon Studio Corp., all rights reserved.

58

SDRシステムガンマとの互換性• OETFとEOTFが⼀致していない– àsRGBコンテンツではγ1.07程度の⾮線形関数• BT.709/2020コンテンツではγ1.25程度の⾮線形関数– システムガンマ(トータルガンマ)と呼ばれる• あるいはOOTF(Opto-Optical Transfer Function: 光－光伝達関数)©Silicon Studio Corp., all rights reserved.

59

テレビOOTF: sRGB/BT.709 OETFàBT.1886 EOTF

©Silicon Studio Corp., all rights reserved.

60

SDRシステムガンマとの互換性• SDR⽤OETFでは特に暗い部分の線形領域が影響– 最終出⼒では暗い領域のコントラストが⾼くなる• HDRではこのような変換は⾏われない– OETFとEOTFが厳密に対応– àHDR出⼒対応の際、SDRと⽐較して暗い領域のコントラストが低下• ⾊が薄くなり灰⾊に浮いたように感じられる– ※厳密にはHDRでは別途OOTFが定義されている• EOTFベースのPQではモニタ側EOTFには影響なし• OETFベースのHLGでは別途システムガンマを補正する必要あり• 本セッションでは扱わない– “シリコンスタジオによるHDR出⼒対応の理論と実践” CEDEC 2016 [Kawase16]©Silicon Studio Corp., all rights reserved.

61

SDRとの互換性を保つには• SDR時のOOTFをシミュレーション– HDR拡張トーンマップ後PQ OETF前に• sRGB OETFàBT.1886(γ2.4)EOTF適⽤• 原則として1.0未満のSDR領域のみに適⽤– あるいはHDR拡張トーンマップ前に• ⼀時的にSDRトーンマップ空間で互換カーブを適⽤– SDR LUTを適⽤する場合に効率的(後述)• SDRトーンマップ(SDRトーンマップ空間)• sRGB OETFàBT.1886(γ2.4)EOTF適⽤• SDR逆トーンマップで線形HDRに戻す• HDR拡張トーンマップを適⽤©Silicon Studio Corp., all rights reserved.

62

PCモニタのSDRとの互換性は︖• いわゆるsRGBモニタの場合– ガンマ(EOTF)はBT.1886ではない– 線形領域の無いおおよそγ2.2のカーブ• プロユースの製品ではsRGBを厳密に出⼒できる場合も– その場合OOTFは線形になる– à⼀般ユーザ向け製品では線形部分の無いγ2.2とみなせる• この場合のSDR互換OOTFは– sRGB OETFàγ2.2 EOTF
– 家庭⽤テレビのsRGB OETFàBT.1886(γ2.4)EOTFとは異なる©Silicon Studio Corp., all rights reserved.

63

PCモニタOOTF: sRGB OETFàγ2.2 EOTF

©Silicon Studio Corp., all rights reserved.

64

テレビOOTF: sRGB OETFàBT.1886 EOTF

©Silicon Studio Corp., all rights reserved.

65

OOTF有効／無効画像⽐較• sRGB(SDR)モニタでは正しく表⽰できないので注意– SDR表⽰の時点で既にOOTFが適⽤されている状態©Silicon Studio Corp., all rights reserved.

66

掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

OOTF無効67

掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

家庭⽤テレビ向けOOTFシミュレーション
sRGB OETFàBT.1886(γ2.4)EOTF
SDR領域だけに適⽤した例
68

掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

OOTF無効69

掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

PCモニタ向けOOTFシミュレーション
sRGB OETFàγ2.2 EOTF
SDR領域だけに適⽤
70

システムガンマだけで互換性を保てるか︖• 家庭⽤SDRテレビはより派⼿な出⼒– 全体的にコントラストが⾼い– 全体的に彩度が⾼い– 全体的に⾊温度が⾼い• SDRに限った話ではないがSDRの⽅が遥かに極端– 擬似的にHDRらしく拡張する製品が多い©Silicon Studio Corp., all rights reserved.

71

SDRテレビの実態との互換性• テレビ／メーカーによって異なる• 映像モードによっても異なる• ゲームモードはある程度派⼿なものが多い• PCモニタモード／グラフィックスモードは⽐較的忠実• à汎⽤的な設定は難しい– 全体的なガンマ調整– 全体的な彩度調整– etc.
©Silicon Studio Corp., all rights reserved.

72

前提として押さえておきたいこと• トーンマップのHDR出⼒拡張• ⽩レベル(Paper White Level)の調整• SDR時のシステムガンマとの互換性• ⾊域変換と⾊域マッピング• ビデオ出⼒設定の仕様©Silicon Studio Corp., all rights reserved.

73

⾊域変換
• ある⾊域から別の⾊域への変換– ここではレンダリング⾊域から出⼒⾊域への変換– 基本は線形変換• 同じ⾊を別の⾊域で表現するための変換• 出⼒先で⾊域外となる⾊はクリップされる©Silicon Studio Corp., all rights reserved.

74

⾊域変換⾏列の例• BT.709からBT.2020への変換

𝑅2020
0.6274039 0.3292830 0.0433131
𝐺2020 = 0.0690973 0.9195406 0.0113623
𝐵2020
0.0163914 0.0880133 0.8955953• BT.2020からBT.709への変換

𝑅709
𝐺709
𝐵709

𝑅709
1.6604912 −0.5876410 −0.0728499
𝐺709 = −0.1245506 1.1328998 −0.0083494
𝐵709−0.0181508 −0.1005789 1.1187296©Silicon Studio Corp., all rights reserved.

𝑅2020
𝐺2020
𝐵2020

75

BT.709からBT.2020に線形変換
BT.709領域のみ使⽤©Silicon Studio Corp., all rights reserved.

76BT.2020からBT.709に線形変換
BT.709領域外はクリップ掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

77

⾊域マッピング• ある⾊域から別の⾊域への変換– 変換先で⾃然に⾒えるような最適化• ⽬的によって⼿法は異なる• 線形とは限らない– 物理的な整合性は失われやすい– ⾊相のズレが発⽣することもある

https://commons.wikimedia.org/wiki/File:CIExy1931_Rec_2020_and_Rec_709.svg©Silicon Studio Corp., all rights reserved.

78簡易的な⾊域マッピング• ⽐較的簡単かつ無難な⼿法– 線形変換で出⼒先の⾊を計算– 変換前の彩度が低ければ変換先の⾊を採⽤– 変換前の彩度が⾼いほど変換前の⾊を採⽤– 彩度が⾼いほど急激なカーブで適⽤する• 彩度がある程度低い場合はほぼ線形変換の⾊にする– 全体の絵作りの印象を変えないため• 例えば彩度(0〜1)を5乗程度にべき乗した値で補間– 簡単なパラメタで特性を制御可能©Silicon Studio Corp., all rights reserved.

79簡易的な⾊域マッピングの計算例• BT.709でRGB709=(0, 1, 0)のような純⾊(緑)– BT.2020に線形変換すると• RGB2020=(0.3293, 0.9195, 0.0880)– 変換先と変換元RGBを変換元彩度の関数で補間• RGB2020(0.3293, 0.9195, 0.0880)とRGB709(0,1,0)を補間– 変換前の彩度は1.0(最⼤)のため• àRGB=(0,1,0)となり、線形変換からは⼤きく変化した緑の純⾊に• BT.709でRGB709=(1.0, 0.5, 0.5)のようなパステルカラー(ピンク)– BT.2020に線形変換すると• RGB2020=(0.8137, 0.5346, 0.5082)– 変換前の彩度0.5の5乗(0.55 = 0.03125)で変換元の⾊と補間すると• àRGB=(0.8195, 0.5335, 0.5079)となり、ほぼ線形変換と同じ(僅かに⾼彩度の)ピンクに©Silicon Studio Corp., all rights reserved.

80

⾊域拡張マッピングの例• BT.709でレンダリング• BT.2020に出⼒– sRGBでは正しく確認できないので注意• ⾊域マッピング無効／有効⽐較©Silicon Studio Corp., all rights reserved.

81

⾊域マッピング無効BT.709領域のみ使⽤©Silicon Studio Corp., all rights reserved.

82

⾊域マッピング有効BT.709からBT.2020へ拡張©Silicon Studio Corp., all rights reserved.

83BT.709領域のみ使⽤©Silicon Studio Corp., all rights reserved.

84BT.709からBT.2020へ拡張©Silicon Studio Corp., all rights reserved.

85BT.709領域のみ使⽤©Silicon Studio Corp., all rights reserved.

86BT.709からBT.2020へ拡張©Silicon Studio Corp., all rights reserved.

87

さまざまな⾊域間で汎⽤的に利⽤可能• ⾊域を拡張する⽅向にも圧縮する⽅向にも利⽤可能– ⼀般的なRGB⾊空間であればほぼ適⽤可能• ⾊相が⼤きくずれている⾊域同⼠では難しい– それぞれパラメタの調整は必要• 例えばBT.2020ベースでレンダリングした場合– 逆にSDR出⼒時に彩度の⾼い領域を滑らかに圧縮／飽和させる• 不⾃然な彩度のクリッピング(⾊飽和)を回避できる– 彩度の低い領域は変化しない• 全体の絵作りの印象は変化しない©Silicon Studio Corp., all rights reserved.

88

⾊域圧縮マッピングの例• BT.2020でレンダリング• BT.709に出⼒• ⾊域マッピング無効／有効⽐較©Silicon Studio Corp., all rights reserved.

89BT.2020からBT.709に制限
⾊域マッピング無効
BT.709領域外はクリップ掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

90BT.2020からBT.709に制限
⾊域マッピング有効BT.709領域外を圧縮

掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

91BT.2020からBT.709に制限
⾊域マッピング無効
BT.709領域外はクリップ掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

92BT.2020からBT.709に制限
⾊域マッピング有効BT.709領域外を圧縮

掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

93BT.2020からBT.709に制限
⾊域マッピング無効
BT.709領域外はクリップ掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

94BT.2020からBT.709に制限
⾊域マッピング有効BT.709領域外を圧縮

掲載の画像は権利上の理由などにより現在はご覧いただけません©Silicon Studio Corp., all rights reserved.

95⾮線形圧縮の必要性︖• 条件によっては重要性が低い場合も– 以下のようなケース• BT.2020等の広⾊域レンダリングからBT.709等への圧縮であること• トーンマップをレンダリング時の広⾊域側で適⽤していること(次⾴参照)• トーンマップが滑らかな飽和カーブであること• 広⾊域上で純⾊(r,g,b)=(1,1,0)のような極端なピクセル値が存在しないこと– 物理ベースのデータであればほとんど問題ない– ⼈為的な⾊では不⾃然な⾊飽和が⽣じる可能性がある– 広⾊域上でのトーンマップによって⾮線形の⾊域圧縮と同様の効果• ⾊域圧縮の⾃由度は⾼くない– トーンマップの飽和カーブ依存となるため– “HDR 理論と実践” CEDEC 2017 [Uchimura17] 参照©Silicon Studio Corp., all rights reserved.

96

トーンマップと⾊域変換の順序• 最終出⼒の⾊域でトーンマップ– 本セッションで⽰す例– トーンマップの前に最終⾊域に変換• ⾮線形拡張や飽和も含む• レンダリング⾊域でトーンマップ– ACES RRT等の⼀般的な⽅法– フレーム画像完成後に最終⾊域に変換• ODT(Output Device Transform)©Silicon Studio Corp., all rights reserved.

97

最終出⼒の⾊域でトーンマップ• 最終的な出⼒⾊空間の範囲を最⼤限に活⽤できる• 広⾊域からの圧縮では⾮線形⾊域マッピングが必須©Silicon Studio Corp., all rights reserved.

98

レンダリング⾊域でトーンマップ• 彩度の⾼い⾊が出⼒⾊空間を最⼤限に活かせない– トーンマップ段階でレンダリング⾊域の有効範囲内にクランプされる• 広⾊域からの圧縮では⾊域マッピングの重要性が低い• scRGB出⼒時の⾊域マッピングには追加のパスが必要– OS層でのODT変換では⾊域マッピングは適⽤できないため– scRGB出⼒については後述©Silicon Studio Corp., all rights reserved.

99

トーンマップと⾊域変換の順序• 基本的には最終出⼒⾊域でのトーンマップを推奨– ⾊域変換してからトーンマップ– 本セッションではこちらを利⽤• 条件によってはトーンマップ後の⾊域変換も検討– ⼀般的なワークフローに合わせたい場合• ACESワークフローに基づく場合など– 常に広⾊域側でトーンマップを⾏う選択肢も…
• レンダリングと出⼒側のいずれか広い⽅で適⽤©Silicon Studio Corp., all rights reserved.

100

⾊飽和の根本的な原因• ⾊飽和の問題はレンダリング⾊域が狭くても起こる– RGBのいずれかがゼロ(彩度が最⼤)なら発⽣– そもそもBT.709は⾊域が狭く彩度の飽和が起こりやすい• 物理ベースでも容易に飽和する– 炎や⼣⽅の太陽の⾊(2,000K未満ではB(⻘)がゼロとなる)• アーティストの⾊設定でも飽和しやすい– あえて禁⽌しない限り設定される可能性がある– 広⾊域から狭い⾊域へ変換する場合だけの問題ではない• 従来のSDRレンダリングでもよく発⽣する問題©Silicon Studio Corp., all rights reserved.

101©Silicon Studio Corp., all rights reserved.

BT.709/sRGBレンダリング
純⾊による⾊飽和の問題

102

⾊飽和の軽減⽅法• 写真では⾊の不⾃然な飽和は起きにくい– カメラセンサーはもっと広⾊域から調整して変換している• ただし⾊設定を⾼彩度モードにした場合などはよく飽和する– フィルムの感度は他の波⻑にも反応するようになっている• フィルムの分光感度曲線参照©Silicon Studio Corp., all rights reserved.

103©Silicon Studio Corp., all rights reserved.

“レンダリストのためのカメラ（光学）理論とポストエフェクト”
CEDEC 2007 [Gotanda07] より引⽤

104

⾊飽和の軽減⽅法• レンダリングでも分光感度のオーバーラップを近似– トーンマップ前に感度をオーバーラップさせる• RGBいずれかの値がゼロとなるピクセルが消滅– ⾏列による線形変換だけで簡単に調整できる©Silicon Studio Corp., all rights reserved.

105線形変換を利⽤した⾊飽和の軽減• 感度のオーバーラップ近似⾏列の例– 例えば計4%程度を他のチャネルから感光させる場合
0.960 0.038 0.002
R′– 𝐺’ = 0.020 0.960 0.020
0.002 0.038 0.960
𝐵’

𝑅
𝐺
𝐵

– あまり他チャネルの感度を⾼くし過ぎないように注意• 全体的な彩度低下に繋がる• グレアソースだけを⾏列変換する⽅法も有効©Silicon Studio Corp., all rights reserved.

106©Silicon Studio Corp., all rights reserved.

100-nt sRGB
⾊飽和軽減無効107©Silicon Studio Corp., all rights reserved.

100-nt sRGB
⾊飽和軽減有効108©Silicon Studio Corp., all rights reserved.

500-nt sRGB
⾊飽和軽減無効109©Silicon Studio Corp., all rights reserved.

500-nt sRGB
⾊飽和軽減有効110©Silicon Studio Corp., all rights reserved.

BT.709 1000-nt HLG
⾊飽和軽減無効111©Silicon Studio Corp., all rights reserved.

BT.709 1000-nt HLG
⾊飽和軽減有効112

前提として押さえておきたいこと• ⽩レベル(Paper White Level)の調整• SDR時のシステムガンマとの互換性• ⾊域変換と⾊域マッピング• ビデオ出⼒設定の仕様©Silicon Studio Corp., all rights reserved.

113

ビデオ出⼒設定の仕様• HDR10等– BT.2020 PQ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

114

ビデオ出⼒設定の仕様• 詳細は各プラットフォーム等のドキュメント参照• 重要な点︓– プラットフォームによって利⽤できる⽅式が異なる– 互換性のためには複数の⽅式への対応が必要©Silicon Studio Corp., all rights reserved.

115基本的なレンダリングフローの検討

本セッションの⽬的
⾊空間
前提として押さえておきたいこと
基本的なレンダリングフローの検討
その他の考慮すべきこと
互換性重視レンダリングフローの構築
まとめ©Silicon Studio Corp., all rights reserved.

基本的なレンダリングフローの検討• さまざまな条件でのフロー例を検討– プラットフォームによるビデオ出⼒設定のタイプ– OETFのタイミング• パフォーマンスと正しさや互換性の考察• 前提– ビデオ出⼒モードは適切に設定されている• HDR⾮対応時にはSDR出⼒が設定されている• HDR対応テレビ接続時には適切なHDR出⼒が設定されている©Silicon Studio Corp., all rights reserved.

117典型的な線形HDRレンダリング
SDR出⼒フローBT.709 線形(scRGB)での描画

BT.709 sRGBでの処理
モニタ出⼒

アプリケーション層

SDR

シーン描画

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップsRGB OETF

BT.709
sRGB
SDR

UI 描画
BT.709sRGB(⾮線形)

BT.709
sRGB
SDR

モニタ
2.2〜2.4
EOTF

BT.709線形
SDR

ガンマが解決(デガンマ)された
結果としての「線形」の意味©Silicon Studio Corp., all rights reserved.

118

HDR OETF対応レンダリングフロー• ⼤きく2種類の適⽤⽅法– 即時OETF適⽤フロー• ⼀般的なトーンマップパスと同時にOETFも適⽤– 遅延OETF適⽤フロー• トーンマップパスとは別にUI描画後にOETFを適⽤– ビデオ出⼒⽅式やパフォーマンスで選択• ⽅式やプラットフォームで選択肢が制限される©Silicon Studio Corp., all rights reserved.

119

即時OETF適⽤• トーンマップ＆OETFàUI描画• 従来のSDRとほぼ同じフロー– トーンマップと同時にOETF(いわゆるガンマ補正)を⾏う– シンプルで理解しやすい©Silicon Studio Corp., all rights reserved.

120

即時OETF適⽤フロー例• HDR10等– BT.2020 PQ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

121BT.709ベース(UI描画は出⼒⾊空間別)
共通の線形⾊空間(BT.709 scRGB)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップsRGB OETF

BT.709sRGB
SDR

ポストプロセス
BT.2020拡張変換

BT.709線形(scRGB)
HDR

トーンマップPQ OETF©Silicon Studio Corp., all rights reserved.

BT.2020
PQ
MDR

UI 描画
BT.709sRGB出⼒(⾮線形)

UI 描画
BT.2020
PQ出⼒(⾮線形)

BT.709sRGB
SDR

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形
MDR
122

BT.2020ベース(UI描画は出⼒⾊空間別)
共通の線形⾊空間(BT.2020)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

シーン描画
BT.2020
線形
HDR

HDR

シーン描画
BT.2020
線形
HDR

ポストプロセス
BT.709圧縮変換
トーンマップsRGB OETF

ポストプロセス
トーンマップPQ OETF©Silicon Studio Corp., all rights reserved.

BT.709sRGB
SDR

BT.2020
PQ
MDR

UI 描画
BT.709sRGB出⼒(⾮線形)

UI 描画
BT.2020
PQ出⼒(⾮線形)

BT.709sRGB
SDR

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020線形MDR
123

即時OETFにおける留意点• UI描画を⾮線形な出⼒⾊空間で⾏う必要あり– SDR時は従来通りsRGB⾊空間で描画– HDR時はBT.2020 PQ(ST 2084)⾊空間で描画• BT.709⾊域素材の場合は変換してから出⼒• ブレンドやエッジアンチエイリアスが不正確– ⾮線形なOETF空間でブレンドされるため• チェッカーボード(CB)レンダリングでOETFの効率化可能– トーンマップ＆OETFパスを縮⼩解像度のまま処理できる– ただし、ポストプロセスも縮⼩解像度で実装する制限あり• AAやレンズディストーション、倍率⾊収差等は使⽤できない• エッジ情報が適切ではなくなるため©Silicon Studio Corp., all rights reserved.

124

CB例(BT.709, アプリ層による即時OETF)
共通の線形⾊空間(BT.709 scRGB)での処理

異なる⾮線形出⼒⾊空間での処理
SDR:BT.709 sRGB / HDR:BT.2020 PQ

CB低解像度処理

CB解決済みフル解像度処理

モニタ出⼒

アプリケーション層

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップsRGB OETF

BT.709sRGB
SDR

ポストプロセス
BT.2020拡張変換

BT.709線形(scRGB)
HDR

トーンマップPQ OETF©Silicon Studio Corp., all rights reserved.

BT.2020
PQ
MDR

UI 描画
BT.709sRGB出⼒(⾮線形)

UI 描画
BT.2020
PQ出⼒(⾮線形)

BT.709sRGB
SDR

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020線形MDR
125

遅延OETF適⽤• トーンマップàUI描画àOETF
• 理論的には即時OETFよりもこちらの⽅が適切– OETFは本来ODT(Output Device Transform)としての役割• アプリ側のレンダリングパイプラインを共通化– すべてのパスで共通の⾊域(あるいは⾊空間)を利⽤可能• 追加パスが必要– トーンマップパスとは別にフル解像度のOETF変換パスが必須©Silicon Studio Corp., all rights reserved.

1262種類の遅延OETF• アプリケーション層によるODT変換– アプリ側でモードに応じて適切な⾊空間に変換• sRGBあるいはBT.2020 PQ⾊空間• OS／ドライバ層による⾃動ODT変換– アプリ側は常にBT.709線形(scRGB)フォーマットへ出⼒– OS／ドライバ層がモードに応じて⾃動的にODT変換©Silicon Studio Corp., all rights reserved.

127アプリ側遅延OETF適⽤フロー• アプリケーション層によるODT変換• HDR⽅式によっては事実上必須– フレームが完成してから最後にまとめて変換する必要がある場合– 例えばDolby Vision• OETF後にRGBA8888バッファに特殊なエンコードが必要– UI等の描画中にエンコードは現実的ではない– ブレンド等も利⽤できない– 例えばHDRとSDRを両⽅出⼒しなければならない環境• UI描画前にOETFを適⽤するとUI描画も2画⾯出⼒しなければならない• àパフォーマンスにもよるが最後にまとめて変換する⽅が効率的な場合©Silicon Studio Corp., all rights reserved.

128アプリ側遅延OETF適⽤フロー• HDR10等– BT.2020 PQ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

129BT.709ベース(UI描画はBT.709でOETFだけ別)
共通の線形⾊空間(BT.709 scRGB)での処理

共通の⾊域(BT.709)での処理
SDRはsRGBガンマで出⼒
HDRは線形(scRGB)で出⼒異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップsRGB OETF

ポストプロセス
BT.2020拡張変換
トーンマップ
BT.709に戻す©Silicon Studio Corp., all rights reserved.

BT.709sRGB
SDR

BT.709線形(scRGB)
MDR

UI 描画
BT.709sRGB出⼒UI 描画
BT.709線形出⼒

モニタ2.2〜2.4
EOTF

BT.709sRGB
SDR

BT.709線形(scRGB)
MDR

BT.2020
⾊域変換
PQ OETF

BT.2020
PQ
MDR

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形
MDR
130

BT.709ベース(UI描画もBT.709線形で共通)
共通の線形⾊空間(BT.709 scRGB)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップ

ポストプロセス
BT.2020拡張変換
トーンマップ
BT.709に戻す©Silicon Studio Corp., all rights reserved.

BT.709線形(scRGB)
SDR

BT.709線形(scRGB)
MDR

UI 描画
BT.709線形出⼒

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
SDR

BT.709線形(scRGB)MDRsRGB OETF
BT.709sRGB
SDR

BT.2020
⾊域変換
PQ OETF

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形
MDR
131

BT.2020ベース(UI描画もBT.2020線形で共通)
共通の⾊空間(BT.2020 線形)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

シーン描画
BT.2020
線形
HDR

HDR

ポストプロセス
BT.709圧縮変換
トーンマップBT.2020に戻す

BT.2020
線形
SDR

ポストプロセス
トーンマップ

シーン描画
BT.2020
線形
HDR©Silicon Studio Corp., all rights reserved.

BT.2020
線形
MDR

UI 描画
BT.2020
線形出⼒

UI 描画
BT.2020
線形出⼒

BT.2020
線形
SDR

BT.709⾊域変換
sRGB OETF

BT.709sRGB
SDR

PQ OETF
BT.2020
線形
MDR

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形MDR
132

OS側遅延OETF適⽤フロー(scRGB出⼒)• OS／ドライバ層によるODT変換– ⾃動的に適切な⾊域／OETF変換が⼊る– アプリ側は常にBT.709 線形(scRGB)で出⼒する• HDR/SDR等の最終的な出⼒⾊空間とは無関係• 負の値も1.0を超える値も許されるため、BT.2020等の広⾊域の⾊情報も格納できる– SDR時の出⼒は従来通りのsRGBでも良い©Silicon Studio Corp., all rights reserved.

133

OS側遅延OETF適⽤フロー(scRGB出⼒)• OS／ドライバ層によるODT変換• OS／ドライバ側のサポートが必須– DXGI (Windows 10)– NVAPI (NVIDIA)• scRGB出⼒しかサポートしない– AGS API (AMD)– etc.

©Silicon Studio Corp., all rights reserved.

134

OS側遅延OETF適⽤フロー(scRGB出⼒)• HDR10等– BT.2020 PQ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

135BT.709ベース(SDRはsRGB、HDRはscRGB出⼒)
共通の線形⾊空間(BT.709 scRGB)での処理

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップsRGB OETF

BT.709sRGB
SDR

異なる⾮線形出⼒⾊空間での処理
アプリケーション側は関知しない
OS／ドライバ層

アプリケーション層

SDR
シーン描画

共通の⾊域(BT.709)での処理
SDRはsRGBガンマで出⼒
HDRは線形(scRGB)で出⼒

UI 描画
BT.709sRGB出⼒モニタ出⼒モニタ
2.2〜2.4
EOTF

BT.709sRGB
SDR

BT.709
線形
SDR

HDR
シーン描画

ポストプロセス
BT.2020拡張変換

BT.709線形(scRGB)
HDR

トーンマップ
BT.709に戻す

BT.709線形(scRGB)
MDR©Silicon Studio Corp., all rights reserved.

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
MDR

OS
BT.2020PQ OETF

BT.2020
PQ
MDR

モニタ
PQ
EOTF

BT.2020
線形
MDR
136

BT.709ベース(すべてscRGBに出⼒)
共通の線形⾊空間(BT.709 scRGB)での処理

OS／ドライバ層

アプリケーション層

SDR
シーン描画

異なる⾮線形出⼒⾊空間での処理
アプリケーション側は関知しない

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップ

BT.709線形(scRGB)
SDR

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
SDR

OS
sRGB
OETF

BT.709
sRGB
SDR

モニタ出⼒
モニタ
2.2〜2.4
EOTF

BT.709
線形
SDR

HDR
シーン描画

ポストプロセス
BT.2020拡張変換

BT.709線形(scRGB)
HDR

トーンマップ
BT.709に戻す

BT.709線形(scRGB)
MDR©Silicon Studio Corp., all rights reserved.

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
MDR

OS
BT.2020PQ OETF

BT.2020
PQ
MDR

モニタ
PQ
EOTF

BT.2020
線形
MDR
137

BT.2020ベース(SDRはsRGB、HDRはscRGB出⼒)
共通の線形⾊空間(BT.2020)での処理

共通の⾊域(BT.709)での処理
SDRはsRGBガンマで出⼒
HDRは線形(scRGB)で出⼒

OS／ドライバ層

アプリケーション層

SDR
シーン描画
BT.2020
線形
HDR

ポストプロセス
BT.709圧縮変換
トーンマップsRGB OETF

BT.709sRGB
SDR

異なる⾮線形出⼒⾊空間での処理
アプリケーション側は関知しない

UI 描画
BT.709sRGB出⼒モニタ出⼒モニタ
2.2〜2.4
EOTF

BT.709sRGB
SDR

BT.709
線形
SDR

HDR
シーン描画
BT.2020
線形
HDR

ポストプロセス
トーンマップ
BT.709⾊域変換

BT.709線形(scRGB)
MDR©Silicon Studio Corp., all rights reserved.

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
MDR

OS
BT.2020PQ OETF

BT.2020
PQ
MDR

モニタ
PQ
EOTF

BT.2020
線形
MDR
138

BT.2020ベース(UI描画はscRGB)
共通の線形⾊空間(BT.2020)での処理

共通の線形⾊空間(BT.709 scRGB)での処理

異なる⾮線形出⼒⾊空間での処理
アプリケーション側は関知しない
OS／ドライバ層

アプリケーション層

SDR
シーン描画
BT.2020
線形
HDR

ポストプロセス
BT.709⾊域変換(⾊域圧縮付)
トーンマップ

BT.709線形(scRGB)
SDR

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
SDR

OS
sRGB
OETF

BT.709
sRGB
SDR

モニタ出⼒
モニタ
2.2〜2.4
EOTF

BT.709
線形
SDR

HDR
シーン描画
BT.2020
線形
HDR

ポストプロセス
トーンマップ
BT.709⾊域変換

BT.709線形(scRGB)
MDR©Silicon Studio Corp., all rights reserved.

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
MDR

OS
BT.2020PQ OETF

BT.2020
PQ
MDR

モニタ
PQ
EOTF

BT.2020線形MDR
139

遅延OETF全般における留意点• SDR時はトーンマップでsRGB出⼒した⽅が遅延OETFパスが無いため効率的• UI描画はSDR/HDR共に同じ⾊空間を利⽤可能– ブレンドやエッジアンチエイリアスが正確• BT.2020やHDR出⼒時はOETF適⽤前の線形⾊空間でブレンド• sRGB使⽤時もハードウェアsRGB出⼒機能を利⽤すれば正しくブレンド可• カラーグレーディングとしてのガンマ調整– 従来のSDR時に、sRGB変換と同時にガンマ調整を⾏っていた場合– SDR/HDR問わずUIをscRGB⾊空間で描画する場合は• トーンマップ後UI描画前にガンマ調整を適⽤する必要あり• ただしSDR互換OOTF適⽤時は、SDR OETFでガンマ調整を⾏う⽅が効率的(後述)• CBレンダリング時にOETFパスを効率化できない– UI描画は解決後のフル解像度で⾏う必要がある• 必然的にUI描画後のOETF変換もフル解像度となる©Silicon Studio Corp., all rights reserved.

140CB例(BT.709, SDR:即時 / HDR:アプリ遅延OETF)
共通の線形⾊空間(BT.709 scRGB)での処理
CB低解像度処理

共通の⾊域(BT.709)での処理
SDR:sRGB / HDR:scRGB

異なる⾮線形出⼒⾊空間での処理
SDR:sRGB / HDR:BT.2020 PQ

CB解決済みフル解像度処理

モニタ出⼒

アプリケーション層

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップsRGB OETF

ポストプロセス
BT.2020拡張変換
トーンマップ
BT.709に戻す©Silicon Studio Corp., all rights reserved.

BT.709sRGB
SDR

BT.709
Sカーブ
MDR

UI 描画
BT.709sRGB出⼒UI 描画
BT.709線形出⼒

モニタ2.2〜2.4
EOTF

BT.709sRGB
SDR

BT.709Sカーブ
MDR

BT.2020
⾊域変換
PQ OETF

BT.2020
PQ
MDR

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形MDR
141

CB例(BT.709, アプリ層による遅延OETF)
共通の線形⾊空間(BT.709 scRGB)での処理

CB低解像度処理

CB解決済みフル解像度処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップ

ポストプロセス
BT.2020拡張変換
トーンマップ
BT.709に戻す©Silicon Studio Corp., all rights reserved.

BT.709線形(scRGB)
SDR

BT.709線形(scRGB)
MDR

UI 描画
BT.709線形出⼒

UI 描画
BT.709線形出⼒BT.2020
線形(scRGB)
SDR

BT.709線形(scRGB)MDRsRGB OETF
BT.709sRGB
SDR

BT.2020
⾊域変換
PQ OETF

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形MDR
142

CB例(BT.709, OS／ドライバ層遅延OETF)
共通の線形⾊空間(BT.2020)での処理

共通の線形⾊空間(BT.709 scRGB)での処理

CB低解像度処理

異なる⾮線形出⼒⾊空間での処理
アプリケーション側は関知しない

CB解決済みフル解像度処理

OS／ドライバ層

アプリケーション層

SDR
シーン描画
BT.2020
線形
HDR

ポストプロセス
BT.709⾊域変換(⾊域圧縮付)
トーンマップ

BT.709線形(scRGB)
SDR

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
SDR

OS
sRGB
OETF

BT.709
sRGB
SDR

モニタ出⼒
モニタ
2.2〜2.4
EOTF

BT.709
線形
SDR

HDR
シーン描画
BT.2020
線形
HDR

ポストプロセス
トーンマップ
BT.709⾊域変換

BT.709線形(scRGB)
MDR©Silicon Studio Corp., all rights reserved.

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
MDR

OS
BT.2020PQ OETF

BT.2020
PQ
MDR

モニタ
PQ
EOTF

BT.2020
線形MDR
143

OS側遅延OETF(scRGB出⼒)時の留意点• OS／ドライバ層による⾃動⾊域／OETF変換が⼊る– フル解像度を変換するコストが暗黙的に発⽣• バックバッファにRGBA16_FLOATが必要– 広⾊域をscRGBに格納するには負の値が必要になるため• R11_G11_B10_FLOAT(符号無し)の倍の帯域©Silicon Studio Corp., all rights reserved.

144

OS側遅延OETF(scRGB出⼒)時の留意点• UI描画も原則BT.709⾊域で描画– BT.2020⾊域で描画したい場合はややペナルティが発⽣• ⽅法１︓UI描画の出⼒をBT.709⾊域に変換する– UI描画で毎回変換が必要– 負の数が発⽣する可能性の考慮» 条件によってはブレンドが正しくできない» SDR時はBT.709に⾊域制限すべき• ⽅法２︓トーンマップ時にBT.2020化し、最後にBT.709に戻す– OS層によるOETF変換の前に、それをキャンセルするためのパスが必要– àscRGB出⼒ではBT.2020⾊域でのUI描画は推奨しない©Silicon Studio Corp., all rights reserved.

145

OS側遅延OETF(scRGB出⼒)時の留意点• scRGB出⼒の1.0は80nt相当– 常に80nt換算でscRGBに出⼒する必要がある• つまり、80ntを1.0に、10,000ntを125.0にスケール– トーンマップ／OETFの⽩レベル(前述)とは別に考慮• 前述の⽅は便宜上コンテンツ⽩レベルとします©Silicon Studio Corp., all rights reserved.

146

コンテンツ⽩レベルとscRGBの⽩レベル• コンテンツ⽩レベル– SDRの⽩が現実にはどの程度の明るさとみなすか– 任意に調整できる• ⼀般的には100〜400nt程度• HDRを活⽤するためには出来るだけ低い⽅が理想(200以下を推奨)• scRGB⽩レベル– OS上のSDR基準輝度(=デスクトップの明るさとも⾔える)– OS／ドライバ層によるPQ OETF変換の基準• 原則として80nt固定• これらを区別してそれぞれ正しく適⽤する必要がある©Silicon Studio Corp., all rights reserved.

147

コンテンツ⽩レベルによる飽和輝度計算(再掲)• トーンマップ時の飽和輝度(相対輝度)の計算– 𝑛 = 𝑚/𝑤𝑐

𝑛 : 相対飽和輝度(1.0 = ⽩)𝑚 : ディスプレイ最⼤絶対輝度(nt)𝑤𝑐 : コンテンツ⽩レベル(nt)

• 計算例
– 条件

• 最⼤出⼒10,000nt• コンテンツ⽩レベル200nt– 飽和輝度 = 10,000nt / 200nt = 50.0
• 50.0が10,000ntを意味する©Silicon Studio Corp., all rights reserved.

148

コンテンツ⽩レベルによる飽和輝度計算(計算例のつづき)
• 計算例
– 条件

• 最⼤出⼒10,000nt• コンテンツ⽩レベル200nt– 飽和輝度 = 10,000nt / 200nt = 50.0
• 50.0が10,000ntを意味する• 最⼤出⼒を10,000ntとした場合トーンマップも50.0で飽和• 最⼤1,000ntとした場合トーンマップは1,000nt / 200nt = 5.0で飽和©Silicon Studio Corp., all rights reserved.

149

コンテンツ⽩レベルによるPQ OETF(再掲)• PQ OETFの⼊⼒は絶対輝度(nt: cd/m2)– 正確には1.0を10,000ntとみなす正規化値(= nt値 / 10,000)• PQ OETFのための絶対輝度を求める– 露出済の相対輝度(レンダリング結果)から絶対輝度(nt)へ換算• 露出済レンダリング結果(相対輝度)は1.0が⽩なので• 𝐿 = 𝑤𝑐𝑥
𝐿 : 絶対輝度(nt)𝑥 : トーンマップ／露出済相対輝度(1.0 = ⽩)𝑤𝑐 : コンテンツ⽩レベル(nt)• 換算後の絶対輝度𝑙を正規化してPQ OETFを適⽤– 𝑦 = "⁄#$$$$ = %"&⁄#$$$$– 𝑉 = PQ_OETF(𝑦)• ただしscRGBでは原則PQ OETFは適⽤しない– LUTやディザのために⼀時⾊空間として必要になるケースはある(後述)©Silicon Studio Corp., all rights reserved.

150

コンテンツ⽩レベルとscRGB⽩レベルによる調整スケール• トーンマップ後相対輝度から絶対輝度およびscRGB出⼒値への変換– 𝐿 = 𝑤𝑐 𝑥

𝐿 : 絶対輝度(nt)𝑥 : 露出／トーンマップ済相対輝度(1.0 = ⽩)𝑤𝑐 : コンテンツ⽩レベル(nt)– 𝑠 = !⁄$# = $"%⁄$#

𝑠 : scRGB出⼒値(= 絶対輝度nt / scRGB⽩レベル)
𝑤𝑠: scRGB⽩レベル(nt) = 80

• 計算例

– コンテンツ⽩レベル𝑤𝑐 = 200, scRGB⽩レベル𝑤𝑠 = 80 の例• 𝑥 = 0.4(80nt: scRGB⽩相当) à 𝑠 = 1.0• 𝑥 = 1.0(200nt: コンテンツ⽩) à 𝑠 = 2.5• 𝑥 = 50(10,000nt: PQ最⼤輝度) à 𝑠 = 125©Silicon Studio Corp., all rights reserved.

151

OS側遅延OETF(scRGB出⼒)時の留意点• scRGB出⼒時のディザリング
– OS／ドライバ層ではサポートされない– ディザはOETF後の⾮線形出⼒⾊空間で適⽤する必要あり• 最終的な⾊信号上の分解能で適⽤する必要があるため– àアプリ側で⼀度出⼒⾊空間に変換して適⽤• 出⼒OETF⾊空間に変換àディザリングàscRGBに戻す• やや無駄が多いが、最後にパスを追加するよりは効率的©Silicon Studio Corp., all rights reserved.

152

その他の考慮すべきこと

本セッションの⽬的
⾊空間
前提として押さえておきたいこと
基本的なレンダリングフローの検討
その他の考慮すべきこと
互換性重視レンダリングフローの構築
まとめ©Silicon Studio Corp., all rights reserved.

フローの詳細な考慮• 先述のフローに含まれていない細かな事項の検討– 動的トーンマップ最適化– LUTの互換性– カラーグレーディングとしてのガンマ調整• 詳細を考慮した⾊空間フロー©Silicon Studio Corp., all rights reserved.

154

フローの詳細な考慮• 先述のフローに含まれていない細かな事項の検討– 動的トーンマップ最適化– LUTの互換性– カラーグレーディングとしてのガンマ調整• 詳細を考慮した⾊空間フロー©Silicon Studio Corp., all rights reserved.

155

シーン内の最⼤輝度に応じて動的にトーンマッピングを最適化• 最⼤出⼒輝度よりもシーンが明るい場合– ⾼輝度領域を圧縮する• シーン内最⼤輝度を最⼤出⼒値にマッピング• 最⼤出⼒輝度よりもシーンが暗い場合– ⾼輝度領域も圧縮せず線形に• 以下のサンプル画像のトーンマップは1,000nt飽和– 1,000ntの信号まで有効に階調表⽰できるテレビ⽤の設定©Silicon Studio Corp., all rights reserved.

156

動的トーンマップ(⾼輝度ピクセルをもつシーン)©Silicon Studio Corp., all rights reserved.

157

動的トーンマップ(中輝度のピクセルをもつシーン)©Silicon Studio Corp., all rights reserved.

158

動的トーンマップ(低輝度ピクセルのみのシーン)©Silicon Studio Corp., all rights reserved.

159

シーン輝度が2,000ntと仮定したマッピング• シーンの最⼤輝度が常に2,000nt固定と仮定– 常に2,000nt時の出⼒を1,000ntにマッピング– 2,000ntよりもシーンが明るい場合• 2,000ntまでしか階調を表現できず⽩⾶び– 2,000ntよりもシーンが暗い場合• 1,000ntよりも暗く表⽰され、テレビの能⼒を活かせない©Silicon Studio Corp., all rights reserved.

160

2,000ntシーン⽤静的トーンマップ(⾼輝度ピクセルをもつシーン)©Silicon Studio Corp., all rights reserved.

161

2,000ntシーン⽤静的トーンマップ(中輝度のピクセルをもつシーン)©Silicon Studio Corp., all rights reserved.

162

2,000nt固定と動的マッピングの⽐較• シーンの最⼤輝度が常に2,000nt固定と仮定– 常に2,000nt時の出⼒を1,000ntにマッピング• シーンの最⼤輝度によって動的にマッピング– トーンマップの最⼤出⼒値1,000ntを最⼤限に利⽤©Silicon Studio Corp., all rights reserved.

163

2,000ntシーン⽤静的トーンマップ(⾼輝度ピクセルをもつシーン)©Silicon Studio Corp., all rights reserved.

164動的トーンマップ(⾼輝度ピクセルをもつシーン)©Silicon Studio Corp., all rights reserved.

165

2,000ntシーン⽤静的トーンマップ(中輝度のピクセルをもつシーン)©Silicon Studio Corp., all rights reserved.

166

動的トーンマップ(中輝度のピクセルをもつシーン)©Silicon Studio Corp., all rights reserved.

167

動的メタデータへの対応• 解析した最⼤輝度は動的メタデータに応⽤できる– Dolby Vision– HDR10+(HDR10 Plus)を含む今後の拡張©Silicon Studio Corp., all rights reserved.

168動的メタデータへの対応• 解析されたシーン最⼤輝度をトーンマップ– 解析はトーンマップ前の線形HDR⾊空間で⾏っている• 動的トーンマップ時に必要な情報のため– メタデータには出⼒信号の最⼤輝度が必要• よって最⼤輝度もトーンマップ後の値が必要©Silicon Studio Corp., all rights reserved.

169動的メタデータへの対応• ⼀般的には絶対輝度(nt値)で指定する必要がある– トーンマップ済みシーン最⼤輝度を⽩レベルで乗算して絶対輝度(nt)に換算(式は既出)• 𝐿 = 𝑤𝑐 𝑥

𝐿 : メタデータ⽤シーン最⼤絶対輝度(nt)𝑥 : 露出／トーンマップ済シーン最⼤輝度(1.0 = ⽩)𝑤𝑐 : コンテンツ⽩レベル(nt)– 計算例• トーンマップ済みシーン最⼤輝度(相対輝度)が10.0、
コンテンツ⽩レベルが100ntの場合– メタデータ⽤シーン最⼤絶対輝度 = 10.0 x 100nt = 1,000nt©Silicon Studio Corp., all rights reserved.

170

動的メタデータも必要︖• 動的トーンマップしたのにメタデータも必要︖– 実際にどのように表⽰されるかを考えてみる– 例えば最⼤500ntの明るさで2,000ntの信号まで有効に階調表⽰できるテレビと仮定• 1,000nt信号が400nt程度に表⽰される• 2,000nt信号が500ntで表⽰される– 実際にはテレビやメーカ毎に異なる• ここで挙げるのはあくまで考察⽤に仮定したもの©Silicon Studio Corp., all rights reserved.

171

最⼤輝度500ntの明るさで2,000ntの信号まで階調表⽰可能なテレビ• アプリ側動的トーンマップ最適化により– 線形シーン最⼤輝度が500ntの場合最⼤500ntの信号を⽣成– 線形シーン最⼤輝度が1,000ntの場合最⼤1,000ntの信号を⽣成• 動的メタデータが存在すると– ○ 最⼤500ntのシーン(500nt信号出⼒)は500ntの輝度で適切に表⽰される– ○ 最⼤1,000ntのシーン(1,000nt信号出⼒)は500ntの輝度で適切に階調表⽰される• 動的メタデータが存在しないと– 静的メタデータ500ntの場合:• ○ 最⼤500ntのシーン(500nt信号出⼒)は500ntの輝度で適切に表⽰される• × 最⼤1,000ntのシーン(1,000nt信号出⼒)は500nt以上が⽩⾶び– 静的メタデータ2,000ntの場合:• △ 最⼤500ntのシーン(500nt信号出⼒)は400nt程度に表⽰される• △ 最⼤1,000ntのシーン(1,000nt信号出⼒)は450nt程度に表⽰される©Silicon Studio Corp., all rights reserved.

172

最⼤輝度500ntの明るさで2,000ntの信号まで階調表⽰可能なテレビ• アプリ側では最⼤2,000nt出⼒の静的トーンマップ(最適化無効)の場合– 線形シーン最⼤輝度が500ntの場合最⼤400nt程度の信号を⽣成– 線形シーン最⼤輝度が1,000ntの場合最⼤700nt程度の信号を⽣成• 動的メタデータが存在すると– △ 最⼤500ntのシーン(400nt信号出⼒)は400ntの程度の輝度で表⽰される– ○ 最⼤1,000ntのシーン(700nt信号出⼒)は500ntの輝度で適切に階調表⽰される• 動的メタデータが存在しないと– 静的メタデータ500ntの場合:• △ 最⼤500ntのシーン(400nt信号出⼒)は400ntの輝度で表⽰される• △ 最⼤1,000ntのシーン(700nt信号出⼒)は600nt強以上が⽩⾶び– 静的メタデータ2,000の場合:• × 最⼤500ntのシーン(400nt信号出⼒)は400ntよりも暗めに表⽰される• × 最⼤1,000ntのシーン(700nt信号出⼒)は400nt程度に表⽰©Silicon Studio Corp., all rights reserved.

173

動的メタデータも必要︖• 最適な表⽰のためにはどちらも有益– どちらか⽚⽅だけでは最適な結果を得られない• 動的トーンマップが前提として必要– その上で動的メタデータを利⽤できるなら活⽤すべき©Silicon Studio Corp., all rights reserved.

174動的トーンマップ／メタデータ留意点• 画⾯輝度解析のため少しオーバヘッドが⽣じる– コストパフォーマンスで判断• フリッカリング– 解析結果を直接使うとフリッカリングが⽣じやすい– àフレーム間で解析結果を補間して徐々に適応©Silicon Studio Corp., all rights reserved.

175

フローの詳細な考慮• 先述のフローに含まれていない細かな事項の検討– 動的トーンマップ最適化– LUTの互換性– カラーグレーディングとしてのガンマ調整• 詳細を考慮した⾊空間フロー©Silicon Studio Corp., all rights reserved.

176

LUTの互換性• カラーグレーディングにLUTを使⽤する⽅法• ⼀般にsRGBなどの出⼒⾊空間で適⽤されることが多い– SDR: BT.709 sRGB
– HDR: BT.2020 PQ• SDRとHDRの互換性を保てない©Silicon Studio Corp., all rights reserved.

177

LUTの互換性• 新規タイトル開発の場合– 可能ならPQのようなHDR⾊空間で作成した⽅が良い• OETF後ではなくトーンマップ前の線形HDRの段階で適⽤• HDRで制作したLUTはSDR出⼒にもそのまま適⽤できる– HDR LUTについての参照• “Advanced Techniques and Optimization of HDR VDR Color Pipelines”
GDC2016 [Lottes16]• 精度や演算効率について詳細に検証されており⼤変参考になる©Silicon Studio Corp., all rights reserved.

178

LUTの互換性• 既存タイトルのHDR拡張対応の場合– 既存のLUTを利⽤するにはsRGB⾊空間で適⽤する必要あり– HDR拡張トーンマップの前にSDR LUTシミュレーション• BT.709レンダリング結果àSDRトーンマップàsRGB OETF
– sRGB⾊空間でLUT適⽤• sRGB EOTFà逆SDRトーンマップàBT.2020⾊域⾮線形拡張変換– SDRシステムガンマ(OOTF)互換カーブと同時適⽤が効率的• OOTF互換カーブもSDRトーンマップ⾊空間で⾏う• 上記のsRGB EOTFをBT.1886(γ2.4) EOTF (PCではγ2.2 EOTF)に変更©Silicon Studio Corp., all rights reserved.

179

sRGB LUTと互換性を保つ場合の注意• 負荷が⾼い– 適切な⾊空間で処理するための変換フローが複雑– フローすべてを1つのHDR LUTに格納する事は可能• ⾼輝度領域の精度が低い– ⾼輝度部分の⾊変化が過敏になりやすい• SDR LUT制作時には想定されていない変換であるため• 少し暗い⾊でも最⼤値に置換される場合が(割と頻繁に)ある– HDR⾊空間に戻すまでの計算精度に注意• 最⼤値を逆トーンマップした結果無限⼤にならないように• àSDRトーンマップは有限の値をマッピングするように修正すべき©Silicon Studio Corp., all rights reserved.

180

HDR出⼒時のLUTの注意• 8-bit RGBでは精度不⾜– 32x32x32以上の10bit以上を推奨• GPU側の補間精度にも注意– 8-bitフォーマットでは補間も8bit精度になる場合も• à既存のLUTも事前に変換しておく– グレーディングパラメタが残っているなら直接再作成するのが理想– 前後の⾊空間変換も含めるHDR LUTなら• RGBA16_FLOAT• 補間精度さえ⾼ければもっと低精度のFLOATでも問題ない︖– R11_G11_B10_FLOATは︖– 最⾼輝度付近の⾊がやや精度不⾜かも知れない©Silicon Studio Corp., all rights reserved.

181

フローの詳細な考慮• 先述のフローに含まれていない細かな事項の検討– 動的トーンマップ最適化– LUTの互換性– カラーグレーディングとしてのガンマ調整• 詳細を考慮した⾊空間フロー©Silicon Studio Corp., all rights reserved.

182

カラーグレーディングとしてのガンマ調整• SDRでsRGB変換と同時にガンマ調整– 従来のSDRレンダリングではよく利⽤される– sRGBではなく⼀様なガンマ値を使っていたケースも多い– 例︓• sRGBの代わりにγ2.2補正を使⽤• ⾼速化のためγ2.0補正(sqrt)を使⽤• コントラストを上げるためにγ1.8補正を使⽤• etc.

©Silicon Studio Corp., all rights reserved.

183

カラーグレーディングとしてのガンマ調整• HDR時にSDRとの互換性を保つためには– トーンマップ後OETF変換の前にガンマ調整を適⽤– SDRシステムガンマ(OOTF)互換カーブと同時適⽤が効率的• SDRシステムガンマ(再掲)– sRGB OETFàBT.1886(γ2.4) EOTF(PCではγ2.2)• sRGB OETFの代わりにSDR時のガンマ補正をそのまま適⽤– SDR時ガンマ補正àBT.1886(γ2.4) EOTF(PCではγ2.2)– SDR LUTのフローも合成すると、HDR拡張トーンマップ前に• BT.709レンダリング結果àSDRトーンマップ• SDR時ガンマ補正– SDRガンマ空間でLUT適⽤• BT.1886(γ2.4) EOTF(PCではγ2.2)• 逆SDRトーンマップàBT.2020⾊域⾮線形拡張変換©Silicon Studio Corp., all rights reserved.

184

フローの詳細な考慮• 先述のフローに含まれていない細かな事項の検討– 動的トーンマップ最適化– LUTの互換性– カラーグレーディングとしてのガンマ調整• 詳細を考慮した⾊空間フロー©Silicon Studio Corp., all rights reserved.

185

細かな処理の互換性を考慮した
HDR出⼒の⾊空間フロー• 既存のSDR出⼒との互換性を重視する場合– SDRトーンマップ• ガンマ調整(あるいは sRGB OETF)• SDR LUT
• BT.1886(PCではγ2.2) EOTF

– SDR逆トーンマップ– BT.2020⾊域への⾮線形拡張変換– 最⼤輝度解析– HDR拡張トーンマップ– PQ OETF– ディザリング• このフローを先述のレンダリングフローに⽭盾無く組み込む©Silicon Studio Corp., all rights reserved.

186

SDR出⼒の⾊空間フロー• SDR出⼒時は従来同様の⼀般的なフロー– SDRトーンマップ– ガンマ調整(あるいは sRGB OETF)– SDR LUT
– ディザリング– LUTやディザリングを利⽤する場合• 原則としてハードウェアsRGB出⼒は利⽤できない• sRGB変換後に各処理が必要になるため©Silicon Studio Corp., all rights reserved.

187

互換性重視レンダリングフローの構築

本セッションの⽬的
⾊空間
前提として押さえておきたいこと
基本的なレンダリングフローの検討
その他の考慮すべきこと
互換性重視レンダリングフローの構築
まとめ©Silicon Studio Corp., all rights reserved.

既存のSDR出⼒との互換性を重視• 既存タイトルのHDR対応等– レンダリングはBT.709ベースで• UI描画も原則としてBT.709の素材を使⽤– LUTはsRGB(あるいは任意のガンマ補正済)⾊空間で適⽤• さまざまなHDR⽅式への対応– 新たな⽅式が追加されても対応可能に©Silicon Studio Corp., all rights reserved.

189

即時OETF• HDR10等– BT.2020 PQ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

190

再掲︓BT.709ベース(UI描画は出⼒⾊空間別)
共通の線形⾊空間(BT.709 scRGB)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップsRGB OETF

BT.709sRGB
SDR

ポストプロセス
BT.2020拡張変換

BT.709線形(scRGB)
HDR

トーンマップPQ OETF©Silicon Studio Corp., all rights reserved.

BT.2020
PQ
MDR

UI 描画
BT.709sRGB出⼒(⾮線形)

UI 描画
BT.2020
PQ出⼒(⾮線形)

BT.709sRGB
SDR

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形
MDR191

詳細︓BT.709ベース(UI描画は出⼒⾊空間別)
共通の線形⾊空間(BT.709 scRGB)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ

アプリケーション層

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップsRGB OETF

BT.709sRGB
SDR

ポストプロセス
BT.2020拡張変換

BT.709線形(scRGB)
HDR

トーンマップPQ OETF©Silicon Studio Corp., all rights reserved.

BT.2020
PQ
MDR

UI 描画
BT.709sRGB出⼒(⾮線形)

UI 描画
BT.2020
PQ出⼒
(⾮線形)

モニタ出⼒
ポストプロセス
SDRトーンマップ
ガンマ調整(sRGB
モニタ OETF)
SDR
LUT
2.2〜2.4
ディザリング
EOTF
BT.709BT.709
sRGB
SDR

線形
SDR

ポストプロセス
SDRトーンマップ
ガンマ調整(sRGB OETF)
SDR LUT
モニタ EOTF
BT.1886(PCではγ2.2)
SDR逆トーンマップ
PQ
BT.2020⾊域へ⾮線形拡張／変換
EOTF
BT.2020
BT.2020
最⼤輝度解析
PQ HDR拡張トーンマップ 線形
MDR
MDR
PQ OETF
ディザリング192

即時OETFまとめ• パフォーマンス重視• チェッカーボードレンダリングが効率的– ポストプロセスに制限あり• UI描画の⾊空間が異なる– HDR時のUIブレンドが不正確©Silicon Studio Corp., all rights reserved.

193アプリ側遅延OETF• HDR10等– BT.2020 PQ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

194

再掲︓BT.709ベース(UI描画もBT.709線形)
共通の線形⾊空間(BT.709 scRGB)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップ

ポストプロセス
BT.2020拡張変換
トーンマップ
BT.709に戻す©Silicon Studio Corp., all rights reserved.

BT.709線形(scRGB)
SDR

BT.709線形(scRGB)
MDR

UI 描画
BT.709線形出⼒

UI 描画
BT.709線形出⼒BT.2020
線形(scRGB)
SDR

BT.709線形(scRGB)MDRsRGB OETF
BT.709sRGB
SDR

BT.2020
⾊域変換
PQ OETF

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形
MDR
195

詳細︓BT.709ベース(UI描画もBT.709線形)
共通の線形⾊空間(BT.709 scRGB)での処理

SDR

HDR

シーン描画

シーン描画

BT.709線形(scRGB)
HDR

BT.709線形(scRGB)
HDR

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ

ポストプロセス
SDRトーンマップ
アプリケーション層
ガンマ調整(sRGB
OETF)
UI 描画
ポストプロセス
SDR LUT
BT.709
トーンマップsRGB EOTF BT.2020
線形出⼒BT.709線形(scRGB)
SDR

ポストプロセス
BT.2020拡張変換
トーンマップ
BT.709に戻す©Silicon Studio Corp., all rights reserved.

モニタ出⼒
sRGB OETF
BT.709sRGB
SDR

線形(scRGB)
SDR

ポストプロセス
SDRトーンマップ
ガンマ調整(sRGB OETF)
SDR LUT
BT.1886(PCではγ2.2) EOTF
SDR逆トーンマップ
UI 描画
BT.2020⾊域へ⾮線形拡張／変換
BT.709最⼤輝度解析
線形出⼒BT.709BT.709線形 HDR拡張トーンマップ
線形BT.709⾊域に線形変換で戻す(scRGB)(scRGB)
MDR
MDR

モニタ

BT.2020
⾊域変換
PQ OETF

sRGB2.2〜2.4
OETF
ディザリグ
EOTF

BT.709線形
SDR

BT.2020⾊域へ線形変換
モニタ
PQ OETF
PQ
ディザリグ
EOTF
BT.2020
BT.2020
PQ
MDR

線形
MDR

196

アプリ側遅延OETFまとめ• SDRとの互換性重視– フローを通して⾊空間が同じ– UIブレンドが正しい• パフォーマンスはやや劣る– 最後に変換パスが必要– チェッカーボードレンダリングが⾮効率• Dolby Visionでは必ずこのフロー– 必ず描画完了後にエンコードが必要になるため©Silicon Studio Corp., all rights reserved.

197

OS側遅延OETF(scRGB出⼒)• HDR10等– BT.2020 PQ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

198

再掲︓BT.709ベース(すべてscRGBに出⼒)
共通の線形⾊空間(BT.709 scRGB)での処理

OS／ドライバ層

アプリケーション層

SDR
シーン描画

異なる⾮線形出⼒⾊空間での処理
アプリケーション側は関知しない

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップ

BT.709線形(scRGB)
SDR

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
SDR

OS
sRGB
OETF

BT.709
sRGB
SDR

モニタ出⼒
モニタ
2.2〜2.4
EOTF

BT.709
線形
SDR

HDR
シーン描画

ポストプロセス
BT.2020拡張変換

BT.709線形(scRGB)
HDR

トーンマップ
BT.709に戻す

BT.709線形(scRGB)
MDR©Silicon Studio Corp., all rights reserved.

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
MDR

OS
BT.2020PQ OETF

BT.2020
PQ
MDR

モニタ
PQ
EOTF

BT.2020
線形
MDR
199

詳細︓BT.709ベース(すべてscRGBに出⼒)
共通の線形⾊空間(BT.709 scRGB)での処理

アプリケーション層

SDR
シーン描画

異なる⾮線形出⼒⾊空間での処理
アプリケーション側は関知しない

BT.709線形(scRGB)
HDR

ポストプロセス
トーンマップ

BT.709線形(scRGB)
SDR

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
SDR

HDR
シーン描画

ポストプロセス
BT.2020拡張変換

BT.709線形(scRGB)
HDR

トーンマップ
BT.709に戻す

BT.709線形(scRGB)
MDR©Silicon Studio Corp., all rights reserved.

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
MDR

ポストプロセス
SDRトーンマップ
OS／ドライバ層
モニタ出⼒
ガンマ調整(sRGB OETF)
SDR LUTモニタ
OS ディザリング
2.2〜2.4
sRGB sRGB EOTF
OETF
EOTF
BT.709BT.709sRGB
ポストプロセス
SDR
SDRトーンマップ
ガンマ調整(sRGB OETF)
SDR LUT
BT.1886(PCではγ2.2) EOTF
SDR逆トーンマップ
モニタ
OS
BT.2020⾊域へ⾮線形拡張／変換
BT.2020 最⼤輝度解析
PQ
HDR拡張トーンマップ EOTF
PQ OETF
PQBT.2020
OETF
PQ
ディザリングMDR
PQ EOTF
BT.709⾊域に線形変換で戻す

線形
SDR

BT.2020線形MDR200OS側遅延OETF(scRGB出⼒)まとめ• 全体的にやや⾮効率– OS／ドライバ層での変換が⼊る– 互換性を重視すると無駄なパスが増える– チェッカーボードレンダリングが⾮効率• SDRとの互換性が⾼い– フローを通して⾊空間が同じ– UIブレンドは基本的には正しい• ⾊域拡張後のscRGBで乗算ブレンド等を⾏うと不適切になる可能性あり• NVAPIでは必ずこのフロー©Silicon Studio Corp., all rights reserved.

201

既存のSDR出⼒との互換性を重視したフロー
まとめ• 互換性保持のために必要な処理が多い• SDR LUTやディザリング等– 重要性やコストパフォーマンス如何で不採⽤も検討©Silicon Studio Corp., all rights reserved.

202

前提条件を変えたフローも考えられる• 例えば新規開発でSDRフローも刷新できる場合– 仮に条件として• レンダリングはBT.2020ベース• LUTもHDR空間– LUT⽤の何らかの効率的な⾊空間で適⽤• SDRのガンマ補正を利⽤したコントラスト調整は⾏わない– LUTやトーンマップを利⽤• UI描画はBT.2020の素材を出⼒に合わせて逐次変換– ⾊域圧縮マッピング©Silicon Studio Corp., all rights reserved.

203前提条件を変えた
SDR⾊空間フロー• HDR LUT⼊⼒⾊空間へ変換• HDR LUT適⽤で線形に戻る• BT.709⾊域への⾮線形圧縮と変換• 最⼤輝度解析• SDRトーンマップ• sRGB OETF
• ディザリング• HDR出⼒を含む汎⽤フローのため従来のSDR出⼒より複雑©Silicon Studio Corp., all rights reserved.

204

前提条件を変えた
HDR⾊空間フロー• HDR LUT⼊⼒⾊空間へ変換• HDR LUT適⽤で線形に戻る• 最⼤輝度解析• HDR拡張トーンマップ• sRGB OETF
• BT.1886(PCではγ2.2) EOTF
• PQ OETF• ディザリング• 過去のSDRとの互換性重視フローよりも全体的にシンプル©Silicon Studio Corp., all rights reserved.

205

即時OETF• HDR10等– BT.2020 PQ ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

206

再掲︓BT.2020ベース(UI描画は出⼒⾊空間別)
共通の線形⾊空間(BT.2020)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

シーン描画
BT.2020
線形
HDR

HDR

シーン描画
BT.2020
線形
HDR

ポストプロセス
BT.709圧縮変換
トーンマップsRGB OETF

ポストプロセス
トーンマップPQ OETF©Silicon Studio Corp., all rights reserved.

BT.709sRGB
SDR

BT.2020
PQ
MDR

UI 描画
BT.709sRGB出⼒(⾮線形)

UI 描画
BT.2020
PQ出⼒(⾮線形)

BT.709sRGB
SDR

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形
MDR
207

詳細︓BT.2020ベース(UI描画は出⼒⾊空間別)
共通の線形⾊空間(BT.2020)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
アプリケーション層

SDR

シーン描画
BT.2020
線形
HDR

HDR

シーン描画
BT.2020
線形
HDR

ポストプロセス
BT.709圧縮変換
トーンマップsRGB OETF

ポストプロセス
トーンマップPQ OETF©Silicon Studio Corp., all rights reserved.

BT.709sRGB
SDR

BT.2020
PQ
MDR

ポストプロセス
モニタ出⼒
HDR LUT⼊⼒⾊空間へ変換
HDR LUT適⽤で線形に戻す
UI 描画
モニタ
BT.709⾊域へ⾮線形圧縮／変換
BT.7092.2〜2.4
sRGB出⼒最⼤輝度解析
EOTF(⾮線形)
BT.709BT.709SDRトーンマップ
線形sRGB sRGB OETF
SDR ディザリング
SDR

UI 描画
BT.2020
PQ出⼒(⾮線形)

ポストプロセス
HDR LUT⼊⼒⾊空間へ変換
モニタ
HDR LUT適⽤で線形に戻す
PQ
最⼤輝度解析EOTF
HDR拡張トーンマップ
BT.2020
BT.2020
sRGB
OETF
線形
PQ
BT.1886(PCではγ2.2)
EOTF MDRMDR
PQ OETF
ディザリング208

即時OETFまとめ• パフォーマンス重視• チェッカーボードレンダリングが効率的– ポストプロセスに制限あり• UI描画の⾊空間が異なる– HDR時のUIブレンドが不正確©Silicon Studio Corp., all rights reserved.

209アプリ側遅延OETF• HDR10等– BT.2020 PQ ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

210

再掲︓BT.2020ベース(UI描画もBT.2020線形)
共通の⾊空間(BT.2020 線形)での処理

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ
モニタ出⼒

アプリケーション層

SDR

シーン描画
BT.2020
線形
HDR

HDR

ポストプロセス
BT.709圧縮変換
トーンマップBT.2020に戻す

BT.2020
線形
SDR

ポストプロセス
トーンマップ

シーン描画
BT.2020
線形
HDR©Silicon Studio Corp., all rights reserved.

BT.2020
線形
MDR

UI 描画
BT.2020
線形出⼒

UI 描画
BT.2020
線形出⼒

BT.2020
線形
SDR

BT.709⾊域変換
sRGB OETF

BT.709sRGB
SDR

PQ OETF
BT.2020
線形
MDR

BT.2020PQ
MDR

モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形
MDR
211

詳細︓BT.2020ベース(UI描画もBT.2020線形)
共通の⾊空間(BT.2020 線形)での処理

SDR

シーン描画
BT.2020
線形
HDR

HDR

ポストプロセス
アプリケーション層
HDR LUT⼊⼒⾊空間へ変換
ポストプロセス
HDR LUT適⽤で線形に戻す
UI 描画
BT.709BT.709圧縮変換
⾊域変換
BT.2020
BT.709⾊域へ⾮線形圧縮／変換
トーンマップ線形出⼒
sRGB OETF
BT.2020に戻す
最⼤輝度解析
BT.2020
BT.2020
SDRトーンマップ
線形
線形
BT.2020⾊域に線形変換で戻す
SDR
SDR

ポストプロセス
トーンマップ

シーン描画

異なる⾮線形出⼒⾊空間での処理
SDRはBT.709 sRGB
HDRはBT.2020 PQ

BT.2020
線形
HDR©Silicon Studio Corp., all rights reserved.

ポストプロセス
HDR LUT⼊⼒⾊空間へ変換
UI 描画
HDR LUT適⽤で線形に戻す
BT.2020
最⼤輝度解析
線形出⼒BT.2020
BT.2020
HDR拡張トーンマップ
線形
MDR

線形
MDR

PQ OETF

モニタ出⼒
BT.709⾊域へ線形変換
モニタ
sRGB
OETF
2.2〜2.4
ディザリグ
EOTF
BT.709BT.709
sRGB
SDR

線形
SDR

sRGB OETF
モニタ
BT.1886(PCではγ2.2) EOTF
PQ
PQ OETF
EOTF
BT.2020 ディザリグ
BT.2020
PQ
MDR

線形
MDR

212

アプリ側遅延OETFまとめ• SDRとの互換性重視– フローを通して⾊空間が同じ– UIブレンドが正しい• パフォーマンスはやや劣る– 最後に変換パスが必要– チェッカーボードレンダリングが⾮効率• Dolby Visionでは必ずこのフロー– 必ず描画完了後にエンコードが必要になるため©Silicon Studio Corp., all rights reserved.

213

OS側遅延OETF(scRGB出⼒)• HDR10等– BT.2020 PQ ⾮線形⾊空間での書き出し• RGB10_A2/RGBA16_UNORMフォーマットに出⼒– scRGB 線形⾊空間での書き出し• RGBA16_FLOATフォーマットに出⼒• HLG– 現状ではリアルタイムコンテンツにおける対応無し• 対応する場合はRGB10_A2/RGBA16_UNORMに出⼒• Dolby Vision– RGBA8_UNORMフォーマットに出⼒• etc.

• 内部データとしては12-bit YCbCr 4:2:2©Silicon Studio Corp., all rights reserved.

214

再掲︓BT.2020ベース(UI描画はscRGB)
共通の線形⾊空間(BT.2020)での処理

共通の線形⾊空間(BT.709 scRGB)での処理

異なる⾮線形出⼒⾊空間での処理
アプリケーション側は関知しない
OS／ドライバ層

アプリケーション層

SDR
シーン描画
BT.2020
線形
HDR

ポストプロセス
BT.709⾊域変換(⾊域圧縮付)
トーンマップ

BT.709線形(scRGB)
SDR

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
SDR

OS
sRGB
OETF

BT.709
sRGB
SDR

モニタ出⼒
モニタ
2.2〜2.4
EOTF

BT.709
線形
SDR

HDR
シーン描画
BT.2020
線形
HDR

ポストプロセス
トーンマップ
BT.709⾊域変換

BT.709線形(scRGB)
MDR©Silicon Studio Corp., all rights reserved.

UI 描画
BT.709線形出⼒BT.709線形(scRGB)
MDR

OS
BT.2020PQ OETF

BT.2020
PQ
MDR

モニタ
PQ
EOTF

BT.2020
線形
MDR
215

詳細︓BT.2020ベース(UI描画はscRGB)
共通の線形⾊空間(BT.2020)での処理

SDR
シーン描画
BT.2020
線形
HDR

HDR
シーン描画
BT.2020線形
HDR

共通の線形⾊空間(BT.709 scRGB)での処理
ポストプロセス

HDR LUT⼊⼒⾊空間へ変換
HDR LUT適⽤で線形に戻す
BT.709⾊域へ⾮線形圧縮／変換
最⼤輝度解析
アプリケーション層
SDRトーンマップ
sRGB OETF
ポストプロセス
UI 描画
BT.709⾊域変換
ディザリング
BT.709(⾊域圧縮付)sRGB EOTF
線形出⼒
BT.709BT.709
トーンマップ線形
線形(scRGB)(scRGB)
SDR
ポストプロセスSDRHDR LUT⼊⼒⾊空間へ変換
HDR LUT適⽤で線形に戻す
最⼤輝度解析
HDR拡張トーンマップ
UI 描画
ポストプロセス
sRGB OETF
トーンマップ
BT.709BT.1886(PCではγ2.2)
EOTF
BT.709⾊域変換
線形出⼒
BT.709BT.709PQ OETF
線形
線形
ディザリング(scRGB)PQ EOTF (scRGB)
MDR
MDR
BT.709に線形変換で戻す©Silicon Studio Corp., all rights reserved.

異なる⾮線形出⼒⾊空間での処理
アプリケーション側は関知しない
OS／ドライバ層
OS
sRGB
OETF

OS
BT.2020PQ OETF

BT.709sRGB
SDR

BT.2020
PQ
MDR

モニタ出⼒
モニタ
2.2〜2.4
EOTF

モニタ
PQ
EOTF

BT.709線形
SDR

BT.2020
線形MDR
216

OS側遅延OETF(scRGB出⼒)まとめ• 全体的にやや⾮効率– OS／ドライバ層での変換が⼊る– 互換性を重視すると無駄なパスが増える– チェッカーボードレンダリングが⾮効率• SDRとの互換性が⾼い– フローを通して⾊空間が同じ– UIブレンドは基本的には正しい• 広⾊域のためscRGBで乗算ブレンド等を⾏うと不適切になる可能性あり• NVAPIでは必ずこのフロー©Silicon Studio Corp., all rights reserved.

217

まとめ

本セッションの⽬的
⾊空間
前提として押さえておきたいこと
基本的なレンダリングフローの検討
その他の考慮すべきこと
互換性重視レンダリングフローの構築
まとめ©Silicon Studio Corp., all rights reserved.

SDRと互換性を保つレンダリングフロー• さまざまな要素の検討が必要– SDR出⼒時に何の処理がどの⾊空間で⾏われているか– 順番等を⼊れ替えた場合の影響の考慮– 異なる⾊空間での絵作りやパラメタの互換性をどう保つか• とにかく⾊空間の遷移を正確に把握すること– 論理的に考察すると意外と複雑になる…

©Silicon Studio Corp., all rights reserved.

219

SDRと互換性を保つレンダリングフロー• とりあえず最低限の対応なら…

– アプリ側の遅延OETFだけでも良い• パフォーマンス重視の即時OETFもあると選択肢は増える– OS層による遅延OETF(アプリ側scRGB出⼒)は• 互換性その他を考慮すると無駄が多くなる• 多くのケースでは他の選択肢があるため必須ではない©Silicon Studio Corp., all rights reserved.

220

SDRと互換性を保つレンダリングフロー• 必ずしも紹介した⽅法が正解ではない– SDRレンダリング時の条件に依存– 重要度の低い要素の省略– 簡略化できる部分の検討• 重要なのはフロー構築のための考え⽅– 各々に最適なフローを考察してみてください– 紹介した内容がヒントになれば幸いです©Silicon Studio Corp., all rights reserved.

221

References©Silicon Studio Corp., all rights reserved.

References
•
•
•
•
•
•
•

Recommendation ITU-R BT.601 “Studio encoding parameters of digital television for standard 4:3 and wide-screen 16:9 aspect ratios.”
http://www.itu.int/rec/R-REC-BT.601/, 2011.
Recommendation ITU-R BT.709 “Parameter values for the HDTV standards for production and international programme exchange.”
http://www.itu.int/rec/R-REC-BT.709/, 2015.
Recommendation ITU-R BT.1886 “Reference electro-optical transfer function for flat panel displays used in HDTV studio production.”
http://www.itu.int/rec/R-REC-BT.1886/, 2011.
Recommendation ITU-R BT.2020 “Parameter values for ultra-high definition television systems for production and international programmeexchange.” http://www.itu.int/rec/R-REC-BT.2020/, 2015.
Recommendation ITU-R BT.2100 “Image parameter values for high dynamic range television for use in production and international programmeexchange.” http://www.itu.int/rec/R-REC-BT.2100/, 2016.
Report ITU-R BT.2390 “High dynamic range television for production and international programme exchange.” https://www.itu.int/pub/R-REPBT.2390/, 2016.
BBC Research & Development, “Perceptual Quantiser (PQ) to Hybrid Log-Gamma (HLG) Transcoding.”
http://www.bbc.co.uk/rd/sites/50335ff370b5c262af000004/assets/592eea8006d63e5e5200f90d/BBC_HDRTV_PQ_HLG_Transcode_v2.pdf,
HDR-TV, 2017.

•

ARIB STD-B67 “ESSENTIAL PARAMETER VALUES FOR THE EXTENDED IMAGE DYNAMIC RANGE TELEVISION (EIDRTV) SYSTEM FOR PROGRAMMEPRODUCTION ARIB STANDARD.” http://www.arib.or.jp/tyosakenkyu/kikaku_hoso/hoso_std-b067.html, 2015.

••

MSDN, “High Dynamic Range and Wide Color Gamut” https://msdn.microsoft.com/en-us/library/windows/desktop/mt742103(v=vs.85).aspx
NVIDIA GameWorks, “High Dynamic Range Display Development.” https://developer.nvidia.com/high-dynamic-range-display-development©Silicon Studio Corp., all rights reserved.

223

References••••[Kawase16]
Kawase, M. “シリコンスタジオによるHDR出⼒対応の理論と実践”
http://www.siliconstudio.co.jp/rd/presentations/#CEDEC2016 Computer Entertainment Developers Conference 2016.
[Uchimura17]
Uchimura, H. “HDR 理論と実践” https://www.slideshare.net/nikuque/hdr-theory-and-practicce-jp ComputerEntertainment Developers Conference 2017.
[Gotanda07]
Gotanda, Y. “レンダリストのためのカメラ（光学）理論とポストエフェクト” http://research.tri-ace.com/
CESA Developers Conference 2007.
[Lottes16]
Lottes, T. “Advanced Techniques and Optimization of HDR VDR Color Pipelines.” https://32ipi028l5q82yhj72224m8jwpengine.netdna-ssl.com/wp-content/uploads/2016/03/GdcVdrLottes.pdf, Game Developers Conference 2016.

©Silicon Studio Corp., all rights reserved.

224