estructura DXVA_PicParams_AV1 (dxva.h)

La estructura DXVA_PicParams_AV1 proporciona los parámetros de nivel de imagen de una imagen comprimida para la descodificación de vídeo av1.

Sintaxis

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

Miembros

width

Ancho codificado del marco actual. Corresponde al elemento de sintaxis frame_width_minus_1. Vea la sección Comentarios.

height

Alto codificado del marco actual. Corresponde al elemento de sintaxis frame_height_minus_1. Vea la sección Comentarios.

max_width

max_height

CurrPicTextureIndex

Índice de superficie o búfer de fotogramas de destino para la imagen descodificada.

superres_denom

Cuando se habilitan las superres, este campo especifica el denominador para calcular el ancho de marco actualizado. Esto corresponde al valor SuperresDenom de la especificación AV1. Cuando las superres no están habilitadas, este valor será 8.

bitdepth

Profundidad de bits de las muestras luma y cromática descodificadas. Los valores permitidos están restringidos por el valor del perfil.

seq_profile

Perfil de la secuencia de bits AV1. Esto corresponde al elemento de sintaxis: seq_profile. El formato de codificación de vídeo av1 define los siguientes perfiles:

Perfil Significado
perfil 0 Admite muestreo cromático 4:2:0 con 8 o 10 bits por muestra y formatos monocromáticos.
perfil 1 Admite muestreo cromático 4:4:4 con 8 o 10 bits por muestra.
perfil 2 Admite muestreo cromático 4:2:0, 4:2:2 o 4:4:4 a 8, 10 o 12 bits por muestra y formatos monocromáticos.

tiles

Contiene información específica de los iconos.

tiles.cols

Número de mosaicos en un marco. Este campo corresponde a 2^TileColsLog2 de la especificación av1.

tiles.rows

Número de mosaicos hacia abajo de un marco. Este campo corresponde a 2^TileRowsLog2 de la especificación av1.

tiles.context_update_id

Especifica qué icono se va a usar para la actualización de CDF. Esto corresponde al elemento de sintaxis denominado context_update_tile_id de la especificación AV1.

tiles.widths[64]

Anchos de cada icono, en unidades de superbloques. Solo las primeras entradas de ancho de 2^cols_log2 son válidas. Este campo corresponde a la variable tileWidthSb de la especificación AV1.

tiles.heights[64]

Alto de cada mosaico, en unidades de superbloques. Solo las primeras entradas de alto de 2^rows_log2 son válidas. Este campo corresponde a la variable tileHeightSb de la especificación AV1.

coding

Las herramientas de codificación.

coding.use_128x128_superblock

Cuando es igual a 1, indica que los superbloqueos contienen muestras de luma de 128 x 128; de lo contrario, los superbloques contienen muestras de luma de 64 x 64. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

coding.intra_edge_filter

Especifica si se debe habilitar el proceso de filtrado intra edge. Este campo corresponde al elemento de sintaxis denominado enable_intra_edge_filter de la especificación AV1.

coding.interintra_compound

Cuando es igual a 1, indica que la información de modo de los bloques entre bloques puede contener la interintra del elemento de sintaxis; de lo contrario, el elemento de sintaxis interintra no estará presente. Este campo corresponde al elemento de sintaxis denominado enable_interintra_compound de la especificación AV1.

coding.masked_compound

Cuando es igual a 1, indica que la información de modo de los bloques entre bloques puede contener el elemento de sintaxis compound_type; de lo contrario, el elemento de sintaxis compound_type no estará presente. Este campo corresponde al elemento de sintaxis denominado enable_masked_compound de la especificación AV1.

coding.warped_motion

Cuando es igual a 1, indica que el elemento de sintaxis motion_mode puede estar presente. Este campo corresponde al elemento de sintaxis denominado allow_warped_motion de la especificación AV1.

coding.dual_filter

Cuando es igual a 1, indica que el tipo de filtro entre predicción se puede especificar de forma independiente en las direcciones horizontales y verticales; de lo contrario, solo se puede especificar un tipo de filtro. Este campo corresponde al elemento de sintaxis denominado enable_dual_filter de la especificación AV1.

coding.jnt_comp

