Share via


struttura DXVA_TCoefSingle (dxva.h)

La struttura DXVA_TCoefSingle viene inviata dal decodificatore host all'acceleratore per specificare i valori del coefficiente IDCT .

Sintassi

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

Members

wIndexWithEOB

Questo membro contiene due campi: TCoefIDX e TCoefEOB.

TCoefIDX

Specifica l'indice di analisi del coefficiente nel blocco, come determinato dal membro bConfigHostInverseScan della struttura DXVA_ConfigPictureDecode . Questo campo si trova nei 15 bit più significativi del membro wIndexWithEOB .

È possibile usare TCoefIDX in due modi:

  1. Ordinamento della lunghezza dell'esecuzione: quando bConfigHostInverseScan è zero, l'elemento MBscanMethod del comando di controllo macroblock indica un'analisi inversa alternativa, verticale o verticale alternativa. Questi comandi di controllo macroblock sono definiti nelle strutture seguenti: DXVA_MBctrl_I_OffHostIDCT_1 o DXVA_MBctrl_P_OffHostIDCT_1. In questo caso , TCoefIDX contiene il numero di coefficienti con valori zero che precedono il coefficiente corrente nell'ordine di analisi specificato, successivo all'ultimo coefficiente trasmesso per il blocco (o rispetto all'inizio del blocco se non lo precede). Tutti i coefficienti rimanenti dopo l'ultimo coefficiente inviato nell'ordine di analisi inversa sono impliciti per avere il valore zero.
  2. Ordinamento arbitrario: quando bConfigHostInverseScan è 1, l'elemento MBscanMethod del comando di controllo macroblock indica un ordinamento arbitrario. Questi comandi di controllo macroblock sono definiti nelle strutture seguenti: DXVA_MBctrl_I_OffHostIDCT_1 e DXVA_MBctrl_P_OffHostIDCT_1. In questo caso , TCoefIDX contiene semplicemente l'indice raster del coefficiente all'interno del blocco (TCoefIDX = u + 8 * v, dove si e v sono le coordinate di frequenza orizzontale e verticale del dominio di trasformazione) e tutti i coefficienti che non vengono inviati sono impliciti per avere il valore 0.
TCoefIDX deve essere sempre minore di 64.

TCoefEOB

Indica se il coefficiente corrente è l'ultimo associato al blocco corrente di coefficienti di trasformazione. Il valore 1 indica che il coefficiente corrente è l'ultimo per il blocco e un valore pari a zero indica che non lo è. Questo campo si trova nel bit meno significativo del membro wIndexWithEOB .

TCoefValue

Indica il valore del coefficiente nel blocco. TCoefValue deve essere ritagliato nell'intervallo appropriato, come specificato in Elementi di elaborazione IDCT di basso livello dall'host prima di passare il valore del coefficiente all'acceleratore per l'operazione IDCT . Il controllo MPEG-2 non corrispondente, se necessario, è anche responsabilità dell'host, non dell'acceleratore. (Ciò potrebbe richiedere la creazione di coefficienti non zero aggiuntivi "fantasma".

Commenti

La struttura DXVA_TCoefSingle viene usata ogni volta che il flag HostResidDiff (bit 10 nel membro wMBtype della struttura DXVA_MBctrl_P_OffHostIDCT_1 o DXVA_MBctrl_I_OffHostIDCT_1 ) è 1 e il membro bConfig4GroupedCoefs della struttura DXVA_ConfigPictureDecode è zero.

Requisiti

Requisito Valore
Intestazione dxva.h (include Dxva.h)

Vedi anche

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1