Поделиться через


структура 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 Задает внутрихроменную квантизацию.
3 Задает межхромную квантизацию.

Значение в bNewQmatrix[0] и bNewQmatrix[1] не должно быть ни нулем.

Если значение для bNewQmatrix[2] или bNewQmatrix[3] равно нулю, то применяется следующее:

Если bNewQmatrix[i - 2] равно нулю, то предыдущая матрица обратной квантизации, определяемая элементом ith, должен продолжать использоваться акселератором.

Если bNewQmatrix[i - 2] равно 1, матрица обратной квантизации, определяемая элементом ith, имеет значение новой матрицы инверсной квантизации для i – 2.

Qmatrix[4]

Двухмерный массив, указывающий буфер матрицы обратной квантизации. Этот массив присутствует только для каждого элемента в bNewQmatrix равным 1. Матрица состоит из (bBlockWidthMinus1+1) X (bBlockHeightMinus1+1) неподписанных слов (в которых только ниже 1) Биты каждого слова используются для основных стандартов программирования видео), где bBlockWidthMinus1 и bBlockHeightMinus1 являются членами структуры DXVA_PictureParameters.

Примечание для битовых потоков MPEG-2 значения данных в Qmatrix находятся в порядке обратного сканирования зигзага, как указано в подклаузе 7.3.1 и рис. 7-2 MPEG-2.
 

Замечания

Если кодирование видео не требует матрицы обратной квантизации (например, H.261 и H.263), буферы матрицы обратной квантизации не должны быть отправлены. Если кодирование видео нуждается в матрицах обратной квантизации, некоторые значения должны быть предоставлены для этих матриц обратно-квантизации хостом до или в сочетании с передачей любых буферов данных битового потока в начале процесса декодирования видео.

Никакие значения по умолчанию матрицы инверсной квантизации не могут приниматься акселератором в отсутствие какого-либо предыдущего значения, отправляемого узлом. Значения матрицы квантизации должны отправляться явно, даже если они содержат значения, доступные по умолчанию в соответствующей спецификации кода видео.

Буферы матрицы обратной квантизации отправляются только в том случае, если bConfigBitstreamRaw член структуры DXVA_ConfigPictureDecode равен 1.

Порядок значений данных в матрице обратной квантизации определяется в соответствующей спецификации кода видео.

Требования

Требование Ценность
заголовка dxva.h (include Dxva.h)

См. также

DXVA_ConfigPictureDecode

DXVA_PictureParameters