DXVADDI_CONFIGPICTUREDECODE structure (d3dumddi.h)

The DXVADDI_CONFIGPICTUREDECODE structure describes the configuration for compressed picture decoding.

Syntax

typedef struct _DXVADDI_CONFIGPICTUREDECODE {
  [in] GUID   guidConfigBitstreamEncryption;
  [in] GUID   guidConfigMBcontrolEncryption;
  [in] GUID   guidConfigResidDiffEncryption;
  [in] UINT   ConfigBitstreamRaw;
  [in] UINT   ConfigMBcontrolRasterOrder;
  [in] UINT   ConfigResidDiffHost;
  [in] UINT   ConfigSpatialResid8;
  [in] UINT   ConfigResid8Subtraction;
  [in] UINT   ConfigSpatialHost8or9Clipping;
  [in] UINT   ConfigSpatialResidInterleaved;
  [in] UINT   ConfigIntraResidUnsigned;
  [in] UINT   ConfigResidDiffAccelerator;
  [in] UINT   ConfigHostInverseScan;
  [in] UINT   ConfigSpecificIDCT;
  [in] UINT   Config4GroupedCoefs;
  [in] USHORT ConfigMinRenderTargetBuffCount;
  [in] USHORT ConfigDecoderSpecific;
} DXVADDI_CONFIGPICTUREDECODE;

Members

[in] guidConfigBitstreamEncryption

The encryption GUID for configuring a bitstream.

[in] guidConfigMBcontrolEncryption

The encryption GUID for configuring macroblock control.

[in] guidConfigResidDiffEncryption

The encryption GUID for configuring residual difference decoding.

[in] ConfigBitstreamRaw

The bitstream processing indicator. A value of 1 in this member indicates that picture data is sent in bitstream buffers as raw bitstream content. A value of zero indicates that picture data is sent by using macroblock control command buffers.

Set this member to zero if the ConfigResidDiffHost or ConfigResidDiffAccelerator member is 1. A value of zero in ConfigBitstreamRaw is the basic level of support. The value of 1 is preferred.

[in] ConfigMBcontrolRasterOrder

A UINT value that specifies whether macroblock control commands are in raster scan order or in arbitrary order. A value of 1 in this member specifies that the macroblock control commands within each macroblock control command buffer are in raster scan order. A value of zero indicates arbitrary order. A driver can restrict support to raster scan order; however, a driver should support both arbitrary and raster scan order.

[in] ConfigResidDiffHost

The host residual difference configuration. A value of 1 in this member specifies that some residual difference decoding data is possibly sent as blocks in the spatial domain from the host. A value of zero specifies that spatial domain data is not sent. Set this member to zero if the ConfigBitstreamRaw member is 1. An accelerator should support both zero and 1.

[in] ConfigSpatialResid8

The word size that is used to represent residual difference spatial-domain blocks for predicted (nonintra) pictures when using host-based residual difference decoding (that is, when the ConfigResidDiffHost member is set to 1).

If ConfigSpatialResid8 is 1 and ConfigResidDiffHost is 1, the host sends residual difference spatial-domain blocks for nonintra macroblocks that use 8-bit signed samples and for intra macroblocks in predicted (nonintra) pictures in a format that depends on the ConfigIntraResidUnsigned member as follows:

  • If ConfigIntraResidUnsigned is zero, spatial-domain blocks for intra macroblocks are sent as 8-bit signed integer values that are relative to a constant reference value of 128.

  • If ConfigIntraResidUnsigned is 1, spatial-domain blocks for intra macroblocks are sent as 8-bit unsigned integer values that are relative to a constant reference value of zero.

If ConfigSpatialResid8 is zero and ConfigResidDiffHost is 1, the host sends residual difference spatial-domain blocks of data for nonintra macroblocks that use 16-bit signed samples and for intra macroblocks in predicted (nonintra) pictures in a format that depends on ConfigIntraResidUnsigned as follows:

  • If ConfigIntraResidUnsigned is zero, spatial domain blocks for intra macroblocks are sent as 16-bit signed integer values that are relative to a constant reference value of 2^(BPP-1), where BPP is the number of bits per sample for the uncompressed video (generally a value of 8).

  • If ConfigIntraResidUnsigned is 1, spatial domain blocks for intra macroblocks are sent as 16-bit unsigned integer values that are relative to a constant reference value of zero.

ConfigSpatialResid8 must be zero if ConfigResidDiffHost is zero. If ConfigResidDiffHost is 1, ConfigSpatialResid8 can be any value.

Note

For intra pictures with BPP equal to 8, spatial-domain blocks must be sent by using 8-bit samples. For intra pictures with BPP greater than 8, spatial-domain blocks must be sent by using 16-bit samples. If ConfigIntraResidUnsigned is zero, these samples are sent as signed integer values that are relative to a constant reference value of 2^(BPP-1). If ConfigIntraResidUnsigned is 1, these samples are sent as unsigned integer values that are relative to a constant reference value of zero.

[in] ConfigResid8Subtraction

A UINT value that specifies whether 8-bit difference overflow blocks are subtracted or added. If this member is set to 1, 8-bit difference overflow blocks are subtracted rather than added. This member must be zero unless ConfigSpatialResid8 is 1. If ConfigSpatialResid8 is 1, the preferred value for ConfigResid8Subtraction is 1. The ability to subtract differences rather than to add them enables 8-bit difference decoding to be fully compliant with the range from -255 through +255 of values that are required in video decoder specifications. This ability enables full compliance because +255 cannot be represented as the addition of two signed 8-bit numbers but any number in the range from -255 through +255 can be represented as the difference between two signed 8-bit numbers (+255 is equal to +127 minus -128).

[in] ConfigSpatialHost8or9Clipping

