Freigeben über


DXVA_TCoefSingle-Struktur (dxva.h)

Die DXVA_TCoefSingle-Struktur wird vom Hostdecoder an den Accelerator gesendet, um IDCT-Koeffizientenwerte anzugeben.

Syntax

typedef struct _DXVA_TCoefSingle {
  WORD  wIndexWithEOB;
  SHORT TCoefValue;
} DXVA_TCoefSingle, *LPDXVA_TCoefSingle;

Member

wIndexWithEOB

Dieses Element enthält zwei Felder: TCoefIDX und TCoefEOB.

TCoefIDX

Gibt den Scanindex des Koeffizienten im Block an, der vom bConfigHostInverseScan-Element der DXVA_ConfigPictureDecode-Struktur bestimmt wird. Dieses Feld befindet sich in den 15 wichtigsten Bits des wIndexWithEOB-Elements .

Es gibt zwei Möglichkeiten, TCoefIDX zu verwenden:

  1. Reihenfolge der Ausführungsdauer: Wenn bConfigHostInverseScan null ist, gibt das MBscanMethod-Element des Makroblock-Steuerelementbefehls eine Zickzack-, alternative vertikale oder alternative horizontale inverse Überprüfung an. Diese Makroblocksteuerungsbefehle sind in den folgenden Strukturen definiert: DXVA_MBctrl_I_OffHostIDCT_1 oder DXVA_MBctrl_P_OffHostIDCT_1. In diesem Fall enthält TCoefIDX die Anzahl der nullwertigen Koeffizienten, die dem aktuellen Koeffizienten in der angegebenen Scanreihenfolge nach dem letzten übertragenen Koeffizienten für den Block vorangestellt sind (oder relativ zum Anfang des Blocks, wenn keiner vorangeht). Alle verbleibenden Koeffizienten nach dem letzten gesendeten Koeffizienten in umgekehrter Scanreihenfolge werden impliziert, dass sie den Wert null haben.
  2. Beliebige Reihenfolge: Wenn bConfigHostInverseScan den Wert 1 aufweist, gibt das MBscanMethod-Element des Makroblock-Steuerelementbefehls eine beliebige Reihenfolge an. Diese Makroblocksteuerungsbefehle sind in den folgenden Strukturen definiert: DXVA_MBctrl_I_OffHostIDCT_1 und DXVA_MBctrl_P_OffHostIDCT_1. In diesem Fall enthält TCoefIDX einfach den Rasterindex des Koeffizienten innerhalb des Blocks (TCoefIDX = u + 8 * v, wobei Sie und v die horizontalen und vertikalen Frequenzkoordinaten der Transformationsdomäne sind), und alle nicht gesendeten Koeffizienten werden mit dem Wert 0 impliziert.
TCoefIDX muss immer kleiner als 64 sein.

TCoefEOB

Gibt an, ob der aktuelle Koeffizienten der letzte ist, der dem aktuellen Transformationskoeffizientenblock zugeordnet ist. Der Wert 1 gibt an, dass der aktuelle Koeffizienten der letzte für den Block ist, und der Wert 0 (null) gibt an, dass er nicht ist. Dieses Feld befindet sich im kleinsten Bit des wIndexWithEOB-Elements .

TCoefValue

Gibt den Wert des Koeffizienten im Block an. TCoefValue muss auf den entsprechenden Bereich zugeschnitten werden, wie in Low-Level IDCT Processing Elements vom Host angegeben, bevor der Koeffizientenwert für den IDCT-Vorgang an den Accelerator übergeben wird. Die Mpeg-2-Konfliktsteuerung liegt bei Bedarf auch in der Verantwortung des Hosts, nicht des Accelerators. (Dies kann die Erstellung zusätzlicher "Phantom"-Koeffizienten ungleich 0 erfordern.)

Hinweise

Die DXVA_TCoefSingle-Struktur wird immer verwendet, wenn das HostResidDiff-Flag (Bit 10 im wMBtype-Member der DXVA_MBctrl_P_OffHostIDCT_1 - oder DXVA_MBctrl_I_OffHostIDCT_1-Struktur ) 1 und das bConfig4GroupedCoefs-Element der DXVA_ConfigPictureDecode-Struktur null ist.

Anforderungen

Anforderung Wert
Header dxva.h (dxva.h einschließen)

Weitere Informationen

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1