struktur DXVA_TCoefSingle (dxva.h)

Struktur DXVA_TCoefSingle dikirim oleh dekoder host ke akselerator untuk menentukan nilai koefisien IDCT .

Sintaks

typedef struct _DXVA_TCoefSingle {
  WORD  wIndexWithEOB;
  SHORT TCoefValue;
} DXVA_TCoefSingle, *LPDXVA_TCoefSingle;

Anggota

wIndexWithEOB

Anggota ini berisi dua bidang: TCoefIDX dan TCoefEOB.

TCoefIDX

Menentukan indeks pemindaian koefisien dalam blok, seperti yang ditentukan dari anggota bConfigHostInverseScan dari struktur DXVA_ConfigPictureDecode . Bidang ini berada di 15 bit paling signifikan dari anggota wIndexWithEOB .

Ada dua cara agar TCoefIDX dapat digunakan:

  1. Pengurutan panjang eksekusi: Ketika bConfigHostInverseScan adalah nol, elemen MBscanMethod dari perintah kontrol macroblock menunjukkan zigzag, vertikal alternatif, atau pemindaian invers horizontal alternatif. Perintah kontrol blok makro ini didefinisikan dalam struktur berikut: DXVA_MBctrl_I_OffHostIDCT_1 atau DXVA_MBctrl_P_OffHostIDCT_1. Dalam hal ini, TCoefIDX berisi jumlah koefisien bernilai nol yang mendahului koefisien saat ini dalam urutan pemindaian yang ditentukan, selanjutnya ke koefisien terakhir yang ditransmisikan untuk blok (atau relatif terhadap awal blok jika tidak ada yang mendahuluinya). Setiap koefisien yang tersisa setelah koefisien terakhir yang dikirim dalam urutan pemindaian terbalik tersirat memiliki nilai nol.
  2. Urutan arbitrer: Ketika bConfigHostInverseScan adalah 1, elemen MBscanMethod dari perintah kontrol makroblock menunjukkan pengurutan sewenang-wenang. Perintah kontrol macroblock ini ditentukan dalam struktur berikut: DXVA_MBctrl_I_OffHostIDCT_1 dan DXVA_MBctrl_P_OffHostIDCT_1. Dalam hal ini, TCoefIDX hanya berisi indeks raster koefisien dalam blok (TCoefIDX = u + 8 * v, di mana Anda dan v adalah koordinat frekuensi horizontal dan vertikal domain transformasi), dan koefisien apa pun yang tidak dikirim tersirat memiliki nilai 0.
TCoefIDX harus selalu kurang dari 64.

TCoefEOB

Menunjukkan apakah koefisien saat ini adalah yang terakhir yang terkait dengan blok koefisien transformasi saat ini. Nilai 1 menunjukkan bahwa koefisien saat ini adalah yang terakhir untuk blok dan nilai nol menunjukkan bahwa itu tidak. Bidang ini berada di bit yang paling tidak signifikan dari anggota wIndexWithEOB .

TCoefValue

Menunjukkan nilai koefisien dalam blok. TCoefValue harus diklip ke rentang yang sesuai seperti yang ditentukan dalam Elemen Pemrosesan IDCT Tingkat Rendah oleh host sebelum meneruskan nilai koefisien ke akselerator untuk operasi IDCT . Kontrol ketidakcocokan MPEG-2, jika perlu, juga merupakan tanggung jawab host, bukan akselerator. (Ini mungkin memerlukan pembuatan koefisien nonzero "phantom" tambahan.)

Keterangan

Struktur DXVA_TCoefSingle digunakan setiap kali bendera HostResidDiff (bit 10 dalam anggota wMBtype dari struktur DXVA_MBctrl_P_OffHostIDCT_1 atau DXVA_MBctrl_I_OffHostIDCT_1 ) adalah 1 dan anggota bConfig4GroupedCoefs dari struktur DXVA_ConfigPictureDecode adalah nol.

Persyaratan

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

Lihat juga

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1