Freigeben über


DXVA_ConfigPictureDecode Struktur (dxva.h)

Die DXVA_ConfigPictureDecode Struktur wird vom Hostdecoder an die Zugriffstaste gesendet, um die Konfiguration für die komprimierte Bilddecodierung festzulegen.

Syntax

typedef struct _DXVA_ConfigPictureDecode {
  DXVA_ConfigQueryOrReplyFunc dwFunction;
  DWORD                       dwReservedBits[3];
  GUID                        guidConfigBitstreamEncryption;
  GUID                        guidConfigMBcontrolEncryption;
  GUID                        guidConfigResidDiffEncryption;
  BYTE                        bConfigBitstreamRaw;
  BYTE                        bConfigMBcontrolRasterOrder;
  BYTE                        bConfigResidDiffHost;
  BYTE                        bConfigSpatialResid8;
  BYTE                        bConfigResid8Subtraction;
  BYTE                        bConfigSpatialHost8or9Clipping;
  BYTE                        bConfigSpatialResidInterleaved;
  BYTE                        bConfigIntraResidUnsigned;
  BYTE                        bConfigResidDiffAccelerator;
  BYTE                        bConfigHostInverseScan;
  BYTE                        bConfigSpecificIDCT;
  BYTE                        bConfig4GroupedCoefs;
} DXVA_ConfigPictureDecode, *LPDXVA_ConfigPictureDecode;

Angehörige

dwFunction

Gibt den Typ der Abfrage oder Antwort an, wenn Sie Befehle zum Testen und Sperren verwenden. Die wichtigsten 24 Bit dwFunction- ist die DXVA_ConfigQueryOrReplyFlag Variable.

Die am wenigsten signifikanten 4 Bit der DXVA_ConfigQueryOrReplyFlag Variable enthalten Statusindikatoren für die Abfrage oder Antwort, die ausgeführt wird.

Die am wenigsten signifikanten 8 Bits von dwFunction- ist die bDXVA_Func Variable, die in diesem Fall gleich 1 ist.

dwReservedBits[3]

Reservierte Bits, die für Verpackung und Ausrichtung verwendet werden. Diese Bits sind Null.

guidConfigBitstreamEncryption

Gibt eine GUID an, die dem Verschlüsselungsprotokolltyp für Bitstream-Datenpuffer zugeordnet ist. Der Wert DXVA_NoEncrypt (ein in dxva.hdefinierter GUID-Name) gibt an, dass die Verschlüsselung nicht angewendet wird. Dies ist DXVA_NoEncrypt, wenn bConfigBitstreamRaw null ist.

guidConfigMBcontrolEncryption

Gibt eine GUID an, die dem Verschlüsselungsprotokolltyp für Makroblock-Steuerelementpufferzugeordnet ist. Der Wert DXVA_NoEncrypt (ein in dxva.hdefinierter GUID-Name) gibt an, dass die Verschlüsselung nicht angewendet wird. Dies ist DXVA_NoEncrypt, wenn bConfigBitstreamRaw- 1 ist.

guidConfigResidDiffEncryption

Gibt eine GUID an, die dem Verschlüsselungsprotokolltyp für Restdifferenzdecodierungsdatenpuffer zugeordnet ist (Puffer, die räumliche Domänendaten oder Gruppen von Transformationsdomänenkoeffizienten für zugriffsbasierte IDCT-enthalten). Dies ist DXVA_NoEncrypt, wenn bConfigBitstreamRaw- 1 ist. (DXVA_NoEncrypt ist eine GUID, die in dxva.h- definiert ist, die angibt, dass die Verschlüsselung nicht angewendet wird.)

bConfigBitstreamRaw

Enthält den Bitstreamverarbeitungsindikator. Ein Wert von 1 gibt an, dass die Bilddaten in Bitstreampuffern als unformatierter Bitstreaminhalt gesendet werden. Ein Wert von Null gibt an, dass Bilddaten mithilfe von Makroblock-Steuerelement-Befehlspuffern gesendet werden.

Dies ist null, wenn bConfigResidDiffHost- 1 ist oder wenn bConfigResidDiffAccelerator 1 ist. Der Wert Null wird als grundlegende Unterstützungsebene betrachtet. Die zusätzliche Unterstützung von Ebene 1 wird bevorzugt.

bConfigMBcontrolRasterOrder

