Win32 API 日本語リファレンス
ホームMedia.MediaFoundation › DXVA2_VideoTransferMatrix

DXVA2_VideoTransferMatrix

列挙型
基底型i4

メンバー 5

名前10進16進説明
DXVA2_VideoTransferMatrixMask70x7フラグ値を検証するためのビットマスクです。この値は有効なフラグではありません。
DXVA2_VideoTransferMatrix_Unknown00x0不明です。標準解像度のコンテンツでは DXVA2_VideoTransferMatrix_BT601 として扱います。高解像度のコンテンツでは DXVA2_VideoTransferMatrix_BT709 として扱います。(ここでいう高解像度コンテンツとは、ソースの高さが 576 ラインを超えるものを指します。)
DXVA2_VideoTransferMatrix_BT70910x1ITU-R BT.709 の変換マトリックスです。
DXVA2_VideoTransferMatrix_BT60120x2ITU-R BT.601 の変換マトリックスです。SMPTE 170 および ITU-R BT.470-2 System B,G にも使用されます。
DXVA2_VideoTransferMatrix_SMPTE240M30x3SMPTE 240M の変換マトリックスです。

公式ドキュメント

Y'PbPr (コンポーネントビデオ) とスタジオ R'G'B' の間の変換マトリックスを表します。これらのフラグは DXVA2_ExtendedFormat 構造体で使用されます。

解説(Remarks)

変換マトリックスは次のように定義されます。

BT.709 の変換マトリックス:

Y'        0.212600    0.715200    0.072200       R' 
Pb   =   -0.114572   -0.385428    0.500000   x   G' 
Pr        0.500000   -0.454153   -0.045847       B' 

R'        1.000000    0.000000    1.574800       Y' 
G'   =    1.000000   -0.187324   -0.468124   x   Pb 
B'        1.000000    1.855600    0.000000       Pr 

BT.601 の変換マトリックス:

Y'        0.299000    0.587000    0.114000       R' 
Pb   =   -0.168736   -0.331264    0.500000   x   G' 
Pr        0.500000   -0.418688   -0.081312       B' 

R'        1.000000    0.000000    1.402000       Y' 
G'   =    1.000000   -0.344136   -0.714136   x   Pb 
B'        1.000000    1.772000    0.000000       Pr 

SMPTE 240M (SMPTE RP 145) の変換マトリックス:

Y'        0.212000    0.701000    0.087000       R' 
Pb   =   -0.116000   -0.384000    0.500000   x   G' 
Pr        0.500000   -0.445000   -0.055000       B' 

R'        1.000000   -0.000000    1.576000       Y' 
G'   =    1.000000   -0.227000   -0.477000   x   Pb 
B'        1.000000    1.826000    0.000000       Pr 

この列挙型は、DXVA 1.0 で使用される DXVA_VideoTransferMatrix 列挙型と同等です。

ビデオ形式の記述に IMFMediaType インターフェイスを使用している場合、ビデオ変換マトリックスは MF_MT_YUV_MATRIX 属性で指定します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum DXVA2_VideoTransferMatrix : int {
    DXVA2_VideoTransferMatrixMask = 7,
    DXVA2_VideoTransferMatrix_Unknown = 0,
    DXVA2_VideoTransferMatrix_BT709 = 1,
    DXVA2_VideoTransferMatrix_BT601 = 2,
    DXVA2_VideoTransferMatrix_SMPTE240M = 3
} DXVA2_VideoTransferMatrix;
public enum DXVA2_VideoTransferMatrix : int
{
    DXVA2_VideoTransferMatrixMask = 7,
    DXVA2_VideoTransferMatrix_Unknown = 0,
    DXVA2_VideoTransferMatrix_BT709 = 1,
    DXVA2_VideoTransferMatrix_BT601 = 2,
    DXVA2_VideoTransferMatrix_SMPTE240M = 3,
}
Public Enum DXVA2_VideoTransferMatrix As Integer
    DXVA2_VideoTransferMatrixMask = 7
    DXVA2_VideoTransferMatrix_Unknown = 0
    DXVA2_VideoTransferMatrix_BT709 = 1
    DXVA2_VideoTransferMatrix_BT601 = 2
    DXVA2_VideoTransferMatrix_SMPTE240M = 3
End Enum
import enum

class DXVA2_VideoTransferMatrix(enum.IntEnum):
    DXVA2_VideoTransferMatrixMask = 7
    DXVA2_VideoTransferMatrix_Unknown = 0
    DXVA2_VideoTransferMatrix_BT709 = 1
    DXVA2_VideoTransferMatrix_BT601 = 2
    DXVA2_VideoTransferMatrix_SMPTE240M = 3
// DXVA2_VideoTransferMatrix
pub const DXVA2_VideoTransferMatrixMask: i32 = 7;
pub const DXVA2_VideoTransferMatrix_Unknown: i32 = 0;
pub const DXVA2_VideoTransferMatrix_BT709: i32 = 1;
pub const DXVA2_VideoTransferMatrix_BT601: i32 = 2;
pub const DXVA2_VideoTransferMatrix_SMPTE240M: i32 = 3;
// DXVA2_VideoTransferMatrix
const (
	DXVA2_VideoTransferMatrixMask int32 = 7
	DXVA2_VideoTransferMatrix_Unknown int32 = 0
	DXVA2_VideoTransferMatrix_BT709 int32 = 1
	DXVA2_VideoTransferMatrix_BT601 int32 = 2
	DXVA2_VideoTransferMatrix_SMPTE240M int32 = 3
)
const
  DXVA2_VideoTransferMatrixMask = 7;
  DXVA2_VideoTransferMatrix_Unknown = 0;
  DXVA2_VideoTransferMatrix_BT709 = 1;
  DXVA2_VideoTransferMatrix_BT601 = 2;
  DXVA2_VideoTransferMatrix_SMPTE240M = 3;
// DXVA2_VideoTransferMatrix
pub const DXVA2_VideoTransferMatrixMask: i32 = 7;
pub const DXVA2_VideoTransferMatrix_Unknown: i32 = 0;
pub const DXVA2_VideoTransferMatrix_BT709: i32 = 1;
pub const DXVA2_VideoTransferMatrix_BT601: i32 = 2;
pub const DXVA2_VideoTransferMatrix_SMPTE240M: i32 = 3;
const
  DXVA2_VideoTransferMatrixMask* = 7
  DXVA2_VideoTransferMatrix_Unknown* = 0
  DXVA2_VideoTransferMatrix_BT709* = 1
  DXVA2_VideoTransferMatrix_BT601* = 2
  DXVA2_VideoTransferMatrix_SMPTE240M* = 3
enum DXVA2_VideoTransferMatrix : int {
    DXVA2_VideoTransferMatrixMask = 7,
    DXVA2_VideoTransferMatrix_Unknown = 0,
    DXVA2_VideoTransferMatrix_BT709 = 1,
    DXVA2_VideoTransferMatrix_BT601 = 2,
    DXVA2_VideoTransferMatrix_SMPTE240M = 3,
}
#define global DXVA2_VideoTransferMatrixMask       0x7
#define global DXVA2_VideoTransferMatrix_Unknown   0x0
#define global DXVA2_VideoTransferMatrix_BT709     0x1
#define global DXVA2_VideoTransferMatrix_BT601     0x2
#define global DXVA2_VideoTransferMatrix_SMPTE240M 0x3