DXVADDI_CONFIGPICTUREDECODE-Struktur (d3dumddi.h)

Die DXVADDI_CONFIGPICTUREDECODE-Struktur beschreibt die Konfiguration für die decodierung komprimierter Bilder.

Syntax

typedef struct _DXVADDI_CONFIGPICTUREDECODE {
  [in] GUID   guidConfigBitstreamEncryption;
  [in] GUID   guidConfigMBcontrolEncryption;
  [in] GUID   guidConfigResidDiffEncryption;
  [in] UINT   ConfigBitstreamRaw;
  [in] UINT   ConfigMBcontrolRasterOrder;
  [in] UINT   ConfigResidDiffHost;
  [in] UINT   ConfigSpatialResid8;
  [in] UINT   ConfigResid8Subtraction;
  [in] UINT   ConfigSpatialHost8or9Clipping;
  [in] UINT   ConfigSpatialResidInterleaved;
  [in] UINT   ConfigIntraResidUnsigned;
  [in] UINT   ConfigResidDiffAccelerator;
  [in] UINT   ConfigHostInverseScan;
  [in] UINT   ConfigSpecificIDCT;
  [in] UINT   Config4GroupedCoefs;
  [in] USHORT ConfigMinRenderTargetBuffCount;
  [in] USHORT ConfigDecoderSpecific;
} DXVADDI_CONFIGPICTUREDECODE;

Member

[in] guidConfigBitstreamEncryption

Die Verschlüsselungs-GUID zum Konfigurieren eines Bitstreams.

[in] guidConfigMBcontrolEncryption

Die Verschlüsselungs-GUID zum Konfigurieren der Makroblocksteuerung.

[in] guidConfigResidDiffEncryption

Die Verschlüsselungs-GUID zum Konfigurieren der Restdifferenzdecodierung.

[in] ConfigBitstreamRaw

Der Bitstreamverarbeitungsindikator. Der Wert 1 in diesem Member gibt an, dass Bilddaten in Bitstreampuffern als unformatierten Bitstreaminhalt gesendet werden. Der Wert 0 (null) gibt an, dass Bilddaten mithilfe von Makroblocksteuerungsbefehlspuffern gesendet werden.

Legen Sie diesen Member auf 0 fest, wenn das ConfigResidDiffHost - oder ConfigResidDiffAccelerator-Element 1 ist. Der Wert 0 (null) in ConfigBitstreamRaw ist die grundlegende Unterstützungsebene. Der Wert 1 wird bevorzugt.

[in] ConfigMBcontrolRasterOrder

Ein UINT-Wert, der angibt, ob Makroblock-Steuerelementbefehle in der Rasterscanreihenfolge oder in beliebiger Reihenfolge ausgeführt werden. Der Wert 1 in diesem Member gibt an, dass die Makroblock-Steuerelementbefehle in jedem Makroblock-Steuerelementbefehlspuffer in der Rasterscanreihenfolge liegen. Der Wert 0 (null) gibt die beliebige Reihenfolge an. Ein Treiber kann die Unterstützung auf die Reihenfolge der Rasterscans einschränken. Ein Treiber sollte jedoch sowohl die beliebige als auch die Rasterscanreihenfolge unterstützen.

[in] ConfigResidDiffHost

Die Konfiguration der Restdifferenz des Hosts. Der Wert 1 in diesem Member gibt an, dass daten möglicherweise als Blöcke in der räumlichen Domäne vom Host gesendet werden. Der Wert 0 (null) gibt an, dass daten für räumliche Domänen nicht gesendet werden. Legen Sie diesen Member auf 0 fest, wenn das ConfigBitstreamRaw-Element 1 ist. Ein Accelerator sollte sowohl null als auch 1 unterstützen.

[in] ConfigSpatialResid8

Die Wortgröße, die verwendet wird, um restdizierte räumliche Domänenblöcke für vorhergesagte Bilder (nicht intra) darzustellen, wenn die hostbasierte Restdifferenzdecodierung verwendet wird (d. a. wenn das ConfigResidDiffHost-Element auf 1 festgelegt ist).

