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 為零時,macroblock 控制項命令的 MBscanMethod 元素表示 zigzag、alternate-vertical 或替代水準反向掃描。 這些 macroblock 控制項命令定義于下列結構中: DXVA_MBctrl_I_OffHostIDCT_1DXVA_MBctrl_P_OffHostIDCT_1。 在此情況下, TCoefIDX 會包含指定掃描順序中目前係數前面的零值係數數目,之後會接著區塊的最後一個傳輸係數 (或相對於區塊的開頭,如果沒有在區塊之前) 。 反向掃描順序中最後一個傳送係數之後的任何剩餘係數都會隱含為零值。
  2. 任意排序: 當 bConfigHostInverseScan 為 1 時,macroblock 控制項命令的 MBscanMethod 元素表示任意順序。 這些 macroblock 控制項命令定義于下列結構中: DXVA_MBctrl_I_OffHostIDCT_1DXVA_MBctrl_P_OffHostIDCT_1。 在此情況下, TCoefIDX 只會在區塊內包含係數的點陣索引, (TCoefIDX = u + 8 * v,其中您和 v 是轉換網域的水準和垂直頻率座標) ,而且未傳送的任何係數都隱含為具有值 0。
TCoefIDX 必須一律小於 64。

TCoefEOB

指出目前的係數是否為與目前轉換係數區塊相關聯的最後一個係數。 值為 1 表示目前的係數是區塊的最後一個係數,而值為零表示它不是。 此欄位位於 wIndexWithEOB 成員的最小有效位。

TCoefValue

表示區塊中的係數值。 TCoefValue必須依照主機在將係數值傳遞至IDCT作業的加速器之前,由主機指定的適當範圍裁剪為適當的範圍。 如有必要,MPEG-2 不符控制也是主機的責任,而不是加速器。 (這可能需要建立額外的「虛設」非零係數。)

備註

每當DXVA_MBctrl_P_OffHostIDCT_1 或 DXVA_MBctrl_I_OffHostIDCT_1結構的wMBtype成員中的HostResidDiff旗標 (位 10,) 為 1,且 DXVA_ConfigPictureDecode 結構的bConfig4GroupedCoefs成員為零時,就會使用DXVA_TCoefSingle結構。

規格需求

   
標頭 dxva.h (包含 Dxva.h)

另請參閱

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1