estrutura D3D11_VIDEO_DECODER_CONFIG (d3d11.h)
Descreve a configuração de um dispositivo de decodificador do Microsoft Direct3D 11 para Aceleração de Vídeo DirectX (DXVA).
Sintaxe
typedef struct D3D11_VIDEO_DECODER_CONFIG {
GUID guidConfigBitstreamEncryption;
GUID guidConfigMBcontrolEncryption;
GUID guidConfigResidDiffEncryption;
UINT ConfigBitstreamRaw;
UINT ConfigMBcontrolRasterOrder;
UINT ConfigResidDiffHost;
UINT ConfigSpatialResid8;
UINT ConfigResid8Subtraction;
UINT ConfigSpatialHost8or9Clipping;
UINT ConfigSpatialResidInterleaved;
UINT ConfigIntraResidUnsigned;
UINT ConfigResidDiffAccelerator;
UINT ConfigHostInverseScan;
UINT ConfigSpecificIDCT;
UINT Config4GroupedCoefs;
USHORT ConfigMinRenderTargetBuffCount;
USHORT ConfigDecoderSpecific;
} D3D11_VIDEO_DECODER_CONFIG;
Membros
guidConfigBitstreamEncryption
Se os buffers de dados de bitstream forem criptografados usando o mecanismo D3D11CryptoSession, esse GUID deverá ser definido como zero. Se nenhuma criptografia for aplicada, o valor será DXVA_NoEncrypt. Se ConfigBitstreamRaw for 0, o valor deverá ser DXVA_NoEncrypt.
guidConfigMBcontrolEncryption
Se os buffers de dados de controle de macroblock forem criptografados usando o mecanismo D3D11CryptoSession, esse GUID deverá ser definido como zero. Se nenhuma criptografia for aplicada, o valor será DXVA_NoEncrypt. Se ConfigBitstreamRaw for 1, o valor deverá ser DXVA_NoEncrypt.
guidConfigResidDiffEncryption
Se os buffers de dados de decodificação de diferença residual forem criptografados usando o mecanismo D3D11CryptoSession, esse GUID deverá ser definido como zero. Se nenhuma criptografia for aplicada, o valor será DXVA_NoEncrypt. Se ConfigBitstreamRaw for 1, o valor deverá ser DXVA_NoEncrypt.
ConfigBitstreamRaw
Indica se o decodificador de host envia dados brutos de fluxo de bits. Se o valor for 1, os dados das imagens serão enviados em buffers de fluxo de bits como conteúdo bruto de fluxo de bits. Se o valor for 0, os dados de imagem serão enviados usando buffers de comando de controle macroblock. Se ConfigResidDiffHost ou ConfigResidDiffAccelerator for 1, o valor deverá ser 0.
ConfigMBcontrolRasterOrder
Especifica se os comandos de controle macroblock estão em ordem de varredura ou em ordem arbitrária. Se o valor for 1, os comandos de controle macroblock em cada buffer de comando de controle de macroblock estarão em ordem de varredura. Se o valor for 0, a ordem será arbitrária. Para alguns tipos de fluxos de bits, forçar a ordem de varredura aumenta consideravelmente o número de buffers de controle de macroblock necessários que devem ser processados ou requer a reordenação de host das informações de controle. Portanto, dar suporte à ordem arbitrária pode ser mais eficiente.
ConfigResidDiffHost
Contém a configuração de diferença residual do host. Se o valor for 1, algumas diferenças residuais de decodificação de dados poderão ser enviadas como blocos no domínio espacial do host. Se o valor for 0, os dados de domínio espacial não serão enviados.
ConfigSpatialResid8
Indica o tamanho da palavra usada para representar a diferença residual de blocos de domínio espacial para imagens previstas (não intra) ao usar a decodificação de diferença residual baseada em host.
Se ConfigResidDiffHost for 1 e ConfigSpatialResid8 for 1, o host enviará blocos de domínio espacial de diferença residual para macroblocks não intra usando amostras assinadas de 8 bits e para macroblocks intra em imagens previstas (não intra) em um formato que depende do valor de ConfigIntraResidUnsigned:
- Se ConfigIntraResidUnsigned for 0, blocos de domínio espacial para intra macroblocks serão enviados como valores inteiros com sinal de 8 bits em relação a um valor de referência constante de 2^(BPP–1).
- Se ConfigIntraResidUnsigned for 1, blocos de domínio espacial para macroblocks intra serão enviados como valores inteiros sem sinal de 8 bits em relação a um valor de referência constante de 0.
- Se ConfigIntraResidUnsigned for 0, os blocos de domínio espaciais para macroblocks intra serão enviados como valores inteiros com sinal de 16 bits em relação a um valor de referência constante de 2^(BPP–1).
- Se ConfigIntraResidUnsigned for 1, os blocos de domínio espaciais para macroblocks intra serão enviados como valores inteiros sem sinal de 16 bits em relação a um valor de referência constante de 0.
Para imagens intra, blocos de domínio espacial devem ser enviados usando amostras de 8 bits se bits por pixel (BPP) for 8 e usar exemplos de 16 bits se BPP > 8. Se ConfigIntraResidUnsigned for 0, esses exemplos serão enviados como valores inteiros com sinal em relação a um valor de referência constante de 2^(BPP–1) e, se ConfigIntraResidUnsigned for 1, esses exemplos serão enviados como valores inteiros sem sinal em relação a um valor de referência constante igual a 0.
ConfigResid8Subtraction
Se o valor for 1, os blocos de estouro de diferença de 8 bits serão subtraídos em vez de adicionados. O valor deve ser 0, a menos que ConfigSpatialResid8 seja 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 completo de valores ±255 necessários nas especificações do decodificador de vídeo, 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 ±255 pode ser representado como a diferença entre dois números com sinal de 8 bits (+255 = +127 menos –128).
ConfigSpatialHost8or9Clipping
Se o valor for 1, blocos de domínio espacial para macroblocks intra devem ser recortados para um intervalo de 8 bits nos blocos host e spatial-domain para macroblocks não intra devem ser recortados para um intervalo de 9 bits no host. Se o valor for 0, nenhum recorte desse tipo será necessário para o host.
O valor deve ser 0, a menos que ConfigSpatialResid8 seja 0 e ConfigResidDiffHost seja 1.
ConfigSpatialResidInterleaved
Se o valor for 1, todos os dados de diferença residual de domínio espacial deverão ser enviados em uma forma intercalada por chrominance que corresponda ao padrão de intercalação de chrominance de formato YUV. O valor deve ser 0, a menos que ConfigResidDiffHost seja 1 e o formato YUV seja NV12 ou NV21.
ConfigIntraResidUnsigned
Indica 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.
Se ConfigResidDiffHost for 1 e ConfigIntraResidUnsigned for 0, blocos de dados de diferença residual de domínio espacial para macroblocks intra devem ser enviados da seguinte maneira:
- Em uma imagem não intra, se ConfigSpatialResid8 for 0, os blocos de dados de diferença residual de domínio espacial para blocos de dados intra macroblocks serão enviados como valores inteiros com sinal de 16 bits em relação a um valor de referência constante de 2^(BPP–1).
- Em uma imagem não intra, se ConfigSpatialResid8 for 1, os blocos de dados de diferença residual de domínio espacial para blocos de macro intra serão enviados como valores inteiros com sinal de 8 bits em relação a um valor de referência constante de 2^(BPP–1).
- Em uma imagem intra, se BPP for 8, os blocos de dados de diferença residual de domínio espacial para blocos de macro intra serão enviados como valores inteiros com sinal de 8 bits em relação a um valor de referência constante de 2^(BPP–1), independentemente do valor de ConfigSpatialResid8.
- Em uma imagem não intra, se ConfigSpatialResid8 for 0, os blocos de dados de diferença residual de domínio espacial para blocos de dados intra macroblocks deverão ser enviados como valores inteiros sem sinal de 16 bits em relação a um valor de referência constante de 0.
- Em uma imagem não intra, se ConfigSpatialResid8 for 1, os blocos de dados de diferença residual de domínio espacial para macroblocks intra serão enviados como valores inteiros sem sinal de 8 bits em relação a um valor de referência constante de 0.
- Em uma imagem intra, se BPP for 8, os blocos de dados de diferença residual de domínio espacial para intra macroblocks serão enviados como valores inteiros sem sinal de 8 bits em relação a um valor de referência constante de 0, independentemente do valor de ConfigSpatialResid8.
ConfigResidDiffAccelerator
Se o valor for 1, blocos de domínio de transformação de dados coeficientes poderão ser enviados do host para IDCT baseado em acelerador. Se o valor for 0, o IDCT baseado em acelerador não será usado. Se ConfigResidDiffHost e ConfigResidDiffAccelerator forem 1, isso indicará que alguma decodificação de diferença residual será feita no host e em alguns no acelerador, conforme indicado pelos comandos de controle no nível do macroblock.
O valor deverá ser 0 se ConfigBitstreamRaw for 1.
ConfigHostInverseScan
Se o valor for 1, a verificação inversa para processamento de bloco de domínio de transformação será executada no host e os índices absolutos serão enviados para quaisquer coeficientes de transformação. Se o valor for 0, a verificação inversa será executada no acelerador.
O valor deverá ser 0 se ConfigResidDiffAccelerator for 0 ou se Config4GroupedCoefs for 1.
ConfigSpecificIDCT
Se o valor for 1, o IDCT especificado no Anexo W da Recomendação ITU-T H.263 será usado. Se o valor for 0, qualquer IDCT compatível poderá ser usado para IDCT fora do host.
O anexo H.263 não está em conformidade com os requisitos de IDCT do MPEG-2 corrigendum 2, portanto, o valor não deve ser 1 para uso com vídeo MPEG-2.
O valor deverá ser 0 se ConfigResidDiffAccelerator for 0, indicando decodificação de diferença residual baseada em host.
Config4GroupedCoefs
Se o valor for 1, os coeficientes de transformação para IDCT fora do host serão enviados usando a estrutura DXVA_TCoef4Group . Se o valor for 0, a estrutura DXVA_TCoefSingle será usada. O valor deverá ser 0 se ConfigResidDiffAccelerator for 0 ou se ConfigHostInverseScan for 1.
ConfigMinRenderTargetBuffCount
Especifica quantos quadros o dispositivo decodificador processa ao mesmo tempo.
ConfigDecoderSpecific
Contém informações de configuração específicas do decodificador.
Requisitos
Cliente mínimo com suporte | Windows 8 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP] |
Cabeçalho | d3d11.h |