Condividi tramite


struttura DXVA_MBctrl_I_OffHostIDCT_1 (dxva.h)

La struttura DXVA_MBctrl_I_OffHostIDCT_1 viene inviata una volta per ogni macroblock dal decodificatore host all'acceleratore per specificare i comandi di controllo macroblock per le immagini 4:2:0 quando si usa IDCT off-host.

Sintassi

typedef struct _DXVA_MBctrl_I_OffHostIDCT_1 {
  WORD  wMBaddress;
  WORD  wMBtype;
  DWORD dwMB_SNL;
  WORD  wPatternCode;
  BYTE  bNumCoef[DXVA_NumBlocksPerMB_420];
} DXVA_MBctrl_I_OffHostIDCT_1;

Members

wMBaddress

Specifica l'indirizzo macroblock del macroblock corrente nell'ordine di analisi raster. Per esempi di indirizzi di macroblock, vedere indirizzi di macroblock.

wMBtype

Specifica il tipo di macroblock in fase di elaborazione. I bit seguenti definiscono l'elaborazione di macroblock.

Bit Descrizione
Da 15 a 12 MvertFieldSel_3 (bit 15, bit più significativo) tramite MvertFieldSel_0 (bit 12)
Deve essere zero.
11 Bit riservato
Deve essere zero.
10 HostResidDiff
Specifica se i blocchi decodificati della differenza residua del dominio spaziale vengono inviati o se i coefficienti di trasformazione vengono inviati per IDCT off-host per il macroblock corrente.
Il flag HostResidDiff è sempre uguale a zero in questa struttura. Questo flag deve essere zero se bConfigResidDiffHost è zero. Questo flag deve essere 1 se bConfigResidDiffAccelerator è zero. I membri bConfigResidDiffHost e bConfigResidDiffAccelerator sono contenuti nella struttura DXVA_ConfigPictureDecode .
9 e 8 MotionType
Questo non si applica alle immagini intra. Entrambi i bit devono essere zero.
7 e 6 MBscanMethod
Specifica il metodo scan del comando di controllo macroblock. Deve essere uguale a bPicScanMethod se bPicScanFixed è 1.
Se bConfigHostInverseScan è zero, MBscanMethod è uno dei valori seguenti:
  • Zero âˆ' zigzag scan (MPEG-2 Figura 7-2)
  • 1 âˆ' analisi alternativa verticale (MPEG-2 Figura 7-3)
  • 2 âˆ'analisi orizzontale alternativa (figura H.263 I.2 Parte a)
Se bConfigHostInverseScan è 1, MBscanMethod è uguale a 3, ovvero un'analisi arbitraria con indirizzo coefficiente assoluto. bPicScanMethod e bPicScanFixed sono membri di DXVA_PictureParameters . bConfigHostInverseScan è un membro di DXVA_ConfigPictureDecode.
5 FieldResidual
Indica se i blocchi di differenza residua utilizzano una struttura IDCT di campo come specificato in MPEG-2.
Deve essere 1 se il membro bPicStructure di DXVA_PictureParameters è 1 o 2. Se usato per MPEG-2, FieldResidual deve essere zero se il flag frame_pred_frame_DCT nella sintassi MPEG-2 è 1 e deve essere uguale all'elemento dct_type della sintassi MPEG-2 se dct_type è presente per il blocco macro.
4 H261LoopFilter
Deve essere zero.
3 Motion4MV
Deve essere zero.
2 MotionBackward
Deve essere zero.
1 MotionForward
Deve essere zero.
0 IntraMacroblock
Deve essere 1.

dwMB_SNL

wPatternCode

Indica se i dati di differenza residua vengono inviati per ogni blocco nel blocco macroblock. In un'immagine interna, i dati di differenza residua vengono inviati per ogni blocco nel blocco macroblock. I bit in wPatternCode che fanno riferimento a tutti i blocchi del blocco macro corrente devono essere 1 in DXVA_MBctrl_I_OffHostIDCT_1.

Bit (11-i) di wPatternCode (dove bit 0 è il bit meno significativo) indica se i dati di differenza residua vengono inviati per block i, dove i è l'indice del blocco all'interno del blocco come specificato nelle figure MPEG-2 figure 6-10, 6-11 e 6-12 (ordine di analisi raster per Y, seguito da 4:2:0 blocchi di Cb nell'ordine di analisi raster, seguito da 4:2:0 blocchi di Cr, seguiti da 4:2:2 blocchi di Cb, seguiti da 4:2:2 blocchi di Cr, seguiti da 4:4:4 blocchi di Cb, seguiti da 4:4:4 blocchi di Cr). I dati per i blocchi codificati (ovvero i blocchi con bit (11-i) uguali a 1) si trovano nel buffer di codifica residuo nello stesso ordine di indicizzazione (aumento i). Per i dati 4:2:0 MPEG-2, il valore di wPatternCode corrisponde allo spostamento del valore decodificato di CBP (modello di blocco codificato) a sinistra di sei posizioni di bit (posizioni in bit inferiori usate per i formati 4:2:2 e 4:4:4:4).

bNumCoef[DXVA_NumBlocksPerMB_420]

Ogni valore nella matrice bNumCoef indica il numero di coefficienti nel buffer dei dati della differenza residua per ogni blocco i del macroblock.

L'indice di matrice i è l'indice del blocco all'interno del blocco come specificato nelle figure video MPEG-2 6-10, 6-11 e 6-12 (ordine di scansione raster per Y, seguito da Cb, seguito da Cr).

Questo membro viene usato solo quando il flag HostResidDiff (bit 10 in wMBtype) è zero e bChromaFormat è 1 (4:2:0). Se usato nei formati 4:2:2 o 4:4:4, aumenterebbe le dimensioni dei comandi di controllo macroblock tipici oltre un limite di allineamento della memoria critico. Di conseguenza, il bit TCoefEOB all'interno della struttura DXVA_TCoefSingle viene usato per determinare il numero di coefficienti in ogni blocco in casi non 4:2:0.

Lo scopo di bNumCoef è indicare la quantità di dati presenti per ogni blocco nel buffer dei dati delle differenze residui, espresso come numero di coefficienti presenti. Quando il membro bConfig4GroupedCoefs della struttura DXVA_ConfigPictureDecode è 1, bNumCoef può contenere il numero effettivo di coefficienti inviati per il blocco o tale valore arrotondato per essere un multiplo di quattro. I dati per questi coefficienti si trovano nel buffer delle differenze residui nello stesso ordine.

Commenti

I macroblock ignorati non vengono usati da intra immagini, quindi la variabile MBskipsFollowing deve essere zero. La variabile MBdataLocation deve essere zero per il primo blocco macro nel buffer dei comandi del controllo macroblock. Per altre informazioni sulla generazione di macroblock ignorati, vedere Generazione di macroblock ignorati.

Requisiti

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

Vedi anche

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_HostResidDiff_1

DXVA_PictureParameters

DXVA_TCoefSingle