DXVA_PicParams_AV1 structure (dxva.h)
La structure DXVA_PicParams_AV1 fournit les paramètres au niveau de l’image d’une image compressée pour le décodage vidéo AV1.
Syntaxe
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;
Membres
width
Largeur codée du cadre actuel. Correspond à l’élément de syntaxe frame_width_minus_1. Consultez la section Notes.
height
Hauteur codée du frame actuel. Correspond à l’élément de syntaxe frame_height_minus_1. Consultez la section Notes.
max_width
max_height
CurrPicTextureIndex
Index de la mémoire tampon/surface du cadre de destination pour l’image décodée.
superres_denom
Lorsque les superpositions sont activées, ce champ spécifie le dénominateur pour le calcul de la largeur du cadre mis à jour. Cela correspond à la valeur SuperresDenom de la spécification AV1. Lorsque les superres ne sont pas activés, cette valeur doit être 8.
bitdepth
Profondeur de bits des échantillons décodés luma et chroma. Les valeurs autorisées sont limitées par la valeur de profil.
seq_profile
Profil du flux binaire AV1. Cela correspond à l’élément de syntaxe : seq_profile. Le format de codage vidéo AV1 définit les profils suivants :
Profil | Signification |
---|---|
profil 0 | Prend en charge l’échantillonnage chromatique 4 :2 :0 avec 8 ou 10 bits par échantillon et les formats monochromes. |
profil 1 | Prend en charge l’échantillonnage chromatique 4 :4 :4 avec 8 ou 10 bits par échantillon. |
profil 2 | Prend en charge l’échantillonnage chromatique 4 :2 :0, 4 :2 :2 ou 4 :4 :4 à 8, 10 ou 12 bits par échantillon et les formats monochromes. |
tiles
Contient des informations spécifiques aux vignettes.
tiles.cols
Nombre de vignettes sur un cadre. Ce champ correspond à 2^TileColsLog2 de la spécification AV1.
tiles.rows
Nombre de vignettes dans un cadre. Ce champ correspond à 2^TileRowsLog2 de la spécification AV1.
tiles.context_update_id
Spécifie la vignette à utiliser pour la mise à jour CDF. Cela correspond à l’élément de syntaxe nommé context_update_tile_id de la spécification AV1.
tiles.widths[64]
Largeurs de chaque vignette, en unités de superblocs. Seules les 2 premières entrées de largeurs cols_log2 sont valides. Ce champ correspond à la variable tileWidthSb de la spécification AV1.
tiles.heights[64]
Hauteurs de chaque vignette, en unités de superblocs. Seules les entrées des 2^premières hauteurs rows_log2 sont valides. Ce champ correspond à la variable tileHeightSb de la spécification AV1.
coding
Outils de codage.
coding.use_128x128_superblock
Lorsqu’il est égal à 1, indique que les superblocs contiennent des échantillons de luma de 128 x 128 ; sinon, les superblocks contiennent des échantillons luma 64x64. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
coding.intra_edge_filter
Spécifie si le processus de filtrage intra edge doit être activé. Ce champ correspond à l’élément de syntaxe nommé enable_intra_edge_filter de la spécification AV1.
coding.interintra_compound
Lorsque la valeur est égale à 1, indique que les informations de mode pour les blocs inter peuvent contenir l’élément de syntaxe interintra ; sinon, l’élément de syntaxe interintra n’est pas présent. Ce champ correspond à l’élément de syntaxe nommé enable_interintra_compound de la spécification AV1.
coding.masked_compound
Si la valeur est égale à 1, indique que les informations de mode pour les blocs inter peuvent contenir l’élément de syntaxe compound_type ; sinon, l’élément de syntaxe compound_type n’est pas présent. Ce champ correspond à l’élément de syntaxe nommé enable_masked_compound de la spécification AV1.
coding.warped_motion
Si la valeur est égale à 1, indique que l’élément syntax motion_mode peut être présent. Ce champ correspond à l’élément de syntaxe nommé allow_warped_motion de la spécification AV1.
coding.dual_filter
Lorsqu’il est égal à 1, indique que le type de filtre de prédiction inter peut être spécifié indépendamment dans les directions horizontale et verticale ; sinon, un seul type de filtre peut être spécifié. Ce champ correspond à l’élément de syntaxe nommé enable_dual_filter de la spécification AV1.
coding.jnt_comp
Lorsqu’il est égal à 1, indique que le processus de pondérations de distance peut être utilisé pour la prédiction inter. Ce champ correspond à l’élément de syntaxe nommé enable_jnt_comp de la spécification AV1.
coding.screen_content_tools
Lorsqu’il est égal à 1, indique que les blocs intra peuvent utiliser l’encodage de palette ; sinon, l’encodage de palette ne sera pas utilisé. Ce champ correspond à l’élément de syntaxe nommé allow_screen_content_tools de la spécification AV1.
coding.integer_mv
Lorsqu’il est égal à 1, indique que les vecteurs de mouvement seront toujours des entiers. Ce champ correspond à l’élément de syntaxe nommé force_integer_mv de la spécification AV1.
coding.cdef
Si la valeur est égale à 1, indique que le filtrage CDEF (Contrainte Directional Enhancement Filter) peut être activé. Ce champ correspond à l’élément de syntaxe nommé enable_cdef de la spécification AV1.
coding.restoration
Si la valeur est égale à 1, indique que le filtrage de restauration de boucle peut être activé. Ce champ correspond à l’élément de syntaxe nommé enable_restoration de la spécification AV1.
coding.film_grain
Si la valeur est égale à 1, indique que le traitement des grains de film peut être activé. Ce champ correspond à l’élément de syntaxe nommé film_grain_params_present de la spécification AV1.
coding.intrabc
Si la valeur est égale à 1, indique que la copie intra-bloc peut être utilisée. Ce champ correspond à l’élément de syntaxe nommé allow_intrabc de la spécification AV1.
coding.high_precision_mv
Lorsqu’il est égal à 1, indique que les vecteurs de mouvement sont spécifiés à la précision de huitième pel ; sinon, les vecteurs de mouvement sont spécifiés à la précision du quart de pel. Ce champ correspond à l’élément de syntaxe nommé allow_high_precision_mv de la spécification AV1.
coding.switchable_motion_mode
Lorsqu’il est égal à 1, indique que seul le mode de mouvement SIMPLE peut être utilisé. Ce champ correspond à l’élément de syntaxe nommé is_motion_mode_switchable de la spécification AV1.
coding.filter_intra
Lorsqu’il est égal à 1, indique que l’élément de syntaxe use_filter_intra peut être présent. Ce champ correspond à l’élément de syntaxe nommé enable_filter_intra de la spécification AV1.
coding.disable_frame_end_update_cdf
Spécifie si les tableaux CDF sont enregistrés dans le processus de sortie du décodeur de symbole. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
coding.disable_cdf_update
Spécifie si la mise à jour CDF dans le processus de décodage de symboles doit être désactivée. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
coding.reference_mode
Contrôle le mode utilisé pour la prédiction de trame de référence. Il peut s’agir de l’une des valeurs suivantes qui correspondent au mode de référence du processus de décodage AV1 :
reference_mode | Nom de reference_mode |
---|---|
0 | SINGLE_REFERENCE |
1 | REFERENCE_MODE_SELECT |
coding.skip_mode
Indique si la syntaxe du mode skip peut être spécifiée dans la prédiction composée. Ce champ correspond à l’élément de syntaxe skip_mode_present de la spécification AV1.
coding.reduced_tx_set
Spécifie si le frame utilise un ensemble restreint de types de transformation. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
coding.superres
Spécifie si le frame utilise une super résolution. Ce champ correspond à l’élément de syntaxe nommé use_superres de la spécification AV1.
coding.tx_mode
Spécifie la façon dont la taille de transformation est déterminée. Ce champ correspond à la variable du même nom de la spécification AV1. Il peut prendre l’une des valeurs suivantes, comme spécifié dans la spécification AV1 :
Valeur TxMode | Nom de TxMode |
---|---|
0 | ONLY_4X4 |
1 | TX_MODE_LARGEST |
2 | TX_MODE_SELECT |
coding.use_ref_frame_mvs
Spécifie si les vecteurs de mouvement de l’image précédente doivent être utilisés pour l’image actuelle. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
coding.enable_ref_frame_mvs
Spécifie si use_ref_frame_mvs est désactivé pour l’ensemble de la séquence vidéo ; quand 0 use_ref_frame_mvs sera toujours 0. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1 (à partir de l’en-tête de séquence).
coding.reference_frame_update
Indique que le processus de mise à jour du cadre de référence tel que spécifié par la section 7.20 de la spécification AV1 doit être effectué après le décodage de cette trame. Sinon, la section 7.21 doit être exécutée.
coding.Reserved
Champs de bits réservés pour terminer la structure packed. Doit être défini sur 0. L’accélérateur doit ignorer les valeurs dans les champs de bits réservés.
coding.CodingParamToolFlags
Fournit un autre moyen d’accéder aux champs de bits liés aux indicateurs d’outils de codage.
format
Contient des informations sur le format et l’image.
format.frame_type
Type d’image de l’image actuelle. Ce champ correspond à l’élément de syntaxe du même nom dans la spécification AV1 et affecte le processus de décodage en conséquence. Les valeurs autorisées sont 0, 1, 2 ou 3 pour les quatre types de trames AV1 : KEY_FRAME, INTER_FRAME, INTRA_ONLY_FRAME et S_FRAME.
format.show_frame
Indique si l’image actuelle est destinée à être sortie et affichée une fois son décodage terminé. Ce champ correspond à l’élément de syntaxe du même nom dans la spécification AV1 et affecte le processus de décodage en conséquence. Dans DXVA, cela n’a aucun effet direct, car l’hôte contrôle l’affichage des images décodées séparément par d’autres appels de fonction.
format.showable_frame
Lorsqu’il est égal à 1, spécifie que la trame peut être sortie à l’aide du mécanisme show_existing_frame ; sinon égal à zéro, ce qui spécifie que cette trame ne sera pas sortie à l’aide du mécanisme show_existing_frame.
format.subsampling_x
Avec subsampling_y, indique le format d’échantillonnage chromatique. Consultez la section Notes.
format.subsampling_y
Avec subsampling_x, indique le format d’échantillonnage chromatique. Consultez la section Notes.
format.mono_chrome
Indique si le flux de bits est monochrome. Si 1, seul un plan luma est présent. Ce champ correspond à l’élément de syntaxe du même nom de la syntaxe de configuration de couleur de la spécification AV1. Les valeurs autorisées sont limitées par la valeur de profil.
format.Reserved
Champs de bits réservés pour terminer la structure packed. Doit être défini sur 0. L’accélérateur doit ignorer les valeurs dans les champs de bits réservés.
format.FormatAndPictureInfoFlags
Fournit un autre moyen d’accéder aux champs de bits liés aux informations de format et d’image.
primary_ref_frame
Spécifie le cadre de référence qui contient les valeurs CDF et d’autres états qui doivent être chargés au début de l’image. Ce champ est 0x7 lorsqu’il n’existe pas de cadre de référence principal. Il correspond à l’élément de syntaxe du même nom de la spécification AV1.
order_hint
Ordre de sortie de l’image actuelle. Correspond à OrderHint de la spécification AV1.
order_hint_bits
Correspond à l’élément de syntaxe nommé order_hint_bits_minus_1 dans la spécification AV1. Ce champ est défini comme suit : order_hint_bits_minus_1 + 1. Ce champ sera 0 lorsque enable_order_hint de la spécification AV1 est 0.
Lorsque cette valeur est 0, aucun outil basé sur OrderHint ne doit être utilisé et la valeur de order_hint n’est pas définie. Lorsqu’il n’est pas égal à zéro, cela affecte le calcul de la distance relative en conséquence (voir la fonction get_relative_dist de la spécification AV1).
frame_refs[7]
RefFrameMapTextureIndex[8]
Tableau de surfaces tampons de trame non compressées. Les entrées qui ne seront pas utilisées pour décoder l’image actuelle ou les images suivantes sont indiquées en définissant cette valeur sur 0xFF. Si la valeur n’est pas 0xFF, l’entrée peut être utilisée comme surface de référence pour décoder l’image actuelle ou une image ultérieure dans l’ordre de décodage.
Toutes les surfaces non compressées qui correspondent à des images qui peuvent être utilisées pour référence dans le processus de décodage de l’image actuelle ou de toute image ultérieure doivent être présentes dans le tableau RefFrameMapTextureIndex (que ces images soient réellement utilisées dans le processus de décodage de l’image actuelle). Aucun ordre particulier n’est spécifié pour l’ordre des entrées dans le tableau RefFrameMapTextureIndex .
Notes
L’accélérateur doit utiliser le contenu du RefFrameMapTextureIndex fourni par l’accélérateur plutôt que d’essayer de dériver ces informations du flux de bits (afin de garantir l’opération sans état pour laquelle la gestion de la mémoire tampon de trame décodée doit être effectuée sous le contrôle de l’hôte plutôt que déduite du flux de bits par l’accélérateur).
loop_filter
Structure avec des paramètres de filtre de boucle.
loop_filter.filter_level[2]
Tableau contenant des valeurs de force de filtre de boucle. Correspond à l’élément de syntaxe du même nom dans la spécification AV1 et affecte les processus de décodage du filtre de déblocage en conséquence. Pour plus d’informations, consultez sharpness_level champ.
loop_filter.filter_level_u
loop_filter.filter_level_v
loop_filter.sharpness_level
Indique le niveau de netteté. Les valeurs filter_level et sharpness_level déterminent ensemble quand un bord de bloc est filtré et dans quelle mesure le filtrage peut modifier les exemples de valeurs. Le processus de filtre de boucle est décrit dans la section 7.14 de la spécification AV1.
loop_filter.DUMMYUNIONNAME
loop_filter.DUMMYUNIONNAME.mode_ref_delta_enabled
Lorsqu’il est égal à 1, indique que le niveau de filtre dépend du mode et du cadre de référence utilisés pour prédire un bloc. Ce champ correspond à l’élément de syntaxe nommé loop_filter_delta_enabled de la spécification AV1.
loop_filter.DUMMYUNIONNAME.mode_ref_delta_update
Lorsque la valeur est égale à 1, indique que des éléments de syntaxe supplémentaires sont présents qui spécifient le mode et les deltas de trame de référence à mettre à jour. Ce champ correspond à l’élément de syntaxe nommé loop_filter_delta_update de la spécification AV1.
loop_filter.DUMMYUNIONNAME.delta_lf_multi
Lorsque la valeur est égale à 1, indique que des deltas de filtre de boucle distincts sont envoyés pour les bords de luma horizontaux, les bords verticaux de luma, les bords U et les bords V. Ce champ correspond à l’élément de syntaxe nommé delta_lf_multi de la spécification AV1.
loop_filter.DUMMYUNIONNAME.delta_lf_present
Lorsque la valeur est égale à 1, indique que des deltas de filtre de boucle sont présents. Cela est nécessaire pour le processus de décodage du filtre de boucle : read_delta_lf(). Ce champ correspond à l’élément de syntaxe nommé delta_lf_present de la spécification AV1.
loop_filter.DUMMYUNIONNAME.Reserved
Champs de bits réservés pour terminer la structure packed. Doit être défini sur 0. L’accélérateur doit ignorer les valeurs dans les champs de bits réservés.
loop_filter.DUMMYUNIONNAME.ControlFlags
Fournit une autre façon d’accéder aux champs de bits liés aux indicateurs de filtre de boucle.
loop_filter.ref_deltas[8]
Correspond à l’élément de syntaxe nommé loop_filter_ref_deltas dans la spécification AV1 et affecte les processus de décodage du filtre de boucle en conséquence.
loop_filter.mode_deltas[2]
Correspond à l’élément de syntaxe nommé loop_filter_mode_deltas dans la spécification AV1 et affecte le processus de décodage du filtre de boucle en conséquence.
loop_filter.delta_lf_res
Décalage gauche qui doit être appliqué aux valeurs delta du filtre de boucle décodée. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
loop_filter.frame_restoration_type[3]
Mode de restauration de boucle pour ce cadre. Ce champ correspond à l’élément de syntaxe FrameRestorationType de la spécification AV1. Il peut s’agir de l’une des valeurs suivantes, qui sont les mêmes que celles spécifiées dans la spécification AV1 :
FrameRestorationType | Nom de FrameRestorationType |
---|---|
0 | RESTORE_NONE |
1 | RESTORE_WIENER |
2 | RESTORE_SGRPROJ |
3 | RESTORE_SWITCHABLE |
loop_filter.log2_restoration_unit_size[3]
Taille log2 des unités de restauration de boucles en unités d’échantillons dans le plan actuel. L’élément 0 correspond au plan luma, l’élément 1 au plan U et l’élément 2 au plan V. Ce champ correspond à la variable log2(LoopRestorationSize[plane]) de la spécification AV1.
loop_filter.Reserved16Bits
Champs de bits réservés pour terminer la structure packed. Doit être défini sur 0. L’accélérateur doit ignorer les valeurs dans les champs de bits réservés.
quantization
Contient des informations de quantisation.
quantization.DUMMYUNIONNAME
quantization.DUMMYUNIONNAME.delta_q_present
Spécifie si les valeurs delta de l’index quantizer sont présentes. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
quantization.DUMMYUNIONNAME.delta_q_res
Décalage gauche, qui doit être appliqué aux valeurs delta de l’index quantizer décodé. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
quantization.DUMMYUNIONNAME.Reserved
Champs de bits réservés pour terminer la structure packed. Doit être défini sur 0. L’accélérateur doit ignorer les valeurs dans les champs de bits réservés.
quantization.DUMMYUNIONNAME.ControlFlags
Fournit une autre façon d’accéder aux champs de bits liés à la quantification.
quantization.base_qindex
Indique le cadre de base qindex. Ce champ correspond à l’élément de syntaxe nommé base_q_idx de la spécification AV1.
quantization.y_dc_delta_q
Quantizer Y DC par rapport à base_qindex. Ce champ correspond à DeltaQYDc de la spécification AV1.
quantization.u_dc_delta_q
Quantizer U DC relatif à base_qindex. Ce champ correspond à DeltaQUDc de la spécification AV1.
quantization.v_dc_delta_q
Quantizer du contrôleur de domaine V par rapport à base_qindex. Ce champ correspond à DeltaQVDc de la spécification AV1.
quantization.u_ac_delta_q
Quantizer U AC relatif à base_qindex. Ce champ correspond à DeltaQUAc de la spécification AV1.
quantization.v_ac_delta_q
Quantiseur V AC relatif à base_qindex. Ce champ correspond à DeltaQVAc de la spécification AV1.
quantization.qm_y
Niveau dans la matrice de quantizer qui doit être utilisé pour le décodage de plan luma. Lorsqu’il n’est pas spécifié (using_qmatrix=0), ce champ est 0xFF (qui est un niveau de matrice de quantizer non valide). Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
quantization.qm_u
Niveau dans la matrice de quantizer qui doit être utilisé pour le décodage du plan U. Lorsqu’il n’est pas spécifié (using_qmatrix=0), ce champ est 0xFF (qui est un niveau de matrice de quantizer non valide). Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
quantization.qm_v
Niveau dans la matrice de quantizer qui doit être utilisé pour le décodage de plan V. Lorsqu’il n’est pas spécifié (using_qmatrix=0), ce champ est 0xFF (qui est un niveau de matrice de quantizer non valide). Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
quantization.Reserved16Bits
Réservé.
cdef
Paramètres de filtre d’amélioration directionnelle (CDEF) contraints.
cdef.DUMMYUNIONNAME
cdef.DUMMYUNIONNAME.damping
Contrôle la quantité d’amortissement dans le filtre de déringing. Ce champ correspond à la variable nommée cdef_damping_minus_3 de la spécification AV1.
cdef.DUMMYUNIONNAME.bits
Nombre de bits utilisés pour signaler le paramètre de filtre CDEF. Ce champ correspond à l’élément de syntaxe nommé cdef_bits de la spécification AV1.
cdef.DUMMYUNIONNAME.Reserved
Champs de bits réservés pour terminer la structure packed. Doit être défini sur 0. L’accélérateur doit ignorer les valeurs dans les champs de bits réservés.
cdef.DUMMYUNIONNAME.ControlFlags
Fournit une autre façon d’accéder aux champs de bits liés aux paramètres CDEF.
cdef.primary
Force du filtre principal pour le canal y. Ce champ correspond à cdef_y_pri_strength de la spécification AV1.
cdef.secondary
Force de filtre secondaire pour le canal y. Ce champ correspond à cdef_y_sec_strength de la spécification AV1.
cdef.combined
Fournit une autre façon d’accéder aux y_strengths bits principaux et secondaires.
cdef.y_strengths[8]
Forces de filtre primaire et secondaire pour le canal y.
cdef.uv_strengths[8]
Forces de filtre primaire et secondaire pour les canaux uv. Cela correspond aux éléments de syntaxe cdef_uv_pri_strength et cdef_uv_sec_strength de la spécification AV1.
interp_filter
Correspond au même élément de syntaxe du même nom dans la spécification AV1 et affecte le processus de décodage de l’interpolation de compensation de mouvement en conséquence. Le tableau ci-dessous montre les valeurs possibles de interp_filter.
Valeur | Type de filtre |
---|---|
0 | normal 8-tap |
1 | 8 appuyez en douceur |
2 | nette 8-tap |
3 | Bilinéaire |
4 | tous les filtres |
segmentation
Paramètres de segmentation.
segmentation.DUMMYUNIONNAME
segmentation.DUMMYUNIONNAME.enabled
Lorsqu’elle est égale à 1, indique que cette trame utilise l’outil de segmentation. Ce champ correspond à l’élément de syntaxe nommé segmentation_enabled de la spécification AV1.
segmentation.DUMMYUNIONNAME.update_map
Lorsqu’il est égal à 1, indique que la carte de segmentation est mise à jour pendant le décodage de ce cadre. Ce champ correspond à l’élément de syntaxe nommé segmentation_update_map de la spécification AV1.
segmentation.DUMMYUNIONNAME.update_data
Lorsque la valeur est égale à 1, indique que de nouveaux paramètres sont fournis pour chaque segment. Ce champ correspond à l’élément de syntaxe nommé segmentation_update_data de la spécification AV1.
segmentation.DUMMYUNIONNAME.temporal_update
Lorsque la valeur est égale à 1, indique que les mises à jour de la carte de segmentation sont codées par rapport à la carte de segmentation existante. Ce champ correspond à l’élément de syntaxe nommé segmentation_temporal_update de la spécification AV1.
segmentation.DUMMYUNIONNAME.Reserved
Champs de bits réservés pour terminer la structure packed. Doit être défini sur 0. L’accélérateur doit ignorer les valeurs dans les champs de bits réservés.
segmentation.DUMMYUNIONNAME.ControlFlags
Fournit une autre façon d’accéder aux champs de bits liés à la segmentation.
segmentation.Reserved24Bits[3]
Réservé.
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]
Spécifie les fonctionnalités de données de segment qui sont mises à jour dans ce cadre. Ce champ correspond à l’élément de syntaxe feature_enabled de la spécification AV1.
segmentation.feature_data[8]
Spécifie les valeurs de fonctionnalité de segmentation. Ce champ correspond à l’élément de syntaxe feature_value de la spécification AV1.
film_grain
Paramètres de grain de film.
film_grain.DUMMYUNIONNAME
film_grain.DUMMYUNIONNAME.apply_grain
Lorsqu’il est égal à 1, indique que le grain de film doit être ajouté à ce cadre. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.DUMMYUNIONNAME.scaling_shift_minus8
Maj -8 appliqué aux valeurs du composant chroma. Ce champ correspond à l’élément de syntaxe nommé grain_scaling_minus8 de la spécification AV1.
film_grain.DUMMYUNIONNAME.chroma_scaling_from_luma
Lorsqu’il est égal à 1, spécifie que la mise à l’échelle de la chroma est déduite à partir de la mise à l’échelle luma. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.DUMMYUNIONNAME.ar_coeff_lag
Nombre de coefficients autorégressifs pour luma et chroma. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.DUMMYUNIONNAME.ar_coeff_shift_minus6
Plage de coefficients auto-régressifs. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.DUMMYUNIONNAME.grain_scale_shift
Spécifie la quantité de nombres aléatoires gaussiens à mettre à l’échelle pendant le processus de synthèse du grain. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.DUMMYUNIONNAME.overlap_flag
Lorsqu’il est égal à 1, indique que le chevauchement entre les blocs de grain de film doit être appliqué. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.DUMMYUNIONNAME.clip_to_restricted_range
Si la valeur est égale à 1, indique que le découpage de la plage restreinte (studio) doit être appliqué aux exemples de valeurs après l’ajout du grain de film (voir la sémantique pour color_range pour une explication du swing de studio). Si la valeur est égale à 0, indique que le découpage de la plage complète doit être appliqué aux valeurs des exemples après l’ajout du grain de film.
film_grain.DUMMYUNIONNAME.matrix_coeff_is_identity
film_grain.DUMMYUNIONNAME.Reserved
Champs de bits réservés pour terminer la structure packed. Doit être défini sur 0. L’accélérateur doit ignorer les valeurs dans les champs de bits réservés.
film_grain.DUMMYUNIONNAME.ControlFlags
Fournit un autre moyen d’accéder aux champs de bits liés au grain de film.
film_grain.grain_seed
Valeur de départ du générateur de nombres pseudo-aléatoires utilisé pour la synthèse du grain de film. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.scaling_points_y[14]
Représente les coordonnées x,y de la fonction de mise à l’échelle linéaire au niveau de la pièce pour le plan y. Il s’agit d’un tableau 2D, à chaque segment au niveau de la pièce, la première valeur spécifiée est la coordonnée x (valeur luma) et la deuxième valeur est la valeur de mise à l’échelle (y, sortie). Ce champ correspond à l’élément de syntaxe point_y_value de la spécification AV1.
film_grain.num_y_points
Nombre de segments valides spécifiés dans scaling_points_y. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.scaling_points_cb[10]
Représente les coordonnées x,y de la fonction de mise à l’échelle linéaire au niveau des pièces pour le plan cb. Il s’agit d’un tableau 2D, à chaque segment au niveau de la pièce, la première valeur spécifiée est la coordonnée x (valeur luma) et la deuxième valeur est la valeur de mise à l’échelle (y, sortie). Ce champ correspond à l’élément de syntaxe point_cb_value de la spécification AV1.
film_grain.num_cb_points
Nombre de segments valides spécifiés dans scaling_points_cb. Ce champ correspond aux éléments de syntaxe du même nom de la spécification AV1.
film_grain.scaling_points_cr[10]
Représente les coordonnées x,y de la fonction de mise à l’échelle linéaire au niveau des pièces pour le plan cr. Il s’agit d’un tableau 2D, à chaque segment au niveau de la pièce, la première valeur spécifiée est la coordonnée x (valeur luma) et la deuxième valeur est la valeur de mise à l’échelle (y, sortie). Ce champ correspond à l’élément de syntaxe point_cr_value de la spécification AV1.
film_grain.num_cr_points
Nombre de segments valides spécifiés dans scaling_points_cr. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.ar_coeffs_y[24]
Coefficients auto-régressifs pour le plan Y. Ce champ correspond à l’élément de syntaxe ar_coeffs_y_plus_128 de la spécification AV1.
film_grain.ar_coeffs_cb[25]
Coefficients auto-régressifs pour le plan U. Ce champ correspond à l’élément de syntaxe ar_coeffs_cb_plus_128 de la spécification AV1.
film_grain.ar_coeffs_cr[25]
Coefficients auto-régressifs pour le plan V. Ce champ correspond à l’élément de syntaxe ar_coeffs_cr_plus_128 de la spécification AV1.
film_grain.cb_mult
Multiplicateur du composant Cb utilisé dans la dérivation de l’index d’entrée vers la fonction de mise à l’échelle du composant. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.cb_luma_mult
Multiplicateur utilisé pour le composant luma dans la fonction de mise à l’échelle du composant Cb. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.cr_mult
Multiplicateur du composant Cr utilisé dans la dérivation de l’index d’entrée vers la fonction de mise à l’échelle du composant. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.cr_luma_mult
Multiplicateur utilisé pour le composant luma dans la fonction de mise à l’échelle du composant Cr. Ce champ correspond aux éléments de syntaxe du même nom de la spécification AV1.
film_grain.Reserved8Bits
Réservé.
film_grain.cb_offset
Décalage utilisé dans la dérivation de l’index d’entrée vers la fonction de mise à l’échelle du composant Cb. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
film_grain.cr_offset
Décalage utilisé dans la dérivation de l’index d’entrée vers la fonction de mise à l’échelle du composant Cr. Ce champ correspond à l’élément de syntaxe du même nom de la spécification AV1.
Reserved32Bits
Réservé.
StatusReportFeedbackNumber
Nombre arbitraire défini par le décodeur hôte à utiliser comme balise dans le status les données de commentaires du rapport. La valeur ne doit pas être égale à 0 et doit être différente dans chaque appel à Exécuter. Pour plus d’informations, consultez la section Structure des données du rapport d’état dans la spécification d’accélération vidéo Direct X pour le codage vidéo AV1.
Remarques
Si la largeur et la hauteur sont dérivées pour le cadre (par exemple via le frame_size_override_flag), le décodeur hôte dérive les valeurs appropriées et stocke le résultat dans ces champs. Si superres est activé, ces valeurs représentent la résolution de trames post-mise à l’échelle (appelée UpscaledWidth dans la spécification AV1).
Les valeurs autorisées de subsampling_x et subsampling_y sont limitées par la valeur de profil. Le tableau suivant spécifie les valeurs autorisées pour subsampling_x et subsampling_y, ainsi que les formats de chroma associés.
subsampling_x | subsampling_y | Format Chroma |
---|---|---|
1 | 1 | 4:2:0 |
1 | 0 | 4:2:2 |
0 | 0 | 4:4:4 |
Pour plus d’informations, notamment sur l’utilisation de cette structure, consultez La spécification d’accélération vidéo Direct X pour le codage vidéo AV1 .
Configuration requise
Condition requise | Valeur |
---|---|
Serveur minimal pris en charge | Windows Server 2022 |
En-tête | dxva.h |