Partilhar via


estrutura DXVADDI_CONFIGPICTUREDECODE (d3dumddi.h)

A estrutura DXVADDI_CONFIGPICTUREDECODE descreve a configuração para decodificação de imagem compactada.

Sintaxe

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;

Membros

[in] guidConfigBitstreamEncryption

O GUID de criptografia para configurar um bitstream.

[in] guidConfigMBcontrolEncryption

O GUID de criptografia para configurar o controle de macroblock.

[in] guidConfigResidDiffEncryption

O GUID de criptografia para configurar a decodificação de diferença residual.

[in] ConfigBitstreamRaw

O indicador de processamento de bitstream. Um valor de 1 neste membro indica que os dados de imagem são enviados em buffers bitstream como conteúdo bruto de bitstream. Um valor zero indica que os dados de imagem são enviados usando buffers de comando de controle de macroblock.

Defina esse membro como zero se o ConfigResidDiffHost ou ConfigResidDiffAccelerator membro for 1. Um valor zero em ConfigBitstreamRaw é o nível básico de suporte. O valor de 1 é preferencial.

[in] ConfigMBcontrolRasterOrder

Um valor UINT que especifica se os comandos de controle de macroblock estão em ordem de verificação de raster ou em ordem arbitrária. Um valor de 1 neste membro especifica que os comandos de controle de macroblock em cada buffer de comando de controle de macroblock estão em ordem de verificação de raster. Um valor de zero indica ordem arbitrária. Um driver pode restringir o suporte à ordem de verificação de raster; no entanto, um driver deve dar suporte à ordem de verificação arbitrária e raster.

[in] ConfigResidDiffHost

A configuração de diferença residual do host. Um valor de 1 neste membro especifica que alguns dados de decodificação de diferença residual são possivelmente enviados como blocos no domínio espacial do host. Um valor igual a zero especifica que os dados de domínio espacial não são enviados. Defina esse membro como zero se o membro ConfigBitstreamRaw for 1. Um acelerador deve dar suporte a zero e 1.

[in] ConfigSpatialResid8

O tamanho da palavra usado para representar blocos de domínio espacial de diferença residual para imagens previstas (nonintra) ao usar a decodificação de diferença residual baseada em host (ou seja, quando o membro ConfigResidDiffHost estiver definido como 1).

Se ConfigSpatialResid8 for 1 e ConfigResidDiffHost for 1, o host envia a diferença residual de blocos de domínio espacial para macroblocks nonintra que usam amostras assinadas de 8 bits e para macroblocks intra em imagens previstas (nonintra) em um formato que depende do membro ConfigIntraResidUnsigned da seguinte maneira:

  • Se ConfigIntraResidUnsigned for zero, os blocos de domínio espacial para macroblocks intra serão enviados como valores inteiros com sinal de 8 bits relativos a um valor de referência constante de 128.

  • Se ConfigIntraResidUnsigned for 1, os blocos de domínio espacial para macroblocks intra serão enviados como valores inteiros sem sinal de 8 bits relativos a um valor de referência constante de zero.

Se ConfigSpatialResid8 for zero e ConfigResidDiffHost for 1, O host envia a diferença residual de blocos de dados de domínio espacial para macroblocks não innintra que usam exemplos assinados de 16 bits e para macroblocks intra em imagens previstas (nonintra) em um formato que depende de ConfigIntraResidUnsigned da seguinte maneira:

  • Se ConfigIntraResidUnsigned for zero, os blocos de domínio espaciais para macroblocks intra serão enviados como valores inteiros com sinal de 16 bits relativos a um valor de referência constante de 2^(BPP-1), em que BPP é o número de bits por exemplo para o vídeo não compactado (geralmente um valor de 8).

  • Se ConfigIntraResidUnsigned for 1, os blocos de domínio espaciais para macroblocks intra serão enviados como valores inteiros sem sinal de 16 bits relativos a um valor de referência constante de zero.

ConfigSpatialResid8 deverá ser zero se ConfigResidDiffHost for zero. Se ConfigResidDiffHost for 1, ConfigSpatialResid8 poderá ser qualquer valor.

Nota

