Поделиться через


структура 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_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;

Члены

width

Закодированная ширина текущего кадра. Соответствует элементу синтаксиса frame_width_minus_1. См. заметки.

height

Закодированная высота текущего кадра. Соответствует элементу синтаксиса frame_height_minus_1. См. заметки.

max_width

max_height

CurrPicTextureIndex

Целевой буфер кадра или индекс поверхности для декодированного рисунка.

superres_denom

Если включена функция superres, в этом поле указывается знаменатель для вычисления обновленной ширины кадра. Соответствует значению SuperresDenom из спецификации AV1. Если надстройка не включена, это значение должно быть равно 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 с частотой 8, 10 или 12 бит на выборку и монохромные форматы.

tiles

Содержит сведения, относящиеся к плиткам.

tiles.cols

Количество плиток в кадре. Это поле соответствует 2^TileColsLog2 из спецификации AV1.

tiles.rows

Количество плиток в кадре. Это поле соответствует 2^TileRowsLog2 из спецификации AV1.

tiles.context_update_id

Указывает, какая плитка будет использоваться для обновления CDF. Это соответствует элементу синтаксиса с именем context_update_tile_id из спецификации AV1.

tiles.widths[64]

Ширина каждой плитки в единицах суперблоков. Допустимы только первые записи ширины 2^cols_log2. Это поле соответствует переменной tileWidthSb из спецификации AV1.

tiles.heights[64]

Высота каждой плитки в единицах суперблоков. Допустимы только первые записи высоты 2^rows_log2. Это поле соответствует переменной tileHeightSb из спецификации AV1.

coding

Средства программирования.

coding.use_128x128_superblock

Если значение равно 1, указывает, что суперблоки содержат выборки luma 128x128; в противном случае суперблоки содержат примеры luma 64x64. Это поле соответствует синтаксический элемент с тем же именем из спецификации AV1.

coding.intra_edge_filter

Указывает, должен ли быть включен процесс фильтрации внутри ребер. Это поле соответствует элементу синтаксиса с именем enable_intra_edge_filter из спецификации AV1.

coding.interintra_compound

Если значение равно 1, указывает, что сведения о режиме для блоков inter могут содержать синтаксический элемент interintra; В противном случае элемент синтаксиса interintra не будет присутствовать. Это поле соответствует элементу синтаксиса с именем enable_interintra_compound из спецификации AV1.

coding.masked_compound

Если значение равно 1, указывает, что сведения о режиме для блоков inter могут содержать элемент синтаксиса compound_type; В противном случае элемент синтаксиса compound_type не будет присутствовать. Это поле соответствует элементу синтаксиса с именем enable_masked_compound из спецификации AV1.

coding.warped_motion

Если значение равно 1, указывает, что элемент синтаксиса motion_mode может присутствовать. Это поле соответствует элементу синтаксиса с именем allow_warped_motion из спецификации AV1.

coding.dual_filter

Если значение равно 1, указывает, что тип фильтра прогнозирования может быть указан независимо друг от друга в горизонтальном и вертикальном направлениях; В противном случае можно указать только один тип фильтра. Это поле соответствует элементу синтаксиса с именем enable_dual_filter из спецификации AV1.

coding.jnt_comp

Если значение равно 1, указывает, что для прогнозирования может использоваться процесс весовых коэффициентов расстояния. Это поле соответствует элементу синтаксиса с именем enable_jnt_comp из спецификации AV1.

coding.screen_content_tools

Если значение равно 1, указывает, что внутри блоки могут использовать кодировку палитры; В противном случае кодировка палитры не будет использоваться. Это поле соответствует элементу синтаксиса с именем allow_screen_content_tools из спецификации AV1.

coding.integer_mv

Если значение равно 1, указывает, что векторы движения всегда будут целыми числами. Это поле соответствует элементу синтаксиса с именем force_integer_mv из спецификации AV1.

coding.cdef

Если значение равно 1, указывает, что фильтрация ограниченного расширения направления (CDEF) может быть включена. Это поле соответствует элементу синтаксиса с именем enable_cdef из спецификации AV1.

coding.restoration

Если значение равно 1, указывает, что фильтрация восстановления цикла может быть включена. Это поле соответствует элементу синтаксиса с именем enable_restoration из спецификации AV1.

coding.film_grain

Если значение равно 1, указывает, что обработка пленки может быть включена. Это поле соответствует элементу синтаксиса с именем film_grain_params_present из спецификации AV1.

coding.intrabc

