struktur DXVA_MBctrl_I_OffHostIDCT_1 (dxva.h)

Struktur DXVA_MBctrl_I_OffHostIDCT_1 dikirim sekali per blok makro oleh dekoder host ke akselerator untuk menentukan perintah kontrol makroblock untuk gambar intra 4:2:0 saat menggunakan IDCT di luar host.

Sintaks

typedef struct _DXVA_MBctrl_I_OffHostIDCT_1 {
  WORD  wMBaddress;
  WORD  wMBtype;
  DWORD dwMB_SNL;
  WORD  wPatternCode;
  BYTE  bNumCoef[DXVA_NumBlocksPerMB_420];
} DXVA_MBctrl_I_OffHostIDCT_1;

Anggota

wMBaddress

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

wMBtype

Menentukan tipe blok makro yang sedang diproses. Bit berikut menentukan pemrosesan blok makro.

Bit Deskripsi
15 hingga 12 MvertFieldSel_3 (bit 15, bit paling signifikan) melalui MvertFieldSel_0 (bit 12)
Harus nol.
11 Bit Yang Dicadangkan
Harus nol.
10 HostResidDiff
Menentukan apakah blok yang didekodekan perbedaan residu domain spasial dikirim atau apakah koefisien transformasi dikirim untuk IDCT di luar host untuk blok makro saat ini.
Bendera HostResidDiff selalu sama dengan nol 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
Ini tidak berlaku untuk gambar intra. Kedua bit harus nol.
7 dan 6 MBscanMethod
Menentukan metode pemindaian perintah kontrol macroblock. Ini harus sama dengan bPicScanMethod jika bPicScanFixed adalah 1.
Jika bConfigHostInverseScan nol, MBscanMethod adalah salah satu nilai berikut:
  • Pemindaian zigzag Zero ∠'(Gambar MPEG-2 7-2)
  • 1 âˆ' pemindaian vertikal alternatif (Gambar MPEG-2 7-3)
  • 2 âˆ' pemindaian horizontal alternatif (H.263 Gambar I.2 Bagian a)
Jika bConfigHostInverseScan adalah 1, MBscanMethod sama dengan 3, yang merupakan pemindaian arbitrer dengan alamat koefisien absolut. bPicScanMethod dan bPicScanFixed adalah anggota DXVA_PictureParameters . bConfigHostInverseScan adalah anggota DXVA_ConfigPictureDecode.
5 FieldResidual
Menunjukkan apakah blok perbedaan residu 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 elemen 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

wPatternCode

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

Bit (11-i) dari wPatternCode (di mana bit 0 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 pemindaian raster untuk Y, diikuti oleh 4:2:0 blok Cb dalam urutan pemindaian raster, 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 (11-i) sama dengan 1) ditemukan dalam buffer pengkodean residu dalam urutan pengindeksan yang sama (meningkatkan i). Untuk data 4:2:0 MPEG-2, nilai wPatternCode sesuai dengan menggeser nilai CBP yang didekodekan (pola blok berkode) ke kiri oleh posisi enam bit (posisi bit-bawah yang digunakan untuk format kroma 4:2:2 dan 4:4:4).

bNumCoef[DXVA_NumBlocksPerMB_420]

Setiap nilai dalam array bNumCoef menunjukkan jumlah koefisien dalam buffer data perbedaan residu untuk setiap blok i macroblock.

Subskrip array i adalah indeks blok dalam blok makro seperti yang ditentukan dalam video MPEG-2 Gambar 6-10, 6-11, dan 6-12 (urutan pemindaian raster untuk Y, diikuti oleh Cb, diikuti oleh Cr).

Anggota ini hanya digunakan ketika bendera HostResidDiff (bit 10 dalam wMBtype) adalah nol, dan bChromaFormat adalah 1 (4:2:0). Jika digunakan dalam format 4:2:2 atau 4:4:4, itu akan meningkatkan ukuran perintah kontrol makroblok khas melewati batas perataan memori penting. Akibatnya, bit TCoefEOB dalam struktur DXVA_TCoefSingle digunakan untuk menentukan jumlah koefisien di setiap blok dalam kasus non-4:2:0.

Tujuan bNumCoef adalah untuk menunjukkan kuantitas data yang ada untuk setiap blok dalam penyangga data perbedaan residu, yang dinyatakan sebagai jumlah koefisien yang ada. Ketika anggota bConfig4GroupedCoefs dari struktur DXVA_ConfigPictureDecode adalah 1, bNumCoef mungkin berisi jumlah koefisien aktual yang dikirim untuk blok atau nilai yang dibulatkan menjadi kelipatan empat. Data untuk koefisien ini ditemukan dalam buffer perbedaan residu dalam urutan yang sama.

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_HostResidDiff_1

DXVA_PictureParameters

DXVA_TCoefSingle