Para imagens intra com BPP igual a 8, os blocos de domínio espacial devem ser enviados usando amostras de 8 bits. Para imagens intra com BPP maior que 8, os blocos de domínio espacial devem ser enviados usando amostras de 16 bits. Se ConfigIntraResidUnsigned for zero, esses exemplos serão enviados como valores inteiros assinados relativos a um valor de referência constante de 2^(BPP-1). Se ConfigIntraResidUnsigned for 1, esses exemplos serão enviados como valores inteiros sem sinal relativos a um valor de referência constante igual a zero.

[in] ConfigResid8Subtraction

Um valor UINT que especifica se os blocos de estouro de diferença de 8 bits são subtraídos ou adicionados. Se esse membro estiver definido como 1, os blocos de estouro de diferença de 8 bits serão subtraídos em vez de adicionados. Esse membro deve ser zero, a menos que ConfigSpatialResid8 seja 1. Se ConfigSpatialResid8 for 1, o valor preferencial para ConfigResid8Subtraction será 1. A capacidade de subtrair diferenças em vez de adicioná-las permite que a decodificação de diferença de 8 bits seja totalmente compatível com o intervalo de -255 a +255 dos valores necessários nas especificações do decodificador de vídeo. Essa capacidade permite a conformidade total porque +255 não pode ser representado como a adição de dois números assinados de 8 bits, mas qualquer número no intervalo de -255 a +255 pode ser representado como a diferença entre dois números de 8 bits assinados (+255 é igual a +127 menos -128).

[in] ConfigSpatialHost8or9Clipping

Um valor UINT que especifica se o recorte é executado pelo host. Se esse membro for definido como 1, os blocos de domínio espacial para macroblocks intra serão recortados para um intervalo de 8 bits no host e os blocos de domínio espacial para macroblocks nonintra serão recortados para um intervalo de 9 bits no host. Um valor igual a zero indica que nenhum recorte desse tipo é executado pelo host. Esse membro deve ser zero, a menos que ConfigSpatialResid8 esteja definido como zero e ConfigResidDiffHost esteja definido como 1. O valor preferencial para ConfigSpatialHost8or9Clipping é zero.

[in] ConfigSpatialResidInterleaved

Um valor UINT que especifica se os dados de diferença residual de domínio espacial são enviados em um formulário intercalado em cromínio. Se esse membro for definido como 1, todos os dados de diferença residual de domínio espacial serão enviados em uma forma intercalada de cromínio que corresponda ao padrão de intercalação de cromínio de formato YUV. Esse membro deve ser zero, a menos que ConfigResidDiffHost seja 1 e o formato YUV seja NV12 ou NV21. O valor preferencial para ConfigSpatialResidInterleaved é zero.

[in] ConfigIntraResidUnsigned

O método de representação de blocos de domínio espacial de dados de diferença residual para blocos intra ao usar a decodificação de diferença baseada em host (ou seja, quando a ConfigResidDiffHost membro é igual a 1).

Se ConfigIntraResidUnsigned estiver definido como zero e ConfigResidDiffHost estiver definido como 1, os blocos de dados de diferença residual de domínio espacial para macroblocks intra serão enviados da seguinte maneira:

  • Em uma imagem nonintra se o membro ConfigSpatialResid8 for zero, os blocos de dados de diferença residual de domínio espacial para macroblocks intra são enviados como valores inteiros com sinal de 16 bits relativos a um valor de referência constante de 2^(BPP-1), em que BPP é o número de bits por exemplo para o vídeo não compactado (geralmente um valor de 8).

  • Em uma imagem nonintra se ConfigSpatialResid8 for 1 e em uma imagem intra se BPP for igual a 8 (independentemente do valor de ConfigSpatialResid8), os blocos de dados de diferença residual de domínio espacial para macroblocks intra são enviados como valores inteiros com sinal de 8 bits relativos a um valor de referência constante de 128.

