struktur DXVADDI_CONFIGPICTUREDECODE (d3dumddi.h)

Struktur DXVADDI_CONFIGPICTUREDECODE menjelaskan konfigurasi untuk pendekodean gambar terkompresi.

Sintaks

typedef struct _DXVADDI_CONFIGPICTUREDECODE {
  [in] GUID   guidConfigBitstreamEncryption;
  [in] GUID   guidConfigMBcontrolEncryption;
  [in] GUID   guidConfigResidDiffEncryption;
  [in] UINT   ConfigBitstreamRaw;
  [in] UINT   ConfigMBcontrolRasterOrder;
  [in] UINT   ConfigResidDiffHost;
  [in] UINT   ConfigSpatialResid8;
  [in] UINT   ConfigResid8Subtraction;
  [in] UINT   ConfigSpatialHost8or9Clipping;
  [in] UINT   ConfigSpatialResidInterleaved;
  [in] UINT   ConfigIntraResidUnsigned;
  [in] UINT   ConfigResidDiffAccelerator;
  [in] UINT   ConfigHostInverseScan;
  [in] UINT   ConfigSpecificIDCT;
  [in] UINT   Config4GroupedCoefs;
  [in] USHORT ConfigMinRenderTargetBuffCount;
  [in] USHORT ConfigDecoderSpecific;
} DXVADDI_CONFIGPICTUREDECODE;

Anggota

[in] guidConfigBitstreamEncryption

GUID enkripsi untuk mengonfigurasi bitstream.

[in] guidConfigMBcontrolEncryption

GUID enkripsi untuk mengonfigurasi kontrol blok makro.

[in] guidConfigResidDiffEncryption

GUID enkripsi untuk mengonfigurasi pendekodean perbedaan residu.

[in] ConfigBitstreamRaw

Indikator pemrosesan bitstream. Nilai 1 dalam anggota ini menunjukkan bahwa data gambar dikirim dalam buffer bitstream sebagai konten bitstream mentah. Nilai nol menunjukkan bahwa data gambar dikirim dengan menggunakan buffer perintah kontrol makroblok.

Atur anggota ini ke nol jika anggota ConfigResidDiffHost atau ConfigResidDiffAccelerator adalah 1. Nilai nol di ConfigBitstreamRaw adalah tingkat dukungan dasar. Nilai 1 lebih disukai.

[in] ConfigMBcontrolRasterOrder

Nilai UINT yang menentukan apakah perintah kontrol macroblock berada dalam urutan pemindaian raster atau dalam urutan arbitrer. Nilai 1 dalam anggota ini menentukan bahwa perintah kontrol blok makro dalam setiap buffer perintah kontrol makroblok berada dalam urutan pemindaian raster. Nilai nol menunjukkan urutan arbitrer. Driver dapat membatasi dukungan untuk urutan pemindaian raster; namun, driver harus mendukung urutan pemindaian arbitrer dan raster.

[in] ConfigResidDiffHost

Konfigurasi perbedaan residual host. Nilai 1 dalam anggota ini menentukan bahwa beberapa data pendekodean perbedaan residu mungkin dikirim sebagai blok di domain spasial dari host. Nilai nol menentukan bahwa data domain spasial tidak dikirim. Atur anggota ini ke nol jika anggota ConfigBitstreamRaw adalah 1. Akselerator harus mendukung nol dan 1.

[in] ConfigSpatialResid8

Ukuran kata yang digunakan untuk mewakili perbedaan sisa blok domain spasial untuk gambar yang diprediksi (nonintra) saat menggunakan pendekodean perbedaan residual berbasis host (yaitu, ketika anggota ConfigResidDiffHost diatur ke 1).

Jika ConfigSpatialResid8 adalah 1 dan ConfigResidDiffHost adalah 1, host mengirim blok domain spasial perbedaan residu untuk macroblock nonintra yang menggunakan sampel bertanda tangan 8-bit dan untuk blok makro intra dalam gambar yang diprediksi (nonintra) dalam format yang bergantung pada anggota ConfigIntraResidUnsigned sebagai berikut:

  • Jika ConfigIntraResidUnsigned adalah nol, blok domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda 8-bit yang relatif terhadap nilai referensi konstanta 128.

  • Jika ConfigIntraResidUnsigned adalah 1, blok domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat tidak bertanda 8-bit yang relatif terhadap nilai referensi konstanta nol.

Jika ConfigSpatialResid8 adalah nol dan ConfigResidDiffHost adalah 1, host mengirim blok domain spasial selisih data untuk makroblock nonintra yang menggunakan sampel bertanda tangan 16-bit dan untuk blok makro intra dalam gambar yang diprediksi (nonintra) dalam format yang bergantung pada ConfigIntraResidUnsigned sebagai berikut:

  • Jika ConfigIntraResidUnsigned adalah nol, blok domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda 16-bit yang relatif terhadap nilai referensi konstan 2^(BPP-1), di mana BPP adalah jumlah bit per sampel untuk video yang tidak dikompresi (umumnya nilai 8).

  • Jika ConfigIntraResidUnsigned adalah 1, blok domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat yang tidak ditandatangani 16-bit yang relatif terhadap nilai referensi konstanta nol.

