Bagikan melalui


struktur DXVA_BufferDescription (dxva.h)

Struktur DXVA_BufferDescription dikirim oleh dekoder host ke akselerator untuk memberikan informasi kepada akselerator tentang buffer yang saat ini sedang diteruskan dari host ke akselerator.

Sintaks

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;

Anggota

dwTypeIndex

Mengidentifikasi jenis buffer yang diteruskan ke akselerator. Tabel berikut mencantumkan pengidentifikasi numerik dan jenis buffer terkait.

Nilai Jenis Buffer
1 Buffer parameter pendekodean gambar.
2 Buffer perintah kontrol macroblock (terkait erat dengan dan memiliki korespondensi 1:1 dengan buffer data blok perbedaan sisa).
3 Buffer data blok perbedaan residu. Lihat Pendekodean Gambar Berorientasi Makroblock untuk informasi selengkapnya.
4 Pemblokiran buffer perintah kontrol filter (dengan atau tanpa batasan pada efek filter).
5 Buffer matriks kuantisasi terbalik (hanya digunakan dengan pemrosesan VLD di luar host).
6 Buffer kontrol ilis (terkait erat dengan dan memiliki korespondensi 1:1 dengan buffer data bitstream).
7 Buffer data bitstream.
8 Buffer sampel alpha-blending AYUV.
9 Buffer permukaan alpha-blending IA44/AI44.
10 Buffer permukaan alfa-blending DPXD.
11 Sorot buffer data.
12 Buffer data DCCMD.
13 Buffer kombinasi alpha-blend.
14 Buffer kontrol pengambilan sampel ulang gambar.
15 Buffer perintah read-back berisi perintah untuk membaca makroblock dari gambar yang dihasilkan kembali ke host.

dwBufferIndex

Menentukan nomor urut buffer dalam buffer dengan jenis yang sama yang diteruskan dalam daftar deskripsi buffer yang sama.

dwDataOffset

Menentukan offset data yang relevan dari awal buffer dalam byte. Penggunaan anggota ini saat ini dibatasi untuk nilai nol.

dwDataSize

Menentukan jumlah data yang relevan dalam buffer dalam byte. Lokasi byte terakhir konten dalam buffer adalah dwDataOffset, ditambah dwDataSize dikurangi 1.

dwFirstMBaddress

Menentukan alamat blok makro dari blok makro pertama dalam buffer yang diteruskan ke akselerator. Alamat macroblock diberikan dalam urutan pemindaian raster. Alamat ditentukan oleh anggota DXVA_PictureParameters. Contoh alamat macroblock adalah sebagai berikut.

Blokir Makro Alamat
kiri atas Nol
kanan atas wPicWidthInMBminus1
kiri bawah wPicHeightInMBminus1 x (wPicWidthInMBminus1+1)
kanan bawah (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1

Anggota ini harus nol jika buffer data berada di antara jenis berikut: parameter pendekodean gambar, matriks kuantisasi terbalik, kontrol potongan, data bitstream, AYUV, IA44/AI44, DPXD, Sorotan, dan DCCMD.

Jika buffer data adalah buffer data blok perbedaan residu, dwFirstMBaddress harus memiliki nilai yang sama seperti untuk buffer perintah kontrol makroblock yang sesuai. Lihat Pendekodean Gambar Berorientasi Makroblock untuk informasi selengkapnya.

dwNumMBsInBuffer

Menentukan jumlah blokir makro data dalam buffer. Jumlah ini mencakup blokir makro yang dilewati. Harus nol jika buffer data berada di antara jenis berikut: parameter pendekodean gambar, matriks kuantisasi terbalik, AYUV, IA44/AI44, DPXD, Sorotan, atau DCCMD.

Nilai untuk dwNumMBsInBuffer bergantung pada jenis buffer data yang digunakan seperti yang diperlihatkan dalam tabel berikut.

Jenis Buffer Nilai dwNumMBsInBuffer
Perintah kontrol macroblock Harus sama dengan jumlah semua nilai untuk MBskipsFollowing, ditambahkan ke jumlah perintah kontrol makroblock dalam buffer perintah kontrol makroblock.
Blok perbedaan residu Harus memiliki nilai yang sama seperti untuk buffer perintah kontrol blok makro yang sesuai.
Perintah kontrol irama Harus sama dengan nilai anggota wNumberMBsInSlice dari struktur DXVA_SliceInfo dalam buffer kontrol irama.
Bitstream Harus memiliki nilai yang sama seperti untuk buffer perintah kontrol irama yang sesuai.

dwWidth

Menentukan lebar data dalam buffer sebagai jumlah unit bit untuk jenis data berikut: AYUV (data ditentukan dalam unit 32-bit), IA44/AI44 (data ditentukan dalam unit 8-bit), atau DPXD (data ditentukan dalam unit 2-bit). Anggota ini harus nol jika buffer data tidak termasuk di antara jenis sebelumnya.

dwHeight

Menentukan tinggi data dalam buffer sebagai jumlah unit bit untuk jenis data berikut: AYUV (data ditentukan dalam unit 32-bit), IA44/AI44 (data ditentukan dalam unit 8-bit), atau DPXD (data ditentukan dalam unit 2-bit). Anggota ini harus nol jika buffer data tidak termasuk di antara jenis sebelumnya.

dwStride

Menentukan langkah data dalam buffer sebagai jumlah unit bit untuk jenis data berikut: AYUV (data ditentukan dalam unit 32-bit), IA44/AI44 (data ditentukan dalam unit 8-bit), atau DPXD (data ditentukan dalam unit 2-bit). Langkah untuk jenis buffer yang berlaku ditentukan dari pengaturan alokasi buffer yang dilakukan oleh akselerator. Anggota ini harus nol jika buffer data tidak termasuk di antara jenis sebelumnya.

dwReservedBits

Bit cadangan yang digunakan untuk pengemasan dan penyelarasan. Harus nol.

Keterangan

Array struktur DXVA_BufferDescription disebut sebagai daftar deskripsi buffer. Ketika satu set buffer dikirim dari dekoder host ke akselerator perangkat keras, daftar deskripsi buffer dikirim untuk menjelaskan buffer. Daftar deskripsi buffer berisi satu struktur DXVA_BufferDescription untuk setiap buffer dalam set ini. Daftar deskripsi buffer dimulai dengan struktur DXVA_BufferDescription untuk buffer pertama dari jenis pertama, diikuti dengan struktur DXVA_BufferDescription untuk buffer berikutnya dengan jenis yang sama, dan sebagainya. Daftar deskripsi buffer kemudian dilanjutkan dengan struktur DXVA_BufferDescription untuk buffer pertama dari jenis berikutnya, dan sebagainya.

Persyaratan

Persyaratan Nilai
Header dxva.h (termasuk Dxva.h)

Lihat juga

DXVA_PictureParameters

DXVA_SliceInfo