Gibt an, ob Makroblock-Steuerelementbefehle in der Rasterscanreihenfolge oder in beliebiger Reihenfolge vorhanden sind. Ein Wert von 1 gibt an, dass die Makroblock-Steuerelementbefehle innerhalb jedes Makroblock-Steuerelement-Befehlspuffers in der Rasterscanreihenfolge liegen, und ein Wert von Null gibt eine beliebige Reihenfolge an. Derzeit darf ein Treiber die Unterstützung auf die Rasterscanreihenfolge beschränken; Ein Treiber sollte jedoch sowohl die beliebige als auch die Rasterscanreihenfolge unterstützen.

bConfigResidDiffHost

Enthält die Konfiguration des Host-Restunterschieds (weitere Informationen finden Sie unter Macroblock-Oriented Bilddecodierung). Ein Wert von 1 gibt an, dass einige Restdifferenzdecodierungsdaten als Blöcke in der räumlichen Domäne vom Host gesendet werden können. Ein Wert von Null gibt an, dass räumliche Domänendaten nicht gesendet werden. Dieses Element ist null, wenn bConfigBitstreamRaw 1 ist. Es wird bevorzugt, dass eine Zugriffstaste sowohl Null als auch 1 unterstützt.

bConfigSpatialResid8

Gibt die Wortgröße an, die verwendet wird, um restdifferenzige räumliche Domänenblöcke für vorhergesagte (nonintra)-Bilder darzustellen, wenn die hostbasierte Restdifferenzdecodierung verwendet wird (wenn bConfigResidDiffHost- gleich 1 ist).

Wenn bConfigSpatialResid8 1 ist und bConfigResidDiffHost 1 ist, sendet der Host restdifferenzige räumliche Domänenblöcke für nichtintra-Makroblocks unter Verwendung von 8-Bit-signierten Beispielen und für intramakroblocks in vorhergesagten (nonintra)-Bildern in einem Format abhängig von bConfigIntraResidUnsigned wie folgt:

  • Wenn bConfigIntraResidUnsigned null ist, werden räumliche Domänenblöcke für intramakroblocks als 8-Bit-Ganzzahlwerte relativ zu einem Konstantenverweiswert von 128 gesendet.
  • Wenn bConfigIntraResidUnsigned 1 ist, werden räumliche Domänenblöcke für intramakroblocks als 8-Bit-ganzzahlige 8-Bit-Werte relativ zu einem Konstantenverweiswert von Null gesendet.
Wenn bConfigSpatialResid8 null ist und bConfigResidDiffHost 1 ist, sendet der Host restdifferenzige räumliche Domänenblöcke von Daten für nichtintra-Makroblocks unter Verwendung von 16-Bit-signierten Beispielen und für intramakroblocks in vorhergesagten (nonintra)-Bildern in einem Format abhängig von bConfigIntraResidUnsigned wie folgt:
  • Wenn bConfigIntraResidUnsigned null ist, werden räumliche Domänenblöcke für intramakroblocks als 16-Bit-ganzzahlige Werte relativ zu einem Konstantenverweiswert von 2(BPP-1)gesendet, wobei BPP- die Anzahl der Bits pro Beispiel für das nicht komprimierte Video ist (im Allgemeinen ein Wert von 8).
  • Wenn bConfigIntraResidUnsigned 1 ist, werden räumliche Domänenblöcke für intramakroblocks als 16-Bit-ganzzahlige Werte ohne Vorzeichen im Verhältnis zu einem Konstantenverweiswert von Null gesendet.
Das bConfigSpatialResid8 Member muss null sein, wenn bConfigResidDiffHost null ist. Es gibt keine Einstellung für einen bestimmten Wert von bConfigSpatialResid8, wenn bConfigResidDiffHost- 1 ist.
Hinweis Für intragrafiken mit BPP- gleich 8 müssen räumliche Domänenblöcke mit 8-Bit-Beispielen gesendet werden. Bei Intrabildern mit BPP- größer als 8 müssen räumliche Domänenblöcke mit 16-Bit-Beispielen gesendet werden. (Die BPP- Variable ist die Anzahl der Bits pro Beispiel für das nicht komprimierte Video, im Allgemeinen ein Wert von 8.)

Wenn bConfigIntraResidUnsigned null ist, werden diese Beispiele als signierte ganzzahlige Werte relativ zu einem konstanten Bezugswert von 2(BPP-1)gesendet. Wenn bConfigIntraResidUnsigned 1 ist, werden diese Beispiele als nicht signierte ganzzahlige Werte relativ zu einem konstanten Bezugswert von Null gesendet.

 

bConfigResid8Subtraction

