DXVA_BlendCombination Struktur (dxva.h)
Die DXVA_BlendCombination Struktur wird vom Hostdecoder an die Zugriffstaste gesendet, um anzugeben, wie ein gemischtes Bild aus einem Quellbild und einem Grafikbild mit begleitenden Alpha-Blending-Informationen erstellt wird.
Syntax
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;
Angehörige
wPictureSourceIndex
Gibt den nicht komprimierten Oberflächenindex an, wie durch den Inhalt des DWORD-Elements definiert, auf das das lpInputData- element von DD_BEGINMOCOMPFRAMEDATA in einem vorherigen Aufruf von DdMoCompBeginFrame) des Bilds verweist, das mit der Grafik kombiniert werden soll. Dieser Wert wird 0xFFFF, wenn die Back-End-Hardware-Alphamischung verwendet wird (wenn das bConfigBlendType Element von DXVA_ConfigAlphaCombine 1 ist).
wBlendedDestinationIndex
Gibt den nicht komprimierten Oberflächenindex an, wie durch den Inhalt des DWORD-Elements definiert, auf das das lpInputData Member von DD_BEGINMOCOMPFRAMEDATA in einem vorherigen Aufruf von DdMoCompBeginFramedes kombinierten Bilds verweist. Dieser Wert wird 0xFFFF, wenn die Alphamischung von Back-End-Hardware verwendet wird (wenn das bConfigBlendType Member von DXVA_ConfigAlphaCombine 1 ist).
Dieser Wert darf nicht mit wPictureSourceIndex- identisch sein, es sei denn, die Alpha-Blendung von Back-End-Hardware wird verwendet.
PictureSourceRect16thPel
Gibt den Bereich des Quellbilds an, der mit dem Grafikbild als RECT- Struktur kombiniert werden soll. Die Abmessungen werden in Einheiten von 1-11th des Abstands zwischen den Stichprobenwerten der Leuchtdichtekomponente angegeben. (Mit anderen Worten, die Member in der RECT-Struktur sind Feste-Punkt-Darstellungen, die 28 Bit vor dem binären Punkt und 4 Bit nach dem binären Punkt aufweisen.) Diese 16. Beispielgenauigkeit ermöglicht PictureSourceRect16thPel- die gleiche Genauigkeit wie die frame_centre_horizontal_offset- und frame_centre_vertical_offset Panscanvariablen in MPEG-2-Video zu enthalten.
Wenn das bConfigPictureResizing Member von DXVA_ConfigAlphaCombine null ist, müssen alle Dimensionen in PictureSourceRect16thPel ganze Vielfache von 16 sein.
PictureDestinationRect
Gibt den Bereich des Zielbilds als RECT-Struktur an. Dies enthält den Bereich, der für das Quellbild durch PictureSourceRect16thPeldefiniert ist.
Wenn das bConfigPictureResizing Member von DXVA_ConfigAlphaCombine null ist, muss der durch PictureDestinationRect angegebene Bereich dieselbe Breite und Höhe aufweisen wie der durch PictureSourceRect16thPelangegebene Bereich. Wenn PictureDestinationRect von PictureSourceRect16thPelabweicht, wird die anzuwendende Resamplingmethode nicht angegeben, muss jedoch eine Qualität aufweisen, die mindestens dem des bilinearen Resamplings entspricht.
GraphicSourceRect
Gibt den Bereich des Quellgrafikbilds als RECT- Struktur an. Dieser Bereich wird mit dem Teil des Quellbilds kombiniert, der durch PictureSourceRect16thPel- angegeben wird, um das alpha-gemischte Bild zu erstellen.
GraphicDestinationRect
Gibt den Bereich des Zielgrafikbilds als RECT- Struktur an.
Wenn das bConfigGraphicResizing Member von DXVA_ConfigAlphaCombine null ist, muss das Zielbild dieselbe Breite und Höhe wie der durch GraphicSourceRectangegebene Bereich aufweisen. Wenn GraphicDestinationRect von GraphicSourceRectabweicht, wird die resampling-Methode, die auf das Grafikbild angewendet werden soll, nicht angegeben. Die verwendete Resamplingmethode sollte jedoch eine Qualität aufweisen, die mindestens einer bilinearen Resampling einer AYUV-Oberfläche entspricht, die die Mischinformationen darstellt.
wBlendDelay
Gibt die Anzahl der Millisekunden der Verzögerung vor dem Wirksammachen der Mischungskombination an. Wenn die Back-End-Hardwaremischung verwendet wird (z. B. wenn der bConfigBlendType Member von DXVA_ConfigAlphaCombine 1 ist), enthält wBlendDelay die Anzahl der Millisekunden der Verzögerung, bevor die Kombination wirksam wird. Wenn die Front-End-Mischung verwendet wird, hat dieses Element keine Bedeutung und muss null sein.
bBlendOn
Gibt an, wann ein Mischkombinationsvorgang gestartet und beendet wird. Wenn die Back-End-Hardwaremischung verwendet wird, wird die Mischung aus der in einem Mischkombinationsvorgang angegebenen Zeit angewendet (mit bBlendOn gleich 1), bis die Ausführungszeit einer neuen Mischkombination (mit bBlendOn gleich 1) oder bis die Mischung durch einen Mischkombinationsvorgang (mit bBlendOn gleich Null) deaktiviert wird. Wenn die Back-End-Hardwaremischung verwendet wird und bBlendOn null ist, ist der einzige andere Wert im Alpha-Blend-Kombinationspuffer, der Bedeutung hat, wBlendDelay. Wenn die Front-End-Mischung verwendet wird, hat dieses Element keine Bedeutung und muss null sein.
bWholePlaneAlpha
Enthält einen Deckkraftmultiplikator für den Alphakanal des Grafikbilds. Der Wert Null gibt an, dass das Grafikbild transparent ist (sodass der Grafikinhalt keine Auswirkungen auf das resultierende gemischte Bild hat). Der Wert 255 gibt an, dass das Grafikbild die vollständige Deckkraft des Beispiels verwendet. Wenn bWholePlaneAlpha ungleich Null ist, besteht die angegebene Mischung darin, die Deckkraft jeder Position im Grafikinhalt mit (bWholePlaneAlpha+1)/256 zu multiplizieren. Bei einem Nullwert von bWholePlaneAlphaist die zu verwendende Mischung die im Grafikbild angegebene Deckkraft ohne Änderung. Dies muss gleich 255 sein, wenn das bConfigWholePlaneAlpha Element von DXVA_ConfigAlphaCombine null ist.
OutsideYUVcolor
Gibt an, ob Bereiche außerhalb der PictureDestinationRect eine Konstante für die Vermischung verwenden. Wenn dies der Fall ist, gibt dieses Element diese Farbkonstante an. Das OutsideYUVcolor Member wird als DXVA_AYUVsample2 Struktur definiert. Weitere Informationen finden Sie im Abschnitt Anmerkungen.
Bemerkungen
Wenn sich die Quell- und Zielbilder nicht im Format 4:4:4 befinden, wird jedes zweite Beispiel der Grafikmischungsinformationen (z. B. der erste, dritte oder fünfte) auf die Informationen zur unterstempelten Quellchrominanz in vertikaler oder horizontaler Richtung angewendet, um das gemischte Ergebnis zu erzeugen.
In den folgenden Abschnitten werden die Einschränkungen für die linken, rechten, oberenund unteren Member der RECT-Struktur angezeigt.
RECT-Struktureinschränkungen für PictureSourceRect16thPel
Die folgenden Einschränkungen gelten für die RECT Dimensionen von PictureSourceRect16thPel:- linken und oberen größer oder gleich Null sein müssen.
- rechte und untere müssen größer oder gleich linken bzw. oberensein.
- Wenn rechte gleich linken oder oberen gleich unterenist, müssen alle RECT-Elemente den Wert Null aufweisen, der angibt, dass das Quellbild nicht verwendet wird. Dieser Fall ist nur zulässig, wenn der bConfigOnlyUsePicDestRectArea Mitglied von DXVA_ConfigAlphaCombine null ist.
- rechte und untere dürfen 16 Mal die zugewiesene Breite bzw. Höhe der nicht komprimierten Quellbildoberfläche nicht überschreiten.
- links = 0
- obere = 0
- rechte = 16 X horizontal_size
- untere = 16 X vertical_size
RECT-Struktureinschränkungen für PictureDestinationRect
Die folgenden Einschränkungen gelten für die RECT- Dimensionen für PictureDestinationRect-:- linken und oberen größer oder gleich Null sein müssen.
- rechte und untere müssen größer oder gleich linken bzw. oberensein.
- Wenn rechte gleich linken oder oberen ist gleich unteren (nur zulässig, wenn die bConfigOnlyUsePicDestRect DXVA_ConfigAlphaCombine Alle RECT- Elemente müssen den Wert Null aufweisen, und PictureSourceRect16thPel- müssen auch alle Werte mit dem Wert Null angeben.
- Wenn der bConfigBlendType Member von DXVA_ConfigAlphaCombine null ist, darf rechte und untere die zugewiesene Breite bzw. Höhe der nicht komprimierten Zielbildoberfläche nicht überschreiten.
- Wenn der bConfigBlendType Member von DXVA_ConfigAlphaCombine 1 ist, darf rechte und untere die zugewiesene Breite bzw. Höhe der Quellgrafikoberfläche nicht überschreiten.
RECT-Struktureinschränkungen für GraphicSourceRect
Wenn das Laden von Alpha-Blend-Daten das bConfigDataType Member von DXVA_ConfigAlphaLoad mit dem Wert 2 verwendet, gelten die folgenden Einschränkungen für die RECT- Dimensionen von GraphicSourceRect-:- obere und links muss null sein.
- rechte muss gleich der End-X-Koordinate sein, abzüglich der Start X-Koordinate der letzten vorherigen DVD SET_DAREA DCCMD plus 1, um sich an die unterschiedlichen Rechteckinterpretationen anzupassen, wie in der folgenden Notiz in den RECT-Struktureinschränkungen für GraphicDestinationRect Abschnitt beschrieben.
- untere muss gleich der End-Y-Koordinate sein, abzüglich der Start-Y-Koordinate der letzten vorhergehenden DVD SET_DAREA DCCMD plus 1, um die unterschiedlichen Rechteckinterpretationen anzupassen.
- linken und oberen größer oder gleich Null sein müssen.
- rechte und untere müssen größer oder gleich linken bzw. oberensein.
- Wenn rechte gleich linken oder oberen gleich unterenist, müssen alle RECT-Elemente den Wert Null aufweisen, was keine Verwendung des Grafikbilds angibt.
- rechte und untere dürfen die zugewiesene Breite bzw. Höhe des Grafikquellbilds nicht überschreiten. Die zugewiesene Breite und Höhe werden als 720- bzw. 576-Beispiele definiert, wenn das bConfigDataType Element von DXVA_ConfigAlphaLoad gleich 2 ist.
EINSCHRÄNKUNGEN der RECT-Struktur für GraphicDestinationRect
Die folgenden Einschränkungen gelten für die RECT Dimensionen GraphicDestinationRect:-
linken und oberen größer oder gleich Null sein müssen, es sei denn, diese Anforderung steht im Konflikt mit der Notwendigkeit, die Grafik um acht Beispiele zu versatzen. Dies ist in den folgenden Szenarien der Fall:
- Beim Laden von Alpha-Blend-Daten wird das bConfigDataType Member von DXVA_ConfigAlphaCombine mit dem Wert 2 und dem bConfigGraphicResizing Member von DXVA_ConfigAlphaCombine mit dem Wert Null verwendet.
- Der Betrieb ist für DVD 704-Wide Non-Pan-Scan festgelegt (siehe DVD 704-Wide Non-Pan-Scan Example).
- Der Betrieb ist für DVD 352-breit festgelegt (siehe DVD 352-Wide Example).
- rechte und untere müssen größer oder gleich linken bzw. oberensein. Wenn rechte gleich linken oder oberen gleich unterenist, müssen alle diese Elemente der RECT-Struktur den Wert Null aufweisen, und GraphicSourceRect- auch angeben müssen, dass alle Elemente den Wert Null haben.
- Wenn das bConfigBlendType-Element von DXVA_ConfigAlphaCombine gleich Null ist, darf rechte und untere die zugewiesene Breite bzw. Höhe der nicht komprimierten Zielbildoberfläche nicht überschreiten.
- Wenn der bConfigBlendType Member von DXVA_ConfigAlphaCombine gleich 1 ist, darf rechte und untere die zugewiesene Breite bzw. Höhe des Quellgrafikbilds nicht überschreiten.
- oberen muss der Start-Y-Koordinate der letzten vorherigen DVD-SET_DAREA DCCMD entsprechen.
- links muss entweder der Start X-Koordinate der letzten vorhergehenden DVD SET_DAREA DCCMD oder diesem Wert minus 8 entsprechen. Weitere Informationen finden Sie unter DVD 704-Wide Non-Pan-Scan Example and DVD 352-Wide Example.
- rechte muss dem Wert von linkenentsprechen, plus die X-End-Koordinate minus die Start X-Koordinate der letzten vorherigen DVD SET_DAREA DCCMD plus 1, um die unterschiedlichen Rechteckinterpretationen anzupassen, die in der folgenden Notiz beschrieben werden.
- untere muss dem Wert von oberen plus der End-Y-Koordinate minus der Start-Y-Koordinate der letzten vorherigen DVD SET_DAREA DCCMD plus 1 entsprechen, um die unterschiedlichen Rechteckinterpretationen anzupassen, die in der folgenden Anmerkung beschrieben werden.
Einstellung von OutsideYUVcolor-Werten
Die Werte für die OutsideYUVcolor Struktur sind wie folgt:- Der Wert OutsideYUVcolor.bSampleAlpha8 muss 255 sein, wenn die Bereiche außerhalb der PictureDestinationRect als konstante Farbe generiert werden, die für die Vermischung verwendet werden soll.
- Der Wert von OutsideYUVcolor.bSampleAlpha8 muss null sein, wenn eines der folgenden beiden Fälle zutrifft:
- Die Bereiche außerhalb der PictureDestinationRect sind von der Mischung nicht betroffen.
- Die Bereiche außerhalb der PictureDestinationRect können nicht verwendet werden (wie durch die bConfigStayInPicDestRectArea Mitglied von DXVA_ConfigAlphaCombine mit dem Wert 1 angegeben).
Der Wert von OutsideYUVcolor.bSampleAlpha8 muss null sein, wenn das bConfigStayInPicDestRectArea Element der DXVA_ConfigAlphaCombine Struktur gleich 1 ist.
Wenn OutsideYUVcolor.bSampleAlpha8 null ist, ist der einzige Bereich der Zieloberfläche, die von der Mischung betroffen ist, der Teil innerhalb der PictureDestinationRect.
Wenn OutsideYUVcolor.bSampleAlpha8 255 ist, wird jeder Bereich der Zieloberfläche außerhalb PictureDestinationRect, aber innerhalb GraphicDestinationRectgeneriert, indem die Grafik mit der Farbe gemischt wird, die in den Nonalpha-Elementen von OutsideYUVcolorangegeben ist. In diesem Fall wird der gesamte zugeordnete Bereich der Zieloberfläche, der sich außerhalb von PictureDestinationRect und GraphicDestinationRect auf die Farbe festgelegt, die in den Nichtalpha-Elementen von OutsideYUVcolorangegeben ist. Wenn das bConfigBlendType Member der DXVA_ConfigAlphaCombine Struktur 1 ist, werden die OutsideYUVcolor Member so festgelegt, dass eine Mischung mit Schwarz angegeben wird, indem bSampleAlpha8 = 255, bY_Value = 16 und bCbValue = bCrValue = 128 angegeben wird.
Wenn das bConfigBlendType- Member der DXVA_ConfigAlphaCombine Struktur 1 (Back-End Hardware Blend) ist, unterscheiden sich Mischvorgänge möglicherweise etwas von den in dieser Referenz beschriebenen Vorgängen. Einige Größenänderungsparameter, die zum Zuordnen eines Videobilds von einem Quellbild zu einer Zielbildgröße verwendet werden, können auf geänderte Weise angewendet werden, um das Grafikbild relativ zum Quellbild an seine richtige Position zuzuordnen. Das gemischte Ergebnis entspricht jedoch dem gemischten Ergebnis, das von den Alpha-Blend-Kombinationsbefehlen in diesem Verweis abgerufen wird.
Anforderungen
Anforderung | Wert |
---|---|
Header- | dxva.h (include Dxva.h) |