Если значение равно 1, указывает, что можно использовать внутриблочное копирование. Это поле соответствует элементу синтаксиса с именем allow_intrabc из спецификации AV1.

coding.high_precision_mv

Если значение равно 1, указывает, что векторы движения заданы с точностью восьмого пела; В противном случае векторы движения задаются с точностью до четверти. Это поле соответствует элементу синтаксиса с именем allow_high_precision_mv из спецификации AV1.

coding.switchable_motion_mode

Если значение равно 1, указывает, что можно использовать только режим простого перемещения. Это поле соответствует элементу синтаксиса с именем is_motion_mode_switchable из спецификации AV1.

coding.filter_intra

Если значение равно 1, указывает, что элемент синтаксиса use_filter_intra может присутствовать. Это поле соответствует элементу синтаксиса с именем enable_filter_intra из спецификации AV1.

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

Указывает, можно ли указать синтаксис режима пропуска в составном прогнозе. Это поле соответствует элементу синтаксиса skip_mode_present из спецификации AV1.

coding.reduced_tx_set

Указывает, использует ли фрейм ограниченный набор типов преобразования. Это поле соответствует синтаксический элемент с тем же именем из спецификации AV1.

coding.superres

Указывает, используется ли в кадре супер разрешение. Это поле соответствует элементу синтаксиса с именем use_superres из спецификации AV1.

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

Указывает, что процесс обновления опорного кадра, как указано в разделе 7.20 спецификации AV1, должен выполняться после декодирования этого кадра. В противном случае следует выполнить раздел 7.21.

coding.Reserved

Зарезервированные битовые поля для завершения упакованной структуры. Значение должно иметь значение 0. Ускоритель должен игнорировать значения в полях зарезервированных битов.

coding.CodingParamToolFlags

Предоставляет альтернативный способ доступа к битовым полям, связанным с флагами средств программирования.

format

Содержит сведения о формате и рисунке.

format.frame_type

Тип кадра текущего кадра. Это поле соответствует синтаксической элементу с тем же именем в спецификации AV1 и соответствующим образом влияет на процесс декодирования. Допустимые значения: 0, 1, 2 или 3 для четырех типов кадров AV1: 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

Порядок выходных данных текущего кадра. Соответствует OrderHint из спецификации AV1.

order_hint_bits

Соответствует элементу синтаксиса с именем order_hint_bits_minus_1 в спецификации AV1. Это поле определяется как: order_hint_bits_minus_1 + 1. Это поле будет иметь значение 0, если enable_order_hint из спецификации AV1 равно 0.

Если это значение равно 0, не следует использовать средства на основе OrderHint, а значение order_hint не определено. Если значение не равно нулю, это влияет на вычисление относительного расстояния соответствующим образом (см. функцию get_relative_dist из спецификации AV1).

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_level и sharpness_level вместе определяют, когда граница блока фильтруется и насколько фильтрация может изменить значения выборки. Процесс фильтрации цикла описан в разделе 7.14 спецификации AV1.

loop_filter.DUMMYUNIONNAME

loop_filter.DUMMYUNIONNAME.mode_ref_delta_enabled

Если значение равно 1, указывает, что уровень фильтра зависит от режима и опорной рамки, используемой для прогнозирования блока. Это поле соответствует элементу синтаксиса с именем loop_filter_delta_enabled из спецификации AV1.

loop_filter.DUMMYUNIONNAME.mode_ref_delta_update

Если значение равно 1, указывает, что присутствуют дополнительные элементы синтаксиса, определяющие, какие режимы и опорные кадры должны быть обновлены. Это поле соответствует элементу синтаксиса с именем loop_filter_delta_update из спецификации AV1.

loop_filter.DUMMYUNIONNAME.delta_lf_multi

Если значение равно 1, указывает, что отдельные разностные фильтры цикла отправляются для горизонтальных краев лумы, вертикальных краев лумы, ребер U и ребер V. Это поле соответствует элементу синтаксиса с именем delta_lf_multi из спецификации AV1.

loop_filter.DUMMYUNIONNAME.delta_lf_present

Если значение равно 1, указывает, что существуют разностные фильтры цикла. Это необходимо для процесса декодирования фильтра цикла: read_delta_lf(). Это поле соответствует элементу синтаксиса с именем delta_lf_present из спецификации AV1.

loop_filter.DUMMYUNIONNAME.Reserved

Зарезервированные битовые поля для завершения упакованной структуры. Значение должно иметь значение 0. Ускоритель должен игнорировать значения в полях зарезервированных битов.

loop_filter.DUMMYUNIONNAME.ControlFlags

