DXVA_TCoefSingle结构 (dxva.h)

主机解码器将DXVA_TCoefSingle结构发送到加速器,以指定 IDCT 系数值。

语法

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

成员

wIndexWithEOB

此成员包含两个字段:TCoefIDX TCoefEOB

TCoefIDX

根据 DXVA_ConfigPictureDecode 结构的 bConfigHostInverseScan 成员确定,指定块中系数的扫描索引。 此字段位于 wIndexWithEOB 成员的 15 个最有效位中。

可以使用两种方法来 TCoefIDX

  1. 运行长度排序:bConfigHostInverseScan 为零时,宏块控制命令的 MBscanMethod 元素指示 zigzag、alternate-vertical 或备用水平反转扫描。 这些宏块控件命令在以下结构中定义:DXVA_MBctrl_I_OffHostIDCT_1DXVA_MBctrl_P_OffHostIDCT_1。 在本例中,TCoefIDX 包含指定扫描顺序中当前系数之前的零值系数数,之后是块的最后一个传输系数(或者相对于块开头(如果前面没有)。 反扫描顺序中最后一个发送系数之后的任何剩余系数都隐含为零值。
  2. 任意排序:bConfigHostInverseScan 为 1 时,宏块控制命令的 MBscanMethod 元素指示任意排序。 这些宏块控件命令在以下结构中定义:DXVA_MBctrl_I_OffHostIDCT_1DXVA_MBctrl_P_OffHostIDCT_1。 在这种情况下,TCoefIDX 只包含块内系数的光栅索引(TCoefIDX = u + 8 * v),其中你和 v 是转换域的水平和垂直频率坐标),并且未发送的任何系数都暗示有值 0。
TCoefIDX 必须始终小于 64。

TCoefEOB

指示当前系数是否是与当前转换系数块关联的最后一个系数。 值为 1 表示当前系数是块的最后一个系数,值为零表示它不是。 此字段位于 wIndexWithEOB 成员中最小有效位。

TCoefValue

指示块中系数的值。 TCoefValue 必须在主机 Low-Level IDCT 处理元素 中指定的适当范围剪切,然后才能将系数值传递给加速器,以便 IDCT作。 MPEG-2 不匹配控制(如有必要)也是主机的责任,而不是加速器。 (这可能需要创建额外的“幻影”非零系数。

言论

每当 HostResidDiff 标志(wMBtypeDXVA_MBctrl_P_OffHostIDCT_1 成员中的位 10 或 DXVA_MBctrl_I_OffHostIDCT_1 结构)为 1 时,DXVA_TCoefSingle结构为 1,bConfig4GroupedCoefsDXVA_ConfigPictureDecode 结构的成员为零。

要求

要求 价值
标头 dxva.h (包括 Dxva.h)

另请参阅

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1