次の方法で共有


DXVA2_NominalRange列挙 (dxva2api.h)

色データを正規化された [0...1] 範囲にマップする方法について説明します。

これらのフラグは、 DXVA2_ExtendedFormat 構造体で使用されます。 色の値の範囲にヘッドルーム (白 100% を超える値) と曓曺 (黒の下の値) が含まれているかどうかを示します。

構文

typedef enum _DXVA2_NominalRange {
  DXVA2_NominalRangeMask = 0x7,
  DXVA2_NominalRange_Unknown = 0,
  DXVA2_NominalRange_Normal = 1,
  DXVA2_NominalRange_Wide = 2,
  DXVA2_NominalRange_0_255 = 1,
  DXVA2_NominalRange_16_235 = 2,
  DXVA2_NominalRange_48_208 = 3
} DXVA2_NominalRange;

定数

 
DXVA2_NominalRangeMask
値: 0x7
フラグ値を検証するためのビットマスク。 この値は有効なフラグではありません。
DXVA2_NominalRange_Unknown
値: 0
名目の範囲が不明または指定されていません。

この値がDXVA2_VideoProcessBltParams構造体の DestFormat メンバーで使用されている場合、ドライバーは目的の色空間に基づいて最適な標準範囲を決定します。 たとえば、宛先サーフェスは通常 sRGB で、チャネルあたり 0 から 255 の公称範囲を持ちます。 ただし、ドライバーは、リファレンス白の上の値を維持しながら、動的範囲を最大化する自動ゲイン制御などの手法を使用する場合があります。
DXVA2_NominalRange_Normal
値: 1
DXVA2_NominalRange_0_255に相当します。
DXVA2_NominalRange_Wide
値: 2
DXVA2_NominalRange_16_235に相当します。
DXVA2_NominalRange_0_255
値: 1
正規化された範囲 [0...1] は、8 ビット サンプルの場合は [0....255] に、10 ビット サンプルの場合は [0....1023] にマップされます。
DXVA2_NominalRange_16_235
値: 2
正規化された範囲 [0...1] は、8 ビット サンプルの場合は [16....235] に、10 ビット サンプルの場合は [64....940] にマップされます。
DXVA2_NominalRange_48_208
値: 3
正規化された範囲 [0..1] は、8 ビット サンプルの場合は [48....208] に、10 ビット サンプルの場合は [192....832] にマップされます。

解説

YUV 色の場合、これらのフラグは Y'CbCr と Y'PbPr の間で変換する方法を指定します。 Y'PbPr 色空間の範囲は、Y' (luma) の場合は [0...1]、Pb/Pr (彩度) の場合は [-0.5....0.5] です。

[説明]
DXVA2_NominalRange_0_255 YUV データには使用しないでください。
DXVA2_NominalRange_16_235 8 ビット Y'CbCr コンポーネントの場合:
  • Y' の範囲 [0...1] は、8 ビット Y' 値の [16...235] にマップされます。
  • [-0.5...0.5] の Pb/Pr 範囲は、8 ビット Cb/Cr 値の場合は [16....240] にマップされます。
n ビットの精度を持つサンプルの場合、一般的な数式は次のとおりです。
  • Y' = (Y' * 219 + 16) * 2 ^ (n-8)
  • Cb = (Pb * 224 + 128) * 2 ^ (n-8)
  • Cr = (Pr * 224 + 128) * 2 ^ (n-8)
Y'CbCr から Y'PbPr に変換する逆方程式は次のとおりです。
  • Y' = (Y' / 2 ^ (n-8) - 16) / 219
  • Pb = (Cb / 2 ^ (n-8) - 128) / 224
  • Pr = (Cr / 2 ^ (n-8) - 128) / 224
DXVA2_NominalRange_48_208 8 ビットの Y'CbCr 値の場合、Y' の範囲 [0..1] は [48...208] にマップされます。
 

RGB 色の場合、フラグはさまざまな RGB スペースを区別します。

[説明]
DXVA2_NominalRange_0_255 [sRGB]
DXVA2_NominalRange_16_235 スタジオ RGB;ITU-R BT.709
DXVA2_NominalRange_48_208 ITU-R BT.1361 RGB
 

ビデオ データには、標準範囲の上または下の値が含まれている場合があります。

メモ DXVA2_NominalRange_Normal と DXVA2_NominalRange_Wide という名前の値は、混乱の原因になる可能性があります。 Wide は、標準範囲 [0...1] をより狭い範囲のデジタル値にマッピングすることで、表現できるアナログ値の範囲を指します。 このコンテキストの ワイド の意味はあいまいであるため、DXVA2_NominalRange_0_255 と DXVA2_NominalRange_16_235 という名前の同等の値が推奨されます。 これらの名前は列挙型の意味を明示的に伝え、誤って解釈される可能性は低くなります。
 
この列挙体は、DXVA 1.0 で使用される DXVA_NominalRange 列挙と同じですが、追加の値が定義されています。

IMFMediaType インターフェイスを使用してビデオ形式を記述する場合、標準範囲は MF_MT_VIDEO_NOMINAL_RANGE 属性で指定されます。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header dxva2api.h

関連項目

拡張色情報

Media Foundation 列挙