dxva.h) (DXVA_TCoefSingle 结构
主机解码器将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 元素指示锯齿形扫描、交替垂直扫描或交替水平反转扫描。 这些宏块控制命令在以下结构中定义: DXVA_MBctrl_I_OffHostIDCT_1 或 DXVA_MBctrl_P_OffHostIDCT_1。 在这种情况下, TCoefIDX 包含以指定扫描顺序在当前系数之前、块 (的最后一个传输系数之后的零值系数的数目,如果块) 之前没有任何系数,则返回该系数。 在逆扫描顺序中最后一个发送系数之后的任何剩余系数都意味着值为零。
- 任意排序:当 bConfigHostInverseScan 为 1 时,macroblock 控制命令的 MBscanMethod 元素指示任意排序。 这些宏块控制命令在以下结构中定义: DXVA_MBctrl_I_OffHostIDCT_1 和 DXVA_MBctrl_P_OffHostIDCT_1。 在本例中, TCoefIDX 仅包含块内系数的光栅索引 (TCoefIDX = u + 8 * v,其中 you 和 v 是转换域水平和垂直频率坐标) ,任何未发送的系数都意味着值为 0。
TCoefEOB
指示当前系数是否是与当前转换系数块关联的最后一个系数。 值为 1 表示当前系数是块的最后一个系数,值为 0 表示不是。 此字段位于 wIndexWithEOB 成员的最小有效位中。
TCoefValue
指示块中系数的值。 在将系数值传递给 IDCT 操作的加速器之前,主机必须将 TCoefValue 剪裁到低级别 IDCT 处理元素中指定的相应范围。 如有必要,MPEG-2 不匹配控制也是主机而不是加速器的责任。 (这可能需要创建额外的“幻影”非零系数。)
注解
只要 DXVA_MBctrl_P_OffHostIDCT_1 或 DXVA_MBctrl_I_OffHostIDCT_1 结构的 wMBtype 成员中的 HostResidDiff 标志 (位 10,) 为 1 且 DXVA_ConfigPictureDecode 结构的 bConfig4GroupedCoefs 成员为零,则使用 DXVA_TCoefSingle 结构。
要求
要求 | 值 |
---|---|
Header | dxva.h (包括 Dxva.h) |