struttura DXVADDI_CONFIGPICTUREDECODE (d3dumddi.h)

La struttura DXVADDI_CONFIGPICTUREDECODE descrive la configurazione per la decodifica immagine compressa.

Sintassi

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;

Membri

[in] guidConfigBitstreamEncryption

GUID di crittografia per la configurazione di un bitstream.

[in] guidConfigMBcontrolEncryption

GUID di crittografia per la configurazione del controllo macroblock.

[in] guidConfigResidDiffEncryption

GUID di crittografia per la configurazione della decodifica della differenza residua.

[in] ConfigBitstreamRaw

Indicatore di elaborazione bitstream. Un valore pari a 1 in questo membro indica che i dati immagine vengono inviati in buffer bitstream come contenuto bitstream non elaborato. Un valore pari a zero indica che i dati immagine vengono inviati tramite buffer dei comandi di controllo macroblock.

Impostare questo membro su zero se il ConfigResidDiffHost o ConfigResidDiffAccelerator membro è 1. Il valore zero in ConfigBitstreamRaw è il livello di supporto di base. Il valore 1 è preferibile.

[in] ConfigMBcontrolRasterOrder

Valore UINT che specifica se i comandi di controllo macroblock sono in ordine di analisi raster o in ordine arbitrario. Il valore 1 in questo membro specifica che i comandi di controllo macroblock all'interno di ogni buffer dei comandi di controllo macroblock sono in ordine di analisi raster. Un valore pari a zero indica un ordine arbitrario. Un driver può limitare il supporto all'ordine di analisi raster; Tuttavia, un driver deve supportare sia l'ordine arbitrario che l'analisi raster.

[in] ConfigResidDiffHost

Configurazione della differenza residua dell'host. Un valore pari a 1 in questo membro specifica che alcuni dati di decodifica delle differenze residui possono essere inviati come blocchi nel dominio spaziale dall'host. Un valore pari a zero specifica che i dati del dominio spaziale non vengono inviati. Impostare questo membro su zero se il membro ConfigBitstreamRaw è 1. Un acceleratore deve supportare sia zero che 1.

[in] ConfigSpatialResid8

Le dimensioni delle parole usate per rappresentare blocchi di dominio spaziale di differenza residua per le immagini stimate (nontra) quando si usa la decodifica della differenza residua basata su host, ovvero quando il membro ConfigResidDiffHost è impostato su 1.

Se configSpatialResid8 è 1 e ConfigResidDiffHost è 1, L'host invia blocchi di dominio spaziale di differenza residua per i macroblock nontra che usano campioni con segno a 8 bit e per i macroblock nelle immagini stimate (non intra) in un formato che dipende dal membro ConfigIntraResidUnsigned come indicato di seguito:

  • Se ConfigIntraResidUnsigned è zero, i blocchi di dominio spaziale per gli intra macroblock vengono inviati come valori interi con segno a 8 bit relativi a un valore di riferimento costante pari a 128.

  • Se ConfigIntraResidUnsigned è 1, i blocchi di dominio spaziale per gli intra macroblock vengono inviati come valori interi senza segno a 8 bit relativi a un valore di riferimento costante pari a zero.

Se ConfigSpatialResid8 è zero e ConfigResidDiffHost è 1, l'host invia blocchi di dati di domini spaziali di differenza residua per macroblock nontra che usano campioni con segno a 16 bit e per gli intrablock nelle immagini stimate (nonintra) in un formato che dipende da ConfigIntraResidUnsigned come indicato di seguito:

  • Se configIntraResidUnsigned è zero, i blocchi di dominio spaziale per gli interblock vengono inviati come valori interi con segno a 16 bit relativi a un valore di riferimento costante pari a 2^(BPP-1), dove BPP è il numero di bit per campione per il video non compresso (in genere un valore pari a 8).

  • Se ConfigIntraResidUnsigned è 1, i blocchi di dominio spaziale per gli intra macroblock vengono inviati come valori interi senza segno a 16 bit relativi a un valore di riferimento costante pari a zero.

ConfigSpatialResid8 deve essere zero se ConfigResidDiffHost è zero. Se ConfigResidDiffHost è 1, ConfigSpatialResid8 può essere qualsiasi valore.

Nota