Cuando es igual a 1, indica que el proceso de ponderaciones de distancia se puede usar para la predicción inter. Este campo corresponde al elemento de sintaxis denominado enable_jnt_comp de la especificación AV1.

coding.screen_content_tools

Cuando es igual a 1, indica que los bloques intra pueden usar codificación de paleta; De lo contrario, no se usará la codificación de paleta. Este campo corresponde al elemento de sintaxis denominado allow_screen_content_tools de la especificación AV1.

coding.integer_mv

Cuando es igual a 1, indica que los vectores de movimiento siempre serán enteros. Este campo corresponde al elemento de sintaxis denominado force_integer_mv de la especificación AV1.

coding.cdef

Cuando es igual a 1, indica que el filtrado de filtro de mejora direccional restringida (CDEF) se puede habilitar. Este campo corresponde al elemento de sintaxis denominado enable_cdef de la especificación AV1.

coding.restoration

Cuando es igual a 1, indica que se puede habilitar el filtrado de restauración de bucles. Este campo corresponde al elemento de sintaxis denominado enable_restoration de la especificación AV1.

coding.film_grain

Cuando es igual a 1, indica que se puede habilitar el procesamiento de granos de película. Este campo corresponde al elemento de sintaxis denominado film_grain_params_present de la especificación AV1.

coding.intrabc

Cuando es igual a 1, indica que se puede usar la copia dentro del bloque. Este campo corresponde al elemento de sintaxis denominado allow_intrabc de la especificación AV1.

coding.high_precision_mv

Cuando es igual a 1, indica que los vectores de movimiento se especifican en la octava precisión pel; de lo contrario, los vectores de movimiento se especifican para la precisión de cuarto pel. Este campo corresponde al elemento de sintaxis denominado allow_high_precision_mv de la especificación AV1.

coding.switchable_motion_mode

Cuando es igual a 1, indica que solo se puede usar el modo de movimiento SIMPLE. Este campo corresponde al elemento de sintaxis denominado is_motion_mode_switchable de la especificación AV1.

coding.filter_intra

Cuando es igual a 1, indica que el elemento de sintaxis use_filter_intra puede estar presente. Este campo corresponde al elemento de sintaxis denominado enable_filter_intra de la especificación AV1.

coding.disable_frame_end_update_cdf

Especifica si las matrices de CDF se guardan en el proceso de salida del descodificador de símbolos. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

coding.disable_cdf_update

Especifica si se debe deshabilitar la actualización de CDF en el proceso de descodificación de símbolos. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

coding.reference_mode

Controla el modo utilizado para la predicción de fotogramas de referencia. Puede ser uno de los siguientes valores que corresponden al modo de referencia del proceso de descodificación av1:

reference_mode Nombre de reference_mode
0 SINGLE_REFERENCE
1 REFERENCE_MODE_SELECT

coding.skip_mode

Indica si se puede especificar la sintaxis del modo de omisión en la predicción compuesta. Este campo corresponde al elemento de sintaxis skip_mode_present de la especificación AV1.

coding.reduced_tx_set

Especifica si el marco usa un conjunto restringido de tipos de transformación. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

coding.superres

Especifica si el marco usa super resolución. Este campo corresponde al elemento de sintaxis denominado use_superres de la especificación AV1.

coding.tx_mode

Especifica cómo se determina el tamaño de la transformación. Este campo corresponde a la variable del mismo nombre de la especificación AV1. Puede tomar uno de los valores siguientes, como se especifica en la especificación AV1:

Valor TxMode Nombre de TxMode
0 ONLY_4X4
1 TX_MODE_LARGEST
2 TX_MODE_SELECT

coding.use_ref_frame_mvs

Especifica si se deben usar vectores de movimiento del marco anterior para el marco actual. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

coding.enable_ref_frame_mvs

Especifica si use_ref_frame_mvs está deshabilitado para toda la secuencia de vídeo; cuando 0 use_ref_frame_mvs siempre será 0. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1 (del encabezado de secuencia).

coding.reference_frame_update

Indica que el proceso de actualización del marco de referencia especificado por la sección 7.20 de la especificación AV1 debe realizarse después de descodificar este marco. De lo contrario, se debe realizar la sección 7.21.

coding.Reserved

