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


структура DXVA_TCoefSingle (dxva.h)

Структура DXVA_TCoefSingle отправляется декодером узла в ускоритель для указания значений коэффициента IDCT .

Синтаксис

typedef struct _DXVA_TCoefSingle {
  WORD  wIndexWithEOB;
  SHORT TCoefValue;
} DXVA_TCoefSingle, *LPDXVA_TCoefSingle;

Члены

wIndexWithEOB

Этот элемент содержит два поля: TCoefIDX и TCoefEOB.

TCoefIDX

Указывает индекс сканирования коэффициента в блоке, определяемый из элемента bConfigHostInverseScanструктуры DXVA_ConfigPictureDecode . Это поле находится в 15 наиболее значимых битах элемента wIndexWithEOB .

TCoefIDX можно использовать двумя способами:

  1. Порядок длины выполнения. Если параметр bConfigHostInverseScan равен нулю, элемент MBscanMethod команды макроблока указывает на зигзагообразную, альтернативную вертикальную или альтернативную горизонтальную инверсную проверку. Эти команды управления макроблоком определяются в следующих структурах: DXVA_MBctrl_I_OffHostIDCT_1 или DXVA_MBctrl_P_OffHostIDCT_1. В этом случае TCoefIDX содержит число нулевых коэффициентов, предшествующих текущему коэффициенту в указанном порядке сканирования, после последнего передаваемого коэффициента для блока (или относительно начала блока, если ни один из них не предшествует ему). Все остальные коэффициенты после последнего отправленного коэффициента в порядке обратного сканирования подразумевают нулевое значение.
  2. Произвольное упорядочение. Если параметр bConfigHostInverseScan равен 1, элемент MBscanMethod команды управления макроблоком указывает на произвольный порядок. Эти команды управления макроблоком определяются в следующих структурах: DXVA_MBctrl_I_OffHostIDCT_1 и DXVA_MBctrl_P_OffHostIDCT_1. В этом случае TCoefIDX просто содержит растровый индекс коэффициента в блоке (TCoefIDX = u + 8 * v, где you и v являются горизонтальными и вертикальными координатами частоты области преобразования), и любые неотправляемые коэффициенты подразумеваются как имеющие значение 0.
Значение TCoefIDX всегда должно быть меньше 64.

TCoefEOB

Указывает, является ли текущий коэффициент последним, связанным с текущим блоком коэффициентов преобразования. Значение 1 указывает, что текущий коэффициент является последним для блока, а нулевое значение указывает, что это не так. Это поле находится в наименее значимом бите элемента wIndexWithEOB .

TCoefValue

Указывает значение коэффициента в блоке. Перед передачей значения коэффициента в ускоритель для операции IDCT необходимо обрезать TCoefValue до соответствующего диапазона, указанного в разделе Низкоуровневые элементы обработки IDCT. При необходимости управление несоответствием MPEG-2 также является ответственностью узла, а не ускорителя. (Это может потребовать создания дополнительных "фантомных" ненулевых коэффициентов.)

Комментарии

Структура DXVA_TCoefSingle используется всякий раз, когда флаг HostResidDiff (бит 10 в элементе wMBtypeструктуры DXVA_MBctrl_P_OffHostIDCT_1 или DXVA_MBctrl_I_OffHostIDCT_1 ) равен 1, а член bConfig4GroupedCoefs структуры DXVA_ConfigPictureDecode равен нулю.

Требования

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

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

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1