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 bitstream. Um valor de 1 neste membro indica que os dados de imagem são enviados em buffers bitstream como conteúdo de bitstream bruto. Um valor igual a 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 membro ConfigResidDiffHost ou ConfigResidDiffAccelerator 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 raster ou em ordem arbitrária. Um valor de 1 neste membro especifica que os comandos de controle de macroblock dentro de cada buffer de comando de controle de macroblock estão em ordem de verificação raster. Um valor igual a 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 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 é definido como 1).
Se ConfigSpatialResid8 for 1 e ConfigResidDiffHost for 1, o host enviará blocos espaciais de domínio de diferença residual 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, 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, 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 enviará blocos de dados de domínio espacial de diferença residual para macroblocks nonintra que usam amostras assinadas 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 espacial 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 espacial 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.
Observação
Para imagens intra com BPP igual a 8, blocos de domínio espacial devem ser enviados usando amostras de 8 bits. Para imagens intra com BPP maiores que 8, 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 esteja totalmente em conformidade com o intervalo de -255 a +255 de 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 assinados de 8 bits (+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 cortados para um intervalo de 9 bits no host. Um valor 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 de chrominance. 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 chrominance que corresponda ao padrão de intercalação de chrominance 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 o membro ConfigResidDiffHost é 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 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 amostra 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 serão enviados como valores inteiros sem sinal de 16 bits 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 o IDCT baseado em acelerador não é usado.
Se o membro ConfigResidDiffHost 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 do 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 é definido como 1 e ConfigResidDiffHost é 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 para 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 igual a 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 será 1 se ConfigResidDiffAccelerator for 1.
[in] ConfigSpecificIDCT
Um valor UINT que especifica o uso de um método IDCT específico para IDCT fora do host. Um valor 1 neste membro indica o uso do IDCT especificado no Anexo W da Recomendação ITU-T H.263, sobre o qual você pode aprender no site da União Internacional de Telecomunicações . Um valor zero indica que qualquer IDCT em conformidade pode ser usado 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.
Observação
ConfigSpecificIDCT não deve ser definido como 1 para uso com 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 será zero se ConfigResidDiffAccelerator for zero ou se ConfigHostInverseScan for 1.
O valor preferencial para Config4GroupedCoefs será 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 para decodificação de vídeo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Cabeçalho | d3dumddi.h (inclua D3dumddi.h) |