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