Bagikan melalui


struktur DXVA_PicParams_AV1 (dxva.h)

Struktur DXVA_PicParams_AV1 menyediakan parameter tingkat gambar dari gambar terkompresi untuk pendekodean video AV1.

Sintaks

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

Anggota

width

Lebar berkode bingkai saat ini. Sesuai dengan elemen sintaks frame_width_minus_1. Lihat Keterangan.

height

Tinggi berkode bingkai saat ini. Sesuai dengan elemen sintaks frame_height_minus_1. Lihat Keterangan.

max_width

max_height

CurrPicTextureIndex

Indeks buffer/permukaan bingkai tujuan untuk gambar yang didekodekan.

superres_denom

Ketika superres diaktifkan, bidang ini menentukan denominator untuk menghitung lebar bingkai yang diperbarui. Ini sesuai dengan nilai SuperresDenom dari spesifikasi AV1. Ketika superres tidak diaktifkan, nilai ini akan menjadi 8.

bitdepth

Kedalaman bit sampel luma dan klorma yang didekodekan. Nilai yang diizinkan dibatasi oleh nilai profil.

seq_profile

Profil bitstream AV1. Ini sesuai dengan elemen sintaks: seq_profile. Format pengodean video AV1 menentukan profil berikut:

Profil Makna
profil 0 Mendukung pengambilan sampel chroma 4:2:0 dengan 8 atau 10 bit per sampel dan format monokrom.
profil 1 Mendukung pengambilan sampel chroma 4:4:4 dengan 8 atau 10 bit per sampel.
profil 2 Mendukung pengambilan sampel chroma 4:2:0, 4:2:2, atau 4:4:4 pada format 8, 10, atau 12 bit per sampel dan monokrom.

tiles

Berisi informasi khusus untuk petak peta.

tiles.cols

Jumlah petak peta di seluruh bingkai. Bidang ini sesuai dengan 2^TileColsLog2 dari spesifikasi AV1.

tiles.rows

Jumlah petak peta ke bawah bingkai. Bidang ini sesuai dengan 2^TileRowsLog2 dari spesifikasi AV1.

tiles.context_update_id

Menentukan petak peta mana yang akan digunakan untuk pembaruan CDF. Ini sesuai dengan elemen sintaksis bernama context_update_tile_id dari spesifikasi AV1.

tiles.widths[64]

Lebar setiap petak peta, dalam satuan superblok. Hanya 2^cols_log2 entri lebar pertama yang valid. Bidang ini sesuai dengan variabel tileWidthSb dari spesifikasi AV1.

tiles.heights[64]

Tinggi setiap petak peta, dalam satuan superblok. Hanya entri tinggi 2^rows_log2 pertama yang valid. Bidang ini sesuai dengan variabel tileHeightSb dari spesifikasi AV1.

coding

Alat pengodian.

coding.use_128x128_superblock

Ketika sama dengan 1, menunjukkan bahwa superblok berisi 128x128 sampel luma; jika tidak, superblok berisi sampel luma 64x64. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

coding.intra_edge_filter

Menentukan apakah proses pemfilteran intra edge harus diaktifkan. Bidang ini sesuai dengan elemen sintaks bernama enable_intra_edge_filter dari spesifikasi AV1.

coding.interintra_compound

Ketika sama dengan 1, menunjukkan bahwa info mode untuk antar blok mungkin berisi interintra elemen sintaks; jika tidak, elemen sintaks interintra tidak akan ada. Bidang ini sesuai dengan elemen sintaksis bernama enable_interintra_compound dari spesifikasi AV1.

coding.masked_compound

Ketika sama dengan 1, menunjukkan bahwa info mode untuk blok antar mungkin berisi elemen sintaks compound_type; jika tidak, elemen sintaks compound_type tidak akan ada. Bidang ini sesuai dengan elemen sintaksis bernama enable_masked_compound dari spesifikasi AV1.

coding.warped_motion

Jika sama dengan 1, menunjukkan bahwa elemen sintaks motion_mode mungkin ada. Bidang ini sesuai dengan elemen sintaksis bernama allow_warped_motion dari spesifikasi AV1.

coding.dual_filter

Ketika sama dengan 1, menunjukkan bahwa jenis filter prediksi inter dapat ditentukan secara independen dalam arah horizontal dan vertikal; jika tidak, hanya satu jenis filter yang dapat ditentukan. Bidang ini sesuai dengan elemen sintaks bernama enable_dual_filter dari spesifikasi AV1.

coding.jnt_comp

Ketika sama dengan 1, menunjukkan bahwa proses bobot jarak dapat digunakan untuk prediksi inter. Bidang ini sesuai dengan elemen sintaks bernama enable_jnt_comp dari spesifikasi AV1.

coding.screen_content_tools

Ketika sama dengan 1, menunjukkan bahwa blok intra dapat menggunakan pengodean palet; jika tidak, pengodean palet tidak akan digunakan. Bidang ini sesuai dengan elemen sintaksis bernama allow_screen_content_tools dari spesifikasi AV1.

coding.integer_mv

Ketika sama dengan 1, menunjukkan bahwa vektor gerakan akan selalu menjadi bilangan bulat. Bidang ini sesuai dengan elemen sintaks bernama force_integer_mv dari spesifikasi AV1.

coding.cdef

Ketika sama dengan 1, menunjukkan bahwa pemfilteran Filter Peningkatan Arah Terkendala (CDEF) dapat diaktifkan. Bidang ini sesuai dengan elemen sintaks bernama enable_cdef dari spesifikasi AV1.

coding.restoration

Jika sama dengan 1, menunjukkan bahwa pemfilteran pemulihan perulangan dapat diaktifkan. Bidang ini sesuai dengan elemen sintaksis bernama enable_restoration dari spesifikasi AV1.

coding.film_grain

Ketika sama dengan 1, menunjukkan bahwa pemrosesan biji-bijian film dapat diaktifkan. Bidang ini sesuai dengan elemen sintaks bernama film_grain_params_present dari spesifikasi AV1.

coding.intrabc

Ketika sama dengan 1, menunjukkan bahwa salinan blok intra dapat digunakan. Bidang ini sesuai dengan elemen sintaks bernama allow_intrabc dari spesifikasi AV1.

coding.high_precision_mv

Ketika sama dengan 1, menunjukkan bahwa vektor gerakan ditentukan untuk presisi pel kedelapan; jika tidak, vektor gerakan ditentukan untuk presisi triwulanan. Bidang ini sesuai dengan elemen sintaksis bernama allow_high_precision_mv dari spesifikasi AV1.

coding.switchable_motion_mode

Ketika sama dengan 1, menunjukkan bahwa hanya mode gerakan SIMPLE yang dapat digunakan. Bidang ini sesuai dengan elemen sintaksis bernama is_motion_mode_switchable dari spesifikasi AV1.

coding.filter_intra

Jika sama dengan 1, menunjukkan bahwa elemen sintaks use_filter_intra mungkin ada. Bidang ini sesuai dengan elemen sintaks bernama enable_filter_intra dari spesifikasi AV1.

coding.disable_frame_end_update_cdf

Menentukan apakah array CDF disimpan dalam proses keluar dekoder simbol. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

coding.disable_cdf_update

Menentukan apakah pembaruan CDF dalam proses pendekodean simbol harus dinonaktifkan. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

coding.reference_mode

Mengontrol mode yang digunakan untuk prediksi bingkai referensi. Dapat berupa salah satu nilai berikut yang sesuai dengan mode referensi dari proses pendekodean AV1:

reference_mode Nama reference_mode
0 SINGLE_REFERENCE
1 REFERENCE_MODE_SELECT

coding.skip_mode

Menunjukkan apakah sintaks mode skip dapat ditentukan dalam prediksi mabung. Bidang ini sesuai dengan elemen sintaks skip_mode_present dari spesifikasi AV1.

coding.reduced_tx_set

Menentukan apakah bingkai menggunakan sekumpulan jenis transformasi terbatas. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

coding.superres

