Bagikan melalui


struktur DXVA_SliceInfo (dxva.h)

Struktur DXVA_SliceInfo dikirim oleh dekoder host ke akselerator untuk menentukan parameter tingkat ipotong data bitstream untuk dekode gambar terkompresi bitstream off-host.

Sintaks

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;

Anggota

wHorizontalPosition

Menentukan posisi horizontal blok makro pertama dari ilis yang dinyatakan dalam satuan blok makro, dengan nol yang menunjukkan blok makro paling kiri atau paling atas gambar.

wVerticalPosition

Menentukan posisi vertikal blok makro pertama dari ilis yang dinyatakan dalam satuan blok makro, dengan nol yang menunjukkan blok makro paling kiri atau paling atas dari gambar.

dwSliceBitsInBuffer

Menentukan jumlah total bit dalam buffer data bitstream terkait yang berisi data untuk iringan saat ini. Ini harus kelipatan delapan untuk MPEG-1, MPEG-2, MPEG-4. Ini juga harus dalam mode terstruktur ilis H.263, karena kode mulai ikatan dalam kasus ini selaras dengan byte.

dwSliceDataLocation

Menentukan lokasi byte pertama yang berisi data untuk iringan (misalnya, lokasi kode mulai iringan) di buffer data bitstream. Harus nol jika awal ikatan tidak berada dalam buffer data bitstream yang sesuai.

bStartCodeBitOffset

Menentukan jumlah bit byte yang paling signifikan di dwSliceDataLocation yang tidak berisi data untuk iiris. bStartCodeBitOffset harus nol untuk MPEG-1, MPEG-2, dan MPEG-4, karena kode mulai ikatan dalam spesifikasi ini selaras dengan byte. bStartCodeBitOffset mungkin bukan nol untuk H.261 dan H.263, karena standar ini tidak memaksa penyelarasan byte dari kode mulai GOB (grup blok). Anggota ini harus berada dalam kisaran nol hingga 7, dan harus nol jika awal ikatan tidak berada dalam buffer data bitstream yang sesuai. Bit yang paling signifikan ditandai tidak relevan untuk iringan saat ini oleh bStartCodeBitOffset mungkin berisi data untuk ilis sebelumnya dalam kasus kode mulai yang tidak diratakan byte (misalnya, dalam mode garis besar H.263).

bReservedBits

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

wMBbitOffset

Menentukan jumlah bit data header ilis sebelum bit pertama data lapisan makroblock di buffer bitstream. Misalnya, jika wMBbitOffset adalah 83, data lapisan macroblock untuk iringan dimulai setelah 83 bit data header ikhian. Harus nol jika awal ikatan tidak berada dalam buffer data bitstream yang sesuai.

wNumberMBsInSlice

Menentukan jumlah blokir makro data dalam ipotong, termasuk makroblock yang dilewati. Mungkin nol jika angka ini tidak dapat dengan mudah ditentukan dari header gambar dan header dan data makroblock awal dari irisan saat ini dan berikutnya di bitstream, seperti dalam irisan persegi panjang dan submode pengurutan irisan arbitrer dari mode irisan H.263. Tidak boleh nol untuk H.261, MPEG-1, MPEG-2, MPEG-4, atau saat tidak menggunakan submode irisan persegi panjang atau irisan arbitrer dari mode terstruktur irisan di H.263.

wQuantizerScaleCode

Kode penskalaan kuantizer dari tingkat potongan bitstream, seperti yang ditentukan dalam spesifikasi pengodean video tertentu (mulai dari 1 hingga 31 untuk H.261, H.262/MPEG-2, H.263, MPEG-1, dan MPEG-4).

wBadSliceChopping

Menentukan lokasi data dalam iringan untuk buffer data bitstream yang sesuai. Jika nol, menunjukkan bahwa semua bit untuk iringan berada di buffer data bitstream. Jika bukan nol, menunjukkan bagian mana dari bit untuk iringan yang hilang dari buffer data bitstream yang sesuai sebagai berikut.

Nilai Deskripsi
1 Bit untuk awal ikatan berada dalam buffer data bitstream yang sesuai, dan bit untuk akhir ilis tidak (karena buffer data bitstream penuh).
2 Bit untuk awal ikatan tidak berada dalam buffer data bitstream yang sesuai (karena buffer data bitstream sebelumnya penuh), tetapi bit untuk akhir ilis berada dalam buffer data bitstream yang sesuai.
3 Bit untuk awal ikatan tidak berada dalam buffer data bitstream yang sesuai (karena buffer data bitstream sebelumnya penuh), dan bit untuk akhir ilis juga tidak berada dalam buffer data bitstream yang sesuai (karena buffer data bitstream yang sesuai juga penuh).

[! CATATAN] Nilai bukan nol dari wBadSliceChopping umumnya harus dihindari oleh dekoder perangkat lunak host.

Keterangan

Buffer kontrol ilis disediakan untuk memandu pengoperasian pemrosesan bitstream VLD di luar host. Buffer kontrol ilis hanya dikirim ketika anggota bConfigBitstreamRawdari DXVA_ConfigPictureDecode adalah 1. Dekoder perangkat lunak host harus menentukan lokasi titik sinkronisasi ulang tingkat ilis di bitstream. Ikatan didefinisikan sebagai lapisan multimacroblock yang menyertakan titik sinkronisasi ulang dalam data bitstream.

Dalam bitstream H.261, GOB dianggap sebagai ikatan. Dalam bitstream H.263, urutan satu atau beberapa GOB yang dimulai dengan kode mulai GOB dan tidak berisi kode mulai GOB tambahan, dianggap sebagai ilis. Buffer kontrol ilis harus berisi satu atau beberapa struktur DXVA_SliceInfo, sesuai dengan konten buffer data bitstream yang sesuai.

Persyaratan

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

Lihat juga

DXVA_ConfigPictureDecode