Freigeben über


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.
Wenn z. B. PictureSourceRect16thPel- verwendet wird, um ein gesamtes MPEG-2-decodiertes Bild auszuwählen, kann das PictureSourceRect16thPel Werte wie folgt berechnet werden:
  • 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.
Wenn das Laden von Alpha-Blend-Daten nicht das bConfigDataType Member von DXVA_ConfigAlphaLoad mit dem Wert 2 verwendet, gelten die folgenden Einschränkungen für die RECT-Dimensionen von GraphicSourceRect:
  • 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.
Wenn das Laden von Alpha-Blend-Daten das bConfigDataType Member von DXVA_ConfigAlphaCombine mit dem Wert 2 verwendet, und das bConfigGraphicResizing Member von DXVA_ConfigAlphaCombine mit dem Wert Null, gelten die folgenden zusätzlichen Einschränkungen für GraphicDestinationRect Dimensionen:
  • 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.
Hinweis Es gibt einen Unterschied zwischen der Art und Weise, wie die DVD-Videospezifikation einen rechteckigen Teilbereich und die von Microsoft verwendete Konvention definiert. Diese Referenz folgt der Microsoft-Konvention, sodass ein Rechteck der Breite 10 und der Höhe 10 in der oberen linken Ecke des Bilds durch oberen = 0, links = 0, rechts = 10 und untere = 10 definiert wird. Die DVD-Videospezifikation verwendet ein Äquivalent von rechten = 9 und unter = 9.
 

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).
Alle anderen Werte für OutsideYUVcolor.bSampleAlpha8 sind für die zukünftige Verwendung reserviert.

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)

Siehe auch

DD_BEGINMOCOMPFRAMEDATA

DXVA_AYUVsample2

DXVA_ConfigAlphaCombine

DdMoCompBeginFrame

RECT-