Share via


estrutura DXVA_TCoefSingle (dxva.h)

A estrutura DXVA_TCoefSingle é enviada pelo decodificador de host para o acelerador para especificar valores de coeficiente de IDCT .

Sintaxe

typedef struct _DXVA_TCoefSingle {
  WORD  wIndexWithEOB;
  SHORT TCoefValue;
} DXVA_TCoefSingle, *LPDXVA_TCoefSingle;

Membros

wIndexWithEOB

Esse membro contém dois campos: TCoefIDX e TCoefEOB.

TCoefIDX

Especifica o índice de verificação do coeficiente no bloco, conforme determinado pelo membro bConfigHostInverseScan da estrutura DXVA_ConfigPictureDecode . Esse campo está nos 15 bits mais significativos do membro wIndexWithEOB .

Há duas maneiras pelas quais o TCoefIDX pode ser usado:

  1. Ordenação de comprimento de execução: quando bConfigHostInverseScan é zero, o elemento MBscanMethod do comando de controle macroblock indica uma verificação inversa em ziguezague, vertical alternativa ou horizontal alternativa. Esses comandos de controle macroblock são definidos nas seguintes estruturas: DXVA_MBctrl_I_OffHostIDCT_1 ou DXVA_MBctrl_P_OffHostIDCT_1. Nesse caso, TCoefIDX contém o número de coeficientes com valor zero que precedem o coeficiente atual na ordem de verificação especificada, subsequente ao último coeficiente transmitido para o bloco (ou relativo ao início do bloco, se nenhum o preceder). Quaisquer coeficientes restantes após o último coeficiente enviado na ordem de verificação inversa são implícitos para ter o valor zero.
  2. Ordenação arbitrária: quando bConfigHostInverseScan é 1, o elemento MBscanMethod do comando de controle macroblock indica ordenação arbitrária. Esses comandos de controle macroblock são definidos nas seguintes estruturas: DXVA_MBctrl_I_OffHostIDCT_1 e DXVA_MBctrl_P_OffHostIDCT_1. Nesse caso, TCoefIDX simplesmente contém o índice de varredura do coeficiente dentro do bloco (TCoefIDX = u + 8 * v, em que você e v são as coordenadas de frequência horizontal e vertical do domínio de transformação), e quaisquer coeficientes que não são enviados são implícitos para ter o valor 0.
TCoefIDX sempre deve ser menor que 64.

TCoefEOB

Indica se o coeficiente atual é o último associado ao bloco atual de coeficientes de transformação. Um valor de 1 indica que o coeficiente atual é o último para o bloco e um valor igual a zero indica que ele não é. Esse campo está no bit menos significativo do membro wIndexWithEOB .

TCoefValue

Indica o valor do coeficiente no bloco. TCoefValue deve ser recortado para o intervalo apropriado, conforme especificado em Elementos de processamento de IDCT de baixo nível pelo host antes de passar o valor de coeficiente para o acelerador para a operação IDCT . O controle de incompatibilidade mpeg-2, se necessário, também é responsabilidade do host, não do acelerador. (Isso pode exigir a criação de coeficientes adicionais "fantasmas" diferentes de zero.)

Comentários

A estrutura DXVA_TCoefSingle é usada sempre que o sinalizador HostResidDiff (bit 10 no membro wMBtype da estrutura DXVA_MBctrl_P_OffHostIDCT_1 ou DXVA_MBctrl_I_OffHostIDCT_1 ) é 1 e o membro bConfig4GroupedCoefs da estrutura DXVA_ConfigPictureDecode é zero.

Requisitos

Requisito Valor
Cabeçalho dxva.h (inclua Dxva.h)

Confira também

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1