Bagikan melalui


struktur DXVA_MBctrl_I_HostResidDiff_1 (dxva.h)

Struktur DXVA_MBctrl_I_HostResidDiff_1 dikirim sekali per makroblock oleh dekoder host ke akselerator untuk menentukan perintah kontrol macroblock untuk gambar intra.

Sintaks

typedef struct _DXVA_MBctrl_I_HostResidDiff_1 {
  WORD  wMBaddress;
  WORD  wMBtype;
  DWORD dwMB_SNL;
  WORD  wPatternCode;
  WORD  wPC_Overflow;
  DWORD dwReservedBits2;
} DXVA_MBctrl_I_HostResidDiff_1;

Anggota

wMBaddress

Menentukan alamat blok makro dari makroblock saat ini dalam urutan pemindaian raster. Untuk contoh alamat macroblock, lihat alamat macroblock.

wMBtype

Menentukan tipe blokir makro yang sedang diproses. Bit berikut mendefinisikan pemrosesan blok makro.

Bit Deskripsi
15 hingga 12 MvertFieldSel_3 (bit 15, bit paling signifikan) melalui MvertFieldSel_0 (bit 12)
Menentukan pilihan bidang vertikal untuk vektor gerakan terkait yang dikirim nanti dalam perintah kontrol blok makro. Untuk gerakan berbasis bingkai dengan struktur gambar bingkai (misalnya, untuk H.261 dan H.263), bit ini semuanya harus nol. Bit dalam bit MvertFieldSel_0, MvertFieldSel_1, MvertFieldSel_2, dan MvertFieldSel_3 sesuai dengan bit motion_vertical_field_select[r][s] di Bagian 6.3.17.2 dari MPEG-2.
11 Bit Yang Dipesan
Harus nol.
10 HostResidDiff
Menentukan apakah perbedaan sisa domain spasial blok yang didekode dikirim atau apakah koefisien transformasi dikirim untuk IDCT di luar host untuk blok makro saat ini.
HostResidDiff selalu sama dengan 1 dalam struktur ini. Bendera ini harus nol jika bConfigResidDiffHost adalah nol. Bendera ini harus 1 jika bConfigResidDiffAccelerator adalah nol. Anggota bConfigResidDiffHost dan bConfigResidDiffAccelerator terkandung dalam struktur DXVA_ConfigPictureDecode .
9 dan 8 MotionType
Harus nol.
7 dan 6 MBscanMethod
Bit ini tidak memiliki arti dan harus diatur ke nol.
5 FieldResidual
Menunjukkan apakah blok perbedaan sisa menggunakan struktur IDCT bidang seperti yang ditentukan dalam MPEG-2.
Harus 1 jika anggota bPicStructure DXVA_PictureParameters adalah 1 atau 2. Saat digunakan untuk MPEG-2, FieldResidual harus nol jika bendera frame_pred_frame_DCT dalam sintaks MPEG-2 adalah 1, dan harus sama dengan variabel dct_type sintaks MPEG-2 jika dct_type ada untuk macroblock.
4 H261LoopFilter
Harus nol.
3 Motion4MV
Harus nol.
2 MotionBackward
Harus nol.
1 MotionForward
Harus nol.
0 IntraMacroblock
Harus 1.

dwMB_SNL

Menentukan jumlah blok makro yang dilewati yang akan dihasilkan setelah blok makro saat ini, dan menunjukkan lokasi data perbedaan residu untuk blok blok makroblok saat ini. Anggota ini berisi dua variabel: MBskipsFollowing dalam 8 bit yang paling signifikan, dan MBdataLocation dalam 24 bit yang paling tidak signifikan. MBskipsFollowing menunjukkan jumlah macroblock yang dilewati yang akan dihasilkan setelah macroblock saat ini. MBdataLocation adalah indeks ke dalam buffer data blok perbedaan sisa. Indeks ini menunjukkan lokasi data perbedaan sisa untuk blok blok makroblok saat ini, yang dinyatakan sebagai kelipatan 32 bit.

wPatternCode

Menunjukkan apakah data perbedaan sisa dikirim untuk setiap blok dalam blok makro. Dalam gambar intra, data perbedaan sisa dikirim untuk setiap blok dalam blok makro. Bit dalam wPatternCode yang merujuk ke semua blok blok makro saat ini harus 1 dalam struktur ini.

Bit (11-i) dari wPatternCode (di mana bit nol adalah bit yang paling tidak signifikan) menunjukkan apakah data perbedaan sisa dikirim untuk blok i, di mana i adalah indeks blok dalam blok makro seperti yang ditentukan dalam angka MPEG-2 6-10, 6-11, dan 6-12 (urutan raster-scan untuk Y, diikuti oleh blok Cb 4:2:0 dalam urutan raster-scan, diikuti oleh blok Cr 4:2:0, diikuti oleh blok Cb 4:2:2, diikuti oleh blok Cr 4:2:2, diikuti oleh blok Cb 4:4:4, diikuti oleh blok Cr 4:4:4). Data untuk blok berkode (blok yang memiliki bit (11i) sama dengan 1) ditemukan di buffer pengkodean sisa dalam urutan pengindeksan yang sama (meningkatkan i). Untuk data 4:2:0 MPEG-2, nilai wPatternCode sesuai dengan menggeser nilai yang didekodekan dari CBP (pola blok berkode) ke kiri dengan posisi enam bit (posisi bit bawah yang digunakan untuk format chroma 4:2:2 dan 4:4:4).

Jika anggota bConfigSpatialResidInterleaved dari struktur DXVA_ConfigPictureDecode adalah 1, perbedaan residual berbasis host dikirim dalam bentuk chroma-interleaved yang cocok dengan format piksel YUV yang digunakan. Dalam hal ini, setiap Cb dan sepasang blok Cr yang sesuai secara spasial diperlakukan sebagai unit struktur perbedaan sisa tunggal. Ini tidak mengubah nilai atau arti wPatternCode, tetapi menyiratkan bahwa kedua anggota dari setiap pasangan blok data Cb dan Cr dikirim setiap kali salah satu blok data ini memiliki bit yang sesuai yang diatur dalam wPatternCode. Jika bit dalam wPatternCode untuk blok data tertentu adalah nol, nilai data perbedaan sisa yang sesuai harus dikirim sebagai nol setiap kali pasangan ini mengharuskan pengiriman blok data perbedaan sisa untuk blok dengan bit wPatternCode sama dengan nol.

wPC_Overflow

Harus nol.

dwReservedBits2

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

Keterangan

Blok makro yang dilewati tidak digunakan oleh gambar intra, sehingga variabel MBskipsFollowing harus nol. Variabel MBdataLocation harus nol untuk blok makro pertama dalam buffer perintah kontrol makroblok. Untuk informasi selengkapnya tentang bagaimana makroblock yang dilewati dihasilkan, lihat Menghasilkan Macroblock yang Dilewati.

Persyaratan

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

Lihat juga

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_PictureParameters

DXVA_TCoefSingle