D3D11_VIDEO_DECODER_CONFIG-Struktur (d3d11.h)
Beschreibt die Konfiguration eines Microsoft Direct3D 11-Decodergeräts für die DirectX-Videobeschleunigung (DXVA).
Syntax
typedef struct D3D11_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_VIDEO_DECODER_CONFIG;
Member
guidConfigBitstreamEncryption
Wenn die Bitstreamdatenpuffer mit dem D3D11CryptoSession-Mechanismus verschlüsselt werden, sollte diese GUID auf Null festgelegt werden. Wenn keine Verschlüsselung angewendet wird, wird der Wert DXVA_NoEncrypt. Wenn ConfigBitstreamRaw 0 ist, muss der Wert DXVA_NoEncrypt sein.
guidConfigMBcontrolEncryption
Wenn die Makroblocksteuerelementdatenpuffer mit dem D3D11CryptoSession-Mechanismus verschlüsselt werden, sollte diese GUID auf Null festgelegt werden. Wenn keine Verschlüsselung angewendet wird, wird der Wert DXVA_NoEncrypt. Wenn ConfigBitstreamRaw 1 ist, muss der Wert DXVA_NoEncrypt sein.
guidConfigResidDiffEncryption
Wenn die Restdifferenzdecodierungsdatenpuffer mit dem D3D11CryptoSession-Mechanismus verschlüsselt werden, sollte diese GUID auf Null festgelegt werden. 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 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.
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 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.
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
Unterstützte Mindestversion (Client) | Windows 8 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [Desktop-Apps | UWP-Apps] |
Kopfzeile | d3d11.h |