Condividi tramite


DXVA_BlendCombination struttura (dxva.h)

La struttura DXVA_BlendCombination viene inviata dal decodificatore host all'acceleratore per specificare la modalità di creazione di un'immagine combinata da un'immagine di origine e un'immagine grafica con informazioni di fusione alfa associate.

Sintassi

typedef struct _DXVA_BlendCombination {
  WORD             wPictureSourceIndex;
  WORD             wBlendedDestinationIndex;
  RECT             PictureSourceRect16thPel;
  RECT             PictureDestinationRect;
  RECT             GraphicSourceRect;
  RECT             GraphicDestinationRect;
  WORD             wBlendDelay;
  BYTE             bBlendOn;
  BYTE             bWholePlaneAlpha;
  DXVA_AYUVsample2 OutsideYUVcolor;
} DXVA_BlendCombination, *LPDXVA_BlendCombination;

Members

wPictureSourceIndex

Specifica l'indice di superficie non compresso, come definito dal contenuto della DWORD a cui fa riferimento il membro lpInputData di DD_BEGINMOCOMPFRAMEDATA in una chiamata precedente a DdMoCompBeginFrame, dell'immagine da combinare con l'elemento grafico. Questo valore è 0xFFFF se la fusione alfa alfa hardware back-end è in uso (quando il membro bConfigBlendType di DXVA_ConfigAlphaCombine è 1).

wBlendedDestinationIndex

Specifica l'indice di superficie non compresso, come definito dal contenuto della DWORD a cui fa riferimento il membro lpInputData di DD_BEGINMOCOMPFRAMEDATA in una chiamata precedente a DdMoCompBeginFrame, dell'immagine combinata da creare. Questo valore è 0xFFFF se la fusione alfa alfa hardware back-end è in uso (quando il membro bConfigBlendType di DXVA_ConfigAlphaCombine è 1).

Questo valore non può essere uguale a wPictureSourceIndex a meno che non sia in uso la fusione alfa dell'hardware back-end.

PictureSourceRect16thPel

Specifica l'area dell'immagine di origine da combinare con l'immagine grafica come struttura RECT . Le dimensioni vengono specificate in unità di un sedicesimo della distanza tra i valori di esempio del componente di luminanza. In altre parole, i membri della struttura RECT sono rappresentazioni a virgola fissa che hanno 28 bit prima del punto binario e 4 bit dopo il punto binario. Questa accuratezza di esempio uno-sedicesimo consente a PictureSourceRect16thPel di contenere la stessa accuratezza della frame_centre_horizontal_offset e frame_centre_vertical_offset variabili di analisi panoramica nel video MPEG-2.

Se il membro bConfigPictureResizing di DXVA_ConfigAlphaCombine è zero, tutte le dimensioni in PictureSourceRect16thPel devono essere intere multiple di 16.

PictureDestinationRect

Specifica l'area dell'immagine di destinazione come struttura RECT. Conterrà l'area definita per l'immagine di origine da PictureSourceRect16thPel.

Se il membro bConfigPictureResizing di DXVA_ConfigAlphaCombine è zero, l'area specificata da PictureDestinationRect deve avere la stessa larghezza e altezza dell'area specificata da PictureSourceRect16thPel. Se PictureDestinationRect è diverso dalle dimensioni di PictureSourceRect16thPel, il metodo di resampling da applicare non è specificato, ma deve avere una qualità almeno equivalente a quella di ricampionamento bilinear.

GraphicSourceRect

Specifica l'area dell'immagine grafica di origine come struttura RECT . Questa area viene combinata con la parte dell'immagine di origine specificata da PictureSourceRect16thPel per creare l'immagine con fusione alfa.

GraphicDestinationRect

Specifica l'area dell'immagine grafica di destinazione come struttura RECT .

Se il membro bConfigGraphicResizing di DXVA_ConfigAlphaCombine è zero, l'immagine di destinazione deve avere la stessa larghezza e altezza dell'area specificata da GraphicSourceRect. Se GraphicDestinationRect differisce in dimensioni da GraphicSourceRect, il metodo di rimpling da applicare all'immagine grafica non è specificato. Tuttavia, il metodo di ricampionamento usato deve avere una qualità che equivale almeno a un rimplificamento bilineare di una superficie AYUV che rappresenta le informazioni di fusione.

