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


структура 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, где вы и v являются координатами горизонтальной и вертикальной частоты преобразования), а любые коэффициенты, которые не отправляются, подразумеваются для значения 0.
TCoefIDX всегда должно быть меньше 64.

TCoefEOB

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

TCoefValue

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

Замечания

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

Требования

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

См. также

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1