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


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

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

bitdepth

Битовая глубина декодированных примеров luma и chroma. Допустимые значения ограничены значением профиля.

seq_profile

Профиль битового потока AV1. Это соответствует элементу синтаксиса: seq_profile. Формат кодирования видео AV1 определяет следующие профили:

Профиль Значение
профиль 0 Поддерживает выборку 4:2:0 с 8 или 10 битами на выборку и монохромные форматы.
профиль 1 Поддерживает выборку 4:4:4 chroma с 8 или 10 битами на выборку.
профиль 2 Поддерживает выборку 4:2:0, 4:2:2 или 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, указывает, что суперблоки содержат 128x128 примеров luma; в противном случае суперблоки содержат 64x64 luma samples. Это поле соответствует элементу синтаксиса того же имени из спецификации AV1.

coding.intra_edge_filter

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

coding.interintra_compound

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

coding.masked_compound

Если равно 1, указывает, что сведения о режиме для межблоков могут содержать элемент синтаксиса 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, указывает, что векторы движения указаны в восьмой точности пела; в противном случае векторы движения указываются в соответствии с точностью четверти pel. Это поле соответствует элементу синтаксиса с именем 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 (независимо от того, используются ли эти рисунки в процессе декодирования текущего кадра). Для упорядочивания записей в массиве RefFrameMapTextureIn dex не указан определенный порядок.

Заметка

Акселератор должен использовать содержимое 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, указывает, что отдельные разностные фильтры цикла отправляются для горизонтальных краев luma, вертикальных краев luma, ребер U и виртуальных ребер. Это поле соответствует элементу синтаксиса с именем 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]

Размер единиц восстановления цикла журнала 2 в единицах образцов в текущей плоскости. Элемент 0 соответствует плоскости luma, элемент 1 плоскости U и элемент 2 плоскости V. Это поле соответствует переменной log2(LoopRestorationSize[плоскость]) из спецификации 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

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

quantization.u_dc_delta_q

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

quantization.v_dc_delta_q

Квантизатор виртуального контроллера домена относительно 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 гладкий 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 применена к значениям компонента chroma. Это поле соответствует элементу синтаксиса с именем 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

Указывает, сколько случайных чисел Гаусиана следует уменьшить во время процесса синтеза зерна. Это поле соответствует элементу синтаксиса того же имени из спецификации 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 value), а второе — значение масштабирования (y, выходные данные). Это поле соответствует элементу синтаксиса point_y_value из спецификации AV1.

film_grain.num_y_points

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

film_grain.scaling_points_cb[10]

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

film_grain.num_cb_points

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

film_grain.scaling_points_cr[10]

Представляет координаты x,y для функции кусочного линейного масштабирования для цр-плоскости. Это 2D-массив, на каждом сегменте по фрагментам первое указанное значение — координата x (luma value), а второе — значение масштабирования (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 Для видеообращения AV1.

Замечания

Если ширину и высоту являются производными для кадра (например, через frame_size_override_flag), декодировщик узла будет получать соответствующие значения и хранить результат в этих полях. Если включена суперрес, эти значения представляют разрешение кадров после масштабирования (называемое в спецификации 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 для AV 1.

Требования

Требование Ценность
минимальный поддерживаемый сервер Windows Server 2022
заголовка dxva.h