共用方式為


DXVA_BufferDescription 結構 (dxva.h)

DXVA_BufferDescription結構是由主機譯碼器傳送至加速器,以提供目前從主機傳遞至加速器之緩衝區的相關信息。

語法

typedef struct _DXVA_BufferDescription {
  DWORD dwTypeIndex;
  DWORD dwBufferIndex;
  DWORD dwDataOffset;
  DWORD dwDataSize;
  DWORD dwFirstMBaddress;
  DWORD dwNumMBsInBuffer;
  DWORD dwWidth;
  DWORD dwHeight;
  DWORD dwStride;
  DWORD dwReservedBits;
} DXVA_BufferDescription, *LPDXVA_BufferDescription;

成員

dwTypeIndex

識別傳遞至加速器的緩衝區類型。 下表列出數值標識碼和相關聯的緩衝區類型。

緩衝區類型
1 圖片譯碼參數緩衝區。
2 宏區塊控制命令緩衝區 (緊密關聯,並具有與剩餘差異區塊數據緩衝區) 的 1 對 1 對應。
3 剩餘差異區塊數據緩衝區。 如需詳細資訊,請參閱 Macroblock 導向圖片譯 碼。
4 (篩選控制件命令緩衝區 (封鎖篩選) 的效果沒有限制。
5 反向量子化矩陣緩衝區 (只搭配非主機 VLD 處理) 使用。
6 配量控制緩衝區 (緊密關聯,且具有與位數據流數據緩衝區) 的 1 對 1 對應。
7 Bitstream 數據緩衝區。
8 AYUV Alpha 混合範例緩衝區。
9 IA44/AI44 Alpha 混合表面緩衝區。
10 DPXD Alpha 混合表面緩衝區。
11 醒目提示數據緩衝區。
12 DCCMD 數據緩衝區。
13 Alpha 混合組合緩衝區。
14 圖片重新取樣控件緩衝區。
15 包含命令的讀寫命令緩衝區,可讀取結果圖片的宏區塊回到主機。

dwBufferIndex

指定在相同緩衝區 描述清單中傳遞之相同類型之緩衝區內的緩衝區序號。

dwDataOffset

以位元組為單位指定緩衝區開頭的相關數據位移。 此成員的使用目前限制為零值。

dwDataSize

指定緩衝區中以位元組為單位的相關數據量。 緩衝區中最後一個字節內容的位置是 dwDataOffset,加上 dwDataSize 減 1。

dwFirstMBaddress

指定傳遞至加速器之緩衝區中第一個宏區塊的macroblock位址。 宏區塊位址會以點陣掃描順序提供。 位址是由 DXVA_PictureParameters的成員決定。 宏區塊位址的范例如下所示。

Macroblock 位址
左上角
右上方 wPicWidthInMBminus1
左下角 wPicHeightInMBminus1 x (wPicWidthInMBminus1+1)
右下角 (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1) -1

如果數據緩衝區屬於下列類型,則此成員必須是零:圖片譯碼參數、反向量子化矩陣、配量控制、位數據流數據、AYUV、IA44/AI44、DPXD、Highlight 和 DCCMD。

如果數據緩衝區是剩餘差異區塊數據緩衝區, dwFirstMBaddress 必須具有與對應宏區塊控制命令緩衝區相同的值。 如需詳細資訊,請參閱 Macroblock 導向圖片譯 碼。

dwNumMBsInBuffer

指定緩衝區中數據的宏區塊數目。 此計數包括略過宏區塊。 如果數據緩衝區位於下列類型中,則必須為零:圖片譯碼參數、反向量子化矩陣、AYUV、IA44/AI44、DPXD、Highlight 或 DCCMD。

dwNumMBsInBuffer 的值取決於所使用的數據緩衝區類型,如下表所示。

緩衝區類型 dwNumMBsInBuffer 的值
Macroblock 控制項命令 必須等於 MBskipsFollowing 的所有值總和,並新增至 macroblock 控件命令緩衝區中的宏區塊控件命令數目。
剩餘差異區塊 必須具有與對應宏區塊控件命令緩衝區相同的值。
Slice-control 命令 必須等於配量控制緩衝區中 DXVA_SliceInfo 結構的 wNumberMBsInSlice 成員值。
Bitstream 必須具有與對應配量控制命令緩衝區相同的值。

dwWidth

將緩衝區中的數據寬度指定為下列數據類型的位單位數:AYUV (數據是以 32 位單位指定) 、IA44/AI44 (數據是以 8 位單位) 指定,或以 2 位單位) 指定 DPXD (數據。 如果數據緩衝區不在上述類型中,這個成員就必須是零。

dwHeight

指定緩衝區中數據的高度做為下列數據類型的位單位數:AYUV (數據是以 32 位單位) 指定,IA44/AI44 (數據是以 8 位單位) 指定,或以 2 位單位) 指定 DPXD (數據。如果數據緩衝區不在上述類型中,這個成員就必須是零。

dwStride

指定緩衝區中數據的進階,做為下列數據類型的位單位數:AYUV (數據是以 32 位單位) 、IA44/AI44 (數據以 8 位單位) 指定,或以 2 位單位) 指定 DPXD (數據。 適用緩衝區類型的步幅取決於加速器所執行的緩衝區配置設定。 如果數據緩衝區不在上述類型中,這個成員就必須是零。

dwReservedBits

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

備註

DXVA_BufferDescription 結構的陣列稱為緩衝區描述清單。 當一組緩衝區從主機譯碼器傳送到硬體加速器時,會傳送緩衝區描述清單來描述緩衝區。 緩衝區描述清單包含此集合中每個緩衝區的一個DXVA_BufferDescription結構。 緩衝區描述清單會從第一個類型之第一個緩衝區的DXVA_BufferDescription結構開始,後面接著相同類型的下一個緩衝區的DXVA_BufferDescription結構,依此類傳。 然後,緩衝區描述清單會繼續進行下一個類型之第一個緩衝區的DXVA_BufferDescription結構,依此類故。

規格需求

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

另請參閱

DXVA_PictureParameters

DXVA_SliceInfo