structure DXVA_QmatrixData (dxva.h)
La structure DXVA_QmatrixData est envoyée par le décodeur hôte à l’accélérateur pour charger les données de matrice de quantisation inverse pour le décodage d’images vidéo compressées hors hôte.
Syntaxe
typedef struct _DXVA_QmatrixData {
BYTE bNewQmatrix[4];
WORD *Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH DXVA_USUAL_BLOCK_HEIGHT];
} DXVA_QmatrixData, *LPDXVA_QmatrixData;
Membres
bNewQmatrix[4]
Indique quelles nouvelles matrices de quantisation inverse sont présentes dans une mémoire tampon de matrice de quantisation inverse. Chaque élément de ce tableau correspond à un type de matrice de quantisation inverse et indique si une nouvelle matrice de quantisation inverse de ce type est présente dans la mémoire tampon. Si un élément dans le tableau bNewQmatrix contient une valeur 1, une nouvelle matrice de quantisation inverse du type spécifié pour cet élément de tableau suit dans la mémoire tampon de matrice de quantisation inverse. Les matrices de quantisation inverse qui peuvent être utilisées sont les suivantes.
NewQmatrix, élément | type de matrice Inverse-Quantization |
---|---|
0 | Spécifie la quantisation intra-luminance. |
1 | Spécifie la quantisation inter-luminance. |
2 | Spécifie la quantisation intra-chrominance. |
3 | Spécifie la quantisation inter-chrominance. |
La valeur dans bNewQmatrix[0] et bNewQmatrix[1] ne doit pas être égale à zéro.
Si la valeur de bNewQmatrix[2] ou bNewQmatrix[3] est égale à zéro, ce qui suit s’applique :
Si bNewQmatrix[i - 2] est égal à zéro, la matrice de quantisation inverse précédente définie par le iième élément doit continuer à être utilisée par l’accélérateur.
Si bNewQmatrix[i - 2] est 1, la matrice de quantisation inverse définie par le iième élément est définie sur la nouvelle matrice de quantisation inverse pour i - 2.
Qmatrix[4]
Tableau à deux dimensions qui spécifie une mémoire tampon de matrice de quantisation inverse. Ce tableau est présent uniquement pour chaque élément de bNewQmatrix égal à 1. La matrice se compose des mots non signés (bBlockWidthMinus1+1) X (bBlockHeightMinus1+1) non signés (dans lequel seuls les 1 inférieurs Les bits de chaque mot sont utilisés pour les normes de codage vidéo dominantes), où bBlockWidthMinus1 et bBlockHeightMinus1 sont membres de la structure DXVA_PictureParameters.
Remarques
Si le codage vidéo n’a pas besoin de matrices de quantisation inverse (par exemple, H.261 et H.263), les mémoires tampons de matrice de quantisation inverse ne doivent pas être envoyées. Si le codage vidéo nécessite des matrices de quantisation inverse, certaines valeurs doivent être fournies pour ces matrices de quantisation inverse par l’hôte avant ou conjointement avec le transfert de mémoires tampons de données de flux de bits au début du processus de décodage vidéo.
Aucune valeur par défaut des matrices de quantisation inverse ne peut être prise en compte par l’accélérateur en l’absence de toute valeur antérieure envoyée par l’hôte. Les valeurs de matrice de quantisation doivent être envoyées explicitement, même si elles contiennent des valeurs disponibles par défaut dans la spécification de codage vidéo appropriée.
Les mémoires tampons de matrice de quantisation inverse ne sont envoyées que lorsque la bConfigBitstreamRaw membre de la structure DXVA_ConfigPictureDecode est 1.
L’ordre des valeurs de données dans la matrice de quantisation inverse est spécifié dans la spécification de codage vidéo appropriée.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | dxva.h (include Dxva.h) |