Share via


DXVA2_ConfigPictureDecode-Struktur (dxva2api.h)

Beschreibt die Konfiguration eines DXVA-Decodergeräts.

Syntax

typedef struct _DXVA2_ConfigPictureDecode {
  GUID   guidConfigBitstreamEncryption;
  GUID   guidConfigMBcontrolEncryption;
  GUID   guidConfigResidDiffEncryption;
  UINT   ConfigBitstreamRaw;
  UINT   ConfigMBcontrolRasterOrder;
  UINT   ConfigResidDiffHost;
  UINT   ConfigSpatialResid8;
  UINT   ConfigResid8Subtraction;
  UINT   ConfigSpatialHost8or9Clipping;
  UINT   ConfigSpatialResidInterleaved;
  UINT   ConfigIntraResidUnsigned;
  UINT   ConfigResidDiffAccelerator;
  UINT   ConfigHostInverseScan;
  UINT   ConfigSpecificIDCT;
  UINT   Config4GroupedCoefs;
  USHORT ConfigMinRenderTargetBuffCount;
  USHORT ConfigDecoderSpecific;
} DXVA2_ConfigPictureDecode;

Member

guidConfigBitstreamEncryption

Definiert den Verschlüsselungsprotokolltyp für Bitstreamdatenpuffer. Wenn keine Verschlüsselung angewendet wird, wird der Wert DXVA_NoEncrypt. Wenn ConfigBitstreamRaw 0 ist, muss der Wert DXVA_NoEncrypt sein.

guidConfigMBcontrolEncryption

Definiert den Verschlüsselungsprotokolltyp für Makroblocksteuerungsdatenpuffer. Wenn keine Verschlüsselung angewendet wird, wird der Wert DXVA_NoEncrypt. Wenn ConfigBitstreamRaw 1 ist, muss der Wert DXVA_NoEncrypt sein.

guidConfigResidDiffEncryption

Definiert den Verschlüsselungsprotokolltyp für Restdifferenzdecodierungsdatenpuffer (Puffer, die Räumliche Domänendaten oder Sätze von Transformationsdomänenkoeffizienten für acceleratorbasierte IDCT enthalten). Wenn keine Verschlüsselung angewendet wird, wird der Wert DXVA_NoEncrypt. Wenn ConfigBitstreamRaw 1 ist, muss der Wert DXVA_NoEncrypt sein.

ConfigBitstreamRaw

Gibt an, ob der Host-Decoder unformatierte Bitstreamdaten sendet. Wenn der Wert 1 ist, werden die Daten für die Bilder in Bitstreampuffern als unformatierter Bitstreaminhalt gesendet. Wenn der Wert 0 ist, werden Bilddaten mithilfe von Makroblocksteuerungsbefehlspuffern gesendet. Wenn ConfigResidDiffHost oder ConfigResidDiffAccelerator 1 ist, muss der Wert 0 sein.

ConfigMBcontrolRasterOrder

Gibt an, ob makroblock-Steuerelementbefehle in der Rasterscanreihenfolge oder in beliebiger Reihenfolge ausgeführt werden. Wenn der Wert 1 ist, befinden sich die Makroblocksteuerelementbefehle in jedem Makroblock-Steuerungsbefehlspuffer in der Rasterscanreihenfolge. Wenn der Wert 0 ist, ist die Reihenfolge beliebig. Bei einigen Arten von Bitstreams erhöht das Erzwingen der Rasterreihenfolge entweder die Anzahl der erforderlichen Makroblocksteuerungspuffer, die verarbeitet werden müssen, erheblich oder erfordert eine Neuanordnung der Steuerelementinformationen durch den Host. Daher kann die Unterstützung willkürlicher Ordnung effizienter sein.

ConfigResidDiffHost

Enthält die Konfiguration der Host-Restdifferenz. Wenn der Wert 1 ist, können Restdifferenzdecodierungsdaten als Blöcke in der räumlichen Domäne vom Host gesendet werden. Wenn der Wert 0 ist, werden keine Räumlichen Domänendaten gesendet.

ConfigSpatialResid8

Gibt die Wortgröße an, die verwendet wird, um restdizierte räumliche Domänenblöcke für vorhergesagte (nicht intra) Bilder bei Verwendung der hostbasierten Restdifferenzdecodierung darzustellen.

Wenn ConfigResidDiffHost den Wert 1 und ConfigSpatialResid8 den Wert 1 aufweist, sendet der Host Blöcke für räumliche Differenzen für nicht intra-Makroblocks mithilfe von 8-Bit-Stichproben und für intra-Makroblocks in vorhergesagten (nicht intra)-Bildern in einem Format, das vom Wert von ConfigIntraResidUnsigned abhängt:

  • Wenn ConfigIntraResidUnsigned den Wert 0 aufweist, werden räumliche Domänenblöcke für makrointerne Blöcke als 8-Bit-Ganzzahlwerte mit Vorzeichen im Verhältnis zu einem konstanten Verweiswert von 2^(BPP–1) gesendet.
  • Wenn ConfigIntraResidUnsigned 1 ist, werden spatial-domain-Blöcke für Intra-Makroblocks als 8-Bit-Ganzzahlwerte ohne Vorzeichen relativ zu einem konstanten Verweiswert von 0 gesendet.
