DXVA_PicParams_AV1结构 (dxva.h)

DXVA_PicParams_AV1结构为 AV1 视频解码提供压缩图片的图片级参数。

语法

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

成员

width

当前帧的编码宽度。 对应于frame_width_minus_1语法元素。 请参阅“备注”。

height

当前帧的编码高度。 对应于frame_height_minus_1语法元素。 请参阅“备注”。

max_width

max_height

CurrPicTextureIndex

解码图片的目标帧缓冲区/图面索引。

superres_denom

启用 superres 后,此字段指定用于计算更新的帧宽度的分母。 这对应于 AV1 规范中的 SuperresDenom 值。 如果未启用 superres,则此值应为 8。

bitdepth

luma 和 chroma 解码样本的位深度。 允许的值受配置文件值限制。

seq_profile

AV1 位流的配置文件。 这对应于语法元素:seq_profile。 AV1 视频编码格式定义以下配置文件:

轮廓 意义
配置文件 0 支持每个样本 8 位或 10 位的 4:2:0 色采样和单色格式。
配置文件 1 支持每个样本 8 位或 10 位的 4:4:4 色度采样。
配置文件 2 支持 4:2:0、4:2:2 或 4:4:4 的色度采样,每个样本和单色格式为 8 位、10 位或 12 位。

tiles

包含特定于磁贴的信息。

tiles.cols

跨帧的磁贴数。 此字段对应于 AV1 规范中的 2^TileColsLog2。

tiles.rows

图块数。 此字段对应于 AV1 规范中的 2^TileRowsLog2。

tiles.context_update_id

指定要用于 CDF 更新的磁贴。 这对应于 AV1 规范中名为context_update_tile_id的语法元素。

tiles.widths[64]

每个磁贴的宽度(以超级锁为单位)。 只有前 2^cols_log2 宽度条目有效。 此字段对应于 AV1 规范中的 tileWidthSb 变量。

tiles.heights[64]

每个磁贴的高度(以超级锁为单位)。 只有前 2^rows_log2 个高度条目有效。 此字段对应于 AV1 规范中的 tileHeightSb 变量。

coding

编码工具。

coding.use_128x128_superblock

当等于 1 时,指示超级锁包含 128x128 luma 样本;否则,超级锁包含 64x64 luma 样本。 此字段对应于 AV1 规范中同名的语法元素。

coding.intra_edge_filter

指定是否应启用边缘内部筛选过程。 此字段对应于 AV1 规范中名为enable_intra_edge_filter的语法元素。

coding.interintra_compound

等于 1 时,指示块间模式信息可能包含语法元素 interintra;否则,interintra 语法元素将不存在。 此字段对应于 AV1 规范中名为enable_interintra_compound的语法元素。

coding.masked_compound

等于 1 时,指示块间模式信息可能包含语法元素compound_type;否则,compound_type语法元素将不存在。 此字段对应于 AV1 规范中名为enable_masked_compound的语法元素。

coding.warped_motion

如果等于 1,则表示可能存在语法元素motion_mode。 此字段对应于 AV1 规范中名为allow_warped_motion的语法元素。

coding.dual_filter

如果等于 1,则指示可以在水平方向和垂直方向单独指定预测间筛选器类型:否则,只能指定一个筛选器类型。 此字段对应于 AV1 规范中名为enable_dual_filter的语法元素。

coding.jnt_comp

等于 1 时,指示距离权重过程可用于预测间。 此字段对应于 AV1 规范中名为enable_jnt_comp的语法元素。

coding.screen_content_tools

等于 1 时,指示块内可以使用调色板编码;否则,将不会使用调色板编码。 此字段对应于 AV1 规范中名为allow_screen_content_tools的语法元素。

coding.integer_mv

等于 1 时,指示运动向量将始终为整数。 此字段对应于 AV1 规范中名为force_integer_mv的语法元素。

coding.cdef

等于 1 时,指示可以启用约束方向增强筛选器(CDEF)筛选。 此字段对应于 AV1 规范中名为enable_cdef的语法元素。

