Condividi tramite


struttura D3D11_VIDEO_DECODER_CONFIG (d3d11.h)

Descrive la configurazione di un dispositivo decodificatore Microsoft Direct3D 11 per l'accelerazione video DirectX (DXVA).

Sintassi

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;

Members

guidConfigBitstreamEncryption

Se i buffer di dati bitstream vengono crittografati usando il meccanismo D3D11CryptoSession, questo GUID deve essere impostato su zero. Se non viene applicata alcuna crittografia, il valore viene DXVA_NoEncrypt. Se ConfigBitstreamRaw è 0, il valore deve essere DXVA_NoEncrypt.

guidConfigMBcontrolEncryption

Se i buffer dei dati del controllo macroblock vengono crittografati usando il meccanismo D3D11CryptoSession, questo GUID deve essere impostato su zero. Se non viene applicata alcuna crittografia, il valore viene DXVA_NoEncrypt. Se ConfigBitstreamRaw è 1, il valore deve essere DXVA_NoEncrypt.

guidConfigResidDiffEncryption

Se la differenza residua decodifica dei buffer di dati viene crittografata usando il meccanismo D3D11CryptoSession, questo GUID deve essere impostato su zero. Se non viene applicata alcuna crittografia, il valore viene DXVA_NoEncrypt. Se ConfigBitstreamRaw è 1, il valore deve essere DXVA_NoEncrypt.

ConfigBitstreamRaw

Indica se il decodificatore host invia dati del flusso di bit non elaborati. Se il valore è 1, i dati per le immagini verranno inviati nei buffer del flusso di bit come contenuto del flusso di bit non elaborato. Se il valore è 0, i dati immagine verranno inviati usando buffer dei comandi del controllo macroblock. Se ConfigResidDiffHost o ConfigResidDiffAccelerator è 1, il valore deve essere 0.

ConfigMBcontrolRasterOrder

Specifica se i comandi di controllo macroblock sono in ordine di analisi raster o in ordine arbitrario. Se il valore è 1, i comandi del controllo macroblock all'interno di ogni buffer dei comandi del controllo macroblock sono in ordine di analisi raster. Se il valore è 0, l'ordine è arbitrario. Per alcuni tipi di flussi di bit, forzando l'ordine raster aumenta notevolmente il numero di buffer di controllo macroblock necessari che devono essere elaborati o richiede il riordinamento host delle informazioni sul controllo. Pertanto, il supporto di un ordine arbitrario può essere più efficiente.

ConfigResidDiffHost

Contiene la configurazione della differenza residua dell'host. Se il valore è 1, alcuni dati di decodifica delle differenze residui possono essere inviati come blocchi nel dominio spaziale dall'host. Se il valore è 0, i dati del dominio spaziale non verranno inviati.

ConfigSpatialResid8

Indica le dimensioni delle parole usate per rappresentare blocchi di dominio spaziale di differenza residua per le immagini stimate (non all'interno) quando si usa la decodifica della differenza residua basata su host.

Se ConfigResidDiffHost è 1 e ConfigSpatialResid8 è 1, l'host invierà blocchi di dominio spaziale di differenza residua per i blocchi di dominio spaziale non intra macroblock usando campioni con segno a 8 bit e per gli intra macroblock nelle immagini stimate (non all'interno) in un formato che dipende dal valore di ConfigIntraResidUnsigned:

  • Se ConfigIntraResidUnsigned è 0, i blocchi di dominio spaziale per i macroblock vengono inviati come valori interi con segno a 8 bit rispetto a un valore di riferimento costante pari a 2^(BPP-1).
  • Se ConfigIntraResidUnsigned è 1, i blocchi di dominio spaziale per i macroblock vengono inviati come valori integer senza segno a 8 bit rispetto a un valore di riferimento costante pari a 0.
Se ConfigResidDiffHost è 1 e ConfigSpatialResid8 è 0, l'host invierà blocchi di dominio spaziale di differenza residua per i blocchi di dati non interni a macroblock usando campioni con segno a 16 bit e per gli intra macroblock nelle immagini stimate (non all'interno) in un formato che dipende dal valore di ConfigIntraResidUnsigned:
  • Se ConfigIntraResidUnsigned è 0, i blocchi di dominio spaziale per gli intra macroblock vengono inviati come valori interi con segno a 16 bit rispetto a un valore di riferimento costante pari a 2^(BPP-1).
  • Se ConfigIntraResidUnsigned è 1, i blocchi di dominio spaziale per i macroblock vengono inviati come valori integer senza segno a 16 bit rispetto a un valore di riferimento costante pari a 0.
Se ConfigResidDiffHost è 0, ConfigSpatialResid8 deve essere 0.

Per le immagini inter-immagini, i blocchi di dominio spaziale devono essere inviati usando campioni a 8 bit se bit per pixel (BPP) è 8 e usando campioni a 16 bit se BPP > 8. Se ConfigIntraResidUnsigned è 0, questi esempi vengono inviati come valori integer con segno relativi a un valore di riferimento costante pari a 2^(BPP-1) e se ConfigIntraResidUnsigned è 1, questi esempi vengono inviati come valori interi senza segno rispetto a un valore di riferimento costante pari a 0.

ConfigResid8Subtraction

Se il valore è 1, i blocchi di overflow a 8 bit vengono sottratti anziché aggiunti. Il valore deve essere 0 a meno che ConfigSpatialResid8 non sia 1.

La possibilità di sottrarre le differenze anziché aggiungerle consente la decodifica a 8 bit in modo che la decodifica a 8 bit sia completamente conforme all'intervallo completo di valori ±255 richiesti nelle specifiche del decodificatore video, poiché +255 non può essere rappresentato come l'aggiunta di due numeri a 8 bit firmati, ma qualsiasi numero nell'intervallo ±255 può essere rappresentato come la differenza tra due numeri a 8 bit firmati (+255 = +127 meno -128).

