DXVA2_VideoChromaSubSampling enumeration
Describes how chroma values are positioned relative to the luma samples in a YUV video frame. These flags are used in the DXVA2_ExtendedFormat structure.
Syntax
typedef enum _DXVA2_VideoChromaSubSampling { DXVA2_VideoChromaSubsamplingMask = 0x0F, DXVA2_VideoChromaSubsampling_Unknown = 0, DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8, DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4, DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2, DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1, DXVA2_VideoChromaSubsampling_MPEG2 = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, DXVA2_VideoChromaSubsampling_MPEG1 = DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, DXVA2_VideoChromaSubsampling_DV_PAL = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_Cosited, DXVA2_VideoChromaSubsampling_Cosited = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_Cosited | DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes } DXVA2_VideoChromaSubSampling;
Constants
- DXVA2_VideoChromaSubsamplingMask
-
Bitmask to validate flag values. This value is not a valid flag.
- DXVA2_VideoChromaSubsampling_Unknown
-
Unknown encoding scheme.
- DXVA2_VideoChromaSubsampling_ProgressiveChroma
-
Chroma should be reconstructed as if the underlying video was progressive content, rather than skipping fields or applying chroma filtering to minimize artifacts from reconstructing 4:2:0 interlaced chroma.
- DXVA2_VideoChromaSubsampling_Horizontally_Cosited
-
Horizontally cosited. Chroma samples are aligned horizontally with multiples of the luma samples. If this flag is not set, chroma samples are located 1/2 pixel to the right of the corresponding luma samples.
- DXVA2_VideoChromaSubsampling_Vertically_Cosited
-
Vertically cosited. Chroma samples are aligned vertically with multiples of the luma samples. If this flag is not set, chroma samples are located 1/2 pixel down from the corresponding luma samples.
- DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes
-
The chroma planes are vertically aligned. If this flag is not set, chroma planes are out of phase by 1/2 chroma sample, and the Cb and Cr samples are sited on alternate lines.
- DXVA2_VideoChromaSubsampling_MPEG2
-
Specifies the chroma encoding scheme for MPEG-2 video. Chroma samples are aligned horizontally with the luma samples, but are not aligned vertically. The U and V planes are aligned vertically.
- DXVA2_VideoChromaSubsampling_MPEG1
-
Specifies the chroma encoding scheme for MPEG-1 video.
- DXVA2_VideoChromaSubsampling_DV_PAL
-
Specifies the chroma encoding scheme for PAL DV video.
- DXVA2_VideoChromaSubsampling_Cosited
-
Horizontally and vertically cosited. Chroma samples are aligned vertically and horizontally with the luma samples. YUV formats such as 4:4:4, 4:2:2, and 4:1:1 are always cosited in both directions and should use this flag.
Remarks
The following diagrams show the most common arrangements.
4:4:4 horizontally and vertically cosited.

4:2:2 horizontally and vertically cosited.

4:1:1 horizontally and vertically cosited.

4:2:0 progressive, horizontally cosited.

Example: MPEG-2 progressive.
4:2:0 progressive, not cosited horizontally or vertically.

Example: JPEG progressive.
4:2:0 interlaced, vertically cosited; chroma planes out of phase.

Example: DV PAL interlaced.
4:2:0 interlaced, horizontally cosited.

Example: MPEG-2 interlaced.
This enumeration is equivalent to the DXVA_VideoChromaSubsampling enumeration used in DXVA 1.0.
If you are using the IMFMediaType interface to describe the video format, chroma siting is specified in the MF_MT_VIDEO_CHROMA_SITING attribute.
Requirements
|
Minimum supported client |
Windows Vista [desktop apps only] |
|---|---|
|
Minimum supported server |
Windows Server 2008 [desktop apps only] |
|
Header |
|
See also