struktur DXVA_QmatrixData (dxva.h)
Struktur DXVA_QmatrixData dikirim oleh dekoder host ke akselerator untuk memuat data matriks kuantisasi terbalik untuk pendekodean gambar video terkompresi bitstream off-host.
Sintaks
typedef struct _DXVA_QmatrixData {
BYTE bNewQmatrix[4];
WORD *Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH DXVA_USUAL_BLOCK_HEIGHT];
} DXVA_QmatrixData, *LPDXVA_QmatrixData;
Anggota
bNewQmatrix[4]
Menunjukkan matriks inversisasi baru mana yang ada dalam buffer matriks inversisasi. Setiap elemen dalam array ini sesuai dengan jenis matriks kuantisasi terbalik dan menunjukkan apakah matriks inversisasi baru dari jenis tersebut ada di buffer. Jika ada elemen dalam array bNewQmatrix yang berisi nilai 1, matriks kuantisasi terbalik baru dari jenis yang ditentukan untuk elemen array tersebut mengikuti dalam buffer matriks kuantisasi terbalik. Matriks kuantisasi terbalik yang dapat digunakan adalah sebagai berikut.
Elemen NewQmatrix | Jenis Matriks Inverse-Quantization |
---|---|
0 | Menentukan kuantisasi intra-luminance. |
1 | Menentukan kuantisasi antar-luminans. |
2 | Menentukan kuantisasi intra-chrominance. |
3 | Menentukan kuantisasi antar-chrominance. |
Nilai dalam bNewQmatrix[0] dan bNewQmatrix[1] tidak boleh keduanya nol.
Jika nilai untuk bNewQmatrix[2] atau bNewQmatrix[3] adalah nol, maka hal berikut berlaku:
Jika bNewQmatrix[i - 2] adalah nol, matriks inversi-kuantisasi sebelumnya yang ditentukan oleh elemen ith harus terus digunakan oleh akselerator.
Jika bNewQmatrix[i - 2] adalah 1, matriks kuantisasi terbalik yang ditentukan oleh elemen ith diatur sama dengan matriks kuantisasi terbalik baru untuk i - 2.
Qmatrix[4]
Array dua dimensi yang menentukan buffer matriks kuantisasi terbalik. Array ini hanya ada untuk setiap elemen di bNewQmatrix sama dengan 1. Matriks terdiri dari (bBlockWidthMinus1+1) X (bBlockHeightMinus1+1) kata yang tidak ditandatangani (di mana hanya 8 bit yang lebih rendah dari setiap kata yang digunakan untuk standar pengkodean video yang dominan), di mana bBlockWidthMinus1 dan bBlockHeightMinus1 adalah anggota struktur DXVA_PictureParameters .
Keterangan
Jika pengkodean video tidak memerlukan matriks kuantisasi terbalik (misalnya, H.261 dan H.263), buffer matriks kuantisasi terbalik tidak boleh dikirim. Jika pengkodean video memang memerlukan matriks kuantisasi terbalik, beberapa nilai harus disediakan untuk matriks kuantisasi terbalik ini oleh host sebelum, atau bersama dengan, transfer buffer data bitstream apa pun di awal proses pendekodean video.
Tidak ada nilai default matriks kuantisasi terbalik yang dapat diasumsikan oleh akselerator tanpa adanya nilai sebelumnya yang dikirim oleh host. Nilai matriks kuantisasi harus dikirim secara eksplisit, bahkan jika berisi nilai yang tersedia secara default dalam spesifikasi pengkodean video yang relevan.
Buffer matriks inverse-quantization dikirim hanya ketika anggota bConfigBitstreamRaw dari struktur DXVA_ConfigPictureDecode adalah 1.
Urutan nilai data dalam matriks kuantisasi terbalik adalah seperti yang ditentukan dalam spesifikasi pengkodean video yang relevan.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | dxva.h (termasuk Dxva.h) |