Condividi tramite


struttura DXVA_MBctrl_I_HostResidDiff_1 (dxva.h)

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

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;

Membri

wMBaddress

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

wMBtype

Specifica il tipo di blocco macro da elaborare. 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 di immagini 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 di bit riservati
Deve essere zero.
10 HostResidDiff
Specifica se i blocchi decodificati di differenza residua del dominio spaziale vengono inviati o se i coefficienti di trasformazione vengono inviati per IDCT fuori 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 usano 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 macro 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 dei blocchi di differenza residua. 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 macro. In un'immagine interna, i dati sulle differenze residui 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 i blocchi i, dove i è l'indice del blocco all'interno del blocco come specificato nelle figure MPEG-2 6-10, 6-11 e 6-12 (ordine di analisi raster per Y, seguito da 4:2:0 blocchi di Cb nell'ordine 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 (aumentando i). Per i dati 4:2:0 MPEG-2, il valore di wPatternCode corrisponde allo spostamento del valore decodificato del CBP (modello a blocchi codificati) a sinistra di sei posizioni di bit (quelle posizioni di bit inferiori usate per i formati 4:2:2 e 4:4:4).

Se il bConfigSpatialResidInterleaved membro della struttura DXVA_ConfigPictureDecode è 1, le differenze dei residui basati su host vengono inviate in un formato interleaved cromatico corrispondente a quello del formato pixel YUV in uso. In questo caso, ogni coppia cb e di blocchi cr corrispondente nello spazio viene considerata come una singola unità di struttura della differenza residua. Ciò 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 delle differenze residui 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 wPatternCode bit uguale a zero.

wPC_Overflow

Deve essere zero.

dwReservedBits2

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

Osservazioni

I macroblock ignorati non vengono usati da immagini intra, 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.

Fabbisogno

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

Vedere anche

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_PictureParameters

DXVA_TCoefSingle