共用方式為


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-Oriented 圖片譯碼
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-Oriented 圖片譯碼

dwNumMBsInBuffer

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

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

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

dwWidth

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

dwHeight

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

dwStride

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

dwReservedBits

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

言論

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

要求

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

另請參閱

DXVA_PictureParameters

DXVA_SliceInfo