Se ConfigIntraResidUnsigned estiver definido como 1 e ConfigResidDiffHost estiver definido como 1, os blocos de dados de diferença residual de domínio espacial para macroblocks intra serão enviados da seguinte maneira:

  • Em uma imagem nonintra se ConfigSpatialResid8 for zero, os blocos de dados de diferença residual de domínio espacial para macroblocks intra são enviados como valores inteiros sem sinal de 16 bits que são relativos a um valor de referência constante de zero.

  • Em uma imagem nonintra se ConfigSpatialResid8 for 1 e em uma imagem intra se BPP for igual a 8 (independentemente do valor de ConfigSpatialResid8), os blocos de dados de diferença residual de domínio espacial para macroblocks intra são enviados como valores inteiros sem sinal de 8 bits relativos a um valor de referência constante de zero.

ConfigIntraResidUnsigned deve ser zero, a menos que ConfigResidDiffHost seja 1. O valor preferencial para ConfigIntraResidUnsigned é zero.

[in] ConfigResidDiffAccelerator

A configuração de diferença residual do acelerador. Um valor de 1 neste membro indica que blocos de domínio de transformação de dados coeficientes podem ser enviados do host para IDCT baseado em acelerador. Um valor zero indica que a IDCT baseada em acelerador não é usada.

Se o ConfigResidDiffHost membro e ConfigResidDiffAccelerator forem 1, alguma decodificação de diferença residual será executada no host e algumas no acelerador, conforme indicado pelos comandos de controle no nível de macroblock. ConfigResidDiffAccelerator deverá ser zero se o membro bConfigBitstreamRaw for 1.

O valor preferencial para ConfigResidDiffAccelerator é 1.

Se ConfigResidDiffAccelerator e ConfigResidDiffHost estiverem definidos como 1, a decodificação de diferença residual poderá ser compartilhada entre o host e o acelerador em uma base de macroblock. Esse compartilhamento é um nível ainda maior de capacidade de acelerador do que quando ConfigResidDiffAccelerator está definido como 1 e ConfigResidDiffHost está definido como zero.

[in] ConfigHostInverseScan

Um valor UINT que especifica se a verificação inversa para processamento de bloco de domínio de transformação é executada no host ou no acelerador. Um valor de 1 neste membro indica que a verificação inversa do processamento de bloco de domínio de transformação é executada no host e os índices absolutos são enviados em vez disso para quaisquer coeficientes de transformação. Um valor zero indica que a verificação inversa é executada no acelerador. ConfigHostInverseScan deverá ser zero se ConfigResidDiffAccelerator for zero ou se o membro Config4GroupedCoefs for 1.

O valor preferencial para ConfigHostInverseScan é 1 se ConfigResidDiffAccelerator for 1.

[in] ConfigSpecificIDCT

Um valor UINT que especifica o uso de um método IDCT específico para de IDCT fora do host. Um valor de 1 neste membro indica o uso do IDCT especificado no Anexo W da Recomendação de ITU-T H.263, sobre o qual você pode aprender com o site da União Internacional de Telecomunicações . Um valor zero indica que qualquer IDCT compatível pode ser usada para IDCT fora do host. (Valores diferentes de zero e 1 são reservados.)

ConfigSpecificIDCT deverá ser zero se ConfigResidDiffAccelerator for zero, o que indica a decodificação de diferença residual baseada em host.

Nota

ConfigSpecificIDCT não deve ser definido como 1 para uso com o vídeo MPEG-2.

[in] Config4GroupedCoefs

Um valor UINT que especifica como os coeficientes de transformação para IDCT fora do host são enviados. Um valor de 1 neste membro indica que coeficientes de transformação para IDCT fora do host são enviados usando a estrutura DXVA_TCoef4Group em vez da estrutura DXVA_TCoefSingle. Config4GroupedCoefs for zero se ConfigResidDiffAccelerator for zero ou se ConfigHostInverseScan for 1.

O valor preferencial para Config4GroupedCoefs for zero se ConfigResidDiffAccelerator for 1.

[in] ConfigMinRenderTargetBuffCount

Um valor USHORT que especifica o número mínimo de buffers de destino de renderização.

[in] ConfigDecoderSpecific

Um valor USHORT que especifica recursos específicos do decodificador a serem configurados. Para obter informações sobre os recursos de um decodificador, consulte a especificação desse decodificador. Para obter uma lista de decodificadores, consulte Fornecendo recursos parade decodificação de vídeo.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
cabeçalho d3dumddi.h (inclua D3dumddi.h)

Consulte também

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps