Freigeben über


D3D11_1DDI_VIDEO_DECODER_CONFIG Struktur (d3d10umddi.h)

Beschreibt die Konfiguration eines Microsoft Direct3D 11-Decodergeräts für die Microsoft DirectX Video Acceleration (DXVA).

Syntax

typedef struct D3D11_1DDI_VIDEO_DECODER_CONFIG {
  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;
} D3D11_1DDI_VIDEO_DECODER_CONFIG;

Angehörige

guidConfigBitstreamEncryption

Definiert den Verschlüsselungsprotokolltyp für Bitstream-Datenpuffer. Wenn keine Verschlüsselung angewendet wird, wird der Wert DXVA_NoEncrypt (ein in Dxva.h definierter GUID-Name). Wenn ConfigBitstreamRaw 0 ist, muss der Wert DXVA_NoEncryptsein.

Wenn dieser Wert auf D3DWDDM2_0DDI_DECODER_ENCRYPTION_HW_CENCfestgelegt ist, gibt dies an, dass die folgenden Parameter an den VideoDecoderBeginFrame Aufruf übergeben werden:

Wert Bedeutung
pContentKey- Ein Zeiger auf die D3DWDDM2_0DDI_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION Struktur, der angibt, welche CryptoSession und die Schlüsselinformationen zum Entschlüsseln des Frames verwendet werden.
ContentKeySize- Legen Sie die Größe der D3DWDDM2_0DDI_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION Struktur fest.

guidConfigMBcontrolEncryption

Definiert den Verschlüsselungsprotokolltyp für Makroblock-Steuerelementdatenpuffer. Wenn keine Verschlüsselung angewendet wird, wird der Wert DXVA_NoEncrypt (ein in Dxva.h definierter GUID-Name). Wenn ConfigBitstreamRaw 1 ist, muss der Wert DXVA_NoEncryptsein.

guidConfigResidDiffEncryption

Definiert den Verschlüsselungsprotokolltyp für Restdifferenzdecodierungsdatenpuffer (Puffer mit räumlichen Domänendaten oder Gruppen von Transformationsdomänenkoeffizienten für die beschleunigerbasierte diskrete Kosinustransformation [IDCT]). Wenn keine Verschlüsselung angewendet wird, wird der Wert DXVA_NoEncrypt (ein in Dxva.h definierter GUID-Name). Wenn ConfigBitstreamRaw 1 ist, muss der Wert DXVA_NoEncryptsein.

ConfigBitstreamRaw

Gibt an, ob der Hostdecoder 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 Makroblock-Befehlspuffern gesendet. Wenn entweder ConfigResidDiffHost oder ConfigResidDiffAccelerator 1 ist, muss der Wert 0 sein.

ConfigMBcontrolRasterOrder

Gibt an, ob Makroblock-Steuerelementbefehle in der Rasterscanreihenfolge oder in beliebiger Reihenfolge vorhanden sind. Wenn der Wert 1 ist, befinden sich die Makroblock-Steuerelementbefehle innerhalb jedes Makroblock-Steuerelement-Befehlspuffers in der Rasterscanreihenfolge. Wenn der Wert 0 ist, ist die Reihenfolge beliebig. Bei einigen Arten von Bitdatenströmen erhöht das Erzwingen der Rasterreihenfolge entweder die Anzahl der erforderlichen Makroblock-Steuerelementpuffer, die verarbeitet werden müssen, oder erfordert eine Host-Neuanordnung der Steuerelementinformationen. Daher kann die Unterstützung beliebiger Reihenfolge effizienter sein.

ConfigResidDiffHost

Enthält die Host-Restdifferenzkonfiguration. Wenn der Wert 1 ist, werden einige Restdifferenzdecodierungsdaten möglicherweise als Blöcke in der räumlichen Domäne vom Host gesendet. Wenn der Wert 0 ist, werden keine räumlichen Domänendaten gesendet.

ConfigSpatialResid8

Gibt die Wortgröße an, die verwendet wird, um restdifferenzierte räumliche Domänenblöcke für vorhergesagte (nicht intra) Bilder darzustellen, wenn die hostbasierte Restdifferenzdecodierung verwendet wird.

Wenn ConfigResidDiffHost- 1 ist und ConfigSpatialResid8- 1 ist, sendet der Host restdifferenzige räumliche Domänenblöcke für nicht intrainterne Makroblocks unter Verwendung von 8-Bit-signierten Beispielen und für intramakroblocks in einem Format, das vom Wert ConfigIntraResidUnsignedabhängt:

  • Wenn ConfigIntraResidUnsigned 0 ist, werden räumliche Domänenblöcke für intramakroblocks als 8-Bit-ganzzahlige Werte relativ zu einem Konstantenverweiswert von 2^(BPP-1) gesendet.
  • Wenn ConfigIntraResidUnsigned 1 ist, werden räumliche Domänenblöcke für intramakroblocks als 8-Bit-ganzzahlige 8-Bit-Werte relativ zu einem Konstantenverweiswert von 0 gesendet.

Wenn ConfigResidDiffHost- 1 ist und ConfigSpatialResid8 0 ist, sendet der Host restdifferenzige räumliche Domänenblöcke von Daten für nicht intrainterne Makroblocks unter Verwendung von 16-Bit-signierten Beispielen und für Intramakroblocks in vorhergesagten (nicht intra) Bildern in einem Format, das vom Wert ConfigIntraResidUnsignedabhängt:

  • Wenn ConfigIntraResidUnsigned 0 ist, werden räumliche Domänenblöcke für intramakroblocks als 16-Bit-ganzzahlige Werte relativ zu einem Konstantenverweiswert von 2^(BPP-1) gesendet.
  • Wenn ConfigIntraResidUnsigned 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 0 gesendet.
  • Wenn ConfigResidDiffHost- 0 ist, muss ConfigSpatialResid8- 0 sein.

Bei Intrabildern müssen räumliche Domänenblöcke mit 8-Bit-Beispielen gesendet werden, wenn Bits pro Pixel (BPP) 8 sind und 16-Bit-Beispiele verwendet werden, wenn BPP > 8. Wenn ConfigIntraResidUnsigned 0 ist, werden diese Beispiele als signierte ganzzahlige Werte relativ zu einem konstanten Bezugswert von 2^(BPP-1) gesendet, und wenn ConfigIntraResidUnsigned 1 ist, werden diese Beispiele als nicht signierte ganzzahlige Werte relativ zu einem konstanten Bezugswert von 0 gesendet.

ConfigResid8Subtraction

Wenn der Wert 1 ist, werden 8-Bit-Ü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, die Decodierung der 8-Bit-Differenz vollständig mit dem vollständigen ±255-Wertebereich kompatibel zu sein, der in den Videodecoderspezifikationen erforderlich ist, da +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 (+255 = +127 minus –128) dargestellt werden.

ConfigSpatialHost8or9Clipping

Wenn der Wert 1 ist, müssen räumliche Domänenblöcke für intramakroblocks auf einen 8-Bit-Bereich auf dem Host und räumliche Domänenblöcke für nicht intrainterne Makroblocks auf einen 9-Bit-Bereich auf dem Host zugeschnitten werden. Wenn der Wert 0 ist, ist kein solcher Clipping vom Host erforderlich.

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

ConfigSpatialResidInterleaved

Wenn der Wert "1" ist, müssen restdirierte Daten der räumlichen Domäne in einer Chrominanz-interleaved-Form gesendet werden, die dem Chrominanz-Interleavingmuster des YUV-Formats entspricht. Der Wert muss 0 sein, es sei denn, ConfigResidDiffHost 1 ist und das YUV-Format NV12 oder NV21 ist.

ConfigIntraResidUnsigned

Gibt die Methode der Darstellung von räumlichen Domänenblöcken von Restdifferenzdaten für Intrablöcke bei Verwendung der hostbasierten Differenzdecodierung an.

Wenn ConfigResidDiffHost- 1 ist und ConfigIntraResidUnsigned 0 ist, müssen datenblöcke für räumliche Domänen für intramakroblocks wie folgt gesendet werden:

  • Wenn ConfigSpatialResid8 0 ist, werden in einem nicht intrainternen Bild die Datenblöcke der räumlichen Domäne für intramakroblocks als 16-Bit-ganzzahlige Werte relativ zu einem konstanten Referenzwert von 2^(BPP–1) gesendet.
  • Wenn ConfigSpatialResid8 den Wert 1 aufweist, werden die Datenblöcke für intramakroblocks als 8-Bit-ganzzahlige 8-Bit-Werte gesendet, wenn ConfigSpatialResid8 den Wert 2^(BPP–1) aufweist.
  • In einem Intrabild werden bei BPP 8 die Datenblöcke der räumlichen Domäne für intramakroblocks als 8-Bit-ganzzahlige Werte relativ zu einem konstanten Referenzwert von 2^(BPP-1) gesendet, unabhängig vom Wert von ConfigSpatialResid8.

Wenn ConfigResidDiffHost- 1 ist und ConfigIntraResidUnsigned 1 ist, müssen Datenblöcke für restdizierte räumliche Domänen für intramakroblocks wie folgt gesendet werden:

  • Wenn ConfigSpatialResid8 0 ist, müssen in einem nicht intrainternen Bild die Datenblöcke der räumlichen Domäne für intramakroblocks als 16-Bit-ganzzahlige Werte im Verhältnis zu einem Konstantenverweiswert von 0 gesendet werden.
  • Wenn ConfigSpatialResid8 den Wert 1 aufweist, werden in einem nicht intrainternen Bild die Datenblöcke der räumlichen Domäne für intramakroblocks als 8-Bit-ganzzahlige Werte als 8-Bit-ganzzahlige Werte im Verhältnis zu einem konstanten Bezugswert von 0 gesendet.
  • Wenn BPP 8 ist, werden in einem intrasignierten Bild die datenblöcke der räumlichen Domäne für intramakroblocks als 8-Bit-ganzzahlige Werte im Verhältnis zu einem konstanten Bezugswert von 0 gesendet, unabhängig vom Wert von ConfigSpatialResid8.

Der Wert des Elements 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 zugriffsbasierte IDCT gesendet werden. Wenn der Wert 0 ist, werden zugriffsbasierte IDCT nicht verwendet. Wenn sowohl ConfigResidDiffHost als auch ConfigResidDiffAccelerator 1 sind, bedeutet dies, dass einige Restunterschiededecodierung auf dem Host und einige auf der Zugriffstaste durchgeführt werden, wie durch Befehle auf Makroblockebene angegeben.

Der Wert muss 0 sein, wenn ConfigBitstreamRaw- 1 ist.

ConfigHostInverseScan

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

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

ConfigSpecificIDCT

Wenn der Wert 1 ist, wird das IDCT in Anhang W der ITU-T Empfehlung H.263 verwendet, das in Anhang W der Empfehlung H.263 angegeben ist. Wenn der Wert 0 ist, kann jeder kompatible IDCT für off-host IDCT verwendet werden.

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

Der Wert muss 0 sein, wenn ConfigResidDiffAccelerator- 0 ist und 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 ist oder ConfigHostInverseScan- 1 ist.

ConfigMinRenderTargetBuffCount

Gibt an, wie viele Frames das Decodergerät zu einem beliebigen Zeitpunkt verarbeitet.

ConfigDecoderSpecific

Enthält Decoderspezifische Konfigurationsinformationen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8
mindestens unterstützte Server- Windows Server 2012
Header- d3d10umddi.h (include D3d10umddi.h)

Siehe auch

D3DWDDM2_0DDI_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION

DXVA_TCoef4Group

DXVA_TCoefSingle