DXVA_BlendCombination-Struktur (dxva.h)

Die DXVA_BlendCombination Struktur wird vom Hostdecoder an die Beschleuniger gesendet, um anzugeben, wie ein gemischtes Bild aus einem Quellbild und einem Grafikbild mit zugehörigen Alphamischungsinformationen 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;

Member

wPictureSourceIndex

Gibt den unkomprimierten Oberflächenindex an, der durch den Inhalt des DWORD definiert wird, auf das das lpInputData-Element von DD_BEGINMOCOMPFRAMEDATA in einem vorherigen Aufruf von DdMoCompBeginFrame verweist, des Bilds, 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 unkomprimierten Oberflächenindex an, der durch den Inhalt des DWORD definiert ist, auf das das lpInputData-Element von DD_BEGINMOCOMPFRAMEDATA in einem vorherigen Aufruf von DdMoCompBeginFrame verweist, des zu erstellenden kombinierten Bilds. Dieser Wert wird 0xFFFF, wenn die Back-End-Hardware-Alphamischung verwendet wird (wenn das bConfigBlendType-Element von DXVA_ConfigAlphaCombine 1 ist).

Dieser Wert kann nicht gleich wPictureSourceIndex sein, es sei denn, die Back-End-Hardware-Alphamischung 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 einem Sechzehntel des Abstands zwischen den Probenwerten der Leuchtdichtekomponente angegeben. (Anders ausgedrückt: Die Member in der RECT-Struktur sind Festpunktdarstellungen, die 28 Bits vor dem binären Punkt und 4 Bit nach dem binären Punkt aufweisen.) Mit dieser Genauigkeit von 1 sechzehnten Beispielen kann PictureSourceRect16thPel die gleiche Genauigkeit wie die frame_centre_horizontal_offset und frame_centre_vertical_offset Panscanvariablen in MPEG-2-Video enthalten.

Wenn der bConfigPictureResizing-Member von DXVA_ConfigAlphaCombine null ist, müssen alle Dimensionen in PictureSourceRect16thPel ganzzahlige Vielfache von 16 sein.

PictureDestinationRect

Gibt den Bereich des Zielbilds als RECT-Struktur an. Dies enthält den Bereich, der für das Quellbild von PictureSourceRect16thPel definiert ist.

Wenn der bConfigPictureResizing-Member von DXVA_ConfigAlphaCombine null ist, muss der durch PictureDestinationRect angegebene Bereich dieselbe Breite und Höhe wie der durch PictureSourceRect16thPel angegebene Bereich aufweisen. Wenn pictureDestinationRect in der Größe von PictureSourceRect16thPel abweicht, wird die anzuwendende Resamplingsmethode nicht angegeben, muss aber eine Qualität aufweisen, die mindestens der bilinearen Resampling entspricht.

GraphicSourceRect

Gibt den Bereich des Quellgrafikbilds als RECT-Struktur an. Dieser Bereich wird mit dem Teil des Quellbilds kombiniert, der von PictureSourceRect16thPel angegeben wird, um das mit Alpha gemischte Bild zu erstellen.

GraphicDestinationRect

Gibt den Bereich des Zielgrafikbilds als RECT-Struktur an.

Wenn der bConfigGraphicResizing-Member von DXVA_ConfigAlphaCombine null ist, muss das Zielbild die gleiche Breite und Höhe wie der durch GraphicSourceRect angegebene Bereich aufweisen. Wenn GraphicDestinationRect in der Größe von GraphicSourceRect abweicht, wird die Resamplingmethode, 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 verzögerung an, bevor die Kombinationskombination wirksam wird. Wenn die Back-End-Hardwaremischung verwendet wird (z. B. wenn das bConfigBlendType-Element von DXVA_ConfigAlphaCombine 1 ist), enthält wBlendDelay die Anzahl von Millisekunden verzögerung, bevor die Kombinationskombination wirksam wird. Wenn die Front-End-Vermischung 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 Vermischung von der in einem Mischkombinationsvorgang angegebenen Zeit (mit bBlendOn gleich 1) bis zur Ausführungszeit einer neuen Mischkombination (mit bBlendOn gleich 1) oder bis die Vermischung durch einen Mischkombinationsvorgang (mit bBlendOn gleich 0) 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-Vermischung verwendet wird, hat dieses Element keine Bedeutung und muss null sein.