Gibt an, dass 8-Bit-Differenzüberlaufblöcke subtrahiert und nicht hinzugefügt werden. Muss null sein, es sei denn, bConfigSpatialResid8 1 ist. Der bevorzugte Wert für eine Zugriffstaste zur Unterstützung ist 1, wenn bConfigSpatialResid8- 1 ist. Die Möglichkeit, Unterschiede zu subtrahieren, anstatt sie hinzuzufügen, ermöglicht es, die Decodierung von 8-Bit-Differenzen vollständig mit dem vollständigen +/-255-Wertebereich kompatibel zu sein, der in Videodecoderspezifikationen erforderlich ist. Dies liegt daran, dass +255 nicht als Addition von zwei signierten 8-Bit-Zahlen dargestellt werden kann, aber eine beliebige Zahl im Bereich +/-255 kann als Differenz zwischen zwei signierten 8-Bit-Zahlen dargestellt werden (+255 ist gleich +127 minus âˆ'128).

bConfigSpatialHost8or9Clipping

Entspricht 1, gibt an, dass räumliche Domänenblöcke für intramakroblocks auf einen 8-Bit-Bereich auf dem Host abgeschnitten werden und dass räumliche Domänenblöcke für Nichtintra-Makroblocks auf einen 9-Bit-Bereich auf dem Host abgeschnitten werden. Ein Wert von Null gibt an, dass vom Host keine solche Ausschnitte ausgeführt werden. Muss null sein, es sei denn, bConfigSpatialResid8- gleich Null ist und bConfigResidDiffHost- gleich 1 ist. Der bevorzugte Wert für eine Zugriffstaste zur Unterstützung ist Null.

bConfigSpatialResidInterleaved

Wenn gleich 1, gibt an, dass alle daten der räumlichen Domänen-Restdifferenz in einer Chrominanz-interleavierten Form gesendet werden, die mit dem Chrominanz-Interleavingmuster des YUV-Formats übereinstimmen. Muss null sein, es sei denn, bConfigResidDiffHost 1 ist und das YUV-Format NV12 oder NV21 ist. Der bevorzugte Wert für eine Zugriffstaste zur Unterstützung ist Null.

bConfigIntraResidUnsigned

Gibt die Methode der Darstellung von räumlichen Domänenblöcken von Restdifferenzdaten für Intrablöcke bei Verwendung der hostbasierten Differenzdecodierung an (wenn bConfigResidDiffHost- gleich 1 ist).

Wenn bConfigIntraResidUnsigned- gleich Null ist und bConfigResidDiffHost- gleich 1 ist, werden die Datenblöcke für räumliche Domänen für intramakroblocks wie folgt gesendet:

  • Wenn bConfigSpatialResid8- null ist, werden die Datenblöcke der räumlichen Domänen-Restdifferenz für intramakroblocks als 16-Bit-ganzzahlige Werte im Verhältnis zu einem Konstantenverweiswert von 2(BPP-1)gesendet, wobei BPP- die Anzahl der Bits pro Beispiel für das nicht komprimierte Video ist (im Allgemeinen ein Wert von 8).
  • In einem Nichtintra-Bild, wenn bConfigSpatialResid8 1 und in einem Intrabild ist, wenn BPP- gleich 8 ist (unabhängig vom Wert von bConfigSpatialResid8), werden die datenblöcke der räumlichen Domäne für intramakroblocks als 8-Bit-ganzzahlige Werte relativ zu einem konstanten Bezugswert von 128 gesendet.
Wenn bConfigIntraResidUnsigned gleich 1 ist und bConfigResidDiffHost- gleich 1 ist, werden datenblöcke für räumliche Domänen für intramakroblocks wie folgt gesendet:
  • Wenn bConfigSpatialResid8- null ist, werden die Datenblöcke der räumlichen Domänen-Restdifferenz für intramakroblocks als 16-Bit-ganzzahlige 16-Bit-Werte im Verhältnis zu einem Konstantenverweiswert von Null gesendet.
  • In einem Nichtintra-Bild, wenn bConfigSpatialResid8 1 und in einem Intrabild ist, wenn BPP- gleich 8 ist (unabhängig vom Wert von bConfigSpatialResid8), werden die Datenblöcke der räumlichen Domäne für intramakroblocks als 8-Bit-ganzzahlige Werte relativ zu einem Konstantenverweiswert von Null gesendet.
Der bConfigIntraResidUnsigned Member muss null sein, es sei denn, bConfigResidDiffHost- ist 1.

Der bevorzugte Wert für eine Zugriffstaste zur Unterstützung ist null für bConfigIntraResidUnsigned.

bConfigResidDiffAccelerator

Enthält die Beschleuniger-Restdifferenzkonfiguration. Der Wert 1 gibt an, dass Transformationsdomänenblöcke von Koeffizientendaten vom Host für zugriffsbasierte IDCT gesendet werden können. Ein Wert von Null gibt an, dass zugriffsbasierte IDCT nicht verwendet wird. Wenn sowohl bConfigResidDiffHost als auch bConfigResidDiffAccelerator 1 sind, werden einige Restunterschiededecodierung auf dem Host und einige auf der Zugriffstaste durchgeführt, wie durch Befehle auf Makroblockebene angegeben. Dieses Element muss null sein, wenn bConfigBitstreamRaw 1 ist.

Der bevorzugte Wert für eine Zugriffstaste zur Unterstützung ist 1 für bConfigResidDiffAccelerator.

Wenn bConfigResidDiffAccelerator und bConfigResidDiffHost- gleich 1 sind, kann die Restdifferenzdecodierung zwischen dem Host und der Zugriffstaste auf Makroblockbasis gemeinsam genutzt werden. Dies gilt als noch höhere Zugriffstastenfunktion als wenn bConfigResidDiffAccelerator- gleich 1 ist und bConfigResidDiffHost- gleich Null ist.

bConfigHostInverseScan

Gibt an, ob die umgekehrte Überprüfung auf die Verarbeitung von Transformationsdomänenblocks auf dem Host oder der Zugriffstaste ausgeführt wird. Ein Wert von 1 gibt an, dass die umgekehrte Überprüfung für die Transformations-Domänenblockverarbeitung auf dem Host ausgeführt wird, und absolute Indizes werden stattdessen für alle Transformationskoeffizienten gesendet. Ein Wert von Null gibt an, dass der umgekehrte Scan auf der Zugriffstaste ausgeführt wird. Dieses Element muss null sein, wenn bConfigResidDiffAccelerator null ist oder bConfig4GroupedCoefs 1 ist.

Der bevorzugte Wert für eine Zugriffstaste zur Unterstützung ist 1, wenn bConfigResidDiffAccelerator 1 ist.

bConfigSpecificIDCT

Gibt die Verwendung einer bestimmten IDCT--Methode für off-Host-IDCT an. Der Wert 1 gibt die Verwendung des IDCT in Anhang W der Empfehlung H.263 ITU-T an. Ein Wert von Null gibt an, dass alle kompatiblen IDCT für Offhost-IDCT verwendet werden können. (Werte außer Null und 1 sind für die zukünftige Verwendung reserviert.)

Dieses Element muss null sein, wenn bConfigResidDiffAccelerator null ist (einfaches Angeben der hostbasierten Restdifferenzdecodierung).

Hinweis Anhang W von ITU-T Empfehlung H.263 entspricht nicht den IDCT-Anforderungen von MPEG-2 korigendum 2 und damit bConfigSpecificIDCT darf nicht einer sein, um mit MPEG-2-Video zu verwenden.
 

bConfig4GroupedCoefs

Ein Wert von 1 gibt an, dass Transformationskoeffizienten für Offhost-IDCT mithilfe der DXVA_TCoef4Group-Struktur und nicht mit der DXVA_TCoefSingle-Struktur gesendet werden. Dies ist Null, wenn bConfigResidDiffAccelerator null ist oder bConfigHostInverseScan- 1 ist.

Der bevorzugte Wert für eine Zugriffstaste zur Unterstützung ist null, wenn bConfigResidDiffAccelerator 1 ist.

Bemerkungen

Bei einigen Arten von Bitstreams erhöht das Erzwingen von Makroblock-Steuerelementbefehlsbefehlsbefehlen innerhalb jedes Makroblock-Befehlspuffers entweder die Anzahl der erforderlichen Puffer, die verarbeitet werden müssen, oder erfordert eine Hostumordnung der Steuerelementinformationen. Die Unterstützung willkürlicher Ordnung kann somit für den Decodierungsprozess von Vorteil sein. Die CIF-Auflösungsdecodierung von H.261 kann z. B. 36 Makroblock-Steuerpuffer pro Bild erfordern, wenn die Rasterscanreihenfolge innerhalb jedes Puffers erforderlich ist (H.263 Anhang K willkürliche Segmentreihenfolge und rechteckige Segmentmodi haben schwerwiegendere Auswirkungen, was möglicherweise eine extrem große Anzahl von Puffern erfordert.)

Anforderungen

Anforderung Wert
Header- dxva.h (include Dxva.h)

Siehe auch

DXVA_MBctrl_I_HostResidDiff_1

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_HostResidDiff_1

DXVA_MBctrl_P_OffHostIDCT_1

DXVA_TCoef4Group

DXVA_TCoefSingle