Wenn ConfigResidDiffHost den Wert 1 und ConfigSpatialResid8 den Wert 0 aufweist, sendet der Host Blöcke für räumliche Domänen mit Restdifferenzen für nicht intra-Makroblocks mithilfe von 16-Bit-Stichproben und für Intra-Makroblocks in vorhergesagten (nicht intra) Bildern in einem Format, das vom Wert von ConfigIntraResidUnsigned abhängt:
  • Wenn ConfigIntraResidUnsigned den Wert 0 aufweist, werden räumliche Domänenblöcke für makrointerne Blöcke als 16-Bit-Ganzzahlwerte mit Vorzeichen gesendet, relativ zu einem konstanten Verweiswert von 2^(BPP–1).
  • Wenn ConfigIntraResidUnsigned den Wert 1 aufweist, werden räumliche Domänenblöcke für makrointerne Blöcke als 16-Bit-Ganzzahlwerte ohne Vorzeichen relativ zu einem konstanten Verweiswert von 0 gesendet.
Wenn ConfigResidDiffHost 0 ist, muss ConfigSpatialResid8 0 sein.

Für Intrabilder müssen Blöcke mit räumlichen Domänen mit 8-Bit-Stichproben gesendet werden, wenn Bit pro Pixel (BPP) 8 ist, und 16-Bit-Beispiele, wenn BPP > 8 verwendet wird. Wenn ConfigIntraResidUnsigned den Wert 0 aufweist, werden diese Beispiele als ganzzahlige Werte mit Vorzeichen im Verhältnis zu einem konstanten Verweiswert von 2^(BPP–1) gesendet, und wenn ConfigIntraResidUnsigned 1 ist, werden diese Beispiele als ganzzahlige Werte ohne Vorzeichen im Verhältnis zu einem konstanten Verweiswert von 0 gesendet.

ConfigResid8Subtraction

Wenn der Wert 1 ist, werden 8-Bit-Differenzüberlaufblöcke subtrahiert und nicht hinzugefügt. Der Wert muss 0 sein, es sei denn , ConfigSpatialResid8 ist 1.

Die Möglichkeit, Unterschiede zu subtrahieren, anstatt sie hinzuzufügen, ermöglicht es, dass die 8-Bit-Differenzdecodierung vollständig mit dem vollständigen ±255-Wertebereich konform ist, der in den Spezifikationen für Videodecoder erforderlich ist. da +255 nicht als Addition von zwei vorzeichenden 8-Bit-Zahlen dargestellt werden kann, aber jede Zahl im Bereich ±255 kann als Differenz zwischen zwei vorzeichenden 8-Bit-Zahlen (+255 = +127 minus –128) dargestellt werden.

ConfigSpatialHost8or9Clipping

Wenn der Wert 1 ist, müssen räumliche Domänenblöcke für makrointerne Blöcke in einen 8-Bit-Bereich auf dem Host abgeschnitten werden, und räumliche Domänenblöcke für nicht intra-Makroblocks müssen in einen 9-Bit-Bereich auf dem Host abgeschnitten werden. Wenn der Wert 0 ist, ist keine solche Beschneidung durch den Host erforderlich.

Der Wert muss 0 sein, es sei denn , ConfigSpatialResid8 ist 0 und ConfigResidDiffHost ist 1.

ConfigSpatialResidInterleaved

Wenn der Wert 1 ist, müssen alle Restdifferenzdaten der räumlichen Domäne in einer Chromanz-Verschachtelungsform gesendet werden, die dem Chrominanzinterleavingmuster im YUV-Format entspricht. Der Wert muss 0 sein, es sei denn , ConfigResidDiffHost ist 1 und das YUV-Format ist NV12 oder NV21.

ConfigIntraResidUnsigned

Gibt die Methode der Darstellung von Blöcken mit räumlichen Domänen von Restdifferenzdaten für intra Blöcke an, wenn die hostbasierte Differenzdecodierung verwendet wird.

