struktur DXVA2_ConfigPictureDecode (dxva2api.h)

Menjelaskan konfigurasi perangkat dekoder DXVA.

Sintaks

typedef struct _DXVA2_ConfigPictureDecode {
  GUID   guidConfigBitstreamEncryption;
  GUID   guidConfigMBcontrolEncryption;
  GUID   guidConfigResidDiffEncryption;
  UINT   ConfigBitstreamRaw;
  UINT   ConfigMBcontrolRasterOrder;
  UINT   ConfigResidDiffHost;
  UINT   ConfigSpatialResid8;
  UINT   ConfigResid8Subtraction;
  UINT   ConfigSpatialHost8or9Clipping;
  UINT   ConfigSpatialResidInterleaved;
  UINT   ConfigIntraResidUnsigned;
  UINT   ConfigResidDiffAccelerator;
  UINT   ConfigHostInverseScan;
  UINT   ConfigSpecificIDCT;
  UINT   Config4GroupedCoefs;
  USHORT ConfigMinRenderTargetBuffCount;
  USHORT ConfigDecoderSpecific;
} DXVA2_ConfigPictureDecode;

Anggota

guidConfigBitstreamEncryption

Menentukan jenis protokol enkripsi untuk buffer data bit-stream. Jika tidak ada enkripsi yang diterapkan, nilainya DXVA_NoEncrypt. Jika ConfigBitstreamRaw adalah 0, nilainya harus DXVA_NoEncrypt.

guidConfigMBcontrolEncryption

Menentukan jenis protokol enkripsi untuk buffer data kontrol makroblok. Jika tidak ada enkripsi yang diterapkan, nilainya DXVA_NoEncrypt. Jika ConfigBitstreamRaw adalah 1, nilainya harus DXVA_NoEncrypt.

guidConfigResidDiffEncryption

Menentukan jenis protokol enkripsi untuk buffer data decoding perbedaan residu (buffer yang berisi data domain spasial atau kumpulan koefisien domain transformasi untuk IDCT berbasis akselerator). Jika tidak ada enkripsi yang diterapkan, nilainya DXVA_NoEncrypt. Jika ConfigBitstreamRaw adalah 1, nilainya harus DXVA_NoEncrypt.

ConfigBitstreamRaw

Menunjukkan apakah host-decoder mengirim data bit-stream mentah. Jika nilainya adalah 1, data untuk gambar akan dikirim dalam buffer bit-stream sebagai konten bit-stream mentah. Jika nilainya adalah 0, data gambar akan dikirim menggunakan buffer perintah kontrol makroblok. Jika ConfigResidDiffHost atau ConfigResidDiffAccelerator adalah 1, nilainya harus 0.

ConfigMBcontrolRasterOrder

Menentukan apakah perintah kontrol macroblock berada dalam urutan pemindaian raster atau dalam urutan arbitrer. Jika nilainya adalah 1, perintah kontrol macroblock dalam setiap buffer perintah kontrol makroblok berada dalam urutan pemindaian raster. Jika nilainya adalah 0, urutannya adalah arbitrer. Untuk beberapa jenis aliran bit, memaksa urutan raster sangat meningkatkan jumlah buffer kontrol makroblok yang diperlukan yang harus diproses, atau memerlukan pengurutan ulang host informasi kontrol. Oleh karena itu, mendukung urutan arbitrer bisa lebih efisien.

ConfigResidDiffHost

Berisi konfigurasi perbedaan residu host. Jika nilainya adalah 1, beberapa data pendekodean perbedaan sisa dapat dikirim sebagai blok di domain spasial dari host. Jika nilainya adalah 0, data domain spasial tidak akan dikirim.

ConfigSpatialResid8