coding.restoration

等于 1 时,指示可以启用循环还原筛选。 此字段对应于 AV1 规范中名为enable_restoration的语法元素。

coding.film_grain

等于 1 时,指示可以启用电影粒度处理。 此字段对应于 AV1 规范中名为film_grain_params_present的语法元素。

coding.intrabc

等于 1 时,指示可以使用块内复制。 此字段对应于 AV1 规范中名为allow_intrabc的语法元素。

coding.high_precision_mv

等于 1 时,指示运动向量指定为第八个拼写精度;否则,运动向量将指定为四分之一的拼写精度。 此字段对应于 AV1 规范中名为allow_high_precision_mv的语法元素。

coding.switchable_motion_mode

等于 1 时,指示只能使用 SIMPLE 运动模式。 此字段对应于 AV1 规范中名为is_motion_mode_switchable的语法元素。

coding.filter_intra

当等于 1 时,指示use_filter_intra语法元素可能存在。 此字段对应于 AV1 规范中名为enable_filter_intra的语法元素。

coding.disable_frame_end_update_cdf

指定 CDF 数组是否保存在符号解码器退出进程中。 此字段对应于 AV1 规范中同名的语法元素。

coding.disable_cdf_update

指定是否应禁用符号解码过程中的 CDF 更新。 此字段对应于 AV1 规范中同名的语法元素。

coding.reference_mode

控制用于参考帧预测的模式。 可以是以下值之一,与 AV1 解码过程中的引用模式相对应:

reference_mode reference_mode的名称
0 SINGLE_REFERENCE
1 REFERENCE_MODE_SELECT

coding.skip_mode

指示是否可以在复合预测中指定跳过模式语法。 此字段对应于 AV1 规范中的skip_mode_present语法元素。

coding.reduced_tx_set

指定帧是否使用受限的转换类型集。 此字段对应于 AV1 规范中同名的语法元素。

coding.superres

指定帧是否使用超分辨率。 此字段对应于 AV1 规范中名为use_superres的语法元素。

coding.tx_mode

指定如何确定转换大小。 此字段对应于 AV1 规范中同名的变量。 它可以采用 AV1 规范中指定的以下值之一:

TxMode 值 TxMode 的名称
0 ONLY_4X4
1 TX_MODE_LARGEST
2 TX_MODE_SELECT

coding.use_ref_frame_mvs

指定是否应将上一帧中的运动向量用于当前帧。 此字段对应于 AV1 规范中同名的语法元素。

coding.enable_ref_frame_mvs

指定是否为整个视频序列禁用use_ref_frame_mvs;当 0 use_ref_frame_mvs 也将始终为 0。 此字段对应于 AV1 规范(来自序列标头)中同名的语法元素。

coding.reference_frame_update

指示在解码此帧后,应执行 AV1 规范的第 7.20 节指定的参考帧更新过程。 否则应执行第 7.21 节。

coding.Reserved

用于完成打包结构的保留位字段。 应设置为 0。 加速器应忽略保留位字段中的值。

coding.CodingParamToolFlags

提供一种替代方法,用于访问与编码工具标志相关的位字段。

format

包含格式和图片信息。

format.frame_type

当前帧的帧类型。 此字段对应于 AV1 规范中同名的语法元素,并相应地影响解码过程。 对于四种类型的 AV1 帧,允许的值为 0、1、2 或 3:KEY_FRAME、INTER_FRAME、INTRA_ONLY_FRAME 和 S_FRAME。

format.show_frame

指示当前帧是否在解码完成后输出和显示。 此字段对应于 AV1 规范中同名的语法元素,并相应地影响解码过程。 在 DXVA 中,这没有直接影响,因为主机通过其他函数调用单独控制解码的帧的显示。

format.showable_frame

等于 1 时,指定可以使用show_existing_frame机制输出帧;否则等于零,它指定此帧不会使用show_existing_frame机制输出。

format.subsampling_x

subsampling_y一起,指示色度采样格式。 请参阅“备注”。

format.subsampling_y