bWholePlaneAlpha

Enthält einen Deckkraftmultiplikator für den Alphakanal des Grafikbilds. Der Wert 0 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 seine vollständige Stichprobendurchlässigkeit verwendet. Wenn bWholePlaneAlpha ungleich Null ist, wird die Deckkraft der einzelnen Stellen im Grafikinhalt mit (bWholePlaneAlpha+1)/256 multipliziert. Bei einem Nullwert von bWholePlaneAlpha ist die zu verwendende Mischung die im Grafikbild angegebene Deckkraft ohne Änderung. Dieser Wert muss gleich 255 sein, wenn der bConfigWholePlaneAlpha-Member von DXVA_ConfigAlphaCombine null ist.

OutsideYUVcolor

Gibt an, ob Bereiche außerhalb von PictureDestinationRect eine konstante Farbe für das Mischen verwenden. Wenn dies der Fall ist, gibt dieser Member diese Farbkonstante an. Der OutsideYUVcolor-Member ist als DXVA_AYUVsample2-Struktur definiert. Weitere Informationen finden Sie im Abschnitt Bemerkungen.

Hinweise

Für den Fall, dass die Quell- und Zielbilder nicht im 4:4:4-Format vorliegen, wird jede zweite Stichprobe der Grafikmischungsinformationen (z. B. die erste, dritte oder fünfte) auf die untersampelten Quellchrominanzinformationen je nach Bedarf 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, oberen und unteren Member der RECT-Struktur veranschaulicht.

RECT-Struktureinschränkungen für PictureSourceRect16thPel

Die folgenden Einschränkungen gelten für die RECT-Dimensionen von PictureSourceRect16thPel:
  • left und top müssen größer oder gleich 0 sein.
  • rechts und unten müssen größer oder gleich links bzw. oben sein.
  • Wenn rechts gleich links oder oben gleich unten ist, müssen alle RECT-Member den Wert null aufweisen, der angibt, dass das Quellbild nicht verwendet wird. Dieser Fall ist nur zulässig, wenn der bConfigOnlyUsePicDestRectArea-Member von DXVA_ConfigAlphaCombine null ist.
  • rechts und unten dürfen das 16-fache der zugeordneten Breite bzw. Höhe der unkomprimierten Quellbildoberfläche nicht überschreiten.
Wenn beispielsweise PictureSourceRect16thPel verwendet wird, um ein gesamtes decodiertes MPEG-2-Bild auszuwählen, können die PictureSourceRect16thPel-Werte wie folgt berechnet werden:
  • left = 0
  • top = 0
  • right = 16 x horizontal_size
  • bottom = 16 x vertical_size

RECT-Struktureinschränkungen für PictureDestinationRect

Die folgenden Einschränkungen gelten für die RECT-Dimensionen für PictureDestinationRect:
  • left und top müssen größer oder gleich 0 sein.
  • rechts und unten müssen größer oder gleich links bzw. oben sein.
  • Wenn rechts gleich links oder oben gleich unten ist (nur zulässig, wenn das bConfigOnlyUsePicDestRectArea-Element von DXVA_ConfigAlphaCombine null ist), müssen alle RECT-Member den Wert null aufweisen, und PictureSourceRect16thPel muss auch alle Werte mit dem Wert null angeben.
  • Wenn der bConfigBlendType-Member von DXVA_ConfigAlphaCombine null ist, dürfen rechts und unten die zugeordnete Breite bzw. Höhe der unkomprimierten Zielbildoberfläche nicht überschreiten.
  • Wenn der bConfigBlendType-Member von DXVA_ConfigAlphaCombine 1 ist, dürfen rechts und unten die zugeordnete Breite bzw. Höhe der Quellgrafikoberfläche nicht überschreiten.

RECT-Struktureinschränkungen für GraphicSourceRect