Menentukan apakah bingkai menggunakan resolusi super. Bidang ini sesuai dengan elemen sintaksis bernama use_superres dari spesifikasi AV1.

coding.tx_mode

Menentukan bagaimana ukuran transformasi ditentukan. Bidang ini sesuai dengan variabel dengan nama yang sama dari spesifikasi AV1. Ini dapat mengambil salah satu nilai berikut, seperti yang ditentukan dalam spesifikasi AV1:

Nilai TxMode Nama TxMode
0 ONLY_4X4
1 TX_MODE_LARGEST
2 TX_MODE_SELECT

coding.use_ref_frame_mvs

Menentukan apakah vektor gerakan dari bingkai sebelumnya harus digunakan untuk bingkai saat ini. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

coding.enable_ref_frame_mvs

Menentukan apakah use_ref_frame_mvs dinonaktifkan untuk seluruh urutan video; ketika 0 use_ref_frame_mvs juga akan selalu 0. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1 (dari header urutan).

coding.reference_frame_update

Menunjukkan bahwa proses pembaruan bingkai referensi seperti yang ditentukan oleh bagian 7.20 dari spesifikasi AV1 harus dilakukan setelah mendekode bingkai ini. Jika tidak, bagian 7.21 harus dilakukan.

coding.Reserved

Bidang bit yang dicadangkan untuk menyelesaikan struktur yang dikemas. Harus diatur ke 0. Akselerator harus mengabaikan nilai dalam bidang bit yang dipesan.

coding.CodingParamToolFlags

Menyediakan cara alternatif untuk mengakses bidang bit yang terkait dengan bendera alat pengkodelan.

format

Berisi format dan informasi gambar.

format.frame_type

Jenis bingkai bingkai saat ini. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dalam spesifikasi AV1 dan memengaruhi proses pendekodean yang sesuai. Nilai yang diizinkan adalah 0, 1, 2 atau 3, untuk empat jenis bingkai AV1: KEY_FRAME, INTER_FRAME, INTRA_ONLY_FRAME, dan S_FRAME.

format.show_frame

Menunjukkan apakah bingkai saat ini dimaksudkan untuk menjadi output dan ditampilkan setelah pendekodean selesai. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dalam spesifikasi AV1 dan memengaruhi proses pendekodean yang sesuai. Di DXVA, ini tidak memiliki efek langsung, karena host mengontrol tampilan bingkai yang didekodekan secara terpisah oleh panggilan fungsi lainnya.

format.showable_frame

Jika sama dengan 1, menentukan bahwa bingkai dapat menjadi output menggunakan mekanisme show_existing_frame; jika tidak sama dengan nol, yang menentukan bahwa bingkai ini tidak akan menjadi output menggunakan mekanisme show_existing_frame.

format.subsampling_x

Bersama dengan subsampling_y, menunjukkan format pengambilan sampel chroma. Lihat Keterangan.

format.subsampling_y

Bersama dengan subsampling_x, menunjukkan format pengambilan sampel chroma. Lihat Keterangan.

format.mono_chrome

Menunjukkan apakah bitstream adalah monokrom. Jika 1 maka hanya pesawat luma yang ada. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari Sintaks Konfigurasi Warna dari spesifikasi AV1. Nilai yang diizinkan dibatasi oleh nilai profil.

format.Reserved

Bidang bit yang dicadangkan untuk menyelesaikan struktur yang dikemas. Harus diatur ke 0. Akselerator harus mengabaikan nilai dalam bidang bit yang dipesan.

format.FormatAndPictureInfoFlags

Menyediakan cara alternatif untuk mengakses bidang bit yang terkait dengan format dan info gambar.

primary_ref_frame

Menentukan bingkai referensi mana yang berisi nilai CDF dan status lain yang harus dimuat di awal bingkai. Bidang ini 0x7 ketika tidak ada bingkai referensi utama. Ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

order_hint

Urutan output bingkai saat ini. Sesuai dengan OrderHint dari spesifikasi AV1.

order_hint_bits