subsampling_x一起,指示色度采样格式。 请参阅“备注”。

format.mono_chrome

指示比特流是否为单色。 如果为 1,则只有 luma 平面存在。 此字段对应于 AV1 规范的颜色配置语法中同名的语法元素。 允许的值受配置文件值限制。

format.Reserved

用于完成打包结构的保留位字段。 应设置为 0。 加速器应忽略保留位字段中的值。

format.FormatAndPictureInfoFlags

提供一种替代方法,用于访问与格式和图片信息相关的位字段。

primary_ref_frame

指定哪个引用帧包含 CDF 值和其他应在帧开头加载的状态。 如果没有主引用帧,则此字段0x7。 它对应于 AV1 规范中同名的语法元素。

order_hint

当前帧的输出顺序。 对应于 AV1 规范中的 OrderHint。

order_hint_bits

对应于 AV1 规范中名为order_hint_bits_minus_1的语法元素。 此字段定义为:order_hint_bits_minus_1 + 1。 当 AV1 规范中的enable_order_hint为 0 时,此字段将为 0。

如果此值为 0,则不应使用基于 OrderHint 的工具,并且未定义order_hint的值。 当非零时,它会相应地影响相对距离的计算(请参阅 AV1 规范中的函数get_relative_dist)。

frame_refs[7]

RefFrameMapTextureIndex[8]

未压缩的帧缓冲区图面的数组。 将此值设置为0xFF来指示不用于解码当前图片或任何后续图片的条目。 如果未0xFF该值,则条目可用作解码当前图片或按解码顺序的后续图片的参考图面。

对应于当前图片解码过程中可能用于引用的帧或任何后续图片的所有未压缩图面应存在于 RefFrameMapTextureIndex 数组中(无论这些图片是否实际用于当前帧的解码过程中)。 没有为 RefFrameMapTextureIndex 数组中的条目排序指定特定的顺序。

注意

加速器必须使用 RefFrameMapTextureIndex 的内容,而不是尝试从位流派生此信息(以确保解码的帧缓冲区处理在主机的控制下执行,而不是由加速器从位流推断)。

loop_filter

具有循环筛选器参数的结构。

loop_filter.filter_level[2]

包含循环筛选器强度值的数组。 对应于 AV1 规范中同名的语法元素,并相应地影响解除阻止筛选器的解码过程。 有关详细信息,请参阅 sharpness_level 字段。

loop_filter.filter_level_u

loop_filter.filter_level_v

loop_filter.sharpness_level

指示锐度级别。 filter_levelsharpness_level 值共同确定何时筛选块边缘,以及筛选可以更改样本值多少。 AV1 规范的第 7.14 节介绍了循环筛选器过程。

loop_filter.DUMMYUNIONNAME

loop_filter.DUMMYUNIONNAME.mode_ref_delta_enabled

当等于 1 时,指示筛选器级别取决于用于预测块的模式和引用帧。 此字段对应于 AV1 规范中名为loop_filter_delta_enabled的语法元素。

loop_filter.DUMMYUNIONNAME.mode_ref_delta_update

当等于 1 时,指示存在其他语法元素,这些元素指定要更新的模式和引用帧增量。 此字段对应于 AV1 规范中名为loop_filter_delta_update的语法元素。

loop_filter.DUMMYUNIONNAME.delta_lf_multi

如果等于 1,则指示为水平 luma 边缘、垂直 luma 边缘、U 边缘和 V 边缘发送单独的循环筛选器增量。 此字段对应于 AV1 规范中名为delta_lf_multi的语法元素。

loop_filter.DUMMYUNIONNAME.delta_lf_present

等于 1 时,指示存在循环筛选器增量。 循环筛选器解码过程需要此作:read_delta_lf()。 此字段对应于 AV1 规范中名为delta_lf_present的语法元素。

loop_filter.DUMMYUNIONNAME.Reserved

用于完成打包结构的保留位字段。 应设置为 0。 加速器应忽略保留位字段中的值。

loop_filter.DUMMYUNIONNAME.ControlFlags