Campos de bits reservados para completar la estructura empaquetada. Se establecerá en 0. El acelerador omitirá los valores de los campos de bits reservados.

coding.CodingParamToolFlags

Proporciona una manera alternativa de acceder a los campos de bits relacionados con las marcas de herramientas de codificación.

format

Contiene información de formato y imagen.

format.frame_type

Tipo de marco del marco actual. Este campo corresponde al elemento de sintaxis del mismo nombre en la especificación AV1 y afecta al proceso de descodificación en consecuencia. Los valores permitidos son 0, 1, 2 o 3, para los cuatro tipos de fotogramas AV1: KEY_FRAME, INTER_FRAME, INTRA_ONLY_FRAME y S_FRAME.

format.show_frame

Indica si el marco actual está pensado para que se muestre y se muestre una vez completada su descodificación. Este campo corresponde al elemento de sintaxis del mismo nombre en la especificación AV1 y afecta al proceso de descodificación en consecuencia. En DXVA, esto no tiene ningún efecto directo, ya que el host controla la visualización de fotogramas descodificados por separado por otras llamadas de función.

format.showable_frame

Cuando es igual a 1, especifica que el marco se puede generar mediante el mecanismo de show_existing_frame; de lo contrario, es igual a cero, que especifica que este marco no se generará mediante el mecanismo de show_existing_frame.

format.subsampling_x

Junto con subsampling_y, indica el formato de muestreo cromático. Vea la sección Comentarios.

format.subsampling_y

Junto con subsampling_x, indica el formato de muestreo cromático. Vea la sección Comentarios.

format.mono_chrome

Indica si la secuencia de bits es monocromática. Si 1 solo hay un plano luma presente. Este campo corresponde al elemento de sintaxis del mismo nombre de la sintaxis de configuración de color de la especificación AV1. Los valores permitidos están restringidos por el valor del perfil.

format.Reserved

Campos de bits reservados para completar la estructura empaquetada. Se establecerá en 0. El acelerador omitirá los valores de los campos de bits reservados.

format.FormatAndPictureInfoFlags

Proporciona una manera alternativa de acceder a los campos de bits relacionados con el formato y la información de imagen.

primary_ref_frame

Especifica qué marco de referencia contiene los valores de CDF y otro estado que se debe cargar al principio del marco. Este campo se 0x7 cuando no hay ningún marco de referencia principal. Corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

order_hint

El orden de salida del marco actual. Corresponde a OrderHint de la especificación AV1.

order_hint_bits

Corresponde al elemento de sintaxis denominado order_hint_bits_minus_1 en la especificación av1. Este campo se define como: order_hint_bits_minus_1 + 1. Este campo será 0 cuando enable_order_hint de la especificación AV1 sea 0.

Cuando este valor es 0, no se deben usar herramientas basadas en OrderHint y el valor de order_hint no está definido. Cuando no es cero, afecta al cálculo de la distancia relativa en consecuencia (vea la función get_relative_dist de la especificación AV1).

frame_refs[7]

RefFrameMapTextureIndex[8]

Matriz de superficies de búfer de fotogramas sin comprimir. Las entradas que no se usarán para descodificar la imagen actual, o cualquier imagen posterior, se indican estableciendo este valor en 0xFF. Si el valor no es 0xFF, la entrada se puede usar como superficie de referencia para descodificar la imagen actual o una imagen posterior en orden de descodificación.

Todas las superficies sin comprimir que correspondan a fotogramas que se puedan usar como referencia en el proceso de descodificación de la imagen actual o cualquier imagen posterior estarán presentes en la matriz RefFrameMapTextureIndex (independientemente de si estas imágenes se usan realmente en el proceso de descodificación del marco actual). No se especifica ningún orden determinado para la ordenación de las entradas de la matriz RefFrameMapTextureIndex .

Nota

El acelerador debe usar el contenido de RefFrameMapTextureIndex proporcionado por el acelerador en lugar de intentar derivar esta información de la secuencia de bits (para garantizar una operación sin estado para la que se va a realizar el control del búfer de fotogramas descodificado bajo el control del host en lugar de inferir de la secuencia de bits mediante el acelerador).

loop_filter