Sesuai dengan elemen sintaks bernama order_hint_bits_minus_1 dalam spesifikasi AV1. Bidang ini didefinisikan sebagai: order_hint_bits_minus_1 + 1. Bidang ini akan menjadi 0 ketika enable_order_hint dari spesifikasi AV1 adalah 0.

Ketika nilai ini adalah 0, tidak ada alat berdasarkan OrderHint yang harus digunakan dan nilai order_hint tidak ditentukan. Ketika bukan nol, itu mempengaruhi perhitungan jarak relatif yang sesuai (lihat fungsi get_relative_dist dari spesifikasi AV1).

frame_refs[7]

RefFrameMapTextureIndex[8]

Array permukaan buffer bingkai yang tidak dikompresi. Entri yang tidak akan digunakan untuk mendekode gambar saat ini, atau gambar berikutnya, ditunjukkan dengan mengatur nilai ini ke 0xFF. Jika nilai tidak 0xFF, entri dapat digunakan sebagai permukaan referensi untuk mendekode gambar saat ini atau gambar berikutnya dalam urutan pendekodean.

Semua permukaan yang tidak dikompresi yang sesuai dengan bingkai yang dapat digunakan untuk referensi dalam proses pendekodean gambar saat ini atau gambar berikutnya akan ada dalam array ReframeMapTextureIndex (terlepas dari apakah gambar-gambar ini benar-benar digunakan dalam proses pendekodean bingkai saat ini). Tidak ada urutan tertentu yang ditentukan untuk urutan entri dalam array ReframeMapTextureIndex .

Catatan

Akselerator harus menggunakan konten ReframeMapTextureIndex sebagaimana disediakan oleh akselerator daripada mencoba memperoleh informasi ini dari bitstream (untuk memastikan operasi stateless yang penanganan buffer bingkai yang dikodekan akan dilakukan di bawah kendali host daripada disimpulkan dari bitstream oleh akselerator).

loop_filter

Struktur dengan parameter filter perulangan.

loop_filter.filter_level[2]

Array yang berisi nilai kekuatan filter perulangan. Sesuai dengan elemen sintaks dengan nama yang sama dalam spesifikasi AV1, dan memengaruhi proses pendekodean filter pembatalan yang sesuai. Lihat bidang sharpness_level untuk informasi selengkapnya.

loop_filter.filter_level_u

loop_filter.filter_level_v

loop_filter.sharpness_level

Menunjukkan tingkat ketajaman. Nilai filter_level dan sharpness_level bersama-sama menentukan kapan tepi blok difilter, dan dengan berapa banyak pemfilteran dapat mengubah nilai sampel. Proses filter perulangan dijelaskan dalam bagian 7.14 dari spesifikasi AV1.

loop_filter.DUMMYUNIONNAME

loop_filter.DUMMYUNIONNAME.mode_ref_delta_enabled

Jika sama dengan 1, menunjukkan bahwa tingkat filter bergantung pada mode dan bingkai referensi yang digunakan untuk memprediksi blok. Bidang ini sesuai dengan elemen sintaks bernama loop_filter_delta_enabled dari spesifikasi AV1.

loop_filter.DUMMYUNIONNAME.mode_ref_delta_update

Jika sama dengan 1, menunjukkan bahwa ada elemen sintaks tambahan yang menentukan mode dan delta bingkai referensi mana yang akan diperbarui. Bidang ini sesuai dengan elemen sintaks bernama loop_filter_delta_update dari spesifikasi AV1.

loop_filter.DUMMYUNIONNAME.delta_lf_multi

Jika sama dengan 1, menunjukkan bahwa delta filter perulangan terpisah dikirim untuk tepi luma horizontal, tepi luma vertikal, tepi U, dan tepi V. Bidang ini sesuai dengan elemen sintaks bernama delta_lf_multi dari spesifikasi AV1.

loop_filter.DUMMYUNIONNAME.delta_lf_present

Jika sama dengan 1, menunjukkan bahwa delta filter perulangan ada. Ini diperlukan untuk proses pendekodean filter perulangan: read_delta_lf(). Bidang ini sesuai dengan elemen sintaks bernama delta_lf_present dari spesifikasi AV1.

loop_filter.DUMMYUNIONNAME.Reserved

Bidang bit yang dicadangkan untuk menyelesaikan struktur yang dikemas. Harus diatur ke 0. Akselerator harus mengabaikan nilai dalam bidang bit yang dipesan.

loop_filter.DUMMYUNIONNAME.ControlFlags

Menyediakan cara alternatif untuk mengakses bidang bit yang terkait dengan bendera filter perulangan.

loop_filter.ref_deltas[8]

Sesuai dengan elemen sintaks bernama loop_filter_ref_deltas dalam spesifikasi AV1 dan memengaruhi proses pendekodean filter perulangan yang sesuai.

loop_filter.mode_deltas[2]

Sesuai dengan elemen sintaks bernama loop_filter_mode_deltas dalam spesifikasi AV1 dan memengaruhi proses pendekodean filter perulangan yang sesuai.

loop_filter.delta_lf_res

Shift kiri yang harus diterapkan ke nilai delta filter loop yang didekodekan. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

loop_filter.frame_restoration_type[3]

Mode pemulihan perulangan untuk bingkai ini. Bidang ini sesuai dengan elemen sintaks FrameRestorationType dari spesifikasi AV1. Ini bisa menjadi salah satu dari yang berikut ini, yang merupakan nilai yang sama seperti yang ditentukan dalam spesifikasi AV1:

FrameRestorationType Nama FrameRestorationType
0 RESTORE_NONE
1 RESTORE_WIENER
2 RESTORE_SGRPROJ
3 RESTORE_SWITCHABLE

loop_filter.log2_restoration_unit_size[3]

Ukuran log2 unit pemulihan perulangan dalam satuan sampel di bidang saat ini. Elemen 0 sesuai dengan bidang luma, elemen 1 ke bidang U dan elemen 2 ke bidang V. Bidang ini sesuai dengan variabel log2(LoopRestorationSize[plane]) dari spesifikasi AV1.

loop_filter.Reserved16Bits

Bidang bit yang dicadangkan untuk menyelesaikan struktur yang dikemas. Harus diatur ke 0. Akselerator harus mengabaikan nilai dalam bidang bit yang dipesan.

quantization

Berisi informasi kuantisasi.

quantization.DUMMYUNIONNAME

quantization.DUMMYUNIONNAME.delta_q_present

Menentukan apakah nilai delta indeks quantizer ada. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

quantization.DUMMYUNIONNAME.delta_q_res

Shift kiri, yang harus diterapkan ke nilai delta indeks kuantizer yang didekodekan. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

quantization.DUMMYUNIONNAME.Reserved

Bidang bit yang dipesan untuk menyelesaikan struktur yang dikemas. Harus diatur ke 0. Akselerator harus mengabaikan nilai dalam bidang bit yang dipesan.

quantization.DUMMYUNIONNAME.ControlFlags

Menyediakan cara alternatif untuk mengakses bidang bit yang terkait dengan kuantisasi.

quantization.base_qindex

Menunjukkan qindex bingkai dasar. Bidang ini sesuai dengan elemen sintaksis bernama base_q_idx dari spesifikasi AV1.

quantization.y_dc_delta_q

Kuantizer Y DC relatif terhadap base_qindex. Bidang ini sesuai dengan DeltaQYDc dari spesifikasi AV1.

quantization.u_dc_delta_q

Pengukur U DC relatif terhadap base_qindex. Bidang ini sesuai dengan DeltaQUDc dari spesifikasi AV1.

quantization.v_dc_delta_q

Kuantizer V DC relatif terhadap base_qindex. Bidang ini sesuai dengan DeltaQVDc dari spesifikasi AV1.

quantization.u_ac_delta_q

Kuantizer AC U relatif terhadap base_qindex. Bidang ini sesuai dengan DeltaQUAc dari spesifikasi AV1.

quantization.v_ac_delta_q

Kuantizer AC V relatif terhadap base_qindex. Bidang ini sesuai dengan DeltaQVAc dari spesifikasi AV1.

