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

DXVA2_VideoTransferFunction

列挙型
基底型i4

メンバー 10

名前10進16進説明
DXVA2_VideoTransFuncMask310x1Fフラグ値を検証するためのビットマスクです。この値は有効なフラグではありません。
DXVA2_VideoTransFunc_Unknown00x0不明です。DXVA2_VideoTransFunc_709 として扱ってください。
DXVA2_VideoTransFunc_1010x1線形 RGB (ガンマ = 1.0)。
DXVA2_VideoTransFunc_1820x2真の 1.8 ガンマ、L' = L^1/1.8。
DXVA2_VideoTransFunc_2030x3真の 2.0 ガンマ、L' = L^1/2.0。
DXVA2_VideoTransFunc_2240x4真の 2.2 ガンマ、L' = L^1/2.2。この伝達関数は ITU-R BT.470-2 System M (NTSC) で使用されます。
DXVA2_VideoTransFunc_70950x5ITU-R BT.709 伝達関数です。低域に線形セグメントを持つガンマ 2.2 カーブです。この伝達関数は BT.709、BT.601、SMPTE 296M、SMPTE 170M、BT.470、および SMPTE 274M で使用されます。さらに BT-1361 は [0...1] の範囲内でこの関数を使用します。
DXVA2_VideoTransFunc_240M60x6SMPTE 240M 伝達関数です。低域に線形セグメントを持つガンマ 2.2 カーブです。
DXVA2_VideoTransFunc_sRGB70x7sRGB 伝達関数です。低域に線形セグメントを持つガンマ 2.4 カーブです。
DXVA2_VideoTransFunc_2880x8真の 2.8 ガンマです。L' = L^1/2.8。この伝達関数は ITU-R BT.470-2 System B, G (PAL) で使用されます。

公式ドキュメント

線形 RGB から非線形 RGB (R'G'B') への変換関数を指定します。これらのフラグは DXVA2_ExtendedFormat 構造体で使用されます。

解説(Remarks)

次の表に、代表的な伝達関数の式を示します。これらの式において、L は線形値、L' は非線形 (ガンマ補正後) の値です。これらの値は正規化された範囲 [0...1] を基準とします。

色空間 伝達関数
sRGB (8 ビット) L' = 12.92L (L < 0.031308 の場合)

L' = 1.055L^1/2.4− 0.055 (L >= 0.031308 の場合)

BT.470-2 System B, G L' = L^0.36
BT.470-2 System M L' = L^0.45
BT.709 L' = 4.50L (L < 0.018 の場合)

L' = 1.099L^0.45− 0.099 (L >= 0.018 の場合)

scRGB L' = L
SMPTE 240M L' = 4.0L (L < 0.0228 の場合)

L' = 1.1115L^0.45− 0.01115 (L >= 0.0228 の場合)

次の表に、元のガンマ補正値を求めるための逆変換式を示します。

色空間 伝達関数
sRGB (8 ビット) L = 1/12.92L' (L' < 0.03928 の場合)

L = ((L' + 0.055)/1055)^2.4 (L' >= 0.03928 の場合)

BT.470-2 System B, G L = L'^1/0.36
BT.470-2 System M L = L'^1/0.45
BT.709 L = L'/4.50 (L' < 0.081 の場合)

L = ((L' + 0.099) / 1.099)^1/0.45 (L' >= 0.081 の場合)

scRGB L = L'
SMPTE 240M L = L'/4.0 (L' < 0.0913 の場合)