ConfigSpatialHost8or9Clipping

Se il valore è 1, i blocchi di dominio spaziale per gli intra macroblock devono essere ritagliati a un intervallo a 8 bit nei blocchi host e di dominio spaziale per i blocchi di macro non interni devono essere ritagliati a un intervallo a 9 bit nell'host. Se il valore è 0, tale ritaglio non è necessario dall'host.

Il valore deve essere 0 a meno che ConfigSpatialResid8 sia 0 e ConfigResidDiffHost sia 1.

ConfigSpatialResidInterleaved

Se il valore è 1, tutti i dati di differenza residua del dominio spaziale devono essere inviati in un modulo interleaved di dominanza chroaved corrispondente al modello di interleaving del formato YUV. Il valore deve essere 0 a meno che ConfigResidDiffHost sia 1 e il formato YUV sia NV12 o NV21.

ConfigIntraResidUnsigned

Indica il metodo di rappresentazione dei blocchi di domini spaziali dei dati di differenza residua per i blocchi intra quando si usa la decodifica della differenza basata su host.

Se ConfigResidDiffHost è 1 e ConfigIntraResidUnsigned è 0, i blocchi di dati di differenza residua del dominio spaziale per i macroblock devono essere inviati come segue:

  • In un'immagine non interna, se ConfigSpatialResid8 è 0, i blocchi di dati di differenza residua del dominio spaziale per i macroblock vengono inviati come valori integer con segno a 16 bit rispetto a un valore di riferimento costante pari a 2^(BPP-1).
  • In un'immagine non interna, se ConfigSpatialResid8 è 1, i blocchi di dati di differenza residua del dominio spaziale per i macroblock vengono inviati come valori interi con segno a 8 bit rispetto a un valore di riferimento costante pari a 2^(BPP-1).
  • In un'immagine interna, se BPP è 8, i blocchi di dati di differenza residua del dominio spaziale per i macroblock vengono inviati come valori interi con segno a 8 bit rispetto a un valore di riferimento costante pari a 2^(BPP-1), indipendentemente dal valore di ConfigSpatialResid8.
Se ConfigResidDiffHost è 1 e ConfigIntraResidUnsigned è 1, i blocchi di dati di differenza residua del dominio spaziale per i macroblock devono essere inviati come segue:
  • In un'immagine non interna, se ConfigSpatialResid8 è 0, i blocchi di dati di differenza residua del dominio spaziale per i macroblock devono essere inviati come valori integer senza segno a 16 bit rispetto a un valore di riferimento costante pari a 0.
  • In un'immagine non interna, se ConfigSpatialResid8 è 1, i blocchi di dati di differenza residua del dominio spaziale per i macroblock vengono inviati come valori integer senza segno a 8 bit rispetto a un valore di riferimento costante pari a 0.
  • In un'immagine interna, se BPP è 8, i blocchi di dati di differenza residua del dominio spaziale per i macroblock vengono inviati come valori interi senza segno a 8 bit rispetto a un valore di riferimento costante pari a 0, indipendentemente dal valore di ConfigSpatialResid8.
Il valore del membro deve essere 0 a meno che ConfigResidDiffHost non sia 1.

ConfigResidDiffAccelerator

Se il valore è 1, i blocchi del dominio di trasformazione dei dati del coefficiente possono essere inviati dall'host per IDCT basato sull'acceleratore. Se il valore è 0, l'IDCT basato sull'acceleratore non verrà usato. Se sia ConfigResidDiffHost che ConfigResidDiffAccelerator sono 1, ciò indica che alcune differenze residui di decodifica verranno eseguite nell'host e alcune sull'acceleratore, come indicato dai comandi di controllo a livello di macroblock.

Il valore deve essere 0 se ConfigBitstreamRaw è 1.

ConfigHostInverseScan

Se il valore è 1, l'analisi inversa per l'elaborazione del blocco del dominio di trasformazione verrà eseguita nell'host e gli indici assoluti verranno inviati invece per eventuali coefficienti di trasformazione. Se il valore è 0, l'analisi inversa verrà eseguita sull'acceleratore.

Il valore deve essere 0 se ConfigResidDiffAccelerator è 0 o se Config4GroupedCoefs è 1.

ConfigSpecificIDCT

Se il valore è 1, viene utilizzato l'IDCT specificato nell'allegato W della raccomandazione ITU-T H.263. Se il valore è 0, è possibile usare qualsiasi IDCT conforme per l'IDCT off-host.

L'allegato H.263 non è conforme ai requisiti IDCT di MPEG-2 corrigendum 2, pertanto il valore non deve essere 1 per l'uso con il video MPEG-2.

Il valore deve essere 0 se ConfigResidDiffAccelerator è 0, che indica la decodifica della differenza residua basata su host.

Config4GroupedCoefs

Se il valore è 1, i coefficienti di trasformazione per IDCT off-host verranno inviati usando la struttura DXVA_TCoef4Group . Se il valore è 0, viene utilizzata la struttura DXVA_TCoefSingle . Il valore deve essere 0 se ConfigResidDiffAccelerator è 0 o se ConfigHostInverseScan è 1.

ConfigMinRenderTargetBuffCount

Specifica il numero di fotogrammi elaborati dal dispositivo decodificatore in qualsiasi momento.

ConfigDecoderSpecific

Contiene informazioni di configurazione specifiche del decodificatore.

Requisiti

   
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Intestazione d3d11.h

Vedi anche

Strutture video Direct3D 11