DXVA2_VideoTransferFunction 枚举 (dxva2api.h)
指定从线性 RGB 到非线性 RGB (R'G'B') 的转换函数。 这些标志在 DXVA2_ExtendedFormat 结构中使用。
语法
typedef enum _DXVA2_VideoTransferFunction {
DXVA2_VideoTransFuncMask = 0x1f,
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;
常量
DXVA2_VideoTransFuncMask 值: 0x1f 用于验证标志值的位掩码。 此值不是有效的标志。 |
DXVA2_VideoTransFunc_Unknown 值: 0 未知。 视为DXVA2_VideoTransFunc_709。 |
DXVA2_VideoTransFunc_10 值:1 线性 RGB (gamma = 1.0) 。 |
DXVA2_VideoTransFunc_18 值: 2 True 1.8 gamma,L' = L^1/1.8。 |
DXVA2_VideoTransFunc_20 值: 3 True 2.0 gamma,L' = L^1/2.0。 |
DXVA2_VideoTransFunc_22 值: 4 True 2.2 gamma,L' = L^1/2.2。 此传输函数用于ITU-R BT.470-2 系统 M (NTSC) 。 |
DXVA2_VideoTransFunc_709 值: 5 ITU-R BT.709 传输函数。 在较低范围内具有线性段的 Gamma 2.2 曲线。 此传输函数用于 BT.709、BT.601、SMPTE 296M、SMPTE 170M、BT.470 和 SMPTE 274M。 此外,BT-1361 在 [0...1] 范围内使用此函数。 |
DXVA2_VideoTransFunc_240M 值: 6 SMPTE 240M 传输函数。 在较低范围内具有线性段的 Gamma 2.2 曲线。 |
DXVA2_VideoTransFunc_sRGB 值: 7 sRGB 传输函数。 在较低范围内具有线性段的 Gamma 2.4 曲线。 |
DXVA2_VideoTransFunc_28 值: 8 真 2.8 伽玛。 L' = L^1/2.8。 此传输函数用于ITU-R BT.470-2 系统 B、G (PAL) 。 |
备注
下表显示了最常见传输函数的公式。 在这些公式中,L 是线性值,L' 是经过修正) 值的非线性 (gamma。 这些值相对于规范化范围 [0...1]。
颜色空间 | 传输函数 |
---|---|
sRGB (8 位) |
L' = 12.92L,对于 L < 0.031308 L' = 1.055L^1/2.4≤ 0.055,对于 L >= 0.031308 |
BT.470-2 系统 B、G | L' = L^0.36 |
BT.470-2 系统 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 系统 B、G | L = L'^1/0.36 |
BT.470-2 系统 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 属性中指定传输函数。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
标头 | dxva2api.h |