Estructura con parámetros de filtro de bucle.

loop_filter.filter_level[2]

Matriz que contiene valores de intensidad de filtro de bucle. Corresponde al elemento de sintaxis del mismo nombre en la especificación AV1 y afecta a los procesos de descodificación del filtro de desbloqueo en consecuencia. Consulte sharpness_level campo para obtener más información.

loop_filter.filter_level_u

loop_filter.filter_level_v

loop_filter.sharpness_level

Indica el nivel de nitidez. Los valores filter_level y sharpness_level juntos determinan cuándo se filtra un borde de bloque y por cuánto puede cambiar el filtrado los valores de ejemplo. El proceso de filtro de bucle se describe en la sección 7.14 de la especificación AV1.

loop_filter.DUMMYUNIONNAME

loop_filter.DUMMYUNIONNAME.mode_ref_delta_enabled

Cuando es igual a 1, indica que el nivel de filtro depende del modo y del marco de referencia que se usa para predecir un bloque. Este campo corresponde al elemento de sintaxis denominado loop_filter_delta_enabled de la especificación AV1.

loop_filter.DUMMYUNIONNAME.mode_ref_delta_update

Cuando es igual a 1, indica que hay elementos de sintaxis adicionales que especifican qué modo y deltas de marco de referencia se van a actualizar. Este campo corresponde al elemento de sintaxis denominado loop_filter_delta_update de la especificación AV1.

loop_filter.DUMMYUNIONNAME.delta_lf_multi

Cuando es igual a 1, indica que se envían deltas de filtro de bucle independientes para bordes luma horizontales, bordes luma verticales, bordes U y bordes V. Este campo corresponde al elemento de sintaxis denominado delta_lf_multi de la especificación AV1.

loop_filter.DUMMYUNIONNAME.delta_lf_present

Cuando es igual a 1, indica que los deltas de filtro de bucle están presentes. Esto es necesario para el proceso de descodificación del filtro de bucle: read_delta_lf(). Este campo corresponde al elemento de sintaxis denominado delta_lf_present de la especificación AV1.

loop_filter.DUMMYUNIONNAME.Reserved

Campos de bits reservados para completar la estructura empaquetada. Se establecerá en 0. El acelerador omitirá los valores de los campos de bits reservados.

loop_filter.DUMMYUNIONNAME.ControlFlags

Proporciona una manera alternativa de acceder a los campos de bits relacionados con las marcas de filtro de bucle.

loop_filter.ref_deltas[8]

Corresponde al elemento de sintaxis denominado loop_filter_ref_deltas en la especificación AV1 y afecta a los procesos de descodificación del filtro de bucle en consecuencia.

loop_filter.mode_deltas[2]

Corresponde al elemento de sintaxis denominado loop_filter_mode_deltas en la especificación AV1 y afecta al proceso de descodificación del filtro de bucle en consecuencia.

loop_filter.delta_lf_res

Desplazamiento izquierdo que se debe aplicar a los valores delta de filtro de bucle descodificados. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

loop_filter.frame_restoration_type[3]

Modo de restauración de bucles para este marco. Este campo corresponde al elemento de sintaxis FrameRestorationType de la especificación AV1. Puede ser uno de los siguientes, que son los mismos valores que se especifican en la especificación AV1:

FrameRestorationType Nombre de FrameRestorationType
0 RESTORE_NONE
1 RESTORE_WIENER
2 RESTORE_SGRPROJ
3 RESTORE_SWITCHABLE

loop_filter.log2_restoration_unit_size[3]

Tamaño log2 de unidades de restauración de bucles en unidades de muestras en el plano actual. El elemento 0 corresponde al plano luma, elemento 1 al plano U y al elemento 2 al plano V. Este campo corresponde a la variable log2(LoopRestorationSize[plane]) de la especificación AV1.

loop_filter.Reserved16Bits

Campos de bits reservados para completar la estructura empaquetada. Se establecerá en 0. El acelerador omitirá los valores de los campos de bits reservados.

quantization

Contiene información de cuantificación.

quantization.DUMMYUNIONNAME

quantization.DUMMYUNIONNAME.delta_q_present

Especifica si los valores delta del índice de cuantificador están presentes. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

