Freigeben über


DXVA_PicParams_AV1 Struktur (dxva.h)

Die DXVA_PicParams_AV1-Struktur stellt die Parameter auf Bildebene eines komprimierten Bilds für die AV1-Videodecodierung bereit.

Syntax

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;

Angehörige

width

Codierte Breite des aktuellen Frames. Entspricht dem frame_width_minus_1 Syntaxelement. Siehe Anmerkungen.

height

Codierte Höhe des aktuellen Frames. Entspricht dem frame_height_minus_1 Syntaxelement. Siehe Anmerkungen.

max_width

max_height

CurrPicTextureIndex

Der Zielframepuffer/Oberflächenindex für das decodierte Bild.

superres_denom

Wenn Superres aktiviert ist, gibt dieses Feld den Nenner für die Berechnung der aktualisierten Framebreite an. Dies entspricht dem SuperresDenom-Wert aus der AV1-Spezifikation. Wenn Superres nicht aktiviert ist, muss dieser Wert 8 sein.

bitdepth

Die Bittiefe der Luma- und Chroma-decodierten Proben. Die zulässigen Werte sind durch den Profilwert eingeschränkt.

seq_profile

Das Profil des AV1-Bitstreams. Dies entspricht dem Syntaxelement: seq_profile. Das AV1-Videocodierungsformat definiert die folgenden Profile:

Profil Bedeutung
Profil 0 Unterstützt 4:2:0 Farbsampling mit 8 oder 10 Bit pro Probe und Monochromformaten.
Profil 1 Unterstützt 4:4:4 Chroma Sampling mit 8 oder 10 Bit pro Probe.
Profil 2 Unterstützt 4:2:0, 4:2:2 oder 4:4:4 Farbsampling bei 8, 10 oder 12 Bit pro Beispiel und monochromen Formaten.

tiles

Enthält informationen, die für Kacheln spezifisch sind.

tiles.cols

Die Anzahl der Kacheln über einen Frame. Dieses Feld entspricht 2^TileColsLog2 aus der AV1-Spezifikation.

tiles.rows

Die Anzahl der Kacheln nach unten in einem Frame. Dieses Feld entspricht 2^TileRowsLog2 aus der AV1-Spezifikation.

tiles.context_update_id

Gibt an, welche Kachel für das CDF-Update verwendet werden soll. Dies entspricht dem Syntaxelement namens context_update_tile_id aus der AV1-Spezifikation.

tiles.widths[64]

Die Breite jeder Kachel in Einheiten von Superblocks. Nur die ersten 2^cols_log2 Breiteneinträge sind gültig. Dieses Feld entspricht der TileWidthSb-Variable aus der AV1-Spezifikation.

tiles.heights[64]

Die Höhe jeder Kachel in Einheiten von Superblocks. Nur die ersten 2^rows_log2 Höheneinträge sind gültig. Dieses Feld entspricht der TileHeightSb-Variable aus der AV1-Spezifikation.

coding

Die Codierungstools.

coding.use_128x128_superblock

Wenn gleich 1, gibt an, dass Superblocks 128 x 128 Luma-Beispiele enthalten; andernfalls enthalten Superblocks 64x64 Luma-Beispiele. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

coding.intra_edge_filter

Gibt an, ob der Intra Edge-Filterprozess aktiviert werden soll. Dieses Feld entspricht dem Syntaxelement namens enable_intra_edge_filter aus der AV1-Spezifikation.

coding.interintra_compound

Wenn gleich 1, gibt an, dass die Modusinformationen für Interblöcke das Syntaxelement interintra enthalten können; andernfalls ist das Interintra-Syntaxelement nicht vorhanden. Dieses Feld entspricht dem Syntaxelement enable_interintra_compound aus der AV1-Spezifikation.

coding.masked_compound

Entspricht 1, gibt an, dass die Modusinformationen für Interblöcke das Syntaxelement compound_type enthalten können; andernfalls ist das compound_type Syntaxelement nicht vorhanden. Dieses Feld entspricht dem Syntaxelement enable_masked_compound aus der AV1-Spezifikation.

coding.warped_motion

Gibt an, dass das Syntaxelement motion_mode vorhanden sein kann, wenn er gleich 1 ist. Dieses Feld entspricht dem Syntaxelement allow_warped_motion aus der AV1-Spezifikation.

coding.dual_filter

Entspricht 1, gibt an, dass der Intervorhersagefiltertyp unabhängig von der horizontalen und vertikalen Richtung angegeben werden kann; andernfalls kann nur ein Filtertyp angegeben werden. Dieses Feld entspricht dem Syntaxelement enable_dual_filter aus der AV1-Spezifikation.

coding.jnt_comp

Entspricht 1, gibt an, dass der Entfernungsgewichtungsprozess für die Intervorhersage verwendet werden kann. Dieses Feld entspricht dem Syntaxelement enable_jnt_comp aus der AV1-Spezifikation.

coding.screen_content_tools

Wenn gleich 1, bedeutet dies, dass intrablocks die Palettencodierung verwenden können; andernfalls wird die Palettencodierung nicht verwendet. Dieses Feld entspricht dem Syntaxelement allow_screen_content_tools aus der AV1-Spezifikation.

coding.integer_mv

Entspricht 1, gibt an, dass Bewegungsvektoren immer ganze Zahlen sind. Dieses Feld entspricht dem Syntaxelement force_integer_mv aus der AV1-Spezifikation.

coding.cdef

Entspricht 1, gibt an, dass die Filterung mit eingeschränkter Richtungserweiterung (Directional Enhancement Filter, CDEF) möglicherweise aktiviert ist. Dieses Feld entspricht dem Syntaxelement enable_cdef aus der AV1-Spezifikation.

coding.restoration

Entspricht 1, gibt an, dass die Filterung der Schleifenwiederherstellung möglicherweise aktiviert ist. Dieses Feld entspricht dem Syntaxelement enable_restoration aus der AV1-Spezifikation.

coding.film_grain

Entspricht 1, gibt an, dass die Filmkornverarbeitung aktiviert werden kann. Dieses Feld entspricht dem Syntaxelement film_grain_params_present aus der AV1-Spezifikation.

coding.intrabc

Entspricht 1, gibt an, dass die Intrablockkopie verwendet werden kann. Dieses Feld entspricht dem Syntaxelement allow_intrabc aus der AV1-Spezifikation.

coding.high_precision_mv

Wenn gleich 1, gibt an, dass Bewegungsvektoren auf achte Pel-Genauigkeit angegeben werden; andernfalls werden Bewegungsvektoren auf die Genauigkeit des Quartals pel angegeben. Dieses Feld entspricht dem Syntaxelement allow_high_precision_mv aus der AV1-Spezifikation.

coding.switchable_motion_mode

Gibt an, dass nur der EINFACHE Bewegungsmodus verwendet werden kann, wenn er gleich 1 ist. Dieses Feld entspricht dem Syntaxelement is_motion_mode_switchable aus der AV1-Spezifikation.

coding.filter_intra

Entspricht 1, gibt an, dass das use_filter_intra Syntaxelement vorhanden sein kann. Dieses Feld entspricht dem Syntaxelement enable_filter_intra aus der AV1-Spezifikation.

coding.disable_frame_end_update_cdf

Gibt an, ob die CDF-Arrays im Symboldecoderausgangsprozess gespeichert werden. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

coding.disable_cdf_update

Gibt an, ob das CDF-Update im Symboldecodierungsprozess deaktiviert werden soll. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

coding.reference_mode

Steuert den Modus, der für die Referenzrahmenvorhersage verwendet wird. Dies kann eine der folgenden Werte sein, die dem Referenzmodus aus dem AV1-Decodierungsprozess entsprechen:

reference_mode Name der reference_mode
0 SINGLE_REFERENCE
1 REFERENCE_MODE_SELECT

coding.skip_mode

Gibt an, ob die Syntax des Übersprungmodus in zusammengesetzter Vorhersage angegeben werden kann. Dieses Feld entspricht dem skip_mode_present Syntaxelement aus der AV1-Spezifikation.

coding.reduced_tx_set

Gibt an, ob der Frame einen eingeschränkten Satz von Transformationstypen verwendet. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

coding.superres

Gibt an, ob der Frame eine Superauflösung verwendet. Dieses Feld entspricht dem Syntaxelement use_superres aus der AV1-Spezifikation.

coding.tx_mode

Gibt an, wie die Transformationsgröße bestimmt wird. Dieses Feld entspricht der Variablen desselben Namens aus der AV1-Spezifikation. Es kann einen der folgenden Werte annehmen, wie in der AV1-Spezifikation angegeben:

TxMode-Wert Name von TxMode
0 ONLY_4X4
1 TX_MODE_LARGEST
2 TX_MODE_SELECT

coding.use_ref_frame_mvs

Gibt an, ob Bewegungsvektoren aus dem vorherigen Frame für den aktuellen Frame verwendet werden sollen. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

coding.enable_ref_frame_mvs

Gibt an, ob use_ref_frame_mvs für die gesamte Videosequenz deaktiviert ist; wenn 0 use_ref_frame_mvs auch immer 0 ist. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation (aus dem Sequenzheader).

coding.reference_frame_update

Gibt an, dass der Referenzframeaktualisierungsprozess gemäß Abschnitt 7.20 der AV1-Spezifikation nach der Decodierung dieses Frames ausgeführt werden soll. Andernfalls sollte Abschnitt 7.21 ausgeführt werden.

coding.Reserved

Reservierte Bitfelder, um die gepackte Struktur abzuschließen. Ist auf 0 festgelegt. Die Zugriffstaste ignoriert die Werte in den reservierten Bitfeldern.

coding.CodingParamToolFlags

Bietet eine alternative Möglichkeit für den Zugriff auf die Bitfelder im Zusammenhang mit Codierungstoolkennzeichnungen.

format

Enthält Format- und Bildinformationen.

format.frame_type

Der Frametyp des aktuellen Frames. Dieses Feld entspricht dem Syntaxelement desselben Namens in der AV1-Spezifikation und wirkt sich entsprechend auf den Decodierungsprozess aus. Die zulässigen Werte sind 0, 1, 2 oder 3 für die vier Typen von AV1-Frames: KEY_FRAME, INTER_FRAME, INTRA_ONLY_FRAME und S_FRAME.

format.show_frame

Gibt an, ob der aktuelle Frame ausgegeben und angezeigt werden soll, nachdem die Decodierung abgeschlossen wurde. Dieses Feld entspricht dem Syntaxelement desselben Namens in der AV1-Spezifikation und wirkt sich entsprechend auf den Decodierungsprozess aus. In DXVA hat dies keine direkte Auswirkung, da der Host die Anzeige decodierter Frames separat durch andere Funktionsaufrufe steuert.

format.showable_frame

Gibt gleich 1 an, dass der Frame mithilfe des show_existing_frame Mechanismus ausgegeben werden kann; andernfalls gleich Null, was angibt, dass dieser Frame nicht mit dem show_existing_frame Mechanismus ausgegeben wird.

format.subsampling_x

Zusammen mit subsampling_yzeigt das Farbsamplingformat an. Siehe Anmerkungen.

format.subsampling_y

Zusammen mit subsampling_xzeigt das Farbsamplingformat an. Siehe Anmerkungen.

format.mono_chrome

Gibt an, ob der Bitstream monochrom ist. Wenn 1 dann nur eine Luma-Ebene vorhanden ist. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der Farbkonfigurationssyntax der AV1-Spezifikation. Die zulässigen Werte sind durch den Profilwert eingeschränkt.

format.Reserved

Reservierte Bitfelder, um die gepackte Struktur abzuschließen. Ist auf 0 festgelegt. Die Zugriffstaste ignoriert die Werte in den reservierten Bitfeldern.

format.FormatAndPictureInfoFlags

Bietet eine alternative Möglichkeit, auf die Bitfelder im Zusammenhang mit Format- und Bildinformationen zuzugreifen.

primary_ref_frame

Gibt an, welcher Referenzframe die CDF-Werte und einen anderen Zustand enthält, der am Anfang des Frames geladen werden soll. Dieses Feld wird 0x7, wenn kein primärer Bezugsrahmen vorhanden ist. Es entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

order_hint

Die Ausgabefolge des aktuellen Frames. Entspricht OrderHint aus der AV1-Spezifikation.

order_hint_bits

Entspricht dem Syntaxelement namens order_hint_bits_minus_1 in der AV1-Spezifikation. Dieses Feld ist definiert als: order_hint_bits_minus_1 + 1. Dieses Feld ist 0, wenn enable_order_hint aus der AV1-Spezifikation 0 ist.

Wenn dieser Wert 0 ist, sollten keine Tools verwendet werden, die auf OrderHint basieren, und der Wert von order_hint ist nicht definiert. Wenn keine Null ist, wirkt es sich auf die Berechnung des relativen Abstands entsprechend aus (siehe Funktion get_relative_dist aus der AV1-Spezifikation).

frame_refs[7]

RefFrameMapTextureIndex[8]

Array von nicht komprimierten Framepufferoberflächen. Einträge, die nicht zum Decodieren des aktuellen Bilds oder nachfolgenden Bildern verwendet werden, werden durch Festlegen dieses Werts auf 0xFF angegeben. Wenn der Wert nicht 0xFF ist, kann der Eintrag als Referenzoberfläche zum Decodieren des aktuellen Bilds oder einer nachfolgenden Grafik in der Decodierungsreihenfolge verwendet werden.

Alle nicht komprimierten Oberflächen, die Frames entsprechen, die im Decodierungsprozess des aktuellen Bilds oder einer nachfolgenden Grafik verwendet werden können, sind im RefFrameMapTextureIndex Array vorhanden (unabhängig davon, ob diese Bilder tatsächlich im Decodierungsprozess des aktuellen Frames verwendet werden). Für die Sortierung der Einträge im RefFrameMapTextureIndex Array wird keine bestimmte Reihenfolge angegeben.

Anmerkung

Die Zugriffstaste muss den Inhalt des RefFrameMapTextureIndex verwenden, wie von der Zugriffstaste bereitgestellt, anstatt diese Informationen vom Bitstream abzuleiten (um einen zustandslosen Vorgang sicherzustellen, für den die decodierte Framepufferbehandlung unter der Kontrolle des Hosts ausgeführt werden soll, anstatt vom Bitstream durch die Zugriffstaste abgeleitet zu werden).

loop_filter

Struktur mit Schleifenfilterparametern.

loop_filter.filter_level[2]

Ein Array, das Schleifenfilterstärkewerte enthält. Entspricht dem Syntaxelement desselben Namens in der AV1-Spezifikation und wirkt sich auf die Decodierungsprozesse des Deblockingfilters entsprechend aus. Weitere Informationen finden Sie unter sharpness_level Feld.

loop_filter.filter_level_u

loop_filter.filter_level_v

loop_filter.sharpness_level

Gibt die Schärfestufe an. Die werte filter_level und sharpness_level bestimmen zusammen, wann ein Blockrand gefiltert wird und wie viel die Filterung die Beispielwerte ändern kann. Der Schleifenfilterprozess wird in Abschnitt 7.14 der AV1-Spezifikation beschrieben.

loop_filter.DUMMYUNIONNAME

loop_filter.DUMMYUNIONNAME.mode_ref_delta_enabled

Entspricht 1, gibt an, dass die Filterebene vom Modus und Referenzframe abhängt, mit dem ein Block vorhergesagt wird. Dieses Feld entspricht dem Syntaxelement loop_filter_delta_enabled aus der AV1-Spezifikation.

loop_filter.DUMMYUNIONNAME.mode_ref_delta_update

Wenn gleich 1, gibt an, dass zusätzliche Syntaxelemente vorhanden sind, die angeben, welche Modus- und Referenzframedelta aktualisiert werden sollen. Dieses Feld entspricht dem Syntaxelement loop_filter_delta_update aus der AV1-Spezifikation.

loop_filter.DUMMYUNIONNAME.delta_lf_multi

Gibt an, dass separate Schleifenfilterdelta für horizontale Luma-Kanten, vertikale Luma-Kanten, U-Kanten und V-Kanten gesendet werden. Dieses Feld entspricht dem Syntaxelement delta_lf_multi aus der AV1-Spezifikation.

loop_filter.DUMMYUNIONNAME.delta_lf_present

Gibt an, dass Schleifenfilterdelta vorhanden sind, wenn sie gleich 1 sind. Dies ist für den Schleifenfilterdecodierungsprozess erforderlich: read_delta_lf(). Dieses Feld entspricht dem Syntaxelement delta_lf_present aus der AV1-Spezifikation.

loop_filter.DUMMYUNIONNAME.Reserved

Reservierte Bitfelder, um die gepackte Struktur abzuschließen. Ist auf 0 festgelegt. Die Zugriffstaste ignoriert die Werte in den reservierten Bitfeldern.

loop_filter.DUMMYUNIONNAME.ControlFlags

Bietet eine alternative Möglichkeit, auf die Bitfelder zuzugreifen, die sich auf Schleifenfilterkennzeichnungen beziehen.

loop_filter.ref_deltas[8]

Entspricht dem Syntaxelement namens loop_filter_ref_deltas in der AV1-Spezifikation und wirkt sich entsprechend auf die Decodierungsprozesse des Schleifenfilters aus.

loop_filter.mode_deltas[2]

Entspricht dem Syntaxelement namens loop_filter_mode_deltas in der AV1-Spezifikation und wirkt sich entsprechend auf den Decodierungsprozess des Schleifenfilters aus.

loop_filter.delta_lf_res

Die linke Schicht, die auf die decodierten Loopfilter-Deltawerte angewendet werden soll. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

loop_filter.frame_restoration_type[3]

Der Schleifenwiederherstellungsmodus für diesen Frame. Dieses Feld entspricht dem FrameRestorationType-Syntaxelement aus der AV1-Spezifikation. Es kann sich um einen der folgenden Werte handeln, die dieselben Werte wie in der AV1-Spezifikation angegeben sind:

FrameRestorationType Name von FrameRestorationType
0 RESTORE_NONE
1 RESTORE_WIENER
2 RESTORE_SGRPROJ
3 RESTORE_SWITCHABLE

loop_filter.log2_restoration_unit_size[3]

Die Log2-Größe von Schleifenwiederherstellungseinheiten in Einheiten von Proben in der aktuellen Ebene. Element 0 entspricht der Luma-Ebene, Element 1 der U-Ebene und Element 2 der V-Ebene. Dieses Feld entspricht der Log2(LoopRestorationSize[plane])-Variable aus der AV1-Spezifikation.

loop_filter.Reserved16Bits

Reservierte Bitfelder, um die gepackte Struktur abzuschließen. Ist auf 0 festgelegt. Die Zugriffstaste ignoriert die Werte in den reservierten Bitfeldern.

quantization

Enthält Quantisierungsinformationen.

quantization.DUMMYUNIONNAME

quantization.DUMMYUNIONNAME.delta_q_present

Gibt an, ob die Quantizerindex-Deltawerte vorhanden sind. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

quantization.DUMMYUNIONNAME.delta_q_res

Die linke Schicht, die auf decodierte Quantizer-Indexdeltawerte angewendet werden soll. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

quantization.DUMMYUNIONNAME.Reserved

Reservierte Bitfelder, um die gepackte Struktur abzuschließen. Ist auf 0 festgelegt. Die Zugriffstaste ignoriert die Werte in den reservierten Bitfeldern.

quantization.DUMMYUNIONNAME.ControlFlags

Bietet eine alternative Möglichkeit, auf die Bitfelder im Zusammenhang mit der Quantisierung zuzugreifen.

quantization.base_qindex

Gibt den Basisframe-qindex an. Dieses Feld entspricht dem Syntaxelement base_q_idx aus der AV1-Spezifikation.

quantization.y_dc_delta_q

Der Y DC-Quantizer relativ zu base_qindex. Dieses Feld entspricht DeltaQYDc aus der AV1-Spezifikation.

quantization.u_dc_delta_q

Der U DC-Quantizer relativ zu base_qindex. Dieses Feld entspricht DeltaQUDc aus der AV1-Spezifikation.

quantization.v_dc_delta_q

Der V DC-Quantizer relativ zu base_qindex. Dieses Feld entspricht DeltaQVDc aus der AV1-Spezifikation.

quantization.u_ac_delta_q

Der U AC-Quantizer relativ zu base_qindex. Dieses Feld entspricht DeltaQUAc aus der AV1-Spezifikation.

quantization.v_ac_delta_q

Der V AC-Quantizer relativ zu base_qindex. Dieses Feld entspricht DeltaQVAc aus der AV1-Spezifikation.

quantization.qm_y

Die Ebene in der Quantizermatrix, die für luma-Ebenendecodierung verwendet werden soll. Wenn nicht angegeben (using_qmatrix=0) wird dieses Feld 0xFF (was eine ungültige Quantizermatrixebene ist). Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

quantization.qm_u

Die Ebene in der Quantizermatrix, die für die Decodierung der U-Ebene verwendet werden soll. Wenn nicht angegeben (using_qmatrix=0) wird dieses Feld 0xFF (was eine ungültige Quantizermatrixebene ist). Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

quantization.qm_v

Die Ebene in der Quantizermatrix, die für die V-Ebenendecodierung verwendet werden soll. Wenn nicht angegeben (using_qmatrix=0) wird dieses Feld 0xFF (was eine ungültige Quantizermatrixebene ist). Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

quantization.Reserved16Bits

Reserviert.

cdef

Eingeschränkte Parameter für die Richtungserweiterung (Directional Enhancement Filter, CDEF).

cdef.DUMMYUNIONNAME

cdef.DUMMYUNIONNAME.damping

Steuert die Dämpfung im Ableitungsfilter. Dieses Feld entspricht der Variablen namens cdef_damping_minus_3 aus der AV1-Spezifikation.

cdef.DUMMYUNIONNAME.bits

Die Anzahl der Bits, die zum Signalisieren der CDEF-Filtereinstellung verwendet werden. Dieses Feld entspricht dem Syntaxelement cdef_bits aus der AV1-Spezifikation.

cdef.DUMMYUNIONNAME.Reserved

Reservierte Bitfelder, um die gepackte Struktur abzuschließen. Ist auf 0 festgelegt. Die Zugriffstaste ignoriert die Werte in den reservierten Bitfeldern.

cdef.DUMMYUNIONNAME.ControlFlags

Bietet eine alternative Möglichkeit, auf die Bitfelder im Zusammenhang mit CDEF-Parametern zuzugreifen.

cdef.primary

Primäre Filterstärke für den y-Kanal. Dieses Feld entspricht cdef_y_pri_strength aus der AV1-Spezifikation.

cdef.secondary

Sekundäre Filterstärke für den y-Kanal. Dieses Feld entspricht cdef_y_sec_strength aus der AV1-Spezifikation.

cdef.combined

Bietet eine alternative Möglichkeit, auf die y_strengths primären und sekundären Bits zuzugreifen.

cdef.y_strengths[8]

Die Primär- und sekundären Filterstärken für den y-Kanal.

cdef.uv_strengths[8]

Die Primär- und Sekundärfilterstärken für die UV-Kanäle. Dies entspricht den cdef_uv_pri_strength und cdef_uv_sec_strength Syntaxelemente aus der AV1-Spezifikation.

interp_filter

Entspricht dem gleichen Syntaxelement desselben Namens in der AV1-Spezifikation und wirkt sich auf den Decodierungsprozess der Bewegungskompensationsinterpolation entsprechend aus. Die folgende Tabelle zeigt die möglichen Werte von interp_filter.

Wert Filtertyp
0 normales 8-Tippen
1 Glattes 8-Tippen
2 Scharfes 8-Tippen
3 bilinear
4 Alle Filter

segmentation

Segmentierungsparameter.

segmentation.DUMMYUNIONNAME

segmentation.DUMMYUNIONNAME.enabled

Gibt gleich 1 an, dass dieser Frame das Segmentierungstool verwendet. Dieses Feld entspricht dem Syntaxelement segmentation_enabled aus der AV1-Spezifikation.

segmentation.DUMMYUNIONNAME.update_map

Entspricht 1, gibt an, dass die Segmentierungszuordnung während der Decodierung dieses Frames aktualisiert wird. Dieses Feld entspricht dem Syntaxelement segmentation_update_map aus der AV1-Spezifikation.

segmentation.DUMMYUNIONNAME.update_data

Gibt an, dass für jedes Segment neue Parameter angegeben werden. Dieses Feld entspricht dem Syntaxelement segmentation_update_data aus der AV1-Spezifikation.

segmentation.DUMMYUNIONNAME.temporal_update

Entspricht 1, gibt an, dass die Aktualisierungen der Segmentierungszuordnung relativ zur vorhandenen Segmentierungszuordnung codiert werden. Dieses Feld entspricht dem Syntaxelement segmentation_temporal_update aus der AV1-Spezifikation.

segmentation.DUMMYUNIONNAME.Reserved

Reservierte Bitfelder, um die gepackte Struktur abzuschließen. Ist auf 0 festgelegt. Die Zugriffstaste ignoriert die Werte in den reservierten Bitfeldern.

segmentation.DUMMYUNIONNAME.ControlFlags

Bietet eine alternative Möglichkeit für den Zugriff auf die Bitfelder im Zusammenhang mit segmentierung.

segmentation.Reserved24Bits[3]

Reserviert.

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]

Gibt an, welche Segmentdatenfeatures in diesem Frame aktualisiert werden. Dieses Feld entspricht dem Syntaxelement feature_enabled aus der AV1-Spezifikation.

segmentation.feature_data[8]

Gibt Segmentierungsfeaturewerte an. Dieses Feld entspricht dem Syntaxelement feature_value aus der AV1-Spezifikation.

film_grain

Filmkornparameter.

film_grain.DUMMYUNIONNAME

film_grain.DUMMYUNIONNAME.apply_grain

Wenn gleich 1, gibt an, dass filmkorniert zu diesem Rahmen hinzugefügt werden soll. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.scaling_shift_minus8

Die Schicht -8 auf Werte der Chromakomponente angewendet. Dieses Feld entspricht dem Syntaxelement grain_scaling_minus8 aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.chroma_scaling_from_luma

Gibt bei 1 an, dass die Farbskalierung von der Luma-Skalierung abgeleitet wird. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.ar_coeff_lag

Die Anzahl der auto-regressiven Koeffizienten für Luma und Chroma. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.ar_coeff_shift_minus6

Der Bereich der auto-regressiven Koeffizienten. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.grain_scale_shift

Gibt an, wie viel die gaussischen Zufallszahlen während des Kornsyntheseprozesses nach unten skaliert werden sollen. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.overlap_flag

Entspricht 1, weist darauf hin, dass die Überschneidung zwischen Filmkornblöcken angewendet werden soll. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.clip_to_restricted_range

Wenn gleich 1, gibt an, dass das Ausschneiden auf den eingeschränkten (Studio)-Bereich nach dem Hinzufügen des Filmkorns auf die Beispielwerte angewendet werden soll (siehe Semantik für color_range für eine Erläuterung des Studio-Swing). Wenn gleich 0, gibt an, dass das Ausschneiden auf den gesamten Bereich auf die Probenwerte angewendet werden soll, nachdem das Filmkorn hinzugefügt wurde.

film_grain.DUMMYUNIONNAME.matrix_coeff_is_identity

film_grain.DUMMYUNIONNAME.Reserved

Reservierte Bitfelder, um die gepackte Struktur abzuschließen. Ist auf 0 festgelegt. Die Zugriffstaste ignoriert die Werte in den reservierten Bitfeldern.

film_grain.DUMMYUNIONNAME.ControlFlags

Bietet eine alternative Möglichkeit für den Zugriff auf die Bitfelder im Zusammenhang mit Filmkorn.

film_grain.grain_seed

Der Startwert für den Pseudo-Zufallszahlengenerator, der für die Filmkornsynthese verwendet wird. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.scaling_points_y[14]

Stellt die x,y-Koordinaten für die stückweise lineare Skalierungsfunktion für die y-Ebene dar. Dies ist ein 2D-Array, bei jedem stückweisen Segment ist der erste angegebene Wert die x-Koordinate (luma-Wert), und der zweite Wert ist der Skalierungswert (y, Ausgabe). Dieses Feld entspricht dem point_y_value Syntaxelement aus der AV1-Spezifikation.

film_grain.num_y_points

Die Anzahl der gültigen stückweisen Segmente, die in scaling_points_y angegeben sind. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.scaling_points_cb[10]

Stellt die x,y-Koordinaten für die stückweise lineare Skalierungsfunktion für die cb-Ebene dar. Dies ist ein 2D-Array, bei jedem stückweisen Segment ist der erste angegebene Wert die x-Koordinate (luma-Wert), und der zweite Wert ist der Skalierungswert (y, Ausgabe). Dieses Feld entspricht dem point_cb_value Syntaxelement aus der AV1-Spezifikation.

film_grain.num_cb_points

Die Anzahl der gültigen stückweisen Segmente, die in scaling_points_cb angegeben sind. Dieses Feld entspricht den Syntaxelementen desselben Namens aus der AV1-Spezifikation.

film_grain.scaling_points_cr[10]

Stellt die x,y-Koordinaten für die stückweise lineare Skalierungsfunktion für die Cr-Ebene dar. Dies ist ein 2D-Array, bei jedem stückweisen Segment ist der erste angegebene Wert die x-Koordinate (luma-Wert), und der zweite Wert ist der Skalierungswert (y, Ausgabe). Dieses Feld entspricht dem point_cr_value Syntaxelement aus der AV1-Spezifikation.

film_grain.num_cr_points

Die Anzahl der gültigen stückweisen Segmente, die in scaling_points_cr angegeben sind. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.ar_coeffs_y[24]

Die auto-regressiven Koeffizienten für die Y-Ebene. Dieses Feld entspricht dem ar_coeffs_y_plus_128 Syntaxelement aus der AV1-Spezifikation.

film_grain.ar_coeffs_cb[25]

Die auto-regressiven Koeffizienten für die U-Ebene. Dieses Feld entspricht dem ar_coeffs_cb_plus_128 Syntaxelement aus der AV1-Spezifikation.

film_grain.ar_coeffs_cr[25]

Die auto-regressiven Koeffizienten für die V-Ebene. Dieses Feld entspricht dem ar_coeffs_cr_plus_128 Syntaxelement aus der AV1-Spezifikation.

film_grain.cb_mult

Der Multiplikator für die Cb-Komponente, die zur Ableitung des Eingabeindexes zur Skalierungsfunktion der Komponente verwendet wird. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.cb_luma_mult

Der Multiplikator, der für die Luma-Komponente in die Cb-Komponentenskalierungsfunktion verwendet wird. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.cr_mult

Der Multiplikator für die Cr-Komponente, die zur Ableitung des Eingabeindexes zur Skalierungsfunktion der Komponente verwendet wird. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.cr_luma_mult

Der Multiplikator, der für die Luma-Komponente in der Cr-Komponentenskalierungsfunktion verwendet wird. Dieses Feld entspricht den Syntaxelementen desselben Namens aus der AV1-Spezifikation.

film_grain.Reserved8Bits

Reserviert.

film_grain.cb_offset

Der Offset, der zur Ableitung des Eingabeindexes zur Skalierungsfunktion der Cb-Komponente verwendet wird. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

film_grain.cr_offset

Der Offset, der zur Ableitung des Eingabeindexes zur Skalierungsfunktion der Cr-Komponente verwendet wird. Dieses Feld entspricht dem Syntaxelement desselben Namens aus der AV1-Spezifikation.

Reserved32Bits

Reserviert.

StatusReportFeedbackNumber

Beliebige Zahl, die vom Hostdecoder als Tag in den Feedbackdaten des Statusberichts verwendet werden soll. Der Wert sollte nicht gleich 0 sein und sollte in jedem Aufruf von Execute unterschiedlich sein. Weitere Informationen finden Sie im Abschnitt "Datenstruktur des Statusberichts" in der Direct X Video Acceleration Specification for AV1 Video Coding.

Bemerkungen

Wenn Breite und Höhe für den Frame abgeleitet werden (z. B. über die frame_size_override_flag), leitet der Hostdecoder die entsprechenden Werte ab und speichert das Ergebnis in diesen Feldern. Wenn Superres aktiviert ist, stellen diese Werte die nach der Skalierung skalierte Frameauflösung dar (in der AV1-Spezifikation als UpscaledWidth bezeichnet).

Die zulässigen Werte von subsampling_x und subsampling_y werden durch den Profilwert eingeschränkt. In der folgenden Tabelle werden die zulässigen Werte für subsampling_x und subsampling_ysowie die zugehörigen Farbformate angegeben.

subsampling_x subsampling_y Farbformat
1 1 4:2:0
1 0 4:2:2
0 0 4:4:4

Ausführliche Informationen zur Verwendung dieser Struktur finden Sie in der Direct X Video Acceleration Specification for AV1 Video Coding.

Anforderungen

Anforderung Wert
mindestens unterstützte Server- Windows Server 2022
Header- dxva.h