DXGI_COLOR_SPACE_TYPE enumeration

Specifies color space types.

Syntax


typedef enum DXGI_COLOR_SPACE_TYPE { 
  DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709            = 0,
  DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709            = 1,
  DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709          = 2,
  DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020         = 3,
  DXGI_COLOR_SPACE_RESERVED                          = 4,
  DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601     = 5,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601        = 6,
  DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601          = 7,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709        = 8,
  DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709          = 9,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020       = 10,
  DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020         = 11,
  DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020         = 12,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020     = 13,
  DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020       = 14,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020    = 15,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020  = 16,
  DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020           = 17,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020   = 18,
  DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020     = 19,
  DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709          = 20,
  DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020         = 21,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709        = 22,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020       = 23,
  DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020    = 24,
  DXGI_COLOR_SPACE_CUSTOM                            = 0xFFFFFFFF
} DXGI_COLOR_SPACE_TYPE;

Constants

DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
PropertyValue
ColorspaceRGB
Range0-255
Gamma2.2
SitingImage
PrimariesBT.709

 

This is the standard definition for sRGB. Note that this is often implemented with a linear segment, but in that case the exponent is corrected to stay aligned with a gamma 2.2 curve. This is usually used with 8 or 10 bit color channels.

DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709
PropertyValue
ColorspaceRGB
Range0-255
Gamma1.0
SitingImage
PrimariesBT.709

 

This is the standard definition for scRGB, and is usually used with 16 bit integer, 16 bit floating point, or 32 bit floating point color channels.

DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709
PropertyValue
ColorspaceRGB
Range16-235
Gamma2.2
SitingImage
PrimariesBT.709

 

This is the standard definition for ITU-R Recommendation BT.709. Note that due to the inclusion of a linear segment, the transfer curve looks similar to a pure exponential gamma of 1.9. This is usually used with 8 or 10 bit color channels.

DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020
PropertyValue
ColorspaceRGB
Range16-235
Gamma2.2
SitingImage
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_RESERVED

Reserved.

DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601
PropertyValue
ColorspaceYCbCr
Range0-255
Gamma2.2
SitingImage
PrimariesBT.709
Transfer MatrixBT.601

 

This definition is commonly used for JPG, and is usually used with 8, 10, or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2.2
SitingVideo
PrimariesBT.601

 

This definition is commonly used for MPEG2, and is usually used with 8, 10, or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601
PropertyValue
ColorspaceYCbCr
Range0-255
Gamma2.2
SitingVideo
PrimariesBT.601

 

This is sometimes used for H.264 camera capture, and is usually used with 8, 10, or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2.2
SitingVideo
PrimariesBT.709

 

This definition is commonly used for H.264 and HEVC, and is usually used with 8, 10, or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709
PropertyValue
ColorspaceYCbCr
Range0-255
Gamma2.2
SitingVideo
PrimariesBT.709

 

This is sometimes used for H.264 camera capture, and is usually used with 8, 10, or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2.2
SitingVideo
PrimariesBT.2020

 

This definition may be used by HEVC, and is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020
PropertyValue
ColorspaceYCbCr
Range0-255
Gamma2.2
SitingVideo
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020
PropertyValue
ColorspaceRGB
Range0-255
Gamma2084
SitingImage
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2084
SitingVideo
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020
PropertyValue
ColorspaceRGB
Range16-235
Gamma2084
SitingImage
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2.2
SitingVideo
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020
PropertyValue
ColorspaceYCbCr
Range16-235
Gamma2084
SitingVideo
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020
PropertyValue
ColorspaceRGB
Range0-255
Gamma2.2
SitingImage
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020
PropertyValue
ColorspaceYCBCR
Range16-235
GammaHLG
SitingVideo
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020
PropertyValue
ColorspaceYCBCR
Range0-255
GammaHLG
SitingVideo
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709
PropertyValue
ColorspaceRGB
Range16-235
Gamma2.4
SitingImage
PrimariesBT.709

 

This is usually used with 8, 10, or 12 bit color channels.

DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020
PropertyValue
ColorspaceRGB
Range16-235
Gamma2.4
SitingImage
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709
PropertyValue
ColorspaceYCBCR
Range16-235
Gamma2.4
SitingVideo
PrimariesBT.709

 

This is usually used with 8, 10, or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020
PropertyValue
ColorspaceYCBCR
Range16-235
Gamma2.4
SitingVideo
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020
PropertyValue
ColorspaceYCBCR
Range16-235
Gamma2.4
SitingVideo
PrimariesBT.2020

 

This is usually used with 10 or 12 bit color channels.

DXGI_COLOR_SPACE_CUSTOM

A custom color definition is used.

Remarks

This enum is used within DXGI in the CheckColorSpaceSupport, SetColorSpace1 and CheckOverlayColorSpaceSupport methods. It is also referenced in D3D11 video methods such as ID3D11VideoContext1::VideoProcessorSetOutputColorSpace1, and D2D methods such as ID2D1DeviceContext2::CreateImageSourceFromDxgi.

The following color parameters are defined:

Colorspace

Defines the color space of the color channel data.

Defined ValuesNotation in color space enumerationComments
RGB_RGB_The red/green/blue color space color channel.
YCbCr_YCbCr_Three channel color model which splits luma (brightness) from chroma (color). YUV technically refers to analog signals and YCbCr to digital, but they are used interchangeably.

 

Range

Indicates which integer range corresponds to the floating point [0..1] range of the data. For video, integer YCbCr data with ranges of [16..235] or [8..247] are usually mapped to normalized YCbCr with ranges of [0..1] or [-0.5..0.5].

Defined_ValuesNotation in color space numerationComments
8 bit: 0-255
10 bit: 0-1023
12 bit: 0-4095
_FULL_PC desktop content and images.
8 bit:16-235
10 bit: 64-940
12 bit: 256 - 3760
_STUDIO_Often used in video. Enables the calibration of white and black between displays.

 

Gamma

Defined ValuesNotation in color space numerationComments
1.0_G10_Linear light levels.
2.2_G22_Commonly used for sRGB and BT.709 (linear segment + 2.222).
2084_G2084_See SMPTE ST.2084 (Perceptual Quantization)

 

Siting

"Siting" indicates a horizontal or vertical shift of the chrominance channels relative to the luminance channel. "Cositing" indicates values are sited between pixels in the vertical or horizontal direction (also known as being "sited interstitially").

Defined ValuesNotation in color space enumerationCommentsFor Example
Image_NONE_The U and V planes are aligned vertically.MPEG1, JPG
Video_LEFT_Chroma samples are aligned horizontally with the luma samples, or with multiples of the luma samples. The U and V planes are aligned vertically.MPEG2, MPEG4
Video_TOPLEFT_"Top left" means that the sampling point is the top left pixel (usually of a 2x2 pixel block). Chroma samples are aligned horizontally with the luma samples, or with multiples of the luma samples. Chroma samples are also aligned vertically with the luma samples, or with multiples of the luma samples.UHD Blu-Ray

 

For more information on siting, refer to the MFVideoChromaSubsampling enum.

Primaries

Defined ValuesNotation in color space enumerationComments
BT.601_P601Standard defining digital encoding of SDTV video.
BT.709_P709Standard defining digital encoding of HDTV video.
BT.2020_P2020Standard defining ultra-high definition television (UHDTV).

 

Transfer Matrix

In most cases, the transfer matrix can be determined from the primaries. For some cases it must be explicitly specified as described below:

Defined ValuesNotation in color space enumerationComments
BT.601_X601Standard defining digital encoding of SDTV video.
BT.709_X709Standard defining digital encoding of HDTV video.
BT.2020_X2020Standard defining ultra-high definition television (UHDTV).

 

Subsampling and the layout of the color channels are inferred from the surface format.

Requirements

Minimum supported client

Windows 10 [desktop apps only]

Minimum supported server

Windows Server 2016 [desktop apps only]

Header

Dxgicommon.h (include DXGIType.h)

See also

DXGI Enumerations

 

 

Show: