Partager via


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_151d_60 y_strengths[8];
    union {
      struct {
        UCHAR primary : 6;
        UCHAR secondary : 2;
      };
      UCHAR  combined;
    };
    __unnamed_union_151d_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_151d_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