dxva.h) (DXVA_QmatrixData 结构
DXVA_QmatrixData结构由主机解码器发送到加速器,以加载反向量化矩阵数据,以便进行主机外比特流压缩的视频图片解码。
语法
typedef struct _DXVA_QmatrixData {
BYTE bNewQmatrix[4];
WORD *Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH DXVA_USUAL_BLOCK_HEIGHT];
} DXVA_QmatrixData, *LPDXVA_QmatrixData;
成员
bNewQmatrix[4]
指示反量化矩阵缓冲区中存在哪些新的反量子化矩阵。 此数组中的每个元素对应于反量化矩阵类型,并指示缓冲区中是否存在该类型的新反量化矩阵。 如果 bNewQmatrix 数组中的任何元素包含值 1,则为该数组元素指定的类型的新反量化矩阵将位于反量化矩阵缓冲区中。 可以使用的反量化矩阵如下所示。
NewQmatrix 元素 | Inverse-Quantization 矩阵类型 |
---|---|
0 | 指定亮度内量化。 |
1 | 指定亮度间量化。 |
2 | 指定色度内量化。 |
3 | 指定色度间量化。 |
bNewQmatrix[0] 和 bNewQmatrix[1] 中的值不得同时为零。
如果 bNewQmatrix[2] 或 bNewQmatrix[3] 的值为零,则以下情况适用:
如果 bNewQmatrix[i - 2] 为零,则由 第 i个元素定义的上一个反向量化矩阵必须继续由加速器使用。
如果 bNewQmatrix[i - 2] 为 1,则由 第 i个元素定义的反量化矩阵设置为等于 i - 2 的新反量化矩阵。
Qmatrix[4]
一个二维数组,指定反量化矩阵缓冲区。 此数组仅适用于 bNewQmatrix 中等于 1 的每个元素。 该矩阵由 (bBlockWidthMinus1+1) X (bBlockHeightMinus1+1) 无符号单词 (组成,其中每个单词只有较低的 8 位用于主导视频编码标准) ,其中 bBlockWidthMinus1 和 bBlockHeightMinus1 是 DXVA_PictureParameters 结构的成员。
注解
如果视频编码不需要反向量化矩阵 (例如 H.261 和 H.263) ,则不得发送反量化矩阵缓冲区。 如果视频编码确实需要反量化矩阵,则必须在视频解码过程开始时传输任何位流数据缓冲区之前,由主机为这些反向量化矩阵提供一些值。
如果没有主机发送的任何先前值,则加速器不得采用任何反量化矩阵的默认值。 必须显式发送量化矩阵值,即使它们包含相关视频编码规范中默认可用的值。
仅当 DXVA_ConfigPictureDecode 结构的 bConfigBitstreamRaw 成员为 1 时,才会发送反量化矩阵缓冲区。
反量化矩阵中数据值的顺序是相关视频编码规范中指定的。
要求
要求 | 值 |
---|---|
Header | dxva.h (包括 Dxva.h) |