Wenn beim Laden von Alpha-Blend-Daten das bConfigDataType-Element von DXVA_ConfigAlphaLoad mit dem Wert 2 verwendet wird, gelten die folgenden Einschränkungen für die RECT-Dimensionen von GraphicSourceRect:
  • oben und links müssen null sein.
  • rechts muss gleich der End-X-Koordinate minus der Start-X-Koordinate der letzten vorangehenden DVD-SET_DAREA DCCMD plus 1 sein, um die unterschiedlichen Rechteckinterpretation anzupassen, wie im folgenden Hinweis im Abschnitt RECT-Struktureinschränkungen für GraphicDestinationRect beschrieben.
  • Bottom muss gleich der End-Y-Koordinate minus der Start-Y-Koordinate der letzten vorangehenden DVD-SET_DAREA DCCMD plus 1 sein, um die unterschiedlichen Rechteckinterpretation anzupassen.
Wenn beim Laden von Alpha-Blend-Daten nicht der bConfigDataType-Member von DXVA_ConfigAlphaLoad mit dem Wert 2 verwendet wird, gelten die folgenden Einschränkungen für die RECT-Dimensionen von GraphicSourceRect:
  • left und top müssen größer oder gleich 0 sein.
  • rechts und unten müssen größer oder gleich links bzw. oben sein.
  • Wenn rechts gleich links oder oben gleich unten ist, müssen alle RECT-Member den Wert 0 aufweisen, was bedeutet, dass das Grafikbild nicht verwendet wird.
  • rechts und unten dürfen die zugeordnete Breite bzw. Höhe des Grafikquellbilds nicht überschreiten. Die zugeordnete Breite und Höhe werden als 720 bzw. 576 Beispiele definiert, wenn das bConfigDataType-Element von DXVA_ConfigAlphaLoad gleich 2 ist.

RECT-Struktureinschränkungen für GraphicDestinationRect

Die folgenden Einschränkungen gelten für die RECT-Dimensionen von GraphicDestinationRect:
  • left und top müssen größer oder gleich 0 sein, es sei denn, diese Anforderung steht im Konflikt mit der Notwendigkeit, die Grafik um acht Stichproben zu verschieben. Dies ist in den folgenden Szenarien der Fall:
  • rechts und unten müssen größer oder gleich links bzw. oben sein. Wenn rechts gleich links oder oben gleich unten ist, müssen alle diese Member der RECT-Struktur den Wert 0 aufweisen, und GraphicSourceRect muss auch angeben, dass alle member den Wert 0 haben.
  • Wenn der bConfigBlendType-Member von DXVA_ConfigAlphaCombine gleich Null ist, dürfen rechts und unten die zugeordnete Breite bzw. Höhe der unkomprimierten Zielbildoberfläche nicht überschreiten.
  • Wenn der bConfigBlendType-Member von DXVA_ConfigAlphaCombine gleich 1 ist, dürfen rechts und unten die zugeordnete Breite bzw. Höhe des Quellgrafikbilds nicht überschreiten.
Wenn beim Laden von Alpha-Blend-Daten das bConfigDataType-Element von DXVA_ConfigAlphaCombine mit dem Wert 2 und das bConfigGraphicResizing-Element von DXVA_ConfigAlphaCombine mit dem Wert null verwendet wird, gelten die folgenden zusätzlichen Einschränkungen für GraphicDestinationRect-Dimensionen :
  • top muss gleich der Start Y-Koordinate der letzten vorangehenden DVD SET_DAREA DCCMD sein.
  • left muss entweder gleich der Start-X-Koordinate der letzten vorangehenden DVD SET_DAREA DCCMD oder diesem Wert minus 8 sein. Weitere Informationen finden Sie unter DVD 704-Wide Non-Pan-Scan-Beispiel und DVD 352-Wide-Beispiel.
  • Rechts muss gleich dem Wert von links sein, plus der End-X-Koordinate minus der Start-X-Koordinate der letzten vorangehenden DVD SET_DAREA DCCMD plus 1, um die in der folgenden Anmerkung beschriebenen unterschiedlichen Rechteckinterpretation anzupassen.
  • bottom muss gleich dem Wert von top plus end Y-Koordinate minus der Start-Y-Koordinate der letzten vorangehenden DVD SET_DAREA DCCMD plus 1 sein, um die in der folgenden Anmerkung beschriebenen unterschiedlichen Rechteckinterpretation anzupassen.
Hinweis Es gibt einen Unterschied zwischen der Art und Weise, wie die DVD-Videospezifikation einen rechteckigen Subpicture-Bereich definiert, und der von Microsoft verwendeten Konvention. Dieser Verweis folgt der Microsoft-Konvention, sodass ein Rechteck mit Breite 10 und Höhe 10 in der oberen linken Ecke des Bilds durch oben = 0, links = 0, rechts = 10 und unten = 10 definiert wird. Die DVD-Videospezifikation verwendet ein Äquivalent von rechts = 9 und unten = 9.
 

Festlegen von OutsideYUVcolor-Werten

Die Werte für die OutsideYUVcolor-Struktur sind wie folgt:
  • Der Wert von OutsideYUVcolor.bSampleAlpha8 muss 255 sein, wenn die Bereiche außerhalb von PictureDestinationRect als konstante Farbe für die Mischung generiert werden.
  • Der Wert von OutsideYUVcolor.bSampleAlpha8 muss null sein, wenn einer der folgenden beiden Fälle zutrifft:
    • Die Bereiche außerhalb von PictureDestinationRect sind von der Mischung nicht betroffen.
    • Die Bereiche außerhalb von PictureDestinationRect können nicht verwendet werden (wie im bConfigStayInPicDestRectArea-Element 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 0 sein, wenn das bConfigStayInPicDestRectArea-Element der DXVA_ConfigAlphaCombine Struktur gleich 1 ist.

Wenn OutsideYUVcolor.bSampleAlpha8 null ist, ist der einzige Bereich der Zieloberfläche, der von der Mischung betroffen ist, der Teil innerhalb von PictureDestinationRect.

Wenn OutsideYUVcolor.bSampleAlpha8 255 ist, wird ein beliebiger Bereich der Zieloberfläche, der sich außerhalb von PictureDestinationRect , aber innerhalb von GraphicDestinationRect befindet, generiert, indem die Grafik mit der Farbe gemischt wird, die in den Nonalpha-Elementen von OutsideYUVcolor angegeben ist. In diesem Fall wird der gesamte zugeordnete Bereich der Zieloberfläche, der außerhalb von PictureDestinationRect und GraphicDestinationRect liegt, auf die Farbe festgelegt, die in den Nonalpha-Membern von OutsideYUVcolor angegeben ist. Wenn das bConfigBlendType-Element der DXVA_ConfigAlphaCombine-Struktur 1 ist, werden die OutsideYUVcolor-Elemente so festgelegt, dass sie eine Mischung mit Schwarz angeben, indem Sie bSampleAlpha8 = 255, bY_Value = 16 und bCbValue = bCrValue = 128 angeben.

Wenn das bConfigBlendType-Element der DXVA_ConfigAlphaCombine-Struktur 1 (Back-End-Hardwaremischung) ist, können sich Mischvorgänge etwas von den in dieser Referenz beschriebenen Vorgängen unterscheiden. Einige Größenänderungsparameter, die zum Zuordnen eines Videobilds aus einem Quellbild zu einer Zielbildgröße verwendet werden, können auf geänderte Weise angewendet werden, um das Grafikbild der richtigen Position relativ zum Quellbild zuzuordnen. Das gemischte Ergebnis entspricht jedoch dem gemischten Ergebnis, das von den Alpha-Blend-Kombinationsbefehlen in dieser Referenz erhalten wird.

Anforderungen

Anforderung Wert
Header dxva.h (einschließlich Dxva.h)

Weitere Informationen

DD_BEGINMOCOMPFRAMEDATA

DXVA_AYUVsample2

DXVA_ConfigAlphaCombine

DdMoCompBeginFrame

RECT