quantization.qm_y

Tingkat dalam matriks kuantizer yang harus digunakan untuk decoding bidang luma. Ketika tidak ditentukan (using_qmatrix=0), bidang ini akan 0xFF (yang merupakan tingkat matriks kuantizer yang tidak valid). Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

quantization.qm_u

Tingkat dalam matriks kuantizer yang harus digunakan untuk decoding U-plane. Ketika tidak ditentukan (using_qmatrix=0), bidang ini akan 0xFF (yang merupakan tingkat matriks kuantizer yang tidak valid). Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

quantization.qm_v

Tingkat dalam matriks kuantizer yang harus digunakan untuk decoding bidang V. Ketika tidak ditentukan (using_qmatrix=0), bidang ini akan 0xFF (yang merupakan tingkat matriks kuantizer yang tidak valid). Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

quantization.Reserved16Bits

Dicadangkan.

cdef

Parameter filter peningkatan arah (CDEF) yang dibatasi.

cdef.DUMMYUNIONNAME

cdef.DUMMYUNIONNAME.damping

Mengontrol jumlah peredam dalam filter turunan. Bidang ini sesuai dengan variabel bernama cdef_damping_minus_3 dari spesifikasi AV1.

cdef.DUMMYUNIONNAME.bits

Jumlah bit yang digunakan untuk memberi sinyal pengaturan filter CDEF. Bidang ini sesuai dengan elemen sintaksis bernama cdef_bits dari spesifikasi AV1.

cdef.DUMMYUNIONNAME.Reserved

Bidang bit yang dipesan untuk menyelesaikan struktur yang dikemas. Harus diatur ke 0. Akselerator harus mengabaikan nilai dalam bidang bit yang dipesan.

cdef.DUMMYUNIONNAME.ControlFlags

Menyediakan cara alternatif untuk mengakses bidang bit yang terkait dengan parameter CDEF.

cdef.primary

Kekuatan filter utama untuk saluran y. Bidang ini sesuai dengan cdef_y_pri_strength dari spesifikasi AV1.

cdef.secondary

Kekuatan filter sekunder untuk saluran y. Bidang ini sesuai dengan cdef_y_sec_strength dari spesifikasi AV1.

cdef.combined

Menyediakan cara alternatif untuk mengakses bit primer dan sekunder y_strengths.

cdef.y_strengths[8]

Kekuatan filter primer dan sekunder untuk saluran y.

cdef.uv_strengths[8]

Kekuatan filter primer dan sekunder untuk uv-channels. Ini sesuai dengan elemen sintaks cdef_uv_pri_strength, dan cdef_uv_sec_strength dari spesifikasi AV1.

interp_filter

Sesuai dengan elemen sintaks yang sama dengan nama yang sama dalam spesifikasi AV1 dan memengaruhi proses pendekodean interpolasi kompensasi gerakan yang sesuai. Tabel di bawah ini memperlihatkan kemungkinan nilai interp_filter.

Nilai Jenis filter
0 normal 8-tap
1 halus 8-tap
2 tajam 8 ketukan
3 bilinear
4 semua filter

segmentation

Parameter segmentasi.

segmentation.DUMMYUNIONNAME

segmentation.DUMMYUNIONNAME.enabled

Ketika sama dengan 1, menunjukkan bahwa bingkai ini menggunakan alat segmentasi. Bidang ini sesuai dengan elemen sintaksis bernama segmentation_enabled dari spesifikasi AV1.

segmentation.DUMMYUNIONNAME.update_map

Ketika sama dengan 1, menunjukkan bahwa peta segmentasi diperbarui selama pendekodean bingkai ini. Bidang ini sesuai dengan elemen sintaksis bernama segmentation_update_map dari spesifikasi AV1.

segmentation.DUMMYUNIONNAME.update_data

Jika sama dengan 1, menunjukkan bahwa parameter baru disediakan untuk setiap segmen. Bidang ini sesuai dengan elemen sintaks bernama segmentation_update_data dari spesifikasi AV1.

segmentation.DUMMYUNIONNAME.temporal_update

Jika sama dengan 1, menunjukkan bahwa pembaruan pada peta segmentasi dikodekan relatif terhadap peta segmentasi yang ada. Bidang ini sesuai dengan elemen sintaks bernama segmentation_temporal_update dari spesifikasi AV1.

segmentation.DUMMYUNIONNAME.Reserved

Bidang bit yang dipesan untuk menyelesaikan struktur yang dikemas. Harus diatur ke 0. Akselerator harus mengabaikan nilai dalam bidang bit yang dipesan.

segmentation.DUMMYUNIONNAME.ControlFlags

Menyediakan cara alternatif untuk mengakses bidang bit yang terkait dengan segmentasi.

segmentation.Reserved24Bits[3]

Dicadangkan.

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]

Menentukan fitur data segmen mana yang diperbarui dalam bingkai ini. Bidang ini sesuai dengan elemen sintaks feature_enabled dari spesifikasi AV1.

segmentation.feature_data[8]

Menentukan nilai fitur segmentasi. Bidang ini sesuai dengan elemen sintaks feature_value dari spesifikasi AV1.

film_grain

Parameter butir film.

film_grain.DUMMYUNIONNAME

film_grain.DUMMYUNIONNAME.apply_grain

Ketika sama dengan 1, menunjukkan bahwa butir film harus ditambahkan ke bingkai ini. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.DUMMYUNIONNAME.scaling_shift_minus8

Shift -8 diterapkan ke nilai komponen chroma. Bidang ini sesuai dengan elemen sintaks bernama grain_scaling_minus8 dari spesifikasi AV1.

film_grain.DUMMYUNIONNAME.chroma_scaling_from_luma

Ketika sama dengan 1, menentukan bahwa penskalaan klorma disimpulkan dari penskalaan luma. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.DUMMYUNIONNAME.ar_coeff_lag

Jumlah koefisien regresif otomatis untuk luma dan klorma. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.DUMMYUNIONNAME.ar_coeff_shift_minus6

Rentang koefisien regresif otomatis. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.DUMMYUNIONNAME.grain_scale_shift

Menentukan berapa banyak angka acak Gaussia yang harus diturunkan skalanya selama proses sintesis biji-bijian. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.DUMMYUNIONNAME.overlap_flag

Ketika sama dengan 1, menunjukkan bahwa tumpang tindih antara blok butir film harus diterapkan. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.DUMMYUNIONNAME.clip_to_restricted_range

Jika sama dengan 1, menunjukkan bahwa kliping ke rentang (studio) terbatas harus diterapkan ke nilai sampel setelah menambahkan butir film (lihat semantik untuk color_range untuk penjelasan ayunan studio). Jika sama dengan 0, menunjukkan bahwa kliping ke rentang penuh harus diterapkan ke nilai sampel setelah menambahkan butir film.

film_grain.DUMMYUNIONNAME.matrix_coeff_is_identity

film_grain.DUMMYUNIONNAME.Reserved

Bidang bit yang dipesan untuk menyelesaikan struktur yang dikemas. Harus diatur ke 0. Akselerator harus mengabaikan nilai dalam bidang bit yang dipesan.

film_grain.DUMMYUNIONNAME.ControlFlags

Menyediakan cara alternatif untuk mengakses bidang bit yang terkait dengan biji-bijian film.

film_grain.grain_seed

Nilai awal untuk generator angka pseudo-random yang digunakan untuk sintesis butir film. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.scaling_points_y[14]

Mewakili koordinat x,y untuk fungsi penskalaan linear sepotong untuk bidang-y. Ini adalah array 2D, pada setiap segmen piecewise nilai pertama yang ditentukan adalah koordinat x (nilai luma) dan nilai kedua adalah nilai penskalaan (y, output). Bidang ini sesuai dengan elemen sintaks point_y_value dari spesifikasi AV1.

film_grain.num_y_points

Jumlah segmen sepotong yang valid yang ditentukan dalam scaling_points_y. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.scaling_points_cb[10]

