структура 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] равно нулю, то предыдущая матрица обратного квантования, определенная i-мэлементом, должна по-прежнему использоваться ускорителем.

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

Qmatrix[4]

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

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

Комментарии

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

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

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

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

Требования

Требование Значение
Заголовок dxva.h (включая Dxva.h)

См. также раздел

DXVA_ConfigPictureDecode

DXVA_PictureParameters