Per le immagini intra con BPP uguale a 8, i blocchi di dominio spaziale devono essere inviati usando campioni a 8 bit. Per le immagini intra con BPP maggiore di 8, i blocchi di dominio spaziale devono essere inviati usando campioni a 16 bit. Se ConfigIntraResidUnsigned è zero, questi esempi vengono inviati come valori integer con segno relativi a un valore di riferimento costante pari a 2^(BPP-1). Se ConfigIntraResidUnsigned è 1, questi esempi vengono inviati come valori interi senza segno relativi a un valore di riferimento costante pari a zero.

[in] ConfigResid8Subtraction

Valore UINT che specifica se i blocchi di overflow della differenza a 8 bit vengono sottratti o aggiunti. Se questo membro è impostato su 1, i blocchi di overflow della differenza a 8 bit vengono sottratti anziché aggiunti. Questo membro deve essere zero a meno che ConfigSpatialResid8 sia 1. Se ConfigSpatialResid8 è 1, il valore preferito per ConfigResid8Subtraction è 1. La possibilità di sottrarre le differenze anziché aggiungerle consente la decodifica a 8 bit per essere completamente conforme all'intervallo compreso tra -255 e +255 di valori richiesti nelle specifiche del decodificatore video. Questa possibilità consente la conformità completa perché +255 non può essere rappresentato come l'aggiunta di due numeri a 8 bit firmati, ma qualsiasi numero compreso nell'intervallo compreso tra -255 e +255 può essere rappresentato come la differenza tra due numeri a 8 bit firmati (+255 è uguale a +127 meno -128).

[in] ConfigSpatialHost8or9Clipping

Valore UINT che specifica se il ritaglio viene eseguito dall'host. Se questo membro è impostato su 1, i blocchi di dominio spaziale per gli intra macroblock vengono ritagliati in un intervallo a 8 bit nei blocchi host e di dominio spaziale per i macroblock nontra vengono ritagliati in un intervallo a 9 bit nell'host. Un valore pari a zero indica che tale ritaglio non viene eseguito dall'host. Questo membro deve essere zero a meno che ConfigSpatialResid8 sia impostato su zero e ConfigResidDiffHost sia impostato su 1. Il valore preferito per ConfigSpatialHost8or9Clipping è zero.

[in] ConfigSpatialResidInterleaved

Valore UINT che specifica se i dati di differenza residua del dominio spaziale vengono inviati in un formato interleaved chrominance-interleaved. Se questo membro è impostato su 1, tutti i dati di differenza residua del dominio spaziale vengono inviati in un formato interleaved di dominanza chrominance che corrisponde al modello di interleaving in formato YUV. Questo membro deve essere zero a meno che ConfigResidDiffHost sia 1 e che il formato YUV sia NV12 o NV21. Il valore preferito per ConfigSpatialResidInterleaved è zero.

[in] ConfigIntraResidUnsigned

Il metodo di rappresentazione dei blocchi di dominio spaziale dei dati di differenza residua per i blocchi intra blocchi quando si usa la decodifica della differenza basata su host, ovvero quando il membro ConfigResidDiffHost è uguale a 1.

Se ConfigIntraResidUnsigned è impostato su zero e ConfigResidDiffHost è impostato su 1, i blocchi di dati residui del dominio spaziale per i macroblock vengono inviati come segue:

  • In un'immagine non intra se il membro ConfigSpatialResid8 è zero, i blocchi di dati di differenza residua del dominio spaziale per gli elementi macroblock vengono inviati come valori interi con segno a 16 bit relativi a un valore di riferimento costante pari a 2^(BPP-1), dove BPP è il numero di bit per campione per il video non compresso (in genere un valore pari a 8).

  • In un'immagine non intra se ConfigSpatialResid8 è 1 e in un'immagine interna se BPP è uguale a 8 (indipendentemente dal valore di ConfigSpatialResid8), i blocchi di dati di differenza del dominio spaziale per gli intra macroblock vengono inviati come valori interi con segno a 8 bit relativi a un valore di riferimento costante pari a 128.

Se ConfigIntraResidUnsigned è impostato su 1 e ConfigResidDiffHost è impostato su 1, i blocchi di dati di differenza residua del dominio spaziale per i macroblock vengono inviati come segue:

  • In un'immagine non intra se configSpatialResid8 è zero, i blocchi di dati di differenza residua del dominio spaziale per gli intra macroblock vengono inviati come valori interi senza segno a 16 bit relativi a un valore di riferimento costante pari a zero.

  • In un'immagine non intra se ConfigSpatialResid8 è 1 e in un'immagine interna se BPP è uguale a 8 (indipendentemente dal valore di ConfigSpatialResid8), i blocchi di dati di differenza residua del dominio spaziale per gli intra macroblock vengono inviati come valori interi senza segno a 8 bit relativi a un valore di riferimento costante pari a zero.

ConfigIntraResidUnsigned deve essere zero a meno che ConfigResidDiffHost sia 1. Il valore preferito per ConfigIntraResidUnsigned è zero.

[in] ConfigResidDiffAccelerator

Configurazione della differenza residua dell'acceleratore. Un valore pari a 1 in questo membro indica che i blocchi transform-domain dei dati del coefficiente possono essere inviati dall'host per IDCT basato sull'acceleratore. Un valore zero indica che IDCT basato sull'acceleratore non viene usato.

Se entrambe le ConfigResidDiffHost membro e ConfigResidDiffAccelerator sono 1, viene eseguita una differenza residua decodifica sull'host e alcune sull'acceleratore, come indicato dai comandi di controllo a livello di macroblock. ConfigResidDiffAccelerator deve essere zero se il membro bConfigBitstreamRaw è 1.

Il valore preferito per ConfigResidDiffAccelerator è 1.

Se ConfigResidDiffAccelerator e ConfigResidDiffHost sono impostati su 1, la decodifica delle differenze residui può essere condivisa tra l'host e l'acceleratore in base a un blocco macro. Questa condivisione è un livello ancora più elevato di funzionalità di acceleratore rispetto a quando ConfigResidDiffAccelerator è impostato su 1 e ConfigResidDiffHost è impostato su zero.

[in] ConfigHostInverseScan

Valore UINT che specifica se l'analisi inversa dell'elaborazione del blocco di dominio transform-domain viene eseguita sull'host o sull'acceleratore. Un valore pari a 1 in questo membro indica che l'analisi inversa dell'elaborazione del blocco di dominio di trasformazione viene eseguita nell'host e gli indici assoluti vengono inviati invece per qualsiasi coefficiente di trasformazione. Il valore zero indica che l'analisi inversa viene eseguita sull'acceleratore. ConfigHostInverseScan deve essere zero se ConfigResidDiffAccelerator è zero o se il membro config4GroupedCoefs è 1.

Il valore preferito per ConfigHostInverseScan è 1 se ConfigResidDiffAccelerator è 1.

[in] ConfigSpecificIDCT

Valore UINT che specifica l'uso di un metodo IDCT specifico per IDCT fuori host. Un valore pari a 1 in questo membro indica l'uso dell'IDCT specificato nell'allegato W ITU-T della raccomandazione H.263, che è possibile ottenere informazioni dal sito Web international telecomunicazioni. Un valore pari a zero indica che qualsiasi IDCT conforme può essere usato per IDCT fuori host. I valori diversi da zero e 1 sono riservati.

ConfigSpecificIDCT deve essere zero se ConfigResidDiffAccelerator è zero, che indica la decodifica della differenza residua basata su host.

Nota

ConfigSpecificIDCT non deve essere impostato su 1 per l'uso con il video MPEG-2.

[in] Config4GroupedCoefs

Valore UINT che specifica come vengono inviati i coefficienti di trasformazione per IDCT fuori host. Un valore pari a 1 in questo membro indica che i coefficienti di trasformazione per IDCT fuori host vengono inviati usando la struttura DXVA_TCoef4Group anziché la struttura DXVA_TCoefSingle. Config4GroupedCoefs è zero se ConfigResidDiffAccelerator è zero o se ConfigHostInverseScan è 1.

Il valore preferito per Config4GroupedCoefs è zero se ConfigResidDiffAccelerator è 1.

[in] ConfigMinRenderTargetBuffCount

Valore USHORT che specifica il numero minimo di buffer di destinazione di rendering.

[in] ConfigDecoderSpecific

Valore USHORT che specifica le funzionalità specifiche del decodificatore da configurare. Per informazioni sulle funzionalità di un decodificatore, vedere la specifica per il decodificatore. Per un elenco dei decodificatori, vedere Providing Capabilities for Video Decoding.For a list of decoders, see Providing Capabilities for Video Decoding.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
intestazione d3dumddi.h (include D3dumddi.h)

Vedere anche

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps