ホーム › Media.MediaFoundation › DXVA2_NominalRange
DXVA2_NominalRange
列挙型メンバー 7
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| DXVA2_NominalRangeMask | 7 | 0x7 | フラグ値を検証するためのビットマスクです。この値は有効なフラグではありません。 |
| DXVA2_NominalRange_Unknown | 0 | 0x0 | 不明または未指定の公称範囲です。 この値を DXVA2_VideoProcessBltParams 構造体の DestFormat メンバーで使用した場合、ドライバーは転送先の色空間に基づいて最適な公称範囲を決定します。たとえば、転送先サーフェスは通常 sRGB であり、チャネルあたり 0 ~ 255 の公称範囲を持ちます。ただし、ドライバーは自動ゲイン制御などの手法を使用して、基準白を超える値を保持しつつダイナミックレンジを最大化する場合があります。 |
| DXVA2_NominalRange_Normal | 1 | 0x1 | DXVA2_NominalRange_0_255 と同等です。 |
| DXVA2_NominalRange_Wide | 2 | 0x2 | DXVA2_NominalRange_16_235 と同等です。 |
| DXVA2_NominalRange_0_255 | 1 | 0x1 | 正規化された範囲 [0...1] は、8 ビットサンプルでは [0...255] に、10 ビットサンプルでは [0...1023] にマッピングされます。 |
| DXVA2_NominalRange_16_235 | 2 | 0x2 | 正規化された範囲 [0...1] は、8 ビットサンプルでは [16...235] に、10 ビットサンプルでは [64...940] にマッピングされます。 |
| DXVA2_NominalRange_48_208 | 3 | 0x3 | 正規化された範囲 [0..1] は、8 ビットサンプルでは [48...208] に、10 ビットサンプルでは [192...832] にマッピングされます。 |
公式ドキュメント
カラーデータを正規化された [0...1] の範囲にマッピングする方法を記述します。
これらのフラグは DXVA2_ExtendedFormat 構造体で使用されます。これらは、カラー値の範囲にヘッドルーム (100% 白を超える値) とトウルーム (基準黒を下回る値) が含まれるかどうかを示します。
解説(Remarks)
YUV カラーの場合、これらのフラグは Y'CbCr と Y'PbPr の間で変換する方法を指定します。Y'PbPr 色空間は、Y' (輝度) が [0..1]、Pb/Pr (彩度) が [-0.5...0.5] の範囲を持ちます。
| 値 | 説明 |
|---|---|
| DXVA2_NominalRange_0_255 | YUV データには使用しないでください。 |
| DXVA2_NominalRange_16_235 |
8 ビットの Y'CbCr 成分の場合:
|
| 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] をより狭いデジタル値の範囲にマッピングすることによって表現できるアナログ値の範囲を指します。この文脈での wide の意味はあいまいであるため、同等の値である DXVA2_NominalRange_0_255 と DXVA2_NominalRange_16_235 を使用することをお勧めします。これらの名前は列挙型の意味を明示的に伝えるため、誤解される可能性が低くなります。
ビデオ形式の記述に IMFMediaType インターフェイスを使用している場合、公称範囲は MF_MT_VIDEO_NOMINAL_RANGE 属性で指定します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum DXVA2_NominalRange : int {
DXVA2_NominalRangeMask = 7,
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;public enum DXVA2_NominalRange : int
{
DXVA2_NominalRangeMask = 7,
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,
}Public Enum DXVA2_NominalRange As Integer
DXVA2_NominalRangeMask = 7
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
End Enumimport enum
class DXVA2_NominalRange(enum.IntEnum):
DXVA2_NominalRangeMask = 7
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
pub const DXVA2_NominalRangeMask: i32 = 7;
pub const DXVA2_NominalRange_Unknown: i32 = 0;
pub const DXVA2_NominalRange_Normal: i32 = 1;
pub const DXVA2_NominalRange_Wide: i32 = 2;
pub const DXVA2_NominalRange_0_255: i32 = 1;
pub const DXVA2_NominalRange_16_235: i32 = 2;
pub const DXVA2_NominalRange_48_208: i32 = 3;// DXVA2_NominalRange
const (
DXVA2_NominalRangeMask int32 = 7
DXVA2_NominalRange_Unknown int32 = 0
DXVA2_NominalRange_Normal int32 = 1
DXVA2_NominalRange_Wide int32 = 2
DXVA2_NominalRange_0_255 int32 = 1
DXVA2_NominalRange_16_235 int32 = 2
DXVA2_NominalRange_48_208 int32 = 3
)const
DXVA2_NominalRangeMask = 7;
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
pub const DXVA2_NominalRangeMask: i32 = 7;
pub const DXVA2_NominalRange_Unknown: i32 = 0;
pub const DXVA2_NominalRange_Normal: i32 = 1;
pub const DXVA2_NominalRange_Wide: i32 = 2;
pub const DXVA2_NominalRange_0_255: i32 = 1;
pub const DXVA2_NominalRange_16_235: i32 = 2;
pub const DXVA2_NominalRange_48_208: i32 = 3;const
DXVA2_NominalRangeMask* = 7
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* = 3enum DXVA2_NominalRange : int {
DXVA2_NominalRangeMask = 7,
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,
}#define global DXVA2_NominalRangeMask 0x7
#define global DXVA2_NominalRange_Unknown 0x0
#define global DXVA2_NominalRange_Normal 0x1
#define global DXVA2_NominalRange_Wide 0x2
#define global DXVA2_NominalRange_0_255 0x1
#define global DXVA2_NominalRange_16_235 0x2
#define global DXVA2_NominalRange_48_208 0x3