Wenn ConfigSpatialResid8 den Wert 1 und ConfigResidDiffHost den Wert 1 aufweist, sendet der Host Blöcke mit räumlicher Domäne für Nicht-Intra-Makroblocks, die 8-Bit-Stichproben mit Vorzeichen verwenden, und für Intra-Makroblocks in vorhergesagten (nonintra)-Bildern in einem Format, das vom ConfigIntraResidUnsigned-Element abhängt, wie folgt:

  • Wenn ConfigIntraResidUnsigned null ist, werden räumliche Domänenblöcke für makrointerne Blöcke als 8-Bit-Ganzzahlwerte mit Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 128 sind.

  • Wenn ConfigIntraResidUnsigned 1 ist, werden räumliche Domänenblöcke für makrointerne Blöcke als 8-Bit-Ganzzahlwerte ohne Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 0 (null) sind.

Wenn ConfigSpatialResid8 null und ConfigResidDiffHost den Wert 1 aufweist, sendet der Host Blöcke räumlicher Domänen für Nicht-Intra-Makroblocks, die 16-Bit-Stichproben mit Vorzeichen verwenden, und für Intra-Makroblocks in vorhergesagten (nicht intra)-Bildern in einem Format, das von ConfigIntraResidUnsigned abhängig ist, wie folgt:

  • Wenn ConfigIntraResidUnsigned null ist, werden räumliche Domänenblöcke für intramakroblocks als 16-Bit-Ganzzahlwerte mit Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 2^(BPP-1) stehen, wobei BPP die Anzahl der Bits pro Stichprobe für das nicht komprimierte Video darstellt (in der Regel ein Wert von 8).

  • Wenn ConfigIntraResidUnsigned den Wert 1 aufweist, werden räumliche Domänenblöcke für makrointerne Blöcke als 16-Bit-Ganzzahlwerte ohne Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 0 (null) sind.

ConfigSpatialResid8 muss null sein, wenn ConfigResidDiffHost 0 ist. Wenn ConfigResidDiffHost den Wert 1 aufweist, kann ConfigSpatialResid8 ein beliebiger Wert sein.

Hinweis

Für Intrabilder mit BPP gleich 8 müssen Blöcke für räumliche Domänen mithilfe von 8-Bit-Beispielen gesendet werden. Für Intrabilder mit BPP größer als 8 müssen Blöcke für räumliche Domänen mithilfe von 16-Bit-Beispielen gesendet werden. Wenn ConfigIntraResidUnsigned null ist, werden diese Beispiele als ganzzahlige Werte mit Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 2^(BPP-1) sind. Wenn ConfigIntraResidUnsigned den Wert 1 aufweist, werden diese Beispiele als ganzzahlige Werte ohne Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 0 (null) sind.

[in] ConfigResid8Subtraction

Ein UINT-Wert, der angibt, ob 8-Bit-Differenzüberlaufblöcke subtrahiert oder hinzugefügt werden. Wenn dieser Member auf 1 festgelegt ist, werden 8-Bit-Differenzüberlaufblöcke subtrahiert und nicht hinzugefügt. Dieser Member muss null sein, es sei denn , ConfigSpatialResid8 ist 1. Wenn ConfigSpatialResid8 1 ist, ist der bevorzugte Wert für ConfigResid8Subtraction 1. Die Möglichkeit, Unterschiede zu subtrahieren, anstatt sie hinzuzufügen, ermöglicht die 8-Bit-Differenzdecodierung, vollständig mit dem Bereich von -255 bis +255 von Werten kompatibel zu sein, die in Den Spezifikationen für Videodecoder erforderlich sind. Diese Möglichkeit ermöglicht vollständige Konformität, da +255 nicht als Hinzufügen von zwei signierten 8-Bit-Zahlen dargestellt werden kann, aber jede Zahl im Bereich von -255 bis +255 kann als Unterschied zwischen zwei signierten 8-Bit-Zahlen dargestellt werden (+255 entspricht +127 minus -128).

[in] ConfigSpatialHost8or9Clipping

Ein UINT-Wert, der angibt, ob das Clipping vom Host ausgeführt wird. Wenn dieser Member auf 1 festgelegt ist, werden räumliche Domänenblöcke für makrointerne Blöcke in einen 8-Bit-Bereich auf dem Host abgeschnitten, und räumliche Domänenblöcke für Makroblocks, die nicht intra sind, werden in einen 9-Bit-Bereich auf dem Host beschnitten. Der Wert 0 (null) gibt an, dass ein solcher Clipping vom Host nicht ausgeführt wird. Dieser Member muss null sein, es sei denn , ConfigSpatialResid8 ist auf null und ConfigResidDiffHost auf 1 festgelegt. Der bevorzugte Wert für ConfigSpatialHost8or9Clipping ist Null.

[in] ConfigSpatialResidInterleaved

Ein UINT-Wert, der angibt, ob Restdifferenzdaten für räumliche Domänen in einer Chrominanz-Interleaved-Form gesendet werden. Wenn dieser Member auf 1 festgelegt ist, werden alle Restdifferenzdaten der räumlichen Domäne in einer Chromanz-interleaved-Form gesendet, die dem Chrominanzinterleavingmuster im YUV-Format entspricht. Dieser Member muss null sein, es sei denn , ConfigResidDiffHost ist 1 und das YUV-Format nv12 oder NV21. Der bevorzugte Wert für ConfigSpatialResidInterleaved ist Null.

[in] ConfigIntraResidUnsigned

Die Methode zur Darstellung von Räumlichen Domänenblöcken von Restdifferenzdaten für intra Blöcke bei Verwendung der hostbasierten Differenzdecodierung (d. a. wenn der ConfigResidDiffHost-Member gleich 1 ist).

Wenn ConfigIntraResidUnsigned auf 0 (null) und ConfigResidDiffHost (1) festgelegt ist, werden die Datenblöcke der Räumlichen Domänen-Restdifferenz für makrointerne Blöcke wie folgt gesendet:

  • Wenn das ConfigSpatialResid8-Element 0 (null) ist, werden die Datenblöcke der Räumlichen Domäne-Restdifferenz für intramakroblocks als 16-Bit-Ganzzahlwerte mit Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 2^(BPP-1) sind, wobei BPP die Anzahl der Bits pro Stichprobe für das nicht komprimierte Video darstellt (in der Regel ein Wert von 8).

  • In einem Nicht-Intra-Bild, wenn ConfigSpatialResid8 den Wert 1 aufweist, und in einem intra-Bild, wenn BPP gleich 8 ist (unabhängig vom Wert von ConfigSpatialResid8), werden die Datenblöcke für die Restdifferenz der räumlichen Domäne für Intra-Makroblocks als 8-Bit-Ganzzahlwerte mit Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 128 sind.

Wenn ConfigIntraResidUnsigned auf 1 und ConfigResidDiffHost auf 1 festgelegt ist, werden die Datenblöcke der Räumlichen Domänen-Restdifferenz für makroblocks wie folgt gesendet:

  • In einer Nicht-Intra-Abbildung, wenn ConfigSpatialResid8 null ist, werden die Restdifferenzdatenblöcke der räumlichen Domäne für intra-Makroblocks als 16-Bit-Ganzzahlwerte ohne Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 0 (null) sind.

  • In einem Nicht-Intra-Bild, wenn ConfigSpatialResid8 den Wert 1 aufweist, und in einem intra-Bild, wenn BPP gleich 8 ist (unabhängig vom Wert von ConfigSpatialResid8), werden die Datenblöcke für den räumlichen Differenzunterschied für intra-Makroblocks als 8-Bit-Ganzzahlwerte ohne Vorzeichen gesendet, die relativ zu einem konstanten Verweiswert von 0 (null) sind.

ConfigIntraResidUnsigned muss null sein, es sei denn , ConfigResidDiffHost ist 1. Der bevorzugte Wert für ConfigIntraResidUnsigned ist Null.

[in] ConfigResidDiffAccelerator

Die Beschleuniger-Restdifferenzkonfiguration. Der Wert 1 in diesem Member gibt an, dass Transformationsdomänenblöcke mit Koeffizientendaten vom Host für die Beschleuniger-basierte IDCT gesendet werden können. Der Wert 0 (null) gibt an, dass die Beschleuniger-basierte IDCT nicht verwendet wird.