quantization.DUMMYUNIONNAME.delta_q_res

Desplazamiento izquierdo, que se debe aplicar a los valores delta de índice de cuantificador descodificados. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

quantization.DUMMYUNIONNAME.Reserved

Campos de bits reservados para completar la estructura empaquetada. Se establecerá en 0. El acelerador omitirá los valores de los campos de bits reservados.

quantization.DUMMYUNIONNAME.ControlFlags

Proporciona una manera alternativa de acceder a los campos de bits relacionados con la cuantificación.

quantization.base_qindex

Indica el marco base qindex. Este campo corresponde al elemento de sintaxis denominado base_q_idx de la especificación AV1.

quantization.y_dc_delta_q

Cuantificador de DC Y relativo a base_qindex. Este campo corresponde a DeltaQYDc de la especificación AV1.

quantization.u_dc_delta_q

Cuantificador de dc U en relación con base_qindex. Este campo corresponde a DeltaQUDc de la especificación av1.

quantization.v_dc_delta_q

Cuantificador de DC de V en relación con base_qindex. Este campo corresponde a DeltaQVDc de la especificación av1.

quantization.u_ac_delta_q

Cuantificador de CA U relativo a base_qindex. Este campo corresponde a DeltaQUAc de la especificación AV1.

quantization.v_ac_delta_q

Cuantificador de CA de V en relación con base_qindex. Este campo corresponde a DeltaQVAc de la especificación AV1.

quantization.qm_y

Nivel de la matriz de cuantificador que se debe usar para la descodificación del plano luma. Cuando no se especifica (using_qmatrix=0), este campo será 0xFF (que es un nivel de matriz de cuantificador no válido). Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

quantization.qm_u

Nivel de la matriz de cuantificador que se debe usar para la descodificación del plano U. Cuando no se especifica (using_qmatrix=0), este campo será 0xFF (que es un nivel de matriz de cuantificador no válido). Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

quantization.qm_v

Nivel de la matriz de cuantificador que se debe usar para la descodificación del plano V. Cuando no se especifica (using_qmatrix=0), este campo será 0xFF (que es un nivel de matriz de cuantificador no válido). Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

quantization.Reserved16Bits

Reservado.

cdef

Parámetros de filtro de mejora direccional restringida (CDEF).

cdef.DUMMYUNIONNAME

cdef.DUMMYUNIONNAME.damping

Controla la cantidad de amortiguación en el filtro deringing. Este campo corresponde a la variable denominada cdef_damping_minus_3 de la especificación AV1.

cdef.DUMMYUNIONNAME.bits

Número de bits que se usan para indicar la configuración del filtro CDEF. Este campo corresponde al elemento de sintaxis denominado cdef_bits de la especificación AV1.

cdef.DUMMYUNIONNAME.Reserved

Campos de bits reservados para completar la estructura empaquetada. Se establecerá en 0. El acelerador omitirá los valores de los campos de bits reservados.

cdef.DUMMYUNIONNAME.ControlFlags

Proporciona una manera alternativa de acceder a los campos de bits relacionados con los parámetros de CDEF.

cdef.primary

Intensidad del filtro principal para el canal y. Este campo corresponde a cdef_y_pri_strength de la especificación AV1.

cdef.secondary

Intensidad del filtro secundario para el canal y. Este campo corresponde a cdef_y_sec_strength de la especificación AV1.

cdef.combined

Proporciona una manera alternativa de acceder a los bits principal y secundario de y_strengths.

cdef.y_strengths[8]

Los puntos fuertes del filtro principal y secundario para el canal y.

cdef.uv_strengths[8]

Los puntos fuertes del filtro principal y secundario para los canales uv. Esto corresponde a la cdef_uv_pri_strength y cdef_uv_sec_strength elementos de sintaxis de la especificación AV1.

interp_filter

Corresponde al mismo elemento de sintaxis del mismo nombre en la especificación AV1 y afecta al proceso de descodificación de la interpolación de compensación de movimiento en consecuencia. En la tabla siguiente se muestran los valores posibles de interp_filter.

Valor Tipo de filtro
0 8 pulsaciones normales
1 suave 8 pulsaciones
2 punteo de 8 pulsaciones
3 Bilineal
4 todos los filtros

segmentation

Parámetros de segmentación.

segmentation.DUMMYUNIONNAME

segmentation.DUMMYUNIONNAME.enabled

Cuando es igual a 1, indica que este marco usa la herramienta de segmentación. Este campo corresponde al elemento de sintaxis denominado segmentation_enabled de la especificación AV1.

segmentation.DUMMYUNIONNAME.update_map

Cuando es igual a 1, indica que el mapa de segmentación se actualiza durante la descodificación de este marco. Este campo corresponde al elemento de sintaxis denominado segmentation_update_map de la especificación AV1.

segmentation.DUMMYUNIONNAME.update_data

Cuando es igual a 1, indica que se proporcionan nuevos parámetros para cada segmento. Este campo corresponde al elemento de sintaxis denominado segmentation_update_data de la especificación AV1.

segmentation.DUMMYUNIONNAME.temporal_update

Cuando es igual a 1, indica que las actualizaciones del mapa de segmentación se codifican en relación con el mapa de segmentación existente. Este campo corresponde al elemento de sintaxis denominado segmentation_temporal_update de la especificación AV1.

segmentation.DUMMYUNIONNAME.Reserved

Campos de bits reservados para completar la estructura empaquetada. Se establecerá en 0. El acelerador omitirá los valores de los campos de bits reservados.

segmentation.DUMMYUNIONNAME.ControlFlags

Proporciona una manera alternativa de acceder a los campos de bits relacionados con la segmentación.

segmentation.Reserved24Bits[3]

Reservado.

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]

Especifica qué características de datos de segmento se actualizan en este marco. Este campo corresponde al elemento de sintaxis feature_enabled de la especificación AV1.

segmentation.feature_data[8]

Especifica valores de características de segmentación. Este campo corresponde al elemento de sintaxis feature_value de la especificación AV1.

film_grain

Parámetros de grano de película.

film_grain.DUMMYUNIONNAME

film_grain.DUMMYUNIONNAME.apply_grain

Cuando es igual a 1, indica que el grano de película debe agregarse a este fotograma. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.DUMMYUNIONNAME.scaling_shift_minus8

Desplazamiento -8 aplicado a los valores del componente cromático. Este campo corresponde al elemento de sintaxis denominado grain_scaling_minus8 de la especificación AV1.

film_grain.DUMMYUNIONNAME.chroma_scaling_from_luma

Cuando es igual a 1, especifica que el escalado cromático se deduce del escalado luma. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.DUMMYUNIONNAME.ar_coeff_lag

Número de coeficientes regresivos automáticos para luma y cromática. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.DUMMYUNIONNAME.ar_coeff_shift_minus6

Intervalo de coeficientes regresivos automáticos. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.DUMMYUNIONNAME.grain_scale_shift

Especifica cuánto se deben reducir verticalmente los números aleatorios gaussianos durante el proceso de síntesis de grano. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.DUMMYUNIONNAME.overlap_flag

Cuando sea igual a 1, indica que se aplicará la superposición entre bloques de grano de película. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.DUMMYUNIONNAME.clip_to_restricted_range

Si es igual a 1, indica que el recorte al intervalo restringido (estudio) se aplicará a los valores de muestra después de agregar el grano de película (consulte la semántica de color_range para obtener una explicación del swing de estudio). Si es igual a 0, indica que el recorte a toda la gama se aplicará a los valores de muestra después de agregar el grano de película.

film_grain.DUMMYUNIONNAME.matrix_coeff_is_identity

film_grain.DUMMYUNIONNAME.Reserved

Campos de bits reservados para completar la estructura empaquetada. Se establecerá en 0. El acelerador omitirá los valores de los campos de bits reservados.

film_grain.DUMMYUNIONNAME.ControlFlags

Proporciona una manera alternativa de acceder a los campos de bits relacionados con el grano de película.

film_grain.grain_seed

Valor inicial del generador de números pseudoaleatorios utilizado para la síntesis de grano de película. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.scaling_points_y[14]

Representa las coordenadas x,y de la función de escalado lineal por partes para el plano y. Se trata de una matriz 2D, en cada segmento por partes, el primer valor especificado es la coordenada x (valor luma) y el segundo valor es el valor de escalado (y, salida). Este campo corresponde al elemento de sintaxis point_y_value de la especificación AV1.