提供一种替代方法,用于访问与循环筛选器标志相关的位字段。

loop_filter.ref_deltas[8]

对应于 AV1 规范中名为loop_filter_ref_deltas的语法元素,并相应地影响循环筛选器的解码过程。

loop_filter.mode_deltas[2]

对应于 AV1 规范中名为loop_filter_mode_deltas的语法元素,并相应地影响循环筛选器的解码过程。

loop_filter.delta_lf_res

应用于解码的循环筛选器增量值的左移。 此字段对应于 AV1 规范中同名的语法元素。

loop_filter.frame_restoration_type[3]

此帧的循环还原模式。 此字段对应于 AV1 规范中的 FrameRestorationType 语法元素。 它可以是下列值之一,这些值与 AV1 规范中指定的值相同:

FrameRestorationType FrameRestorationType 的名称
0 RESTORE_NONE
1 RESTORE_WIENER
2 RESTORE_SGRPROJ
3 RESTORE_SWITCHABLE

loop_filter.log2_restoration_unit_size[3]

循环还原单元的 log2 大小(以当前平面中的样本单位为单位)。 元素 0 对应于 luma 平面,元素 1 对应于 U 平面,元素 2 对应于 V 平面。 此字段对应于 AV1 规范中的 log2(LoopRestorationSize[plane]) 变量。

loop_filter.Reserved16Bits

用于完成打包结构的保留位字段。 应设置为 0。 加速器应忽略保留位字段中的值。

quantization

包含量化信息。

quantization.DUMMYUNIONNAME

quantization.DUMMYUNIONNAME.delta_q_present

指定是否存在量化器索引增量值。 此字段对应于 AV1 规范中同名的语法元素。

quantization.DUMMYUNIONNAME.delta_q_res

左移,应用于解码的量化器索引增量值。 此字段对应于 AV1 规范中同名的语法元素。

quantization.DUMMYUNIONNAME.Reserved

用于完成打包结构的保留位字段。 应设置为 0。 加速器应忽略保留位字段中的值。

quantization.DUMMYUNIONNAME.ControlFlags

提供一种访问与量化相关的位字段的替代方法。

quantization.base_qindex

指示基帧 qindex。 此字段对应于 AV1 规范中名为base_q_idx的语法元素。

quantization.y_dc_delta_q

相对于 base_qindex 的 Y DC 量化器。 此字段对应于 AV1 规范中的 DeltaQYDc。

quantization.u_dc_delta_q

相对于base_qindex的 U DC 量子化器。 此字段对应于 AV1 规范中的 DeltaQUDc。

quantization.v_dc_delta_q

相对于base_qindex的 V DC 量子化器。 此字段对应于 AV1 规范中的 DeltaQVDc。

quantization.u_ac_delta_q

相对于base_qindex的 U AC 量子化器。 此字段对应于 AV1 规范中的 DeltaQUAc。

quantization.v_ac_delta_q

相对于base_qindex的 V AC 量化器。 此字段对应于 AV1 规范中的 DeltaQVAc。

quantization.qm_y

量子化器矩阵中应用于 luma 平面解码的级别。 如果未指定(using_qmatrix=0),此字段将0xFF(这是无效的量化器矩阵级别)。 此字段对应于 AV1 规范中同名的语法元素。

quantization.qm_u

量化器矩阵中应用于 U 平面解码的级别。 如果未指定(using_qmatrix=0),此字段将0xFF(这是无效的量化器矩阵级别)。 此字段对应于 AV1 规范中同名的语法元素。

quantization.qm_v

应用于 V 平面解码的量化器矩阵中的级别。 如果未指定(using_qmatrix=0),此字段将0xFF(这是无效的量化器矩阵级别)。 此字段对应于 AV1 规范中同名的语法元素。

quantization.Reserved16Bits

保留。

cdef

约束方向增强筛选器 (CDEF) 参数。

cdef.DUMMYUNIONNAME

cdef.DUMMYUNIONNAME.damping

控制 dering 筛选器中的阻尼量。 此字段对应于 AV1 规范中名为cdef_damping_minus_3的变量。

