DXVA_QmatrixData結構 (dxva.h)
主機譯碼器會將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 | 指定 chrominance 量化。 |
3 | 指定跨 chrominance 量化。 |
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 時,才會傳送反向量化矩陣緩衝區。
反向量化矩陣內數據值的順序,如相關影片編碼規格中所指定。
規格需求
需求 | 值 |
---|---|
標頭 | dxva.h (包含 Dxva.h) |