Bagikan melalui


struktur D3D11_VIDEO_DECODER_CONFIG (d3d11.h)

Menjelaskan konfigurasi perangkat dekoder Microsoft Direct3D 11 untuk DirectX Video Acceleration (DXVA).

Sintaks

typedef struct D3D11_VIDEO_DECODER_CONFIG {
  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;
} D3D11_VIDEO_DECODER_CONFIG;

Anggota

guidConfigBitstreamEncryption

Jika buffer data bitstream dienkripsi menggunakan mekanisme D3D11CryptoSession, GUID ini harus diatur ke nol. Jika tidak ada enkripsi yang diterapkan, nilainya DXVA_NoEncrypt. Jika ConfigBitstreamRaw adalah 0, nilainya harus DXVA_NoEncrypt.

guidConfigMBcontrolEncryption

Jika buffer data kontrol macroblock dienkripsi menggunakan mekanisme D3D11CryptoSession, GUID ini harus diatur ke nol. Jika tidak ada enkripsi yang diterapkan, nilainya DXVA_NoEncrypt. Jika ConfigBitstreamRaw adalah 1, nilainya harus DXVA_NoEncrypt.

guidConfigResidDiffEncryption

Jika perbedaan sisa pendekodean buffer data dienkripsi menggunakan mekanisme D3D11CryptoSession, GUID ini harus diatur ke nol. 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 macroblock. 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 makroblock berada dalam urutan raster-scan. Jika nilainya adalah 0, urutannya segan-segan. Untuk beberapa jenis aliran bit, memaksa urutan raster sangat meningkatkan jumlah buffer kontrol makroblock 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 sisa 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 sisa berbasis host.

Jika ConfigResidDiffHost adalah 1 dan ConfigSpatialResid8 adalah 1, host akan mengirim perbedaan sisa blok domain spasial untuk makroblok non-intra menggunakan sampel bertanda tangan 8-bit dan untuk blokir 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 makroblok 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 tangan 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 tidak bertanda 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 perbedaan 8-bit dikurangi daripada ditambahkan. Nilainya 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 direpresentasikan 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 sisa domain spasial harus dikirim dalam bentuk interleaved krominasi yang cocok dengan pola interleaving kronim 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 sisa untuk blok intra saat menggunakan pendekodean perbedaan berbasis host.

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

  • Dalam gambar non-intra, jika ConfigSpatialResid8 adalah 0, blok data perbedaan sisa domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda tangan 16-bit relatif terhadap nilai referensi konstanta 2^(BPP–1).
  • Dalam gambar non-intra, jika ConfigSpatialResid8 adalah 1, blok data perbedaan sisa domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat bertanda 8-bit relatif terhadap nilai referensi konstanta 2^(BPP–1).
  • Dalam gambar intra, jika BPP adalah 8, blok data perbedaan sisa domain spasial untuk blok 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 sisa domain spasial untuk blok makro intra harus dikirim sebagai berikut:
  • Dalam gambar non-intra, jika ConfigSpatialResid8 adalah 0, blok data perbedaan sisa domain spasial untuk blok makro intra harus dikirim sebagai nilai bilangan bulat tidak bertanda 16-bit relatif terhadap nilai referensi konstan 0.
  • Dalam gambar non-intra, jika ConfigSpatialResid8 adalah 1, blok data perbedaan sisa domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat tidak bertanda 8-bit relatif terhadap nilai referensi konstanta 0.
  • Dalam gambar intra, jika BPP adalah 8, blok data perbedaan sisa domain spasial untuk blok makro intra dikirim sebagai nilai bilangan bulat tidak bertanda 8-bit relatif terhadap nilai referensi konstanta 0, terlepas dari nilai ConfigSpatialResid8.
Nilai anggota harus 0 kecuali ConfigResidDiffHost adalah 1.

ConfigResidDiffAccelerator

Jika nilainya adalah 1, blok domain transformasi 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 sisa 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 transformasi 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 apa pun 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 sisa berbasis host murni.

Config4GroupedCoefs

Jika nilainya adalah 1, koefisien transformasi 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 dekoder.

Persyaratan

   
Klien minimum yang didukung Windows 8 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 [aplikasi desktop | Aplikasi UWP]
Header d3d11.h

Lihat juga

Struktur Video Direct3D 11