Предоставляет альтернативный способ доступа к битовым полям, связанным с флагами фильтров цикла.

loop_filter.ref_deltas[8]

Соответствует элементу синтаксиса с именем loop_filter_ref_deltas в спецификации AV1 и соответствующим образом влияет на процессы декодирования фильтра цикла.

loop_filter.mode_deltas[2]

Соответствует элементу синтаксиса с именем loop_filter_mode_deltas в спецификации AV1 и соответствующим образом влияет на процесс декодирования фильтра цикла.

loop_filter.delta_lf_res

Сдвиг влево, который должен применяться к разностным значениям декодированного фильтра цикла. Это поле соответствует элементу синтаксиса с тем же именем из спецификации AV1.

loop_filter.frame_restoration_type[3]

Режим восстановления цикла для этого кадра. Это поле соответствует элементу синтаксиса FrameRestorationType из спецификации AV1. Это может быть одно из следующих значений, которые совпадают с указанными в спецификации 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. Это поле соответствует переменной log2(LoopRestorationSize[plane]) из спецификации AV1.

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. Это поле соответствует элементу синтаксиса с именем base_q_idx из спецификации AV1.

quantization.y_dc_delta_q

Квантайзер dc Y относительно base_qindex. Это поле соответствует DeltaQYDc из спецификации AV1.

quantization.u_dc_delta_q

Квантайзер U DC относительно base_qindex. Это поле соответствует DeltaQUDc из спецификации AV1.

quantization.v_dc_delta_q

Квантайзер V DC относительно base_qindex. Это поле соответствует DeltaQVDc из спецификации AV1.

quantization.u_ac_delta_q

Квантайзер U AC относительно base_qindex. Это поле соответствует DeltaQUAc из спецификации AV1.

quantization.v_ac_delta_q

Квантайзер V AC относительно base_qindex. Это поле соответствует DeltaQVAc из спецификации AV1.

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

Управляет объемом демпфирования в фильтре вывода. Это поле соответствует переменной с именем cdef_damping_minus_3 из спецификации AV1.

cdef.DUMMYUNIONNAME.bits

Число битов, используемых для передачи сигналов параметру фильтра CDEF. Это поле соответствует элементу синтаксиса с именем cdef_bits из спецификации AV1.

cdef.DUMMYUNIONNAME.Reserved

Зарезервированные битовые поля для завершения упакованной структуры. Значение должно иметь значение 0. Ускоритель должен игнорировать значения в полях зарезервированных битов.

cdef.DUMMYUNIONNAME.ControlFlags

Предоставляет альтернативный способ доступа к битовым полям, связанным с параметрами CDEF.

cdef.primary

Основная надежность фильтра для канала y. Это поле соответствует cdef_y_pri_strength из спецификации AV1.

cdef.secondary

Вторичная надежность фильтра для канала y. Это поле соответствует cdef_y_sec_strength из спецификации AV1.

cdef.combined

Предоставляет альтернативный способ доступа к y_strengths первичным и вторичным битам.

cdef.y_strengths[8]

Сильные стороны основного и вторичного фильтров для канала y.

cdef.uv_strengths[8]

Основной и дополнительный фильтр сильные стороны для уф-каналов. Это соответствует cdef_uv_pri_strength и cdef_uv_sec_strength элементам синтаксиса из спецификации AV1.

interp_filter

Соответствует тому же элементу синтаксиса с тем же именем в спецификации AV1 и соответствующим образом влияет на процесс декодирования интерполяции компенсации движения. В таблице ниже показаны возможные значения interp_filter.

Значение Тип фильтра
0 обычный 8 касаний
1 smooth 8-касание
2 резкий 8 касаний
3 Билинейная
4 все фильтры

segmentation

Параметры сегментации.

segmentation.DUMMYUNIONNAME

segmentation.DUMMYUNIONNAME.enabled

Если значение равно 1, указывает, что этот кадр использует инструмент сегментации. Это поле соответствует элементу синтаксиса с именем segmentation_enabled из спецификации AV1.

segmentation.DUMMYUNIONNAME.update_map

Если значение равно 1, указывает, что карта сегментации обновляется во время декодирования этого кадра. Это поле соответствует элементу синтаксиса с именем segmentation_update_map из спецификации AV1.

segmentation.DUMMYUNIONNAME.update_data

Если значение равно 1, указывает, что для каждого сегмента предоставляются новые параметры. Это поле соответствует элементу синтаксиса с именем segmentation_update_data из спецификации AV1.

segmentation.DUMMYUNIONNAME.temporal_update

Если значение равно 1, указывает, что обновления карты сегментации кодируются относительно существующей карты сегментации. Это поле соответствует элементу синтаксиса с именем segmentation_temporal_update из спецификации AV1.

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]

Указывает, какие функции данных сегмента обновляются в этом кадре. Это поле соответствует элементу синтаксиса, feature_enabled из спецификации AV1.

segmentation.feature_data[8]

Задает значения признаков сегментации. Это поле соответствует элементу синтаксиса, feature_value из спецификации AV1.

film_grain

Параметры плёнки.

film_grain.DUMMYUNIONNAME

film_grain.DUMMYUNIONNAME.apply_grain

Если значение равно 1, указывает, что к этому кадру следует добавить плёнку. Это поле соответствует элементу синтаксиса с тем же именем из спецификации AV1.

film_grain.DUMMYUNIONNAME.scaling_shift_minus8

Сдвиг -8 применяется к значениям компонента хрома. Это поле соответствует элементу синтаксиса с именем grain_scaling_minus8 из спецификации AV1.

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

Указывает, насколько гауссовские случайные числа должны быть уменьшены в процессе синтеза grain. Это поле соответствует элементу синтаксиса с тем же именем из спецификации 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]

Представляет координаты x,y для функции кускового линейного масштабирования для плоскости Y. Это 2D-массив. На каждом сегменте первое указанное значение — координата x (значение luma), а второе — значение масштабирования (y, выходные данные). Это поле соответствует элементу синтаксиса point_y_value из спецификации AV1.

film_grain.num_y_points

Число допустимых сегментов, указанных в scaling_points_y. Это поле соответствует синтаксический элемент с тем же именем из спецификации AV1.

film_grain.scaling_points_cb[10]

Представляет координаты x,y для функции кускового линейного масштабирования для cb-плоскости. Это объемный массив. На каждом сегменте первым указанным значением является координата x (значение luma), а второе — значение масштабирования (y, выходные данные). Это поле соответствует элементу синтаксиса point_cb_value из спецификации AV1.

film_grain.num_cb_points

Число допустимых сегментов, указанных в scaling_points_cb. Это поле соответствует элементам синтаксиса с тем же именем из спецификации AV1.

film_grain.scaling_points_cr[10]

Представляет координаты x,y для функции кускового линейного масштабирования для cr-плоскости. Это объемный массив. На каждом сегменте первым указанным значением является координата x (значение luma), а второе — значение масштабирования (y, выходные данные). Это поле соответствует элементу синтаксиса point_cr_value из спецификации AV1.

film_grain.num_cr_points

Число допустимых сегментов, указанных в scaling_points_cr. Это поле соответствует синтаксический элемент с тем же именем из спецификации AV1.

film_grain.ar_coeffs_y[24]

Коэффициенты автоматической регрессии для плоскости Y. Это поле соответствует элементу синтаксиса ar_coeffs_y_plus_128 из спецификации AV1.

film_grain.ar_coeffs_cb[25]

Коэффициенты автоматической регрессии для плоскости U. Это поле соответствует элементу синтаксиса ar_coeffs_cb_plus_128 из спецификации AV1.

film_grain.ar_coeffs_cr[25]

Коэффициенты автоматической регрессии для плоскости V. Это поле соответствует элементу синтаксиса ar_coeffs_cr_plus_128 из спецификации AV1.

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. Дополнительные сведения см. в разделе Структура данных отчета о состоянии статьи Direct X Video Acceleration Specification for AV1 Video Coding (Структура данных отчета о состоянии) статьи Direct X Video Acceleration Specification for AV1 Video Coding (Кодирования видео av1).

Комментарии

Если ширина и высота являются производными от кадра (например, с помощью frame_size_override_flag), декодер узла получит соответствующие значения и сохранит результат в этих полях. Если включена функция superres , эти значения представляют разрешение кадров после масштабирования (в спецификации AV1 — UpscaledWidth).

Допустимые значения subsampling_x и subsampling_y ограничены значением профиля. В следующей таблице указаны допустимые значения для subsampling_x и subsampling_y, а также соответствующие форматы хрома.

subsampling_x subsampling_y Формат Chroma
1 1 4:2:0
1 0 4:2:2
0 0 4:4:4

Подробные сведения, в том числе об использовании этой структуры, см. в спецификации Direct X Video Acceleration Для кодирования видео AV1 .

Требования

Требование Значение
Минимальная версия сервера Windows Server 2022
Верхняя часть dxva.h