Menunjukkan ukuran kata yang digunakan untuk mewakili perbedaan sisa blok domain spasial untuk gambar yang diprediksi (non-intra) saat menggunakan pendekodean perbedaan residual berbasis host.

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

  • Jika ConfigIntraResidUnsigned adalah 0, blok domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda tangan 8-bit relatif terhadap nilai referensi konstanta 2^(BPP–1).
  • Jika ConfigIntraResidUnsigned adalah 1, blok domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat yang tidak ditandatangani 8-bit relatif terhadap nilai referensi konstanta 0.
Jika ConfigResidDiffHost adalah 1 dan ConfigSpatialResid8 adalah 0, host akan mengirim blok data domain spasial perbedaan residu untuk makroblock non-intra menggunakan sampel bertanda tangan 16-bit dan untuk blok makro intra dalam gambar yang diprediksi (non-intra) dalam format yang bergantung pada nilai ConfigIntraResidUnsigned:
  • Jika ConfigIntraResidUnsigned adalah 0, blok domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda 16-bit relatif terhadap nilai referensi konstanta 2^(BPP–1).
  • Jika ConfigIntraResidUnsigned adalah 1, blok domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat yang tidak ditandatangani 16-bit relatif terhadap nilai referensi konstanta 0.
Jika ConfigResidDiffHost adalah 0, ConfigSpatialResid8 harus 0.

Untuk gambar intra, blok domain spasial harus dikirim menggunakan sampel 8-bit jika bit-per-piksel (BPP) adalah 8, dan menggunakan sampel 16-bit jika BPP > 8. Jika ConfigIntraResidUnsigned adalah 0, sampel ini dikirim sebagai nilai bilangan bulat yang ditandatangani relatif terhadap nilai referensi konstan 2^(BPP–1), dan jika ConfigIntraResidUnsigned adalah 1, sampel ini dikirim sebagai nilai bilangan bulat yang tidak ditandatangani relatif terhadap nilai referensi konstan 0.

ConfigResid8Subtraction

Jika nilainya adalah 1, blok luapan selisih 8-bit dikurangi daripada ditambahkan. Nilai harus 0 kecuali ConfigSpatialResid8 adalah 1.

Kemampuan untuk mengurangi perbedaan daripada menambahkannya memungkinkan pendekodean perbedaan 8-bit sepenuhnya sesuai dengan rentang nilai ±255 lengkap yang diperlukan dalam spesifikasi dekoder video, karena +255 tidak dapat direpresentasikan sebagai penambahan dua angka 8-bit yang ditandatangani, tetapi angka apa pun dalam rentang ±255 dapat diwakili sebagai perbedaan antara dua angka 8-bit yang ditandatangani (+255 = +127 minus –128).

ConfigSpatialHost8or9Clipping

Jika nilainya adalah 1, blok domain spasial untuk blok makro intra harus dipotong ke rentang 8-bit pada blok host dan domain spasial untuk blok makro non-intra harus dipotong ke rentang 9-bit pada host. Jika nilainya adalah 0, tidak ada kliping seperti itu yang diperlukan oleh host.

Nilainya harus 0 kecuali ConfigSpatialResid8 adalah 0 dan ConfigResidDiffHost adalah 1.

ConfigSpatialResidInterleaved

Jika nilainya adalah 1, data perbedaan residu domain spasial apa pun harus dikirim dalam bentuk yang saling berhubungan dengan krominasi yang cocok dengan pola interleaving klorominasi format YUV. Nilainya harus 0 kecuali ConfigResidDiffHost adalah 1 dan format YUV adalah NV12 atau NV21.

ConfigIntraResidUnsigned

Menunjukkan metode representasi blok domain spasial dari data perbedaan residu untuk blok intra saat menggunakan pendekodean perbedaan berbasis host.

