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_1573_58 y_strengths[8];
    union {
      struct {
        UCHAR primary : 6;
        UCHAR secondary : 2;
      };
      UCHAR  combined;
    };
    __unnamed_union_1573_60 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_1573_65 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 支持 4:2:0 色度采样(每个样本 8 或 10 位)和单色格式。
配置文件 1 支持 4:4:4 色度采样,每个样本 8 位或 10 位。
配置文件 2 支持 4:2:0、4:2:2 或 4: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 时,指示运动向量指定为第 8 个 pel 精度;否则,运动向量指定为四分之一的拼写精度。 此字段对应于 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 时,指示为水平亮度边缘、垂直光玛边缘、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 交流量化器。 此字段对应于 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

应用于色度分量值的 shift -8。 此字段对应于 AV1 规范中名为 grain_scaling_minus8 的语法元素。

film_grain.DUMMYUNIONNAME.chroma_scaling_from_luma

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

film_grain.DUMMYUNIONNAME.ar_coeff_lag

亮度和色度的自动回归系数数。 此字段对应于 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) ,主机解码器将派生适当的值并将结果存储在这些字段中。 如果启用了 superres ,则这些值表示 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