Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Specifies the conversion function from linear RGB to non-linear RGB (R'G'B'). These flags are used in the DXVA2_ExtendedFormat Structure.
Syntax
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;
Constants
DXVA2_VideoTransFuncMask Value: 0x1f Bitmask to validate flag values. This value is not a valid flag. |
DXVA2_VideoTransFunc_Unknown Value: 0 Unknown. Treat as DXVA2_VideoTransFunc_709. |
DXVA2_VideoTransFunc_10 Value: 1 Linear RGB (gamma = 1.0). |
DXVA2_VideoTransFunc_18 Value: 2 True 1.8 gamma, L' = L^1/1.8. |
DXVA2_VideoTransFunc_20 Value: 3 True 2.0 gamma, L' = L^1/2.0. |
DXVA2_VideoTransFunc_22 Value: 4 True 2.2 gamma, L' = L^1/2.2. This transfer function is used in ITU-R BT.470-2 System M (NTSC). |
DXVA2_VideoTransFunc_709 Value: 5 ITU-R BT.709 transfer function. Gamma 2.2 curve with a linear segment in the lower range. This transfer function is used in BT.709, BT.601, SMPTE 296M, SMPTE 170M, BT.470, and SMPTE 274M. In addition BT-1361 uses this function within the range [0...1]. |
DXVA2_VideoTransFunc_240M Value: 6 SMPTE 240M transfer function. Gamma 2.2 curve with a linear segment in the lower range. |
DXVA2_VideoTransFunc_sRGB Value: 7 sRGB transfer function. Gamma 2.4 curve with a linear segment in the lower range. |
DXVA2_VideoTransFunc_28 Value: 8 True 2.8 gamma. L' = L^1/2.8. This transfer function is used in ITU-R BT.470-2 System B, G (PAL). |
Remarks
The following table shows the formulas for the most common transfer functions. In these formulas, L is the linear value and L' is the non-linear (gamma corrected) value. These values are relative to a normalized range [0...1].
Color space | Transfer function |
---|---|
sRGB (8-bit) |
L' = 12.92L, for L < 0.031308
L' = 1.055L^1/2.4− 0.055, for 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, for L < 0.018
L' = 1.099L^0.45− 0.099, for L >= 0.018 |
scRGB | L' = L |
SMPTE 240M |
L' = 4.0L, for L < 0.0228
L' = 1.1115L^0.45− 0.01115, for L >= 0.0228 |
The following table shows the inverse formulas to obtain the original gamma-corrected values:
Color space | Transfer function |
---|---|
sRGB (8-bit) |
L = 1/12.92L', for L' < 0.03928
L = ((L' + 0.055)/1055)^2.4, for 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, for L' < 0.081
L = ((L' + 0.099) / 1.099)^1/0.45, for L' >= 0.081 |
scRGB | L = L' |
SMPTE 240M |
L = L'/4.0, for L' < 0.0913
L= ((L' + 0.1115)/1.1115)^1/0.45, for L' >= 0.0913 |
This enumeration is equivalent to the DXVA_VideoTransferFunction enumeration used in DXVA 1.0.
If you are using the IMFMediaType interface to describe the video format, the transfer function is specified in the MF_MT_TRANSFER_FUNCTION attribute.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista [desktop apps only] |
Minimum supported server | Windows Server 2008 [desktop apps only] |
Header | dxva2api.h |