Wenn sowohl der ConfigResidDiffHost-Member als auch configResidDiffAccelerator 1 sind, wird eine Restdifferenzdecodierung auf dem Host und einige auf der Zugriffstaste ausgeführt, wie durch Steuerungsbefehle auf Makroblockebene angegeben. ConfigResidDiffAccelerator muss null sein, wenn das bConfigBitstreamRaw-Element 1 ist.

Der bevorzugte Wert für ConfigResidDiffAccelerator ist 1.

Wenn ConfigResidDiffAccelerator und ConfigResidDiffHost auf 1 festgelegt sind, kann die Restdifferenzdecodierung auf Makroblockbasis zwischen Host und Accelerator gemeinsam verwendet werden. Diese Freigabe ist eine noch höhere Ebene der Zugriffstastenfunktion als wenn ConfigResidDiffAccelerator auf 1 und ConfigResidDiffHost auf 0 festgelegt ist.

[in] ConfigHostInverseScan

Ein UINT-Wert, der angibt, ob die umgekehrte Überprüfung für die Verarbeitung von Transformationsdomänenblöcken auf dem Host oder der Zugriffstaste ausgeführt wird. Der Wert 1 in diesem Member gibt an, dass die umgekehrte Überprüfung für die Verarbeitung von Transformationsdomänenblöcken auf dem Host ausgeführt wird und stattdessen absolute Indizes für alle Transformationskoeffizienten gesendet werden. Der Wert 0 (null) gibt an, dass eine umgekehrte Überprüfung auf dem Accelerator ausgeführt wird. ConfigHostInverseScan muss null sein, wenn ConfigResidDiffAccelerator 0 ist oder wenn das Config4GroupedCoefs-Element 1 ist.

Der bevorzugte Wert für ConfigHostInverseScan ist 1, wenn ConfigResidDiffAccelerator 1 ist.

[in] ConfigSpecificIDCT

Ein UINT-Wert, der die Verwendung einer bestimmten IDCT-Methode für IDCT-Off-Host-IDCT angibt. Der Wert 1 in diesem Member gibt die Verwendung der IDCT an, die in Anhang W der ITU-T-Empfehlung H.263 angegeben ist, die Sie auf der Website der International Telecommunication Union erfahren können. Der Wert 0 (null) gibt an, dass alle kompatiblen IDCT-Werte für idCT außerhalb des Hosts verwendet werden können. (Andere Werte als Null und 1 sind reserviert.)

ConfigSpecificIDCT muss null sein, wenn ConfigResidDiffAccelerator null ist, was die hostbasierte Restdifferenzdecodierung angibt.

Hinweis

ConfigSpecificIDCT darf für die Verwendung mit MPEG-2-Video nicht auf 1 festgelegt werden.

[in] Config4GroupedCoefs

Ein UINT-Wert, der angibt, wie Transformationskoeffizienten für off-host-IDCT gesendet werden. Der Wert 1 in diesem Member gibt an, dass Transformationskoeffizienten für idCT außerhalb des Hosts mithilfe der DXVA_TCoef4Group-Struktur anstelle der DXVA_TCoefSingle-Struktur gesendet werden. Config4GroupedCoefs ist null, wenn ConfigResidDiffAccelerator null oder ConfigHostInverseScan den Wert 1 aufweist.

Der bevorzugte Wert für Config4GroupedCoefs ist null, wenn ConfigResidDiffAccelerator den Wert 1 aufweist.

[in] ConfigMinRenderTargetBuffCount

Ein USHORT-Wert, der die Mindestanzahl von Renderzielpuffern angibt.

[in] ConfigDecoderSpecific

Ein USHORT-Wert, der decoderspezifische Features angibt, die konfiguriert werden sollen. Informationen zu den Funktionen eines Decoders finden Sie in der Spezifikation für diesen Decoder. Eine Liste der Decoder finden Sie unter Bereitstellen von Funktionen für die Videodecodierung.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Kopfzeile d3dumddi.h (include D3dumddi.h)

Weitere Informationen

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps