Condividi tramite


struttura DXVA_MBctrl_I_HostResidDiff_1 (dxva.h)

La struttura DXVA_MBctrl_I_HostResidDiff_1 viene inviata una volta per ogni macroblock dal decodificatore host all'acceleratore per specificare i comandi di controllo macroblock per un'immagine interna.

Sintassi

typedef struct _DXVA_MBctrl_I_HostResidDiff_1 {
  WORD  wMBaddress;
  WORD  wMBtype;
  DWORD dwMB_SNL;
  WORD  wPatternCode;
  WORD  wPC_Overflow;
  DWORD dwReservedBits2;
} DXVA_MBctrl_I_HostResidDiff_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)
Specifica la selezione verticale dei campi per i vettori di movimento corrispondenti inviati più avanti nel comando di controllo macroblock. Per il movimento basato su fotogrammi con una struttura dell'immagine cornice (ad esempio, per H.261 e H.263), questi bit devono essere tutti zero. I bit in MvertFieldSel_0, MvertFieldSel_1, MvertFieldSel_2 e MvertFieldSel_3 corrispondono ai bit motion_vertical_field_select[r][s] nella sezione 6.3.17.2 di MPEG-2.
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.
HostResidDiff è sempre uguale a 1 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
Deve essere zero.
7 e 6 MBscanMethod
Questi bit non hanno alcun significato e devono essere impostati su zero.
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 alla variabile 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

Specifica il numero di macroblock ignorati da generare dopo il blocco macro corrente e indica la posizione dei dati della differenza residua per i blocchi del blocco macroblock corrente. Questo membro contiene due variabili: MBskipsFollowing nei 8 bit più significativi e MBdataLocation nei 24 bit meno significativi. MBskipsFollowing indica il numero di macroblock ignorati da generare dopo il blocco macro corrente. MBdataLocation è un indice nel buffer dei dati del blocco di differenze residui. Questo indice indica la posizione dei dati di differenza residua per i blocchi del blocco macro corrente, espresso come multiplo di 32 bit.

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 questa struttura.

Bit (11-i) di wPatternCode (dove bit zero è 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 raster-scan, 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 (i blocchi con bit (11i) uguale 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 del CBP (modello di blocco codificato) a sinistra di sei posizioni di bit (quelle posizioni di bit inferiori usate per formati 4:2:2 e 4:4:4:4).

Se il membro bConfigSpatialResidInterleaved della struttura DXVA_ConfigPictureDecode è 1, le differenze residui basate su host vengono inviate in un formato cromatico interleaved corrispondente a quello del formato pixel YUV in uso. In questo caso, ogni coppia cb e cr corrispondente nello spazio dei blocchi viene considerata come una singola unità di struttura della differenza residua. Questo non modifica il valore o il significato di wPatternCode, ma implica che entrambi i membri di ogni coppia di blocchi di dati Cb e Cr vengono inviati ogni volta che uno di questi blocchi di dati ha il bit corrispondente impostato in wPatternCode. Se il bit in wPatternCode per un blocco di dati specifico è zero, i valori dei dati di differenza rimanenti corrispondenti devono essere inviati come zero ogni volta che questa associazione richiede l'invio di un blocco di dati di differenza residua per un blocco con un bit wPatternCode uguale a zero.

wPC_Overflow

Deve essere zero.

dwReservedBits2

Bit riservati utilizzati per la compressione e l'allineamento. Deve essere zero.

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_OffHostIDCT_1

DXVA_PictureParameters

DXVA_TCoefSingle