wBlendDelay

Specifica il numero di millisecondi di ritardo prima dell'effetto della combinazione di fusione. Se la fusione di hardware back-end è in uso(ad esempio, se il membro bConfigBlendType di DXVA_ConfigAlphaCombine è 1), wBlendDelay contiene il numero di millisecondi di ritardo prima dell'effetto della combinazione di blending. Se la fusione front-end è in uso, questo membro non ha alcun significato e deve essere zero.

bBlendOn

Specifica quando viene avviata e arrestata un'operazione di combinazione di blend. Se la fusione hardware back-end è in uso, la fusione viene applicata dal tempo specificato in un'operazione di combinazione di fusione (con bBlendOn uguale a 1) fino all'ora di esecuzione di una nuova combinazione di blending (con bBlendOn uguale a 1) o fino a quando la fusione non viene disabilitata da un'operazione di combinazione di fusione (con bBlendOn uguale a zero). Se la fusione dell'hardware back-end è in uso e bBlendOn è zero, l'unico valore nel buffer di combinazione alfa-blend che ha significato è wBlendDelay. Se la fusione front-end è in uso, questo membro non ha alcun significato e deve essere zero .

bWholePlaneAlpha

Contiene un moltiplicatore di opacità per il canale alfa dell'immagine grafica. Il valore zero indica che l'immagine grafica è trasparente (in modo che il contenuto grafico non abbia alcun effetto sull'immagine combinata risultante). Il valore 255 indica che l'immagine grafica usa la sua opacità di esempio completa. Se bWholePlaneAlpha non è uguale a zero, la fusione specificata consiste nel moltiplicare l'opacità di ogni posizione nel contenuto grafico per (bWholePlaneAlpha+1)/256. Per un valore zero di bWholePlaneAlpha, la fusione da usare è l'opacità specificata nell'immagine grafica senza modifica. Questo deve essere uguale a 255 se il membro bConfigWholePlaneAlpha di DXVA_ConfigAlphaCombine è zero.

OutsideYUVcolor

Indica se le aree esterne a PictureDestinationRect usano un colore costante per la fusione. In tal caso, questo membro specifica tale costante di colore. Il membro OutsideYUVcolor è definito come struttura DXVA_AYUVsample2 . Per altre informazioni, vedere la sezione Osservazioni .

Commenti

Nel caso in cui le immagini di origine e di destinazione non siano in formato 4:4:4, ogni secondo esempio delle informazioni di fusione grafica (ad esempio, il primo, terzo o quinto) viene applicata alle informazioni di origine subsampled nella direzione verticale o orizzontale, in base alle esigenze per produrre il risultato misto.

Le sezioni seguenti illustrano le restrizioni inserite a sinistra, a destra, in alto e in basso della struttura RECT.

Restrizioni della struttura RECT per PictureSourceRect16thPel

Le restrizioni seguenti si applicano alle dimensioni RECT di PictureSourceRect16thPel:
  • sinistra e superiore deve essere maggiore o uguale a zero.
  • destra e inferiore deve essere maggiore o uguale a sinistra e superiore, rispettivamente.
  • Se destra è uguale a sinistra o superiore è uguale a inferiore, tutti i membri RECT devono avere il valore zero che indica che l'immagine di origine non viene usata. Questo caso è consentito solo se il membro bConfigOnlyUsePicDestRectArea di DXVA_ConfigAlphaCombine è zero.
  • destra e inferiore non deve superare rispettivamente 16 volte la larghezza e l'altezza allocata della superficie dell'immagine di origine non compressa.
Ad esempio, se PictureSourceRect16thPel viene usato per selezionare un'intera immagine decodificata MPEG-2, i valori PictureSourceRect16thPel possono essere calcolati come segue:
  • left = 0
  • top = 0
  • right = 16 X horizontal_size
  • bottom = 16 X vertical_size

Restrizioni della struttura RECT per PictureDestinationRect

Le restrizioni seguenti si applicano alle dimensioni RECT per PictureDestinationRect:
  • sinistra e superiore deve essere maggiore o uguale a zero.
  • destra e inferiore deve essere maggiore o uguale a sinistra e superiore, rispettivamente.
  • Se destra è uguale a sinistra o superiore è uguale a inferiore (consentita solo se il membro bConfigOnlyUsePicDestRectArea di DXVA_ConfigAlphaCombine è zero), tutti i membri RECT devono avere il valore zero e PictureSourceRect16thPel deve specificare anche tutti i valori con il valore zero.
  • Se il membro bConfigBlendType di DXVA_ConfigAlphaCombine è zero, destra e inferiore non deve superare rispettivamente la larghezza e l'altezza allocata dell'area immagine di destinazione non compressa.
  • Se il membro bConfigBlendType di DXVA_ConfigAlphaCombine è 1, destra e inferiore non deve superare rispettivamente la larghezza e l'altezza allocata dell'area grafica di origine.

Restrizioni della struttura RECT per GraphicSourceRect

Se il caricamento dei dati alfa-blend usa il membro bConfigDataType di DXVA_ConfigAlphaLoad con un valore pari a 2, le restrizioni seguenti si applicano alle dimensioni RECT di GraphicSourceRect:
  • in alto e a sinistra deve essere zero.
  • right deve essere uguale alla coordinata X finale meno la coordinata X iniziale dell'ultimo DVD precedente SET_DAREA DCCMD, più 1, per regolare per le diverse interpretazioni del rettangolo come descritto nella nota seguente nella sezione Restrizioni struttura RECT per GraphicDestinationRect .
  • in basso deve essere uguale alla coordinata Y finale meno la coordinata Start Y dell'ultimo DVD precedente SET_DAREA DCCMD, più 1, per modificare le diverse interpretazioni del rettangolo.
Se il caricamento dei dati alfa-blend non usa il membro bConfigDataType di DXVA_ConfigAlphaLoad con un valore pari a 2, le restrizioni seguenti si applicano alle dimensioni RECT di GraphicSourceRect:
  • sinistra e superiore deve essere maggiore o uguale a zero.
  • destra e inferiore deve essere maggiore o uguale a sinistra e superiore, rispettivamente.
  • Se destra è uguale a sinistra o superiore è uguale a inferiore, tutti i membri RECT devono avere il valore zero, indicando che non viene usato l'immagine grafica.
  • destra e inferiore non devono superare rispettivamente la larghezza e l'altezza allocata dell'immagine di origine grafica. La larghezza e l'altezza allocata sono definite rispettivamente come 720 e 576 esempi, quando il membro bConfigDataType di DXVA_ConfigAlphaLoad uguale a 2.

Restrizioni della struttura RECT per GraphicDestinationRect

Le restrizioni seguenti si applicano alle dimensioni RECT di GraphicDestinationRect:
  • sinistro e superiore deve essere maggiore o uguale a zero, a meno che questo requisito non sia in conflitto con la necessità di compensare l'elemento grafico per otto esempi. Questo è il caso negli scenari seguenti:
  • destra e inferiore deve essere maggiore o uguale a sinistra e superiore, rispettivamente. Se destra è uguale a sinistra o superiore è uguale a inferiore, tutti questi membri della struttura RECT devono avere il valore zero e GraphicSourceRect deve anche specificare che tutti i relativi membri hanno il valore zero.
  • Se il membro bConfigBlendType di DXVA_ConfigAlphaCombine uguale a zero, destra e inferiore non deve superare rispettivamente la larghezza e l'altezza allocata dell'immagine di destinazione non compressa.
  • Se il membro bConfigBlendType di DXVA_ConfigAlphaCombine uguale a 1, destra e inferiore non deve superare rispettivamente la larghezza e l'altezza allocata dell'immagine grafica di origine.
Se il caricamento dei dati alfa-blend usa il membro bConfigDataType di DXVA_ConfigAlphaCombine con un valore 2 e il membro bConfigGraphicResizing di DXVA_ConfigAlphaCombine con un valore zero, si applicano le restrizioni aggiuntive seguenti per le dimensioni GraphicDestinationRect :
  • la parte superiore deve essere uguale alla coordinata Start Y dell'ultimo DVD precedente SET_DAREA DCCMD.
  • left deve essere uguale alla coordinata X start dell'ultimo DVD precedente SET_DAREA DCCMD o a tale valore meno 8. Per altre informazioni, vedere Esempio dvd 704-wide non pan-scan e DVD 352-wide.
  • destra deve essere uguale al valore di sinistra, oltre alla coordinata X finale meno la coordinata X iniziale dell'ultimo DVD precedente SET_DAREA DCCMD, più 1, per modificare le diverse interpretazioni del rettangolo descritte nella nota seguente.
  • in basso deve essere uguale al valore superiore più la coordinata end-Y meno la coordinata Start Y dell'ultimo DVD precedente SET_DAREA DCCMD, più 1, per modificare le diverse interpretazioni del rettangolo descritte nella nota seguente.
Nota Esiste una differenza tra il modo in cui la specifica video DVD definisce un'area rettangolare di sottopicture e la convenzione utilizzata da Microsoft. Questo riferimento segue la convenzione Microsoft in modo che un rettangolo di larghezza 10 e altezza 10 nell'angolo superiore sinistro dell'immagine sia definito da top = 0, left = 0, destra = 10 e inferiore = 10. La specifica del video DVD usa un equivalente di destra = 9 e inferiore = 9.
 

Impostazione dei valori outsideYUVcolor

I valori per la struttura OutsideYUVcolor sono i seguenti:
  • Il valore di OutsideYUVcolor.bSampleAlpha8 deve essere 255 se le aree esterne a PictureDestinationRect vengono generate come colore costante da utilizzare per la fusione.
  • Il valore di OutsideYUVcolor.bSampleAlpha8 deve essere zero se si applica uno dei due casi seguenti:
    • Le aree esterne a PictureDestinationRect non sono interessate dalla fusione.
    • Le aree esterne a PictureDestinationRect non possono essere utilizzate (come indicato dal membro bConfigStayInPicDestRectArea di DXVA_ConfigAlphaCombine con valore 1).
Tutti gli altri valori per OutsideYUVcolor.bSampleAlpha8 sono riservati per uso futuro.

Il valore di OutsideYUVcolor.bSampleAlpha8 deve essere zero se il membro bConfigStayInPicDestRectArea della struttura DXVA_ConfigAlphaCombine è uguale a 1.

Se OutsideYUVcolor.bSampleAlpha8 è zero, l'unica area della superficie di destinazione interessata dalla fusione è la parte all'interno di PictureDestinationRect.

Se OutsideYUVcolor.bSampleAlpha8 è 255, qualsiasi area della superficie di destinazione esterna a PictureDestinationRect ma all'interno di GraphicDestinationRect viene generata fondendo l'elemento grafico con il colore specificato nei membri nonalpha di OutsideYUVcolor. In questo caso, l'intera area allocata della superficie di destinazione che si trova all'esterno di PictureDestinationRect e GraphicDestinationRect viene impostata sul colore specificato nei membri nonalpha di OutsideYUVcolor. Se il membro bConfigBlendType della struttura DXVA_ConfigAlphaCombine è 1, i membri OutsideYUVcolor vengono impostati per indicare la fusione con il nero specificando bSampleAlpha8 = 255, bY_Value = 16 e bCbValue = bCrValue = 128.

Quando il membro bConfigBlendType della struttura DXVA_ConfigAlphaCombine è 1 (blend hardware back-end), le operazioni di fusione possono essere diverse da quelle descritte in questo riferimento. Alcuni parametri di ridimensionamento usati per eseguire il mapping di un'immagine video da un'immagine di origine a una dimensione dell'immagine di destinazione possono essere applicati in modo modificato per eseguire il mapping dell'immagine grafica alla posizione corretta rispetto all'immagine di origine. Tuttavia, il risultato combinato sarà equivalente al risultato combinato ottenuto dai comandi di combinazione alfa-blend in questo riferimento.

Requisiti

Requisito Valore
Intestazione dxva.h (include Dxva.h)

Vedi anche

DD_BEGINMOCOMPFRAMEDATA

DXVA_AYUVsample2

DXVA_ConfigAlphaCombine

DdMoCompBeginFrame

RECT