Compartilhar via


estrutura DXVA_QmatrixData (dxva.h)

A estrutura DXVA_QmatrixData é enviada pelo decodificador de host para o acelerador para carregar dados de matriz de quantização inversa para decodificação de imagem de vídeo compactada fora do host.

Sintaxe

typedef struct _DXVA_QmatrixData {
  BYTE bNewQmatrix[4];
  WORD *Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH  DXVA_USUAL_BLOCK_HEIGHT];
} DXVA_QmatrixData, *LPDXVA_QmatrixData;

Membros

bNewQmatrix[4]

Indica quais novas matrizes de quantificação inversa estão presentes em um buffer de matriz de quantização inversa. Cada elemento nessa matriz corresponde a um tipo de matriz de quantização inversa e indica se uma nova matriz de quantização inversa desse tipo está presente no buffer. Se qualquer elemento na matriz bNewQmatrix contiver um valor de 1, uma nova matriz de quantização inversa do tipo especificado para esse elemento de matriz seguirá no buffer de matriz de quantização inversa. As matrizes de quantificação inversa que podem ser usadas são as seguintes.

Elemento NewQmatrix Tipo de matriz Inverse-Quantization
0 Especifica a quantização intra luminância.
1 Especifica a quantização entre luminâncias.
2 Especifica a quantização intra-chrominance.
3 Especifica a quantização entre chrominance.

O valor em bNewQmatrix[0] e bNewQmatrix[1] não deve ser zero.

Se o valor de bNewQmatrix[2] ou bNewQmatrix[3] for zero, o seguinte se aplicará:

Se bNewQmatrix[i - 2] for zero, a matriz de quantização inversa anterior definida pelo elemento ith deverá continuar a ser usada pelo acelerador.

Se bNewQmatrix[i - 2] for 1, a matriz de quantização inversa definida pelo elemento ith será definida como igual à nova matriz de quantização inversa para i - 2.

Qmatrix[4]

Uma matriz bidimensional que especifica um buffer de matriz de quantização inversa. Essa matriz está presente apenas para cada elemento em bNewQmatrix igual a 1. A matriz consiste em palavras não assinadas (bBlockWidthMinus1+1) X (bBlockHeightMinus1+1) (nas quais apenas os 8 bits inferiores de cada palavra são usados para os padrões de codificação de vídeo dominantes), em que bBlockWidthMinus1 e bBlockHeightMinus1 são membros da estrutura DXVA_PictureParameters .

Nota Para fluxos de bits MPEG-2, os valores de dados no Qmatrix estão em ordem de verificação inversa em ziguezague, conforme especificado na subclausa 7.3.1 e na figura 7-2 do MPEG-2.
 

Comentários

Se a codificação de vídeo não precisar de matrizes de quantização inversa (por exemplo, H.261 e H.263), os buffers de matriz de quantização inversa não deverão ser enviados. Se a codificação de vídeo precisar de matrizes de quantização inversa, algum valor deverá ser fornecido para essas matrizes de quantização inversa pelo host antes ou em conjunto com a transferência de quaisquer buffers de dados bitstream no início do processo de decodificação de vídeo.

Nenhum valor padrão de matrizes de quantização inversa pode ser assumido pelo acelerador na ausência de qualquer valor anterior enviado pelo host. Os valores da matriz de quantização devem ser enviados explicitamente, mesmo que contenham valores disponíveis por padrão na especificação de codificação de vídeo relevante.

Buffers de matriz de quantização inversa são enviados somente quando o membro bConfigBitstreamRaw da estrutura DXVA_ConfigPictureDecode é 1.

A ordem dos valores de dados dentro da matriz de quantização inversa é conforme especificado na especificação de codificação de vídeo relevante.

Requisitos

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

Confira também

DXVA_ConfigPictureDecode

DXVA_PictureParameters