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.

Diagram showing 4x4 grid; each cell contains two circles--one for luma and one for chroma

4:2:2 horizontally and vertically cosited.

Diagram similar to the original one, but cells in the second and fourth columns have luma but not chroma

4:1:1 horizontally and vertically cosited.

Diagram similar to the original one, but only cells in the first column contain chroma

4:2:0 progressive, horizontally cosited.

Diagram similar to the original one, but chroma circles appear only on odd-numbered row boundaries in odd-numbered columns

Example: MPEG-2 progressive.

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

Diagram similar to the original one, but chroma circles appear only at intersections of odd-numbered row boundaries and odd-numbered columns boundaries

Example: JPEG progressive.

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

Diagram showing two 4x4 matrices; one is lower than the other by half the width of a row, and chroma circles in each column alternate between Cr and Cb

Example: DV PAL interlaced.

4:2:0 interlaced, horizontally cosited.

Diagram showing two instances of the fourth diagram; one is lower than the other by half the width of a row

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

Dxva2api.h

See also

Media Foundation Enumerations
Extended Color Information

 

 

Show: