YUV-RGB data range conversions

If you want to convert from RGB or YUV inputs to YUV or RGB outputs, the expected behavior depends on the input data range:

Input Input Input Input Output Output Output Output Operation
data format RGB nominal RGB nominal format data
range range range range range range
0-255 YUV N/A 2 N/A 2 YUV 0-255 None
16-235 YUV N/A 1 N/A 1 YUV 16-235 None
16-235 YUV N/A 1 N/A 2 YUV 0-255 Scale
0-255 YUV N/A 2 N/A 1 YUV 16-235 Scale
0-255 RGB 0 N/A N/A 1 YUV 16-235 RGBtoYUV
0-255 RGB 0 N/A N/A 2 YUV 0-255 RGBtoYUV
16-235 YUV N/A 1 0 N/A RGB 0-255 YUVtoRGB
0-255 YUV N/A 2 0 N/A RGB 0-255 YUVtoRGB

In this case the "nominal range" is the constant value from the DXVAHDDDI_NOMINAL_RANGE enumeration.

See YUV format ranges in Windows 8.1 for definitions of YUV format ranges.