共用方式為


DXVA_SliceInfo結構 (dxva.h)

DXVA_SliceInfo結構是由主機譯碼器傳送至加速器,以指定異主機 bitstream 壓縮圖片譯碼的配量 bitstream 數據配量配量參數。

語法

typedef struct _DXVA_SliceInfo {
  WORD  wHorizontalPosition;
  WORD  wVerticalPosition;
  DWORD dwSliceBitsInBuffer;
  DWORD dwSliceDataLocation;
  BYTE  bStartCodeBitOffset;
  BYTE  bReservedBits;
  WORD  wMBbitOffset;
  WORD  wNumberMBsInSlice;
  WORD  wQuantizerScaleCode;
  WORD  wBadSliceChopping;
} DXVA_SliceInfo, *LPDXVA_SliceInfo;

成員

wHorizontalPosition

指定以巨集區塊單位表示之配量之第一個巨集區塊的水準位置,零表示圖片最左邊或最上層的巨集區塊。

wVerticalPosition

指定以巨集區塊單位表示之配量之第一個巨集區塊的垂直位置,零表示圖片最左邊或最上層的巨集區塊。

dwSliceBitsInBuffer

指定對應位數據流數據緩衝區中包含目前配量數據的位總數。 這必須是 MPEG-1、MPEG-2、MPEG-4 的八個倍數。 它也必須在 H.263 的配量結構化模式中,因為這些案例中的配量開始程式代碼會以位元組對齊。

dwSliceDataLocation

指定位數據流數據緩衝區中第一個字節的位置,其中包含配量的數據(例如配量開始程序代碼的位置)。 如果配量開頭不在對應的位數據流數據緩衝區內,則必須為零。

bStartCodeBitOffset

指定 dwSliceDataLocation 不包含配量數據的位元組最大有效位數。 bStartCodeBitOffset 對於 MPEG-1、MPEG-2 和 MPEG-4 而言必須為零,因為這些規格中的配量開始代碼會以位元組對齊。 bStartCodeBitOffset 可能不是 H.261 和 H.263 的非零值,因為這些標準不會強制 GOB (區塊群組) 開始程式碼的位元組對齊。 這個成員必須介於零到 7 的範圍內,而且如果配量開頭不在對應的位數據流數據緩衝區內,則必須為零。 bStartCodeBitOffset 在未對齊位元組的開始程式代碼的情況下,將目前配量標示為無關的最重要位,可能會包含先前配量的數據(例如,在 H.263 基準模式中)。

bReservedBits

用於封裝和對齊的保留位。 必須是零。

wMBbitOffset

指定位數據流緩衝區中第一個巨集區塊層數據位之前的配量標頭數據位數目。 例如,如果 wMBbitOffset 為83,則配量的巨集區塊層數據會在83位配量標頭數據之後開始。 如果配量開頭不在對應的位數據流數據緩衝區內,則必須為零。

wNumberMBsInSlice

指定配量中數據的巨集區塊數目,包括略過的巨集區塊。 如果無法從圖片的標頭和位數據流中目前和下一個配量的初始巨集塊數據,例如矩形配量和 H.263 配量模式的任意配量排序子模式,則這個數位可能是零。 H.261、MPEG-1、MPEG-2、MPEG-4 或不使用 H.263 中配量結構化模式的矩形配量或任意配量子模式時,不得為零。

wQuantizerScaleCode

位數據流配量層級的量化程序調整程序代碼,如特定視訊編碼規格中所指定(範圍從 1 到 31,適用於 H.261、H.262/MPEG-2、H.263、MPEG-1 和 MPEG-4)。

wBadSliceChopping

指定對應位數據流數據緩衝區之配量中的數據位置。 如果為零,表示配量的所有位都在位數據流數據緩衝區中。 如果為非零,則表示對應位數據流數據緩衝區中遺漏的配量部分,如下所示。

價值 描述
1 配量開頭的位位於對應的位數據流數據緩衝區內,而配量結尾的位則不是(因為位流數據緩衝區已滿)。
2 配量開頭的位不在對應的位數據流數據緩衝區內(因為先前的位數據流數據緩衝區已滿),但配量結尾的位位於對應的位流數據緩衝區內。
3 配量開頭的位不在對應的位數據流數據緩衝區內(因為先前的位數據流數據緩衝區已滿),而且配量結尾的位也不在對應的位流數據緩衝區內(因為對應的位流數據緩衝區也已滿)。

[!NOTES] 主機軟體譯碼器通常應該避免 wBadSliceChopping 的非零值。

言論

提供配量控制緩衝區,以引導離線主機 VLD 位流處理作業。 只有在 bConfigBitstreamRaw 成員 DXVA_ConfigPictureDecode 為 1 時,才會傳送配量控制緩衝區。 主機軟體譯碼器必須判斷位數據流中配量層級重新同步處理點的位置。 配量 定義為包含位數據流數據中重新同步處理點的多macroblock 層。

在 H.261 位數據流中,GOB 會被視為配量。 在 H.263 位數據流中,從 GOB 開始程式碼開始且不包含其他 GOB 開始碼的一或多個 GOB 序列會被視為配量。 配量控制緩衝區必須包含一或多個DXVA_SliceInfo結構,根據對應的位流數據緩衝區內容。

要求

要求 價值
標頭 dxva.h (包括 Dxva.h)

另請參閱

DXVA_ConfigPictureDecode