Jika ConfigResidDiffHost adalah 1 dan ConfigIntraResidUnsigned adalah 0, blok data perbedaan residual domain spasial untuk blok makro intra harus dikirim sebagai berikut:

  • Dalam gambar non-intra, jika ConfigSpatialResid8 adalah 0, blok data perbedaan residual domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda 16-bit relatif terhadap nilai referensi konstan 2^(BPP–1).
  • Dalam gambar non-intra, jika ConfigSpatialResid8 adalah 1, blok data perbedaan residual domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda 8-bit relatif terhadap nilai referensi konstan 2^(BPP–1).
  • Dalam gambar intra, jika BPP adalah 8, blok data perbedaan residu domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda 8-bit relatif terhadap nilai referensi konstan 2^(BPP–1), terlepas dari nilai ConfigSpatialResid8.
Jika ConfigResidDiffHost adalah 1 dan ConfigIntraResidUnsigned adalah 1, blok data perbedaan residual domain spasial untuk blok makro intra harus dikirim sebagai berikut:
  • Dalam gambar non-intra, jika ConfigSpatialResid8 adalah 0, blok data perbedaan residual domain spasial untuk blok makro intra harus dikirim sebagai nilai bilangan bulat yang tidak ditandatangani 16-bit relatif terhadap nilai referensi konstan 0.
  • Dalam gambar non-intra, jika ConfigSpatialResid8 adalah 1, blok data perbedaan residual domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat yang tidak ditandatangani 8-bit relatif terhadap nilai referensi konstan 0.
  • Dalam gambar intra, jika BPP adalah 8, blok data perbedaan residu domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat 8-bit yang tidak ditandatangani relatif terhadap nilai referensi konstan 0, terlepas dari nilai ConfigSpatialResid8.
Nilai anggota harus 0 kecuali ConfigResidDiffHost adalah 1.

ConfigResidDiffAccelerator

Jika nilainya adalah 1, blok transform-domain data koefisien dapat dikirim dari host untuk IDCT berbasis akselerator. Jika nilainya adalah 0, IDCT berbasis akselerator tidak akan digunakan. Jika ConfigResidDiffHost dan ConfigResidDiffAccelerator adalah 1, ini menunjukkan bahwa beberapa pendekodean perbedaan residual akan dilakukan pada host dan beberapa pada akselerator, seperti yang ditunjukkan oleh perintah kontrol tingkat macroblock.

Nilainya harus 0 jika ConfigBitstreamRaw adalah 1.

ConfigHostInverseScan

Jika nilainya adalah 1, pemindaian terbalik untuk pemrosesan blok transform-domain akan dilakukan pada host, dan indeks absolut akan dikirim sebagai gantinya untuk koefisien transformasi apa pun. Jika nilainya adalah 0, pemindaian terbalik akan dilakukan pada akselerator.

Nilainya harus 0 jika ConfigResidDiffAccelerator adalah 0 atau jika Config4GroupedCoefs adalah 1.

ConfigSpecificIDCT

Jika nilainya adalah 1, IDCT yang ditentukan dalam Lampiran W rekomendasi ITU-T H.263 digunakan. Jika nilainya adalah 0, IDCT yang sesuai dapat digunakan untuk IDCT di luar host.

Lampiran H.263 tidak mematuhi persyaratan IDCT MPEG-2 corrigendum 2, sehingga nilainya tidak boleh 1 untuk digunakan dengan video MPEG-2.

Nilainya harus 0 jika ConfigResidDiffAccelerator adalah 0, menunjukkan dekode perbedaan residual berbasis host murni.

Config4GroupedCoefs

Jika nilainya adalah 1, transformasi koefisien untuk IDCT di luar host akan dikirim menggunakan struktur DXVA_TCoef4Group . Jika nilainya adalah 0, struktur DXVA_TCoefSingle digunakan. Nilainya harus 0 jika ConfigResidDiffAccelerator adalah 0 atau jika ConfigHostInverseScan adalah 1.

ConfigMinRenderTargetBuffCount

Menentukan berapa banyak bingkai yang diproses perangkat dekoder kapan saja.

ConfigDecoderSpecific

Berisi informasi konfigurasi khusus decoder.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Header dxva2api.h

Lihat juga

Akselerasi Video DirectX 2.0

Struktur Media Foundation