Mewakili koordinat x,y untuk fungsi penskalaan linear sepotong untuk bidang cb. Ini adalah array 2D, pada setiap segmen piecewise nilai pertama yang ditentukan adalah koordinat x (nilai luma) dan nilai kedua adalah nilai penskalaan (y, output). Bidang ini sesuai dengan elemen sintaks point_cb_value dari spesifikasi AV1.

film_grain.num_cb_points

Jumlah segmen sepotong yang valid yang ditentukan dalam scaling_points_cb. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.scaling_points_cr[10]

Mewakili koordinat x,y untuk fungsi penskalaan linear sepotong untuk bidang-cr. Ini adalah array 2D, pada setiap segmen piecewise nilai pertama yang ditentukan adalah koordinat x (nilai luma) dan nilai kedua adalah nilai penskalaan (y, output). Bidang ini sesuai dengan elemen sintaks point_cr_value dari spesifikasi AV1.

film_grain.num_cr_points

Jumlah segmen sepotong yang valid yang ditentukan dalam scaling_points_cr. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.ar_coeffs_y[24]

Koefisien regresif otomatis untuk bidang Y. Bidang ini sesuai dengan elemen sintaks ar_coeffs_y_plus_128 dari spesifikasi AV1.

film_grain.ar_coeffs_cb[25]

Koefisien regresif otomatis untuk bidang U. Bidang ini sesuai dengan elemen sintaks ar_coeffs_cb_plus_128 dari spesifikasi AV1.

film_grain.ar_coeffs_cr[25]

Koefisien regresif otomatis untuk bidang V. Bidang ini sesuai dengan elemen sintaks ar_coeffs_cr_plus_128 dari spesifikasi AV1.

film_grain.cb_mult

Pengali untuk komponen Cb yang digunakan dalam turunan indeks input ke fungsi penskalaan komponen. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.cb_luma_mult

Pengali yang digunakan untuk komponen luma ke dalam fungsi penskalaan komponen Cb. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.cr_mult

Pengali untuk komponen Cr yang digunakan dalam turunan indeks input ke fungsi penskalaan komponen. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.cr_luma_mult

Pengali yang digunakan untuk komponen luma ke dalam fungsi penskalaan komponen Cr. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.Reserved8Bits

Dicadangkan.

film_grain.cb_offset

Offset yang digunakan dalam turunan indeks input ke fungsi penskalaan komponen Cb. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

film_grain.cr_offset

Offset yang digunakan dalam turunan indeks input ke fungsi penskalaan komponen Cr. Bidang ini sesuai dengan elemen sintaks dengan nama yang sama dari spesifikasi AV1.

Reserved32Bits

Dicadangkan.

StatusReportFeedbackNumber

Nomor arbitrer yang diatur oleh dekoder host untuk digunakan sebagai tag dalam data umpan balik laporan status. Nilai tidak boleh sama dengan 0, dan harus berbeda dalam setiap panggilan ke Jalankan. Untuk informasi selengkapnya, lihat bagian Struktur Data Laporan Status di Spesifikasi Akselerasi Video Direct X untuk Pengkodian Video AV1.

Keterangan

Jika lebar dan tinggi diturunkan untuk bingkai (misalnya melalui frame_size_override_flag), dekoder host akan memperoleh nilai yang sesuai dan menyimpan hasilnya di bidang ini. Jika superres diaktifkan, nilai-nilai ini mewakili resolusi bingkai pasca-skala (disebut dalam spesifikasi AV1 sebagai UpscaledWidth).

Nilai subsampling_x dan subsampling_y yang diizinkan dibatasi oleh nilai profil. Tabel berikut menentukan nilai yang diizinkan untuk subsampling_x dan subsampling_y, dan format klorma terkait.

subsampling_x subsampling_y Format Chroma
1 1 4:2:0
1 0 4:2:2
0 0 4:4:4

Lihat Spesifikasi Akselerasi Video Direct X untuk Pengodean Video AV1 untuk informasi terperinci, termasuk cara menggunakan struktur ini.

Persyaratan

Persyaratan Nilai
Server minimum yang didukung Windows Server 2022
Header dxva.h