DXVA2_VideoTransferFunction enumeration (dxva2api.h)

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

See also

Extended Color Information

Media Foundation Enumerations