Wenn ConfigResidDiffHost den Wert 1 und ConfigIntraResidUnsigned den Wert 0 aufweist, müssen Die Datenblöcke für die Räumliche Domäne-Restdifferenz für makrointerne Blöcke wie folgt gesendet werden:

  • Wenn ConfigSpatialResid8 in einem nicht intra-Bild 0 ist, werden die Datenblöcke für die Restdifferenz der räumlichen Domäne für intra makroblocks als 16-Bit-Ganzzahlwerte mit Vorzeichen gesendet, relativ zu einem konstanten Verweiswert von 2^(BPP–1).
  • Wenn ConfigSpatialResid8 in einem Nicht-Intra-Bild 1 ist, werden die Datenblöcke für die Restdifferenz der räumlichen Domäne für makrointerne Blöcke als 8-Bit-Ganzzahlwerte mit Vorzeichen im Verhältnis zu einem konstanten Verweiswert von 2^(BPP–1) gesendet.
  • Wenn BPP in einem intra-Bild 8 ist, werden die Datenblöcke der räumlichen Differenzdifferenz für intramakroblocks als 8-Bit-Ganzzahlwerte relativ zu einem konstanten Verweiswert von 2^(BPP–1) gesendet, unabhängig vom Wert von ConfigSpatialResid8.
Wenn ConfigResidDiffHost den Wert 1 und ConfigIntraResidUnsigned den Wert 1 aufweist, müssen die Datenblöcke für die Abweichung räumlicher Domänen für makrointerne Blöcke wie folgt gesendet werden:
  • Wenn ConfigSpatialResid8 in einem nicht intra-Bild 0 ist, müssen die Datenblöcke der Räumlichen Domäne-Restdifferenz für intramakroblocks als 16-Bit-Ganzzahlwerte ohne Vorzeichen relativ zu einem konstanten Verweiswert von 0 gesendet werden.
  • Wenn ConfigSpatialResid8 in einem nicht intra-Bild den Wert 1 aufweist, werden die Datenblöcke der Räumlichen Domäne-Restdifferenz für intra-Makroblocks als 8-Bit-Ganzzahlwerte ohne Vorzeichen relativ zu einem konstanten Verweiswert von 0 gesendet.
  • Wenn BPP in einem intra-Bild 8 ist, werden die Datenblöcke der Räumlichen Domäne-Restdifferenz für intramakroblocks als 8-Bit-Ganzzahlwerte ohne Vorzeichen relativ zu einem konstanten Verweiswert von 0 gesendet, unabhängig vom Wert von ConfigSpatialResid8.
Der Wert des Members muss 0 sein, es sei denn , ConfigResidDiffHost ist 1.

ConfigResidDiffAccelerator

Wenn der Wert 1 ist, können Transformationsdomänenblöcke mit Koeffizientendaten vom Host für die Beschleuniger-basierte IDCT gesendet werden. Wenn der Wert 0 ist, wird die zugriffstastenbasierte IDCT nicht verwendet. Wenn sowohl ConfigResidDiffHost als auch ConfigResidDiffAccelerator den Wert 1 aufweisen, gibt dies an, dass einige Restdifferenzen auf dem Host und einige auf der Zugriffstaste ausgeführt werden, wie durch Steuerungsbefehle auf Makroblockebene angegeben.

Der Wert muss 0 sein, wenn ConfigBitstreamRaw 1 ist.

ConfigHostInverseScan

Wenn der Wert 1 ist, wird die umgekehrte Überprüfung für die Verarbeitung von Transformationsdomänenblöcken auf dem Host ausgeführt, und absolute Indizes werden stattdessen für alle Transformationskoeffizienten gesendet. Wenn der Wert 0 ist, wird die umgekehrte Überprüfung auf der Zugriffstaste ausgeführt.

Der Wert muss 0 sein, wenn ConfigResidDiffAccelerator 0 oder Config4GroupedCoefs den Wert 1 aufweist.

ConfigSpecificIDCT

Wenn der Wert 1 ist, wird der in Anhang W der ITU-T-Empfehlung H.263 angegebene IDCT verwendet. Wenn der Wert 0 ist, kann eine beliebige kompatible IDCT für idCT außerhalb des Hosts verwendet werden.If the value is 0, any compliant IDCT can be used for off-host IDCT.

Der H.263-Anhang entspricht nicht den IDCT-Anforderungen von MPEG-2 corrigendum 2, sodass der Wert für die Verwendung mit MPEG-2-Videos nicht 1 sein darf.

Der Wert muss 0 sein, wenn ConfigResidDiffAccelerator 0 ist, was die rein hostbasierte Restdifferenzdecodierung angibt.

Config4GroupedCoefs

Wenn der Wert 1 ist, werden transformationskoeffizienten für off-host IDCT mithilfe der DXVA_TCoef4Group-Struktur gesendet. Wenn der Wert 0 ist, wird die DXVA_TCoefSingle-Struktur verwendet. Der Wert muss 0 sein, wenn ConfigResidDiffAccelerator 0 oder ConfigHostInverseScan den Wert 1 aufweist.

ConfigMinRenderTargetBuffCount

Gibt an, wie viele Frames das Decodergerät gleichzeitig verarbeitet.

ConfigDecoderSpecific

Enthält decoderspezifische Konfigurationsinformationen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile dxva2api.h

Weitere Informationen

DirectX-Videobeschleunigung 2.0

Media Foundation-Strukturen