A UINT value that specifies whether clipping is performed by the host. If this member set to 1, spatial-domain blocks for intra macroblocks are clipped to an 8-bit range on the host and spatial-domain blocks for nonintra macroblocks are clipped to a 9-bit range on the host. A value of zero indicates that no such clipping is performed by the host. This member must be zero unless ConfigSpatialResid8 is set to zero and ConfigResidDiffHost is set to 1. The preferred value for ConfigSpatialHost8or9Clipping is zero.

[in] ConfigSpatialResidInterleaved

A UINT value that specifies whether spatial-domain residual difference data is sent in a chrominance-interleaved form. If this member is set to 1, any spatial-domain residual difference data is sent in a chrominance-interleaved form that matches the YUV format chrominance interleaving pattern. This member must be zero unless ConfigResidDiffHost is 1 and the YUV format is NV12 or NV21. The preferred value for ConfigSpatialResidInterleaved is zero.

[in] ConfigIntraResidUnsigned

The method of representation of spatial-domain blocks of residual difference data for intra blocks when using host-based difference decoding (that is, when the ConfigResidDiffHost member is equal to 1).

If ConfigIntraResidUnsigned is set to zero and ConfigResidDiffHost is set to 1, spatial-domain residual difference data blocks for intra macroblocks are sent as follows:

  • In a nonintra picture if the ConfigSpatialResid8 member is zero, the spatial-domain residual difference data blocks for intra macroblocks are sent as 16-bit signed integer values that are relative to a constant reference value of 2^(BPP-1), where BPP is the number of bits per sample for the uncompressed video (generally a value of 8).

  • In a nonintra picture if ConfigSpatialResid8 is 1 and in an intra picture if BPP is equal to 8 (regardless of the value of ConfigSpatialResid8), the spatial-domain residual difference data blocks for intra macroblocks are sent as 8-bit signed integer values that are relative to a constant reference value of 128.

If ConfigIntraResidUnsigned is set to 1 and ConfigResidDiffHost is set to 1, spatial-domain residual difference data blocks for intra macroblocks are sent as follows:

  • In a nonintra picture if ConfigSpatialResid8 is zero, the spatial-domain residual difference data blocks for intra macroblocks are sent as 16-bit unsigned integer values that are relative to a constant reference value of zero.

  • In a nonintra picture if ConfigSpatialResid8 is 1 and in an intra picture if BPP is equal to 8 (regardless of the value of ConfigSpatialResid8), the spatial-domain residual difference data blocks for intra macroblocks are sent as 8-bit unsigned integer values that are relative to a constant reference value of zero.

ConfigIntraResidUnsigned must be zero unless ConfigResidDiffHost is 1. The preferred value for ConfigIntraResidUnsigned is zero.

[in] ConfigResidDiffAccelerator

The accelerator residual difference configuration. A value of 1 in this member indicates that transform-domain blocks of coefficient data can be sent from the host for accelerator-based IDCT. A value of zero indicates that accelerator-based IDCT is not used.

If both the ConfigResidDiffHost member and ConfigResidDiffAccelerator are 1, some residual difference decoding is performed on the host and some on the accelerator, as indicated by macroblock-level control commands. ConfigResidDiffAccelerator must be zero if the bConfigBitstreamRaw member is 1.

The preferred value for ConfigResidDiffAccelerator is 1.

If ConfigResidDiffAccelerator and ConfigResidDiffHost are set to 1, residual difference decoding can be shared between the host and accelerator on a macroblock basis. This sharing is an even higher level of accelerator capability than when ConfigResidDiffAccelerator is set to 1 and ConfigResidDiffHost is set to zero.

[in] ConfigHostInverseScan

A UINT value that specifies whether the inverse scan for transform-domain block processing is performed on the host or the accelerator. A value of 1 in this member indicates that the inverse scan for transform-domain block processing is performed on the host, and absolute indexes are sent instead for any transform coefficients. A value of zero indicates that inverse scan is performed on the accelerator. ConfigHostInverseScan must be zero if ConfigResidDiffAccelerator is zero or if the Config4GroupedCoefs member is 1.

The preferred value for ConfigHostInverseScan is 1 if ConfigResidDiffAccelerator is 1.

[in] ConfigSpecificIDCT

A UINT value that specifies the use of a specific IDCT method for off-host IDCT. A value of 1 in this member indicates the use of the IDCT that is specified in Annex W of ITU-T Recommendation H.263, which you can learn about from the International Telecommunication Union website. A value of zero indicates that any compliant IDCT can be used for off-host IDCT. (Values other than zero and 1 are reserved.)

ConfigSpecificIDCT must be zero if ConfigResidDiffAccelerator is zero, which indicates host-based residual difference decoding.

Note

ConfigSpecificIDCT must not be set to 1 for use with MPEG-2 video.

[in] Config4GroupedCoefs

A UINT value that specifies how transform coefficients for off-host IDCT are sent. A value of 1 in this member indicates that transform coefficients for off-host IDCT are sent by using the DXVA_TCoef4Group structure rather than the DXVA_TCoefSingle structure. Config4GroupedCoefs is zero if ConfigResidDiffAccelerator is zero or if ConfigHostInverseScan is 1.

The preferred value for Config4GroupedCoefs is zero if ConfigResidDiffAccelerator is 1.

[in] ConfigMinRenderTargetBuffCount

A USHORT value that specifies the minimum number of render target buffers.

[in] ConfigDecoderSpecific

A USHORT value that specifies decoder-specific features to configure. For information about a decoder's features, see the specification for that decoder. For a list of decoders, see Providing Capabilities for Video Decoding.

Requirements

Requirement Value
Minimum supported client Available in Windows Vista and later versions of the Windows operating systems.
Header d3dumddi.h (include D3dumddi.h)

See also

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps