DXVA_PicParams_AV1 struttura (dxva.h)
La struttura DXVA_PicParams_AV1 fornisce i parametri a livello di immagine di un'immagine compressa per la decodifica video AV1.
Sintassi
typedef struct _DXVA_PicParams_AV1 {
UINT width;
UINT height;
UINT max_width;
UINT max_height;
UCHAR CurrPicTextureIndex;
UCHAR superres_denom;
UCHAR bitdepth;
UCHAR seq_profile;
struct {
UCHAR cols;
UCHAR rows;
USHORT context_update_id;
USHORT widths[64];
USHORT heights[64];
} tiles;
union {
struct {
UINT use_128x128_superblock : 1;
UINT intra_edge_filter : 1;
UINT interintra_compound : 1;
UINT masked_compound : 1;
UINT warped_motion : 1;
UINT dual_filter : 1;
UINT jnt_comp : 1;
UINT screen_content_tools : 1;
UINT integer_mv : 1;
UINT cdef : 1;
UINT restoration : 1;
UINT film_grain : 1;
UINT intrabc : 1;
UINT high_precision_mv : 1;
UINT switchable_motion_mode : 1;
UINT filter_intra : 1;
UINT disable_frame_end_update_cdf : 1;
UINT disable_cdf_update : 1;
UINT reference_mode : 1;
UINT skip_mode : 1;
UINT reduced_tx_set : 1;
UINT superres : 1;
UINT tx_mode : 2;
UINT use_ref_frame_mvs : 1;
UINT enable_ref_frame_mvs : 1;
UINT reference_frame_update : 1;
UINT Reserved : 5;
};
UINT32 CodingParamToolFlags;
} coding;
union {
struct {
UCHAR frame_type : 2;
UCHAR show_frame : 1;
UCHAR showable_frame : 1;
UCHAR subsampling_x : 1;
UCHAR subsampling_y : 1;
UCHAR mono_chrome : 1;
UCHAR Reserved : 1;
};
UCHAR FormatAndPictureInfoFlags;
} format;
UCHAR primary_ref_frame;
UCHAR order_hint;
UCHAR order_hint_bits;
DXVA_PicEntry_AV1 frame_refs[7];
UCHAR RefFrameMapTextureIndex[8];
struct {
UCHAR filter_level[2];
UCHAR filter_level_u;
UCHAR filter_level_v;
UCHAR sharpness_level;
union {
struct {
UCHAR mode_ref_delta_enabled : 1;
UCHAR mode_ref_delta_update : 1;
UCHAR delta_lf_multi : 1;
UCHAR delta_lf_present : 1;
UCHAR Reserved : 4;
};
UCHAR ControlFlags;
} DUMMYUNIONNAME;
CHAR ref_deltas[8];
CHAR mode_deltas[2];
UCHAR delta_lf_res;
UCHAR frame_restoration_type[3];
USHORT log2_restoration_unit_size[3];
UINT16 Reserved16Bits;
} loop_filter;
struct {
union {
struct {
UCHAR delta_q_present : 1;
UCHAR delta_q_res : 2;
UCHAR Reserved : 5;
};
UCHAR ControlFlags;
} DUMMYUNIONNAME;
UCHAR base_qindex;
CHAR y_dc_delta_q;
CHAR u_dc_delta_q;
CHAR v_dc_delta_q;
CHAR u_ac_delta_q;
CHAR v_ac_delta_q;
UCHAR qm_y;
UCHAR qm_u;
UCHAR qm_v;
UINT16 Reserved16Bits;
} quantization;
struct {
union {
struct {
UCHAR damping : 2;
UCHAR bits : 2;
UCHAR Reserved : 4;
};
UCHAR ControlFlags;
} DUMMYUNIONNAME;
union {
struct {
UCHAR primary : 6;
UCHAR secondary : 2;
};
UCHAR combined;
};
__unnamed_union_1541_60 y_strengths[8];
union {
struct {
UCHAR primary : 6;
UCHAR secondary : 2;
};
UCHAR combined;
};
__unnamed_union_1541_62 uv_strengths[8];
} cdef;
UCHAR interp_filter;
struct {
union {
struct {
UCHAR enabled : 1;
UCHAR update_map : 1;
UCHAR update_data : 1;
UCHAR temporal_update : 1;
UCHAR Reserved : 4;
};
UCHAR ControlFlags;
} DUMMYUNIONNAME;
UCHAR Reserved24Bits[3];
union {
struct {
UCHAR alt_q : 1;
UCHAR alt_lf_y_v : 1;
UCHAR alt_lf_y_h : 1;
UCHAR alt_lf_u : 1;
UCHAR alt_lf_v : 1;
UCHAR ref_frame : 1;
UCHAR skip : 1;
UCHAR globalmv : 1;
};
UCHAR mask;
};
__unnamed_union_1541_67 feature_mask[8];
SHORT feature_data[8][8];
} segmentation;
struct {
union {
struct {
USHORT apply_grain : 1;
USHORT scaling_shift_minus8 : 2;
USHORT chroma_scaling_from_luma : 1;
USHORT ar_coeff_lag : 2;
USHORT ar_coeff_shift_minus6 : 2;
USHORT grain_scale_shift : 2;
USHORT overlap_flag : 1;
USHORT clip_to_restricted_range : 1;
USHORT matrix_coeff_is_identity : 1;
USHORT Reserved : 3;
};
USHORT ControlFlags;
} DUMMYUNIONNAME;
USHORT grain_seed;
UCHAR scaling_points_y[14][2];
UCHAR num_y_points;
UCHAR scaling_points_cb[10][2];
UCHAR num_cb_points;
UCHAR scaling_points_cr[10][2];
UCHAR num_cr_points;
UCHAR ar_coeffs_y[24];
UCHAR ar_coeffs_cb[25];
UCHAR ar_coeffs_cr[25];
UCHAR cb_mult;
UCHAR cb_luma_mult;
UCHAR cr_mult;
UCHAR cr_luma_mult;
UCHAR Reserved8Bits;
SHORT cb_offset;
SHORT cr_offset;
} film_grain;
UINT Reserved32Bits;
UINT StatusReportFeedbackNumber;
} DXVA_PicParams_AV1, *LPDXVA_PicParams_AV1;
Members
width
Larghezza codificata del frame corrente. Corrisponde all'elemento sintassi frame_width_minus_1. Vedere la sezione Osservazioni.
height
Altezza codificata del frame corrente. Corrisponde all'elemento sintassi frame_height_minus_1. Vedere la sezione Osservazioni.
max_width
max_height
CurrPicTextureIndex
Indice di buffer/superficie del frame di destinazione per l'immagine decodificata.
superres_denom
Quando viene abilitato il superres, questo campo specifica il denominatore per calcolare la larghezza del frame aggiornata. Corrisponde al valore SuperresDenom dalla specifica AV1. Quando le superre non sono abilitate, questo valore sarà 8.
bitdepth
Profondità bit dei campioni decodificati luma e chroma. I valori consentiti sono limitati dal valore del profilo.
seq_profile
Profilo del bitstream AV1. Corrisponde all'elemento sintassi: seq_profile. Il formato di codifica video AV1 definisce i profili seguenti:
Profilo | Significato |
---|---|
profilo 0 | Supporta il campionamento di 4:2:0 con 8 o 10 bit per esempio e formati monocromatici. |
profilo 1 | Supporta il campionamento di 4:4:4 chroma con 8 o 10 bit per esempio. |
profilo 2 | Supporta il campionamento 4:2:0, 4:2:2 o 4:4:4 a 8, 10 o 12 bit per esempio e formati monocromatici. |
tiles
Contiene informazioni specifiche per i riquadri.
tiles.cols
Numero di riquadri in una cornice. Questo campo corrisponde a 2^TileColsLog2 dalla specifica AV1.
tiles.rows
Numero di riquadri verso il basso di una cornice. Questo campo corrisponde a 2^TileRowsLog2 dalla specifica AV1.
tiles.context_update_id
Specifica il riquadro da usare per l'aggiornamento CDF. Corrisponde all'elemento di sintassi denominato context_update_tile_id dalla specifica AV1.
tiles.widths[64]
Le larghezze di ogni riquadro, in unità di superblock. Sono valide solo le prime voci di 2^cols_log2. Questo campo corrisponde alla variabile tileWidthSb dalla specifica AV1.
tiles.heights[64]
Altezza di ogni riquadro, in unità di superblocks. Sono valide solo le prime 2^rows_log2 voci di altezza. Questo campo corrisponde alla variabile tileHeightSb dalla specifica AV1.
coding
Strumenti di codifica.
coding.use_128x128_superblock
Se uguale a 1, indica che i superblock contengono 128x128 campioni di luma; in caso contrario, i superblock contengono esempi di luma 64x64. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
coding.intra_edge_filter
Specifica se il processo di filtro intra edge deve essere abilitato. Questo campo corrisponde all'elemento sintassi denominato enable_intra_edge_filter dalla specifica AV1.
coding.interintra_compound
Se uguale a 1, indica che le informazioni sulla modalità per i blocchi inter blocchi possono contenere l'elemento sintassi interintra; in caso contrario, l'elemento sintassi interintra non sarà presente. Questo campo corrisponde all'elemento sintassi denominato enable_interintra_compound dalla specifica AV1.
coding.masked_compound
Se uguale a 1, indica che le informazioni sulla modalità per i blocchi inter possono contenere l'elemento sintassi compound_type; in caso contrario, l'elemento sintassi compound_type non sarà presente. Questo campo corrisponde all'elemento sintassi denominato enable_masked_compound dalla specifica AV1.
coding.warped_motion
Se uguale a 1, indica che l'elemento sintassi motion_mode può essere presente. Questo campo corrisponde all'elemento sintassi denominato allow_warped_motion dalla specifica AV1.
coding.dual_filter
Se uguale a 1, indica che il tipo di filtro tra stime può essere specificato in modo indipendente nelle direzioni orizzontali e verticali; in caso contrario, è possibile specificare un solo tipo di filtro. Questo campo corrisponde all'elemento sintassi denominato enable_dual_filter dalla specifica AV1.
coding.jnt_comp
Se uguale a 1, indica che il processo di pesi di distanza può essere usato per la stima inter. Questo campo corrisponde all'elemento sintassi denominato enable_jnt_comp dalla specifica AV1.
coding.screen_content_tools
Se uguale a 1, indica che i blocchi intra possono usare la codifica della tavolozza; in caso contrario, la codifica della tavolozza non verrà usata. Questo campo corrisponde all'elemento sintassi denominato allow_screen_content_tools dalla specifica AV1.
coding.integer_mv
Se uguale a 1, indica che i vettori di movimento saranno sempre interi. Questo campo corrisponde all'elemento sintassi denominato force_integer_mv dalla specifica AV1.
coding.cdef
Quando è uguale a 1, indica che è possibile abilitare il filtro Constrained Directional Enhancement Filter (CDEF). Questo campo corrisponde all'elemento sintassi denominato enable_cdef dalla specifica AV1.
coding.restoration
Se uguale a 1, indica che il filtro di ripristino del ciclo può essere abilitato. Questo campo corrisponde all'elemento sintassi denominato enable_restoration dalla specifica AV1.
coding.film_grain
Se uguale a 1, indica che l'elaborazione della grana del film può essere abilitata. Questo campo corrisponde all'elemento sintassi denominato film_grain_params_present dalla specifica AV1.
coding.intrabc
Se uguale a 1, indica che può essere usata la copia intra block. Questo campo corrisponde all'elemento sintassi denominato allow_intrabc dalla specifica AV1.
coding.high_precision_mv
Se uguale a 1, indica che i vettori di movimento vengono specificati in ottava precisione pel; in caso contrario, i vettori di movimento vengono specificati in precisione del quarto pel. Questo campo corrisponde all'elemento sintassi denominato allow_high_precision_mv dalla specifica AV1.
coding.switchable_motion_mode
Se uguale a 1, indica che è possibile usare solo la modalità di movimento SIMPLE. Questo campo corrisponde all'elemento sintassi denominato is_motion_mode_switchable dalla specifica AV1.
coding.filter_intra
Se uguale a 1, indica che l'elemento sintassi use_filter_intra può essere presente. Questo campo corrisponde all'elemento sintassi denominato enable_filter_intra dalla specifica AV1.
coding.disable_frame_end_update_cdf
Specifica se le matrici CDF vengono salvate nel processo di uscita del decodificatore simboli. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
coding.disable_cdf_update
Specifica se l'aggiornamento CDF nel processo di decodifica dei simboli deve essere disabilitato. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
coding.reference_mode
Controlla la modalità utilizzata per la stima del frame di riferimento. Può essere uno dei valori seguenti che corrispondono alla modalità di riferimento dal processo di decodifica AV1:
reference_mode | Nome di reference_mode |
---|---|
0 | SINGLE_REFERENCE |
1 | REFERENCE_MODE_SELECT |
coding.skip_mode
Indica se la sintassi della modalità skip può essere specificata nella stima composta. Questo campo corrisponde all'elemento sintassi skip_mode_present dalla specifica AV1.
coding.reduced_tx_set
Specifica se il frame usa un set limitato di tipi di trasformazione. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
coding.superres
Specifica se il frame usa la risoluzione superiore. Questo campo corrisponde all'elemento sintassi denominato use_superres dalla specifica AV1.
coding.tx_mode
Specifica la modalità di determinazione delle dimensioni della trasformazione. Questo campo corrisponde alla variabile dello stesso nome dalla specifica AV1. Può assumere uno dei valori seguenti, come specificato nella specifica AV1:
Valore TxMode | Nome di TxMode |
---|---|
0 | ONLY_4X4 |
1 | TX_MODE_LARGEST |
2 | TX_MODE_SELECT |
coding.use_ref_frame_mvs
Specifica se i vettori di movimento del frame precedente devono essere utilizzati per il frame corrente. Questo campo corrisponde all'elemento della sintassi con lo stesso nome della specifica AV1.
coding.enable_ref_frame_mvs
Specifica se use_ref_frame_mvs è disabilitato per l'intera sequenza video; quando 0 use_ref_frame_mvs saranno sempre 0. Questo campo corrisponde all'elemento della sintassi dello stesso nome della specifica AV1 (dall'intestazione della sequenza).
coding.reference_frame_update
Indica che il processo di aggiornamento del frame di riferimento come specificato nella sezione 7.20 della specifica AV1 deve essere eseguito dopo la decodifica di questo frame. In caso contrario, è necessario eseguire la sezione 7.21.
coding.Reserved
Campi di bit riservati per completare la struttura compressa. Deve essere impostato su 0. L'acceleratore ignorerà i valori nei campi di bit riservati.
coding.CodingParamToolFlags
Fornisce un modo alternativo per accedere ai campi di bit correlati ai flag dello strumento di codifica.
format
Contiene informazioni sul formato e sull'immagine.
format.frame_type
Tipo di frame del frame corrente. Questo campo corrisponde all'elemento della sintassi dello stesso nome nella specifica AV1 e influisce di conseguenza sul processo di decodifica. I valori consentiti sono 0, 1, 2 o 3, per i quattro tipi di frame AV1: KEY_FRAME, INTER_FRAME, INTRA_ONLY_FRAME e S_FRAME.
format.show_frame
Indica se il frame corrente deve essere restituito e visualizzato dopo il completamento della decodifica. Questo campo corrisponde all'elemento della sintassi dello stesso nome nella specifica AV1 e influisce di conseguenza sul processo di decodifica. In DXVA, questo non ha alcun effetto diretto, poiché l'host controlla la visualizzazione di fotogrammi decodificati separatamente da altre chiamate di funzione.
format.showable_frame
Se è uguale a 1, specifica che il frame può essere restituito usando il meccanismo di show_existing_frame; in caso contrario uguale a zero, che specifica che questo frame non verrà restituito usando il meccanismo di show_existing_frame.
format.subsampling_x
Insieme a subsampling_y, indica il formato di campionamento cromatico. Vedere la sezione Osservazioni.
format.subsampling_y
Insieme a subsampling_x, indica il formato di campionamento cromatico. Vedere la sezione Osservazioni.
format.mono_chrome
Indica se il bitstream è monocromatico. Se 1 è presente solo un piano luma. Questo campo corrisponde all'elemento della sintassi con lo stesso nome della sintassi color config della specifica AV1. I valori consentiti sono limitati dal valore del profilo.
format.Reserved
Campi di bit riservati per completare la struttura compressa. Deve essere impostato su 0. L'acceleratore ignorerà i valori nei campi di bit riservati.
format.FormatAndPictureInfoFlags
Fornisce un modo alternativo per accedere ai campi di bit correlati al formato e alle informazioni sull'immagine.
primary_ref_frame
Specifica il frame di riferimento che contiene i valori CDF e altri stati da caricare all'inizio del frame. Questo campo viene 0x7 quando non è presente un frame di riferimento primario. Corrisponde all'elemento della sintassi con lo stesso nome della specifica AV1.
order_hint
Ordinamento dell'output del frame corrente. Corrisponde a OrderHint dalla specifica AV1.
order_hint_bits
Corrisponde all'elemento della sintassi denominato order_hint_bits_minus_1 nella specifica AV1. Questo campo è definito come: order_hint_bits_minus_1 + 1. Questo campo sarà 0 quando enable_order_hint dalla specifica AV1 è 0.
Quando questo valore è 0, non devono essere usati strumenti basati su OrderHint e il valore di order_hint non è definito. Quando non è zero, influisce sul calcolo della distanza relativa di conseguenza (vedere la funzione get_relative_dist dalla specifica AV1).
frame_refs[7]
RefFrameMapTextureIndex[8]
Matrice di superfici del buffer frame non compresso. Le voci che non verranno utilizzate per decodificare l'immagine corrente o le immagini successive sono indicate impostando questo valore su 0xFF. Se il valore non è 0xFF, la voce può essere usata come superficie di riferimento per decodificare l'immagine corrente o un'immagine successiva in ordine di decodifica.
Tutte le superfici non compresse che corrispondono ai fotogrammi che possono essere utilizzate per riferimento nel processo di decodifica dell'immagine corrente o qualsiasi immagine successiva deve essere presente nella matrice RefFrameMapTextureIndex (indipendentemente dal fatto che queste immagini vengano effettivamente utilizzate nel processo di decodifica del frame corrente). Non viene specificato alcun ordine specifico per l'ordinamento delle voci nella matrice RefFrameMapTextureIndex .
Nota
L'acceleratore deve usare il contenuto di RefFrameMapTextureIndex come fornito dall'acceleratore anziché tentare di derivare queste informazioni dal bitstream (per garantire un'operazione senza stato per la quale la gestione del buffer dei frame decodificato deve essere eseguita sotto il controllo dell'host anziché dedotto dal bitstream dall'acceleratore).
loop_filter
Struttura con parametri di filtro del ciclo.
loop_filter.filter_level[2]
Matrice contenente i valori di forza del filtro del ciclo. Corrisponde all'elemento della sintassi dello stesso nome nella specifica AV1 e influisce sui processi di decodifica del filtro di deblocking di conseguenza. Per altre informazioni, vedere sharpness_level campo.
loop_filter.filter_level_u
loop_filter.filter_level_v
loop_filter.sharpness_level
Indica il livello di nitidezza. I valori filter_level e sharpness_level determinano insieme quando viene filtrato un bordo del blocco e in base alla quantità di filtri che può modificare i valori di esempio. Il processo di filtro del ciclo è descritto nella sezione 7.14 della specifica AV1.
loop_filter.DUMMYUNIONNAME
loop_filter.DUMMYUNIONNAME.mode_ref_delta_enabled
Se è uguale a 1, indica che il livello di filtro dipende dalla modalità e dal frame di riferimento usato per stimare un blocco. Questo campo corrisponde all'elemento della sintassi denominato loop_filter_delta_enabled dalla specifica AV1.
loop_filter.DUMMYUNIONNAME.mode_ref_delta_update
Se uguale a 1, indica che sono presenti elementi di sintassi aggiuntivi che specificano la modalità e i delta dei frame di riferimento da aggiornare. Questo campo corrisponde all'elemento della sintassi denominato loop_filter_delta_update dalla specifica AV1.
loop_filter.DUMMYUNIONNAME.delta_lf_multi
Se uguale a 1, indica che i delta del filtro a ciclo separato vengono inviati per bordi luma orizzontali, bordi luma verticali, bordi U e bordi V. Questo campo corrisponde all'elemento della sintassi denominato delta_lf_multi dalla specifica AV1.
loop_filter.DUMMYUNIONNAME.delta_lf_present
Se è uguale a 1, indica che sono presenti delta del filtro ciclo. Questa operazione è necessaria per il processo di decodifica del filtro del ciclo: read_delta_lf(). Questo campo corrisponde all'elemento della sintassi denominato delta_lf_present dalla specifica AV1.
loop_filter.DUMMYUNIONNAME.Reserved
Campi di bit riservati per completare la struttura compressa. Deve essere impostato su 0. L'acceleratore ignorerà i valori nei campi di bit riservati.
loop_filter.DUMMYUNIONNAME.ControlFlags
Fornisce un modo alternativo per accedere ai campi di bit correlati ai flag di filtro del ciclo.
loop_filter.ref_deltas[8]
Corrisponde all'elemento di sintassi denominato loop_filter_ref_deltas nella specifica AV1 e influisce sui processi di decodifica del filtro del ciclo di conseguenza.
loop_filter.mode_deltas[2]
Corrisponde all'elemento di sintassi denominato loop_filter_mode_deltas nella specifica AV1 e influisce sul processo di decodifica del filtro del ciclo di conseguenza.
loop_filter.delta_lf_res
Spostamento sinistro che deve essere applicato ai valori differenziali del filtro del ciclo decodificato. Questo campo corrisponde all'elemento della sintassi con lo stesso nome della specifica AV1.
loop_filter.frame_restoration_type[3]
Modalità di ripristino del ciclo per questo frame. Questo campo corrisponde all'elemento della sintassi FrameRestorationType della specifica AV1. Può essere uno dei valori seguenti, che sono gli stessi valori specificati nella specifica AV1:
FrameRestorationType | Nome di FrameRestorationType |
---|---|
0 | RESTORE_NONE |
1 | RESTORE_WIENER |
2 | RESTORE_SGRPROJ |
3 | RESTORE_SWITCHABLE |
loop_filter.log2_restoration_unit_size[3]
Dimensione log2 delle unità di ripristino del ciclo in unità di campioni nel piano corrente. L'elemento 0 corrisponde al piano luma, l'elemento 1 al piano U e l'elemento 2 al piano V. Questo campo corrisponde alla variabile log2(LoopRestorationSize[plane]) della specifica AV1.
loop_filter.Reserved16Bits
Campi di bit riservati per completare la struttura compressa. Deve essere impostato su 0. L'acceleratore ignorerà i valori nei campi di bit riservati.
quantization
Contiene informazioni sulla quantizzazione.
quantization.DUMMYUNIONNAME
quantization.DUMMYUNIONNAME.delta_q_present
Specifica se sono presenti i valori differenziali dell'indice quantizero. Questo campo corrisponde all'elemento della sintassi con lo stesso nome della specifica AV1.
quantization.DUMMYUNIONNAME.delta_q_res
Spostamento sinistro, che deve essere applicato ai valori differenziali dell'indice quantificatore decodificato. Questo campo corrisponde all'elemento della sintassi con lo stesso nome della specifica AV1.
quantization.DUMMYUNIONNAME.Reserved
Campi bit riservati per completare la struttura con pacchetto. Deve essere impostato su 0. L'acceleratore ignora i valori nei campi bit riservati.
quantization.DUMMYUNIONNAME.ControlFlags
Fornisce un modo alternativo per accedere ai campi bit correlati alla quantizzazione.
quantization.base_qindex
Indica il qindex del frame di base. Questo campo corrisponde all'elemento sintassi denominato base_q_idx dalla specifica AV1.
quantization.y_dc_delta_q
Quantizzatore dc Y rispetto al base_qindex. Questo campo corrisponde a DeltaQYDc dalla specifica AV1.
quantization.u_dc_delta_q
Quantizzatore dc U rispetto a base_qindex. Questo campo corrisponde a DeltaQUDc dalla specifica AV1.
quantization.v_dc_delta_q
Quantizer DC V relativo all'base_qindex. Questo campo corrisponde a DeltaQVDc dalla specifica AV1.
quantization.u_ac_delta_q
Quantizzatore ac U rispetto a base_qindex. Questo campo corrisponde a DeltaQUAc dalla specifica AV1.
quantization.v_ac_delta_q
Quantizzatore ac V relativo alla base_qindex. Questo campo corrisponde a DeltaQVAc dalla specifica AV1.
quantization.qm_y
Livello nella matrice quantizer che deve essere usato per la decodifica del piano luma. Quando non specificato (using_qmatrix=0), questo campo verrà 0xFF (che è un livello di matrice quantizer non valido). Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
quantization.qm_u
Livello nella matrice quantizer che deve essere usato per la decodifica del piano U. Quando non specificato (using_qmatrix=0), questo campo verrà 0xFF (che è un livello di matrice quantizer non valido). Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
quantization.qm_v
Livello nella matrice quantizer che deve essere usato per la decodifica del piano V. Quando non specificato (using_qmatrix=0), questo campo verrà 0xFF (che è un livello di matrice quantizer non valido). Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
quantization.Reserved16Bits
Riservato.
cdef
Parametri del filtro di miglioramento direzionale vincolato (CDEF).
cdef.DUMMYUNIONNAME
cdef.DUMMYUNIONNAME.damping
Controlla la quantità di umidità nel filtro di deringing. Questo campo corrisponde alla variabile denominata cdef_damping_minus_3 dalla specifica AV1.
cdef.DUMMYUNIONNAME.bits
Numero di bit usati per segnalare l'impostazione del filtro CDEF. Questo campo corrisponde all'elemento sintassi denominato cdef_bits dalla specifica AV1.
cdef.DUMMYUNIONNAME.Reserved
Campi bit riservati per completare la struttura con pacchetto. Deve essere impostato su 0. L'acceleratore ignora i valori nei campi bit riservati.
cdef.DUMMYUNIONNAME.ControlFlags
Fornisce un modo alternativo per accedere ai campi bit correlati ai parametri CDEF.
cdef.primary
Forza di filtro primaria per il canale y. Questo campo corrisponde a cdef_y_pri_strength dalla specifica AV1.
cdef.secondary
Forza del filtro secondario per il canale y. Questo campo corrisponde a cdef_y_sec_strength dalla specifica AV1.
cdef.combined
Fornisce un modo alternativo per accedere ai bit primari e secondari y_strengths.
cdef.y_strengths[8]
I punti di forza del filtro primario e secondario per il canale y.
cdef.uv_strengths[8]
I punti di forza del filtro primario e secondario per i canali UV. Corrisponde agli elementi di cdef_uv_pri_strength e cdef_uv_sec_strength sintassi dalla specifica AV1.
interp_filter
Corrisponde allo stesso elemento sintassi dello stesso nome nella specifica AV1 e influisce sul processo di decodifica dell'interpolazione del movimento di conseguenza. La tabella seguente mostra i valori possibili di interp_filter.
Valore | Tipo di filtro |
---|---|
0 | normale 8 tocco |
1 | tocco uniforme a 8 |
2 | nitido 8 tocco |
3 | Bilineare |
4 | tutti i filtri |
segmentation
Parametri di segmentazione.
segmentation.DUMMYUNIONNAME
segmentation.DUMMYUNIONNAME.enabled
Se uguale a 1, indica che questo frame usa lo strumento di segmentazione. Questo campo corrisponde all'elemento sintassi denominato segmentation_enabled dalla specifica AV1.
segmentation.DUMMYUNIONNAME.update_map
Se uguale a 1, indica che la mappa di segmentazione viene aggiornata durante la decodifica di questo frame. Questo campo corrisponde all'elemento sintassi denominato segmentation_update_map dalla specifica AV1.
segmentation.DUMMYUNIONNAME.update_data
Se uguale a 1, indica che vengono forniti nuovi parametri per ogni segmento. Questo campo corrisponde all'elemento di sintassi denominato segmentation_update_data dalla specifica AV1.
segmentation.DUMMYUNIONNAME.temporal_update
Quando uguale a 1, indica che gli aggiornamenti della mappa di segmentazione vengono codificati rispetto alla mappa di segmentazione esistente. Questo campo corrisponde all'elemento sintassi denominato segmentation_temporal_update dalla specifica AV1.
segmentation.DUMMYUNIONNAME.Reserved
Campi bit riservati per completare la struttura con pacchetto. Deve essere impostato su 0. L'acceleratore ignora i valori nei campi bit riservati.
segmentation.DUMMYUNIONNAME.ControlFlags
Fornisce un modo alternativo per accedere ai campi bit correlati alla segmentazione.
segmentation.Reserved24Bits[3]
Riservato.
segmentation.alt_q
segmentation.alt_lf_y_v
segmentation.alt_lf_y_h
segmentation.alt_lf_u
segmentation.alt_lf_v
segmentation.ref_frame
segmentation.skip
segmentation.globalmv
segmentation.mask
segmentation.feature_mask[8]
Specifica le funzionalità dei dati del segmento aggiornate in questo frame. Questo campo corrisponde all'elemento sintassi feature_enabled dalla specifica AV1.
segmentation.feature_data[8]
Specifica i valori delle funzionalità di segmentazione. Questo campo corrisponde all'elemento sintassi feature_value dalla specifica AV1.
film_grain
Parametri di granularità del film.
film_grain.DUMMYUNIONNAME
film_grain.DUMMYUNIONNAME.apply_grain
Se uguale a 1, indica che la grana del film deve essere aggiunta a questa cornice. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.DUMMYUNIONNAME.scaling_shift_minus8
Maiusc -8 applicato ai valori del componente chroma. Questo campo corrisponde all'elemento sintassi denominato grain_scaling_minus8 dalla specifica AV1.
film_grain.DUMMYUNIONNAME.chroma_scaling_from_luma
Quando è uguale a 1, specifica che il ridimensionamento del croma viene dedotto dal ridimensionamento luma. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.DUMMYUNIONNAME.ar_coeff_lag
Numero di coefficienti regressivi automatici per luma e chroma. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.DUMMYUNIONNAME.ar_coeff_shift_minus6
Intervallo di coefficienti regressivi automatici. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.DUMMYUNIONNAME.grain_scale_shift
Specifica la quantità di numeri casuali di Gaussian che devono essere ridimensionati durante il processo di sintesi della granularità. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.DUMMYUNIONNAME.overlap_flag
Se uguale a 1, indica che la sovrapposizione tra blocchi di grana del film deve essere applicata. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.DUMMYUNIONNAME.clip_to_restricted_range
Se uguale a 1, indica che il ritaglio all'intervallo con restrizioni (studio) deve essere applicato ai valori di esempio dopo aver aggiunto la granularità del film (vedere la semantica per color_range per una spiegazione dello swing di studio). Se uguale a 0, indica che il ritaglio all'intervallo completo deve essere applicato ai valori di esempio dopo aver aggiunto il granularità del film.
film_grain.DUMMYUNIONNAME.matrix_coeff_is_identity
film_grain.DUMMYUNIONNAME.Reserved
Campi bit riservati per completare la struttura con pacchetto. Deve essere impostato su 0. L'acceleratore ignora i valori nei campi bit riservati.
film_grain.DUMMYUNIONNAME.ControlFlags
Fornisce un modo alternativo per accedere ai campi bit correlati al granularità del film.
film_grain.grain_seed
Valore iniziale per il generatore di numeri pseudo-casuali utilizzato per la sintesi della grana del film. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.scaling_points_y[14]
Rappresenta le coordinate x,y per la funzione di ridimensionamento lineare a pezzi per il piano y. Si tratta di una matrice 2D, in ogni segmento a pezzi il primo valore specificato è la coordinata x (valore luma) e il secondo valore è il valore di ridimensionamento (y, output). Questo campo corrisponde all'elemento sintassi point_y_value dalla specifica AV1.
film_grain.num_y_points
Numero di segmenti a pezzi validi specificati in scaling_points_y. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.scaling_points_cb[10]
Rappresenta le coordinate x,y per la funzione di ridimensionamento lineare a pezzi per il piano cb. Si tratta di una matrice 2D, in ogni segmento a pezzi il primo valore specificato è la coordinata x (valore luma) e il secondo valore è il valore di ridimensionamento (y, output). Questo campo corrisponde all'elemento sintassi point_cb_value dalla specifica AV1.
film_grain.num_cb_points
Numero di segmenti a pezzi validi specificati in scaling_points_cb. Questo campo corrisponde agli elementi della sintassi dello stesso nome dalla specifica AV1.
film_grain.scaling_points_cr[10]
Rappresenta le coordinate x,y per la funzione di ridimensionamento lineare a pezzi per il piano cr. Si tratta di una matrice 2D, in ogni segmento a pezzi il primo valore specificato è la coordinata x (valore luma) e il secondo valore è il valore di ridimensionamento (y, output). Questo campo corrisponde all'elemento sintassi point_cr_value dalla specifica AV1.
film_grain.num_cr_points
Numero di segmenti a pezzi validi specificati in scaling_points_cr. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.ar_coeffs_y[24]
Coefficienti di regressione automatica per il piano Y. Questo campo corrisponde all'elemento sintassi ar_coeffs_y_plus_128 dalla specifica AV1.
film_grain.ar_coeffs_cb[25]
Coefficienti di regressione automatica per il piano U. Questo campo corrisponde all'elemento sintassi ar_coeffs_cb_plus_128 dalla specifica AV1.
film_grain.ar_coeffs_cr[25]
Coefficienti di regressione automatica per il piano V. Questo campo corrisponde all'elemento sintassi ar_coeffs_cr_plus_128 dalla specifica AV1.
film_grain.cb_mult
Moltiplicatore per il componente Cb usato nella derivazione dell'indice di input alla funzione di ridimensionamento dei componenti. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.cb_luma_mult
Moltiplicatore usato per il componente luma nella funzione di ridimensionamento del componente Cb. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.cr_mult
Moltiplicatore per il componente Cr usato nella derivazione dell'indice di input alla funzione di ridimensionamento dei componenti. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.cr_luma_mult
Moltiplicatore usato per il componente luma nella funzione di ridimensionamento dei componenti Cr. Questo campo corrisponde agli elementi della sintassi dello stesso nome dalla specifica AV1.
film_grain.Reserved8Bits
Riservato.
film_grain.cb_offset
Offset usato nella derivazione dell'indice di input alla funzione di ridimensionamento del componente Cb. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
film_grain.cr_offset
Offset usato nella derivazione dell'indice di input alla funzione di ridimensionamento dei componenti Cr. Questo campo corrisponde all'elemento sintassi dello stesso nome dalla specifica AV1.
Reserved32Bits
Riservato.
StatusReportFeedbackNumber
Numero arbitrario impostato dal decodificatore host da usare come tag nei dati di feedback del report di stato. Il valore non deve essere uguale a 0 e deve essere diverso in ogni chiamata a Esegui. Per altre informazioni, vedere la sezione Struttura dei dati del report di stato nella specifica di accelerazione video Direct X per la codifica video AV1.
Commenti
Se la larghezza e l'altezza sono derivate per il frame (ad esempio tramite il frame_size_override_flag), il decodificatore host deriva i valori appropriati e archivia il risultato in questi campi. Se le superres sono abilitate, questi valori rappresentano la risoluzione dei fotogrammi post-ridimensionata (definita nella specifica AV1 come UpscaledWidth).
I valori consentiti di subsampling_x e subsampling_y sono vincolati dal valore del profilo. La tabella seguente specifica i valori consentiti per subsampling_x e subsampling_y e i formati chroma associati.
subsampling_x | subsampling_y | Formato Chroma |
---|---|---|
1 | 1 | 4:2:0 |
1 | 0 | 4:2:2 |
0 | 0 | 4:4:4 |
Per informazioni dettagliate, vedere La specifica di accelerazione video Direct X per la codifica video AV1 , tra cui come usare questa struttura.
Requisiti
Requisito | Valore |
---|---|
Server minimo supportato | Windows Server 2022 |
Intestazione | dxva.h |