ConfigSpatialResid8 harus nol jika ConfigResidDiffHost nol. Jika ConfigResidDiffHost adalah 1, ConfigSpatialResid8 bisa menjadi nilai apa pun.

Catatan

Untuk gambar intra dengan BPP sama dengan 8, blok domain spasial harus dikirim dengan menggunakan sampel 8-bit. Untuk gambar intra dengan BPP yang lebih besar dari 8, blok domain spasial harus dikirim dengan menggunakan sampel 16-bit. Jika ConfigIntraResidUnsigned adalah nol, sampel ini dikirim sebagai nilai bilangan bulat bertanda tangan yang relatif terhadap nilai referensi konstan 2^(BPP-1). Jika ConfigIntraResidUnsigned adalah 1, sampel ini dikirim sebagai nilai bilangan bulat yang tidak ditandatangani yang relatif terhadap nilai referensi konstan nol.

[in] ConfigResid8Subtraction

Nilai UINT yang menentukan apakah blok luapan selisih 8-bit dikurangi atau ditambahkan. Jika anggota ini diatur ke 1, blok luapan selisih 8-bit dikurangi daripada ditambahkan. Anggota ini harus nol kecuali ConfigSpatialResid8 adalah 1. Jika ConfigSpatialResid8 adalah 1, nilai yang disukai untuk ConfigResid8Subtraction adalah 1. Kemampuan untuk mengurangi perbedaan daripada menambahkannya memungkinkan pendekodean perbedaan 8-bit sepenuhnya sesuai dengan rentang dari -255 hingga +255 nilai yang diperlukan dalam spesifikasi dekoder video. Kemampuan ini memungkinkan kepatuhan penuh karena +255 tidak dapat diwakili sebagai penambahan dua angka 8-bit yang ditandatangani tetapi angka apa pun dalam rentang dari -255 hingga +255 dapat direpresentasikan sebagai perbedaan antara dua angka 8-bit yang ditandatangani (+255 sama dengan +127 minus -128).

[in] ConfigSpatialHost8or9Clipping

Nilai UINT yang menentukan apakah kliping dilakukan oleh host. Jika anggota ini diatur ke 1, blok domain spasial untuk blok makro intra dipotong ke rentang 8-bit pada blok host dan domain spasial untuk blok makro nonintra dipotong ke rentang 9-bit pada host. Nilai nol menunjukkan bahwa tidak ada kliping tersebut yang dilakukan oleh host. Anggota ini harus nol kecuali ConfigSpatialResid8 diatur ke nol dan ConfigResidDiffHost diatur ke 1. Nilai yang disukai untuk ConfigSpatialHost8or9Clipping adalah nol.

[in] ConfigSpatialResidInterleaved

Nilai UINT yang menentukan apakah data selisih residu domain spasial dikirim dalam bentuk yang saling berhubungan dengan krominasi. Jika anggota ini diatur ke 1, data perbedaan residu domain spasial apa pun dikirim dalam bentuk interleaved krominasi yang cocok dengan pola interleaving kronimasi format YUV. Anggota ini harus nol kecuali ConfigResidDiffHost adalah 1 dan format YUV adalah NV12 atau NV21. Nilai yang disukai untuk ConfigSpatialResidInterleaved adalah nol.

[in] ConfigIntraResidUnsigned

Metode representasi blok domain spasial dari data perbedaan residu untuk blok intra saat menggunakan decoding perbedaan berbasis host (yaitu, ketika anggota ConfigResidDiffHost sama dengan 1).

Jika ConfigIntraResidUnsigned diatur ke nol dan ConfigResidDiffHost diatur ke 1, blok data perbedaan residual domain spasial untuk blok makro intra dikirim sebagai berikut:

  • Dalam gambar nonintra jika anggota ConfigSpatialResid8 adalah nol, blok data perbedaan residual domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda 16-bit yang relatif terhadap nilai referensi konstan 2^(BPP-1), di mana BPP adalah jumlah bit per sampel untuk video yang tidak dikompresi (umumnya nilai 8).

  • Dalam gambar nonintra jika ConfigSpatialResid8 adalah 1 dan dalam gambar intra jika BPP sama dengan 8 (terlepas dari nilai ConfigSpatialResid8), blok data selisih residu domain spasial untuk blok data makro intra dikirim sebagai nilai bilangan bulat bertanda 8-bit yang relatif terhadap nilai referensi konstanta 128.