cdef.DUMMYUNIONNAME.bits

用于向 CDEF 筛选器设置发出信号的位数。 此字段对应于 AV1 规范中名为cdef_bits的语法元素。

cdef.DUMMYUNIONNAME.Reserved

用于完成打包结构的保留位字段。 应设置为 0。 加速器应忽略保留位字段中的值。

cdef.DUMMYUNIONNAME.ControlFlags

提供一种访问与 CDEF 参数相关的位字段的替代方法。

cdef.primary

y 通道的主要筛选器强度。 此字段对应于 AV1 规范中的cdef_y_pri_strength。

cdef.secondary

y 通道的辅助筛选器强度。 此字段对应于 AV1 规范中的cdef_y_sec_strength。

cdef.combined

提供访问y_strengths主位和辅助位的替代方法。

cdef.y_strengths[8]

y 通道的主要和辅助筛选器强度。

cdef.uv_strengths[8]

uv 通道的主要和次要筛选器强度。 这对应于 AV1 规范中的cdef_uv_pri_strength和cdef_uv_sec_strength语法元素。

interp_filter

对应于 AV1 规范中同名的同一语法元素,并相应地影响动作补偿内插的解码过程。 下表显示了interp_filter的可能值。

价值 筛选器类型
0 普通 8 点击
1 平滑 8 点击
2 锐利 8 点击
3
4 所有筛选器

segmentation

分段参数。

segmentation.DUMMYUNIONNAME

segmentation.DUMMYUNIONNAME.enabled

等于 1 时,指示此帧使用分段工具。 此字段对应于 AV1 规范中名为segmentation_enabled的语法元素。

segmentation.DUMMYUNIONNAME.update_map

等于 1 时,指示在此帧解码过程中更新分段映射。 此字段对应于 AV1 规范中名为segmentation_update_map的语法元素。

segmentation.DUMMYUNIONNAME.update_data

等于 1 时,指示为每个段提供新参数。 此字段对应于 AV1 规范中名为segmentation_update_data的语法元素。

segmentation.DUMMYUNIONNAME.temporal_update

等于 1 时,指示对分段映射的更新相对于现有分段映射进行编码。 此字段对应于 AV1 规范中名为segmentation_temporal_update的语法元素。

segmentation.DUMMYUNIONNAME.Reserved

用于完成打包结构的保留位字段。 应设置为 0。 加速器应忽略保留位字段中的值。

segmentation.DUMMYUNIONNAME.ControlFlags

提供一种访问与分段相关的位字段的替代方法。

segmentation.Reserved24Bits[3]

保留。

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]

指定在此帧中更新哪些段数据特征。 此字段对应于 AV1 规范中的语法元素feature_enabled。

segmentation.feature_data[8]

指定分段特征值。 此字段对应于 AV1 规范中的语法元素feature_value。

film_grain

电影粒度参数。

film_grain.DUMMYUNIONNAME

film_grain.DUMMYUNIONNAME.apply_grain

等于 1 时,指示应将胶片粒度添加到此帧。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.DUMMYUNIONNAME.scaling_shift_minus8

应用于色度组件的值的移位 -8。 此字段对应于 AV1 规范中名为grain_scaling_minus8的语法元素。

film_grain.DUMMYUNIONNAME.chroma_scaling_from_luma

当等于 1 时,指定从 luma 缩放推断色度缩放。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.DUMMYUNIONNAME.ar_coeff_lag

luma 和 chroma 的自动回归系数数。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.DUMMYUNIONNAME.ar_coeff_shift_minus6

自动回归系数的范围。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.DUMMYUNIONNAME.grain_scale_shift

指定在粒度合成过程中应缩小高斯随机数的量。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.DUMMYUNIONNAME.overlap_flag

等于 1 时,指示应应用膜粒度块之间的重叠。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.DUMMYUNIONNAME.clip_to_restricted_range

如果等于 1,则表示在添加电影粒度后,应将剪辑应用于样本值(请参阅color_range的语义,了解工作室摆动的说明)。 如果等于 0,则表示在添加电影粒度后,应将剪辑应用于样本值。

film_grain.DUMMYUNIONNAME.matrix_coeff_is_identity

film_grain.DUMMYUNIONNAME.Reserved

用于完成打包结构的保留位字段。 应设置为 0。 加速器应忽略保留位字段中的值。

film_grain.DUMMYUNIONNAME.ControlFlags

提供一种访问与电影粒度相关的位字段的替代方法。

film_grain.grain_seed

用于电影粒度合成的伪随机数生成器的起始值。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.scaling_points_y[14]

表示 y 平面的按块线性缩放函数的 x,y 坐标。 这是一个 2D 数组,在每段指定的第一个值是 x(luma 值)坐标,第二个值是缩放值(y,输出)。 此字段对应于 AV1 规范中的point_y_value语法元素。

film_grain.num_y_points

scaling_points_y中指定的有效段数。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.scaling_points_cb[10]

表示 cb 平面的按条线性缩放函数的 x,y 坐标。 这是一个 2D 数组,在每段指定的第一个值是 x(luma 值)坐标,第二个值是缩放值(y,输出)。 此字段对应于 AV1 规范中的point_cb_value语法元素。

film_grain.num_cb_points

scaling_points_cb中指定的有效段数。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.scaling_points_cr[10]

表示 cr 平面的按条线性缩放函数的 x,y 坐标。 这是一个 2D 数组,在每段指定的第一个值是 x(luma 值)坐标,第二个值是缩放值(y,输出)。 此字段对应于 AV1 规范中的point_cr_value语法元素。

film_grain.num_cr_points

scaling_points_cr中指定的有效段数。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.ar_coeffs_y[24]

Y 平面的自动回归系数。 此字段对应于 AV1 规范中的ar_coeffs_y_plus_128语法元素。

film_grain.ar_coeffs_cb[25]

U 平面的自动回归系数。 此字段对应于 AV1 规范中的ar_coeffs_cb_plus_128语法元素。

film_grain.ar_coeffs_cr[25]

V 平面的自动回归系数。 此字段对应于 AV1 规范中的ar_coeffs_cr_plus_128语法元素。

film_grain.cb_mult

用于将输入索引派生到组件缩放函数的 Cb 组件的乘数。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.cb_luma_mult

用于 luma 组件的乘数转换为 Cb 组件缩放函数。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.cr_mult

用于将输入索引派生到组件缩放函数的 Cr 组件的乘数。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.cr_luma_mult

用于 luma 组件的乘数转换为 Cr 组件缩放函数。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.Reserved8Bits

保留。

film_grain.cb_offset

用于将输入索引派生到 Cb 组件缩放函数的偏移量。 此字段对应于 AV1 规范中同名的语法元素。

film_grain.cr_offset

用于将输入索引派生到 Cr 组件缩放函数的偏移量。 此字段对应于 AV1 规范中同名的语法元素。

Reserved32Bits

保留。

StatusReportFeedbackNumber

由主机解码器设置的任意数字,用作状态报告反馈数据中的标记。 该值不应等于 0,并且应在每次调用 Execute 时都不同。 有关详细信息,请参阅 AV1 视频编码 Direct X 视频加速规范中的“状态报告数据结构”部分。

言论

如果为帧派生 宽度高度(例如通过frame_size_override_flag),主机解码器将派生适当的值并将结果存储在这些字段中。 如果启用 超级,则这些值表示后缩放帧分辨率(在 AV1 规范中称为 UpscaledWidth)。

subsampling_xsubsampling_y 的允许值受配置文件值的约束。 下表指定 subsampling_xsubsampling_y的允许值以及关联的色度格式。

subsampling_x subsampling_y 色度格式
1 1 4:2:0
1 0 4:2:2
0 0 4:4:4

有关详细信息,请参阅 AV1 视频编码 Direct X 视频加速规范,包括如何使用此结构。

要求

要求 价值
支持的最低服务器 Windows Server 2022
标头 dxva.h