struttura DXVA2_ConfigPictureDecode (dxva2api.h)
Descrive la configurazione di un dispositivo decodificatore DXVA.
Sintassi
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;
Members
guidConfigBitstreamEncryption
Definisce il tipo di protocollo di crittografia per i buffer di dati del flusso di bit. Se non viene applicata alcuna crittografia, il valore viene DXVA_NoEncrypt. Se ConfigBitstreamRaw è 0, il valore deve essere DXVA_NoEncrypt.
guidConfigMBcontrolEncryption
Definisce il tipo di protocollo di crittografia per i buffer di dati del controllo macroblock. Se non viene applicata alcuna crittografia, il valore viene DXVA_NoEncrypt. Se ConfigBitstreamRaw è 1, il valore deve essere DXVA_NoEncrypt.
guidConfigResidDiffEncryption
Definisce il tipo di protocollo di crittografia per la decodifica dei buffer di dati della differenza residua (buffer contenenti dati del dominio spaziale o set di coefficienti di trasformazione del dominio per IDCT basato sull'acceleratore). 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 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.
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.
- 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.
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
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | dxva2api.h |