Jika ConfigIntraResidUnsigned diatur ke 1 dan ConfigResidDiffHost diatur ke 1, blok data perbedaan residual domain spasial untuk blok makro intra dikirim sebagai berikut:

  • Dalam gambar nonintra jika ConfigSpatialResid8 adalah nol, blok data perbedaan residual domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat tidak bertanda 16-bit yang relatif terhadap nilai referensi konstanta nol.

  • Dalam gambar nonintra jika ConfigSpatialResid8 adalah 1 dan dalam gambar intra jika BPP sama dengan 8 (terlepas dari nilai ConfigSpatialResid8), blok data selisih residu domain spasial untuk blok data makro intra dikirim sebagai nilai bilangan bulat tidak bertanda 8-bit yang relatif terhadap nilai referensi konstanta nol.

ConfigIntraResidUnsigned harus nol kecuali ConfigResidDiffHost adalah 1. Nilai yang disukai untuk ConfigIntraResidUnsigned adalah nol.

[in] ConfigResidDiffAccelerator

Konfigurasi perbedaan residu akselerator. Nilai 1 dalam anggota ini menunjukkan bahwa blok transform-domain data koefisien dapat dikirim dari host untuk IDCT berbasis akselerator. Nilai nol menunjukkan bahwa IDCT berbasis akselerator tidak digunakan.

Jika anggota ConfigResidDiffHost dan ConfigResidDiffAccelerator adalah 1, beberapa pendekodean perbedaan sisa dilakukan pada host dan beberapa pada akselerator, seperti yang ditunjukkan oleh perintah kontrol tingkat macroblock. ConfigResidDiffAccelerator harus nol jika anggota bConfigBitstreamRaw adalah 1.

Nilai yang disukai untuk ConfigResidDiffAccelerator adalah 1.

Jika ConfigResidDiffAccelerator dan ConfigResidDiffHost diatur ke 1, pendekodean perbedaan residu dapat dibagikan antara host dan akselerator berdasarkan blok makro. Berbagi ini adalah tingkat kemampuan akselerator yang lebih tinggi daripada ketika ConfigResidDiffAccelerator diatur ke 1 dan ConfigResidDiffHost diatur ke nol.

[in] ConfigHostInverseScan

Nilai UINT yang menentukan apakah pemindaian terbalik untuk pemrosesan blok transform-domain dilakukan pada host atau akselerator. Nilai 1 dalam anggota ini menunjukkan bahwa pemindaian terbalik untuk pemrosesan blok transform-domain dilakukan pada host, dan indeks absolut dikirim sebagai gantinya untuk koefisien transformasi apa pun. Nilai nol menunjukkan bahwa pemindaian terbalik dilakukan pada akselerator. ConfigHostInverseScan harus nol jika ConfigResidDiffAccelerator nol atau jika anggota Config4GroupedCoefs adalah 1.

Nilai yang disukai untuk ConfigHostInverseScan adalah 1 jika ConfigResidDiffAccelerator adalah 1.

[in] ConfigSpecificIDCT

Nilai UINT yang menentukan penggunaan metode IDCT tertentu untuk IDCT di luar host. Nilai 1 dalam anggota ini menunjukkan penggunaan IDCT yang ditentukan dalam Annex W rekomendasi ITU-T H.263, yang dapat Anda pelajari dari situs web International Telecommunication Union . Nilai nol menunjukkan bahwa IDCT yang sesuai dapat digunakan untuk IDCT di luar host. (Nilai selain nol dan 1 dicadangkan.)

ConfigSpecificIDCT harus nol jika ConfigResidDiffAccelerator adalah nol, yang menunjukkan pendekodean perbedaan residual berbasis host.

Catatan

ConfigSpecificIDCT tidak boleh diatur ke 1 untuk digunakan dengan video MPEG-2.

[in] Config4GroupedCoefs

Nilai UINT yang menentukan bagaimana koefisien transformasi untuk IDCT di luar host dikirim. Nilai 1 dalam anggota ini menunjukkan bahwa koefisien transformasi untuk IDCT di luar host dikirim dengan menggunakan struktur DXVA_TCoef4Group daripada struktur DXVA_TCoefSingle . Config4GroupedCoefs nol jika ConfigResidDiffAccelerator nol atau jika ConfigHostInverseScan adalah 1.

Nilai yang disukai untuk Config4GroupedCoefs adalah nol jika ConfigResidDiffAccelerator adalah 1.

[in] ConfigMinRenderTargetBuffCount

Nilai USHORT yang menentukan jumlah minimum buffer target render.

[in] ConfigDecoderSpecific

Nilai USHORT yang menentukan fitur khusus dekoder untuk dikonfigurasi. Untuk informasi tentang fitur dekoder, lihat spesifikasi untuk dekoder tersebut. Untuk daftar dekode, lihat Menyediakan Kemampuan untuk Pendekodean Video.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.
Header d3dumddi.h (termasuk D3dumddi.h)

Lihat juga

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps