estrutura DXVA_TCoefSingle (dxva.h)
A estrutura DXVA_TCoefSingle é enviada pelo decodificador de host para o acelerador para especificar valores de coeficiente 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 do membro bConfigHostInverseScan da estrutura DXVA_ConfigPictureDecode. Esse campo está nos 15 bits mais significativos do membro wIndexWithEOB .
Há duas maneiras de usar TCoefIDX:
- Ordenação de comprimento de execução: quando bConfigHostInverseScan é zero, o elemento MBscanMethod do comando de controle de macroblock indica uma verificação inversa em ziguezague, alternada-vertical ou horizontal alternativa. Esses comandos de controle de 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 precedê-lo). Todos os coeficientes restantes após o último coeficiente enviado na ordem de verificação inversa estão implícitos para ter o valor zero.
- Ordenação arbitrária: quando bConfigHostInverseScan é 1, o elemento MBscanMethod do comando de controle macroblock indica ordenação arbitrária. Esses comandos de controle de 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 raster do coeficiente dentro do bloco (TCoefIDX = u + 8 * v, onde você e v são as coordenadas de frequência horizontal e vertical de domínio de transformação) e quaisquer coeficientes que não são enviados estão implícitos para ter o valor 0.
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 de zero indica que não é. Esse campo está na parte menos significativa do membro wIndexWithEOB do.
TCoefValue
Indica o valor do coeficiente no bloco. TCoefValue deve ser recortada para o intervalo apropriado, conforme especificado em Low-Level elementos de processamento de IDCT pelo host antes de passar o valor de coeficiente para o acelerador para operação de 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" não zero.)
Observações
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) |