L= ((L' + 0.1115)/1.1115)^1/0.45 (L' >= 0.0913 の場合)

この列挙型は、DXVA 1.0 で使用されていた DXVA_VideoTransferFunction 列挙型と同等です。

IMFMediaType インターフェイスを使用してビデオ形式を記述する場合、伝達関数は MF_MT_TRANSFER_FUNCTION 属性で指定します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_VideoTransferFunction : int {
    DXVA2_VideoTransFuncMask = 31,
    DXVA2_VideoTransFunc_Unknown = 0,
    DXVA2_VideoTransFunc_10 = 1,
    DXVA2_VideoTransFunc_18 = 2,
    DXVA2_VideoTransFunc_20 = 3,
    DXVA2_VideoTransFunc_22 = 4,
    DXVA2_VideoTransFunc_709 = 5,
    DXVA2_VideoTransFunc_240M = 6,
    DXVA2_VideoTransFunc_sRGB = 7,
    DXVA2_VideoTransFunc_28 = 8
} DXVA2_VideoTransferFunction;
public enum DXVA2_VideoTransferFunction : int
{
    DXVA2_VideoTransFuncMask = 31,
    DXVA2_VideoTransFunc_Unknown = 0,
    DXVA2_VideoTransFunc_10 = 1,
    DXVA2_VideoTransFunc_18 = 2,
    DXVA2_VideoTransFunc_20 = 3,
    DXVA2_VideoTransFunc_22 = 4,
    DXVA2_VideoTransFunc_709 = 5,
    DXVA2_VideoTransFunc_240M = 6,
    DXVA2_VideoTransFunc_sRGB = 7,
    DXVA2_VideoTransFunc_28 = 8,
}
Public Enum DXVA2_VideoTransferFunction As Integer
    DXVA2_VideoTransFuncMask = 31
    DXVA2_VideoTransFunc_Unknown = 0
    DXVA2_VideoTransFunc_10 = 1
    DXVA2_VideoTransFunc_18 = 2
    DXVA2_VideoTransFunc_20 = 3
    DXVA2_VideoTransFunc_22 = 4
    DXVA2_VideoTransFunc_709 = 5
    DXVA2_VideoTransFunc_240M = 6
    DXVA2_VideoTransFunc_sRGB = 7
    DXVA2_VideoTransFunc_28 = 8
End Enum
import enum

class DXVA2_VideoTransferFunction(enum.IntEnum):
    DXVA2_VideoTransFuncMask = 31
    DXVA2_VideoTransFunc_Unknown = 0
    DXVA2_VideoTransFunc_10 = 1
    DXVA2_VideoTransFunc_18 = 2
    DXVA2_VideoTransFunc_20 = 3
    DXVA2_VideoTransFunc_22 = 4
    DXVA2_VideoTransFunc_709 = 5
    DXVA2_VideoTransFunc_240M = 6
    DXVA2_VideoTransFunc_sRGB = 7
    DXVA2_VideoTransFunc_28 = 8
// DXVA2_VideoTransferFunction
pub const DXVA2_VideoTransFuncMask: i32 = 31;
pub const DXVA2_VideoTransFunc_Unknown: i32 = 0;
pub const DXVA2_VideoTransFunc_10: i32 = 1;
pub const DXVA2_VideoTransFunc_18: i32 = 2;
pub const DXVA2_VideoTransFunc_20: i32 = 3;
pub const DXVA2_VideoTransFunc_22: i32 = 4;
pub const DXVA2_VideoTransFunc_709: i32 = 5;
pub const DXVA2_VideoTransFunc_240M: i32 = 6;
pub const DXVA2_VideoTransFunc_sRGB: i32 = 7;
pub const DXVA2_VideoTransFunc_28: i32 = 8;
// DXVA2_VideoTransferFunction
const (
	DXVA2_VideoTransFuncMask int32 = 31
	DXVA2_VideoTransFunc_Unknown int32 = 0
	DXVA2_VideoTransFunc_10 int32 = 1
	DXVA2_VideoTransFunc_18 int32 = 2
	DXVA2_VideoTransFunc_20 int32 = 3
	DXVA2_VideoTransFunc_22 int32 = 4
	DXVA2_VideoTransFunc_709 int32 = 5
	DXVA2_VideoTransFunc_240M int32 = 6
	DXVA2_VideoTransFunc_sRGB int32 = 7
	DXVA2_VideoTransFunc_28 int32 = 8
)
const
  DXVA2_VideoTransFuncMask = 31;
  DXVA2_VideoTransFunc_Unknown = 0;
  DXVA2_VideoTransFunc_10 = 1;
  DXVA2_VideoTransFunc_18 = 2;
  DXVA2_VideoTransFunc_20 = 3;
  DXVA2_VideoTransFunc_22 = 4;
  DXVA2_VideoTransFunc_709 = 5;
  DXVA2_VideoTransFunc_240M = 6;
  DXVA2_VideoTransFunc_sRGB = 7;
  DXVA2_VideoTransFunc_28 = 8;
// DXVA2_VideoTransferFunction
pub const DXVA2_VideoTransFuncMask: i32 = 31;
pub const DXVA2_VideoTransFunc_Unknown: i32 = 0;
pub const DXVA2_VideoTransFunc_10: i32 = 1;
pub const DXVA2_VideoTransFunc_18: i32 = 2;
pub const DXVA2_VideoTransFunc_20: i32 = 3;
pub const DXVA2_VideoTransFunc_22: i32 = 4;
pub const DXVA2_VideoTransFunc_709: i32 = 5;
pub const DXVA2_VideoTransFunc_240M: i32 = 6;
pub const DXVA2_VideoTransFunc_sRGB: i32 = 7;
pub const DXVA2_VideoTransFunc_28: i32 = 8;
const
  DXVA2_VideoTransFuncMask* = 31
  DXVA2_VideoTransFunc_Unknown* = 0
  DXVA2_VideoTransFunc_10* = 1
  DXVA2_VideoTransFunc_18* = 2
  DXVA2_VideoTransFunc_20* = 3
  DXVA2_VideoTransFunc_22* = 4
  DXVA2_VideoTransFunc_709* = 5
  DXVA2_VideoTransFunc_240M* = 6
  DXVA2_VideoTransFunc_sRGB* = 7
  DXVA2_VideoTransFunc_28* = 8
enum DXVA2_VideoTransferFunction : int {
    DXVA2_VideoTransFuncMask = 31,
    DXVA2_VideoTransFunc_Unknown = 0,
    DXVA2_VideoTransFunc_10 = 1,
    DXVA2_VideoTransFunc_18 = 2,
    DXVA2_VideoTransFunc_20 = 3,
    DXVA2_VideoTransFunc_22 = 4,
    DXVA2_VideoTransFunc_709 = 5,
    DXVA2_VideoTransFunc_240M = 6,
    DXVA2_VideoTransFunc_sRGB = 7,
    DXVA2_VideoTransFunc_28 = 8,
}
#define global DXVA2_VideoTransFuncMask     0x1F
#define global DXVA2_VideoTransFunc_Unknown 0x0
#define global DXVA2_VideoTransFunc_10      0x1
#define global DXVA2_VideoTransFunc_18      0x2
#define global DXVA2_VideoTransFunc_20      0x3
#define global DXVA2_VideoTransFunc_22      0x4
#define global DXVA2_VideoTransFunc_709     0x5
#define global DXVA2_VideoTransFunc_240M    0x6
#define global DXVA2_VideoTransFunc_sRGB    0x7
#define global DXVA2_VideoTransFunc_28      0x8