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_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;
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 |