film_grain.num_y_points

Número de segmentos válidos por partes especificados en scaling_points_y. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.scaling_points_cb[10]

Representa las coordenadas x,y de la función de escalado lineal por partes para el plano cb. Se trata de una matriz 2D, en cada segmento por partes, el primer valor especificado es la coordenada x (valor luma) y el segundo valor es el valor de escalado (y, salida). Este campo corresponde al elemento de sintaxis point_cb_value de la especificación AV1.

film_grain.num_cb_points

Número de segmentos válidos por partes especificados en scaling_points_cb. Este campo corresponde a los elementos de sintaxis del mismo nombre de la especificación AV1.

film_grain.scaling_points_cr[10]

Representa las coordenadas x,y de la función de escalado lineal por partes para el plano cr. Se trata de una matriz 2D, en cada segmento por partes, el primer valor especificado es la coordenada x (valor luma) y el segundo valor es el valor de escalado (y, salida). Este campo corresponde al elemento de sintaxis point_cr_value de la especificación AV1.

film_grain.num_cr_points

Número de segmentos válidos por partes especificados en scaling_points_cr. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.ar_coeffs_y[24]

Coeficientes regresivos automáticos para el plano Y. Este campo corresponde al elemento de sintaxis ar_coeffs_y_plus_128 de la especificación AV1.

film_grain.ar_coeffs_cb[25]

Coeficientes regresivos automáticos para el plano U. Este campo corresponde al elemento de sintaxis ar_coeffs_cb_plus_128 de la especificación AV1.

film_grain.ar_coeffs_cr[25]

Coeficientes regresivos automáticos para el plano V. Este campo corresponde al elemento de sintaxis ar_coeffs_cr_plus_128 de la especificación AV1.

film_grain.cb_mult

Multiplicador del componente Cb utilizado en la derivación del índice de entrada a la función de escalado de componentes. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.cb_luma_mult

Multiplicador utilizado para el componente luma en la función de escalado de componentes Cb. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.cr_mult

Multiplicador del componente Cr utilizado en la derivación del índice de entrada a la función de escalado de componentes. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.cr_luma_mult

Multiplicador utilizado para el componente luma en la función de escalado de componentes Cr. Este campo corresponde a los elementos de sintaxis del mismo nombre de la especificación AV1.

film_grain.Reserved8Bits

Reservado.

film_grain.cb_offset

Desplazamiento utilizado en la derivación del índice de entrada a la función de escalado de componentes Cb. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

film_grain.cr_offset

Desplazamiento utilizado en la derivación del índice de entrada a la función de escalado de componentes Cr. Este campo corresponde al elemento de sintaxis del mismo nombre de la especificación AV1.

Reserved32Bits

Reservado.

StatusReportFeedbackNumber

Número arbitrario establecido por el descodificador del host que se va a usar como una etiqueta en los datos de comentarios del informe de estado. El valor no debe ser igual a 0 y debe ser diferente en cada llamada a Execute. Para obtener más información, vea la sección Status Report Data Structure (Estructura de datos del informe de estado) en direct X Video Acceleration Specification for AV1 Video Coding (Especificación de aceleración de vídeo direct X para codificación de vídeo AV1).

Comentarios

Si el ancho y el alto se derivan del marco (por ejemplo, a través de la frame_size_override_flag), el descodificador del host derivará los valores adecuados y almacenará el resultado en estos campos. Si los superres están habilitados, estos valores representan la resolución de fotogramas post-escalado (denominada en la especificación AV1 como UpscaledWidth).

Los valores permitidos de subsampling_x y subsampling_y están restringidos por el valor del perfil. En la tabla siguiente se especifican los valores permitidos para subsampling_x y subsampling_y, así como los formatos de cromático asociados.

subsampling_x subsampling_y Formato cromático
1 1 4:2:0
1 0 4:2:2
0 0 4:4:4

Consulte direct X Video Acceleration Specification for AV1 Video Coding para obtener información detallada, incluido cómo usar esta estructura.

Requisitos

Requisito Value
Servidor mínimo compatible Windows Server 2022
Encabezado dxva.h