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_1573_58 y_strengths[8];
    union {
      struct {
        UCHAR primary : 6;
        UCHAR secondary : 2;
      };
      UCHAR  combined;
    };
    __unnamed_union_1573_60 uv_strengths[8];
  } cdef;
  UCHAR             interp_filter;
  struct {
    union {
      struct {
        UCHAR enabled : 1;
        UCHAR update_map : 1;
        UCHAR update_data : 1;
        UCHAR temporal_update : 1;
        UCHAR Reserved : 4;
      };
      UCHAR  ControlFlags;
    } DUMMYUNIONNAME;
    UCHAR                   Reserved24Bits[3];
    union {
      struct {
        UCHAR alt_q : 1;
        UCHAR alt_lf_y_v : 1;
        UCHAR alt_lf_y_h : 1;
        UCHAR alt_lf_u : 1;
        UCHAR alt_lf_v : 1;
        UCHAR ref_frame : 1;
        UCHAR skip : 1;
        UCHAR globalmv : 1;
      };
      UCHAR  mask;
    };
    __unnamed_union_1573_65 feature_mask[8];
    SHORT                   feature_data[8][8];
  } segmentation;
  struct {
    union {
      struct {
        USHORT apply_grain : 1;
        USHORT scaling_shift_minus8 : 2;
        USHORT chroma_scaling_from_luma : 1;
        USHORT ar_coeff_lag : 2;
        USHORT ar_coeff_shift_minus6 : 2;
        USHORT grain_scale_shift : 2;
        USHORT overlap_flag : 1;
        USHORT clip_to_restricted_range : 1;
        USHORT matrix_coeff_is_identity : 1;
        USHORT Reserved : 3;
      };
      USHORT ControlFlags;
    } DUMMYUNIONNAME;
    USHORT grain_seed;
    UCHAR  scaling_points_y[14][2];
    UCHAR  num_y_points;
    UCHAR  scaling_points_cb[10][2];
    UCHAR  num_cb_points;
    UCHAR  scaling_points_cr[10][2];
    UCHAR  num_cr_points;
    UCHAR  ar_coeffs_y[24];
    UCHAR  ar_coeffs_cb[25];
    UCHAR  ar_coeffs_cr[25];
    UCHAR  cb_mult;
    UCHAR  cb_luma_mult;
    UCHAR  cr_mult;
    UCHAR  cr_luma_mult;
    UCHAR  Reserved8Bits;
    SHORT  cb_offset;
    SHORT  cr_offset;
  } film_grain;
  UINT              Reserved32Bits;
  UINT              StatusReportFeedbackNumber;
} DXVA_PicParams_AV1, *LPDXVA_PicParams_AV1;

Member

width

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

height

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

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 zum Berechnen 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 chromadekodierten Stichproben. Die zulässigen Werte werden 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 das 4:2:0-Chroma-Sampling mit 8 oder 10 Bits pro Probe und monochromen Formaten.
Profil 1 Unterstützt das 4:4:4-Chroma-Sampling mit 8 oder 10 Bits pro Probe.
Profil 2 Unterstützt 4:2:0, 4:2:2 oder 4:4:4 Chroma Sampling bei 8, 10 oder 12 Bits pro Sample und monochromen Formaten.

tiles

Enthält spezifische Informationen für Kacheln.

tiles.cols

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

tiles.rows

Die Anzahl der Kacheln in einem Rahmen. 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 Superblöcken. 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 Superblöcken. Nur die ersten 2^rows_log2 Höheneinträge sind gültig. Dieses Feld entspricht der Variablen tileHeightSb aus der AV1-Spezifikation.

coding

Die Programmiertools.

coding.use_128x128_superblock

Wenn gleich 1, gibt an, dass Superblocks 128 x 128 Luma-Stichproben enthalten; Andernfalls enthalten Superblocks 64 x 64 Luma-Beispiele. Dieses Feld entspricht dem Syntaxelement mit demselben Namen 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 inter-Blöcke das Syntaxelement interintra enthalten können. Andernfalls ist das Interintra-Syntaxelement nicht vorhanden. Dieses Feld entspricht dem Syntaxelement namens enable_interintra_compound aus der AV1-Spezifikation.

coding.masked_compound

Wenn gleich 1, gibt an, dass die Modusinformationen für inter-Blöcke das Syntaxelement compound_type enthalten können. Andernfalls ist das compound_type Syntaxelement nicht vorhanden. Dieses Feld entspricht dem Syntaxelement namens enable_masked_compound aus der AV1-Spezifikation.

coding.warped_motion

Wenn gleich 1, gibt an, dass das Syntaxelement motion_mode vorhanden sein kann. Dieses Feld entspricht dem Syntaxelement namens allow_warped_motion aus der AV1-Spezifikation.

coding.dual_filter

Wenn gleich 1, gibt an, dass der Filtertyp intervorhersage unabhängig in horizontaler und vertikaler Richtung angegeben werden kann; Andernfalls kann nur ein Filtertyp angegeben werden. Dieses Feld entspricht dem Syntaxelement namens enable_dual_filter aus der AV1-Spezifikation.

coding.jnt_comp

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

coding.screen_content_tools

Wenn gleich 1, gibt an, dass intra-Blöcke die Palettencodierung verwenden können; Andernfalls wird die Palettencodierung nicht verwendet. Dieses Feld entspricht dem Syntaxelement namens allow_screen_content_tools aus der AV1-Spezifikation.

coding.integer_mv

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

coding.cdef

Wenn gleich 1, gibt an, dass cdEF-Filter (Constrained Directional Enhancement Filter) aktiviert sein kann. Dieses Feld entspricht dem Syntaxelement namens enable_cdef aus der AV1-Spezifikation.

coding.restoration

Wenn gleich 1, gibt an, dass die Filterung der Schleifenwiederherstellung aktiviert sein kann. Dieses Feld entspricht dem Syntaxelement namens enable_restoration aus der AV1-Spezifikation.

coding.film_grain

Wenn gleich 1, gibt an, dass die Verarbeitung von Filmkorn möglicherweise aktiviert ist. Dieses Feld entspricht dem Syntaxelement namens film_grain_params_present aus der AV1-Spezifikation.

coding.intrabc

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

coding.high_precision_mv

Wenn gleich 1, gibt an, dass Bewegungsvektoren mit achter Pel-Genauigkeit angegeben werden; Andernfalls werden Bewegungsvektoren mit der Genauigkeit des Quartals pel angegeben. Dieses Feld entspricht dem Syntaxelement namens allow_high_precision_mv aus der AV1-Spezifikation.

coding.switchable_motion_mode

Wenn gleich 1, gibt an, dass nur der SIMPLE-Bewegungsmodus verwendet werden darf. Dieses Feld entspricht dem Syntaxelement namens is_motion_mode_switchable aus der AV1-Spezifikation.

coding.filter_intra

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

coding.disable_frame_end_update_cdf

Gibt an, ob die CDF-Arrays im Beendigungsprozess des Symboldecoders gespeichert werden. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

coding.disable_cdf_update

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

coding.reference_mode

Steuert den Modus, der für die Referenzrahmenvorhersage verwendet wird. Dies kann einer der folgenden Werte sein, die dem Verweismodus 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 Überspringensmodus in der Zusammengesetzten 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 mit demselben Namen aus der AV1-Spezifikation.

coding.superres

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

coding.tx_mode

Gibt an, wie die Transformationsgröße bestimmt wird. Dieses Feld entspricht der Variablen mit demselben Namen 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 mit demselben Namen 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 gleichnamigen Syntaxelement aus der AV1-Spezifikation (aus dem Sequenzheader).

coding.reference_frame_update

Gibt an, dass der In Abschnitt 7.20 der AV1-Spezifikation angegebene Aktualisierungsprozess für referenzierte Frames 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 zu vervollständigen. Wird auf 0 festgelegt. Der Beschleuniger ignoriert die Werte in den reservierten Bitfeldern.

coding.CodingParamToolFlags

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

format

Enthält Format- und Bildinformationen.

format.frame_type

Der Frametyp des aktuellen Frames. Dieses Feld entspricht dem gleichnamigen Syntaxelement 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 ist. Dieses Feld entspricht dem gleichnamigen Syntaxelement in der AV1-Spezifikation und wirkt sich entsprechend auf den Decodierungsprozess aus. In DXVA hat dies keine direkten Auswirkungen, da der Host die Anzeige decodierter Frames separat durch andere Funktionsaufrufe steuert.

format.showable_frame

Gibt bei gleich 1 an, dass der Frame mithilfe des show_existing_frame-Mechanismus ausgegeben werden kann. andernfalls gleich 0 (null), was angibt, dass dieser Frame nicht mithilfe des show_existing_frame-Mechanismus ausgegeben wird.

format.subsampling_x

Gibt zusammen mit subsampling_y das Chroma-Samplingformat an. Siehe Hinweise.

format.subsampling_y

Gibt zusammen mit subsampling_x das Chroma-Samplingformat an. Siehe Hinweise.

format.mono_chrome

Gibt an, ob der Bitstream monochrom ist. Wenn 1, ist nur eine Lumaebene vorhanden. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der Farbkonfigurationssyntax der AV1-Spezifikation. Die zulässigen Werte werden durch den Profilwert eingeschränkt.

format.Reserved

Reservierte Bitfelder, um die gepackte Struktur zu vervollständigen. Wird auf 0 festgelegt. Der Beschleuniger ignoriert die Werte in den reservierten Bitfeldern.

format.FormatAndPictureInfoFlags

Bietet eine alternative Möglichkeit für den Zugriff auf die Bitfelder im Zusammenhang mit Format- und Bildinformationen.

primary_ref_frame

Gibt an, welcher Referenzrahmen 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 Verweisrahmen vorhanden ist. Es entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

order_hint

Die Ausgabereihenfolge 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 wie folgt definiert: 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 undefiniert. Bei ungleich 0 (null) wirkt sich dies 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 eines nachfolgenden Bilds in Decodierungsreihenfolge verwendet werden.

Alle unkomprimierten Oberflächen, die Frames entsprechen, die beim Decodierungsprozess des aktuellen Bilds oder eines nachfolgenden Bilds als Referenz verwendet werden können, müssen im RefFrameMapTextureIndex-Array vorhanden sein (unabhängig davon, ob diese Bilder tatsächlich im Decodierungsprozess des aktuellen Frames verwendet werden). Für die Reihenfolge der Einträge im RefFrameMapTextureIndex-Array wird keine bestimmte Reihenfolge angegeben.

Hinweis

Der Accelerator muss den Inhalt des RefFrameMapTextureIndex verwenden, der vom Accelerator bereitgestellt wird, anstatt zu versuchen, diese Informationen vom Bitstream abzuleiten (um einen zustandslosen Betrieb sicherzustellen, für den die decodierte Framepufferbehandlung unter der Kontrolle des Hosts ausgeführt werden soll, anstatt vom Bitstream durch die Beschleuniger abgeleitet zu werden).

loop_filter

Struktur mit Schleifenfilterparametern.

loop_filter.filter_level[2]

Ein Array, das Schleifenfilterstärkewerte enthält. Entspricht dem Syntaxelement mit demselben Namen in der AV1-Spezifikation und wirkt sich entsprechend auf die Decodierungsprozesse des Entblockungsfilters 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 stark 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

Wenn gleich 1, gibt an, dass die Filterebene vom Modus und Referenzrahmen abhängt, der zum Vorhersagen eines Blocks verwendet wird. Dieses Feld entspricht dem Syntaxelement namens 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 Verweisframe-Deltas aktualisiert werden sollen. Dieses Feld entspricht dem Syntaxelement namens loop_filter_delta_update aus der AV1-Spezifikation.

loop_filter.DUMMYUNIONNAME.delta_lf_multi

Wenn gleich 1, gibt an, dass separate Schleifenfilter-Deltas für horizontale Lumaränder, vertikale Lumaränder, U-Kanten und V-Kanten gesendet werden. Dieses Feld entspricht dem Syntaxelement namens delta_lf_multi aus der AV1-Spezifikation.

loop_filter.DUMMYUNIONNAME.delta_lf_present

Wenn gleich 1, gibt an, dass Schleifenfilter-Deltas vorhanden sind. Dies ist für den Schleifenfilterdecodierungsprozess erforderlich: read_delta_lf(). Dieses Feld entspricht dem Syntaxelement namens delta_lf_present aus der AV1-Spezifikation.

loop_filter.DUMMYUNIONNAME.Reserved

Reservierte Bitfelder, um die gepackte Struktur zu vervollständigen. Wird auf 0 festgelegt. Der Beschleuniger ignoriert die Werte in den reservierten Bitfeldern.

loop_filter.DUMMYUNIONNAME.ControlFlags

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

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 Verschiebung, die auf die decodierte Schleife angewendet werden soll, filtert Deltawerte. Dieses Feld entspricht dem Syntaxelement mit demselben Namen 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. Dabei kann es sich um einen der folgenden Werte handeln, bei denen es sich um dieselben Werte handelt, die 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 Probeneinheiten auf der aktuellen Ebene. Element 0 entspricht der Lumaebene, 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 zu vervollständigen. Wird auf 0 festgelegt. Der Beschleuniger ignoriert die Werte in den reservierten Bitfeldern.

quantization

Enthält Quantisierungsinformationen.

quantization.DUMMYUNIONNAME

quantization.DUMMYUNIONNAME.delta_q_present

Gibt an, ob die Deltawerte des Quantizerindex vorhanden sind. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

quantization.DUMMYUNIONNAME.delta_q_res

Die linke Verschiebung, die auf decodierte Quantizerindex-Deltawerte angewendet werden soll. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

quantization.DUMMYUNIONNAME.Reserved

Reservierte Bitfelder, um die gepackte Struktur zu vervollständigen. Ist auf 0 festzulegen. Der Accelerator 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 qindex-Basisrahmen an. Dieses Feld entspricht dem Syntaxelement namens 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 die Decodierung der Lumaebene verwendet werden soll. Wenn es nicht angegeben ist (using_qmatrix=0), wird dieses Feld 0xFF (was eine ungültige Quantizermatrixebene ist). Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

quantization.qm_u

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

quantization.qm_v

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

quantization.Reserved16Bits

Reserviert.

cdef

CdEF-Parameter (Constrained Directional Enhancement Filter)

cdef.DUMMYUNIONNAME

cdef.DUMMYUNIONNAME.damping

Steuert die Menge der Dämpfung im Deringfilter. 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 namens cdef_bits aus der AV1-Spezifikation.

cdef.DUMMYUNIONNAME.Reserved

Reservierte Bitfelder, um die gepackte Struktur zu vervollständigen. Ist auf 0 festzulegen. Der Accelerator ignoriert die Werte in den reservierten Bitfeldern.

cdef.DUMMYUNIONNAME.ControlFlags

Stellt eine alternative Möglichkeit zum Zugriff auf die Bitfelder im Zusammenhang mit CDEF-Parametern bereit.

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ären und sekundären Filterstärken für den y-Kanal.

cdef.uv_strengths[8]

Die primären und sekundären Filterstärken für die uv-Kanäle. Dies entspricht dem cdef_uv_pri_strength und cdef_uv_sec_strength Syntaxelemente aus der AV1-Spezifikation.

interp_filter

Entspricht dem gleichen Syntaxelement mit demselben Namen in der AV1-Spezifikation und wirkt sich entsprechend auf den Decodierungsprozess der Interpolation der Bewegungskompensation aus. Die folgende Tabelle zeigt die möglichen Werte von interp_filter.

Wert Filtertyp
0 normaler 8-Tap
1 glatte 8-Tippen
2 scharfes 8-Tippen
3 Bilineare
4 alle Filter

segmentation

Segmentierungsparameter.

segmentation.DUMMYUNIONNAME

segmentation.DUMMYUNIONNAME.enabled

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

segmentation.DUMMYUNIONNAME.update_map

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

segmentation.DUMMYUNIONNAME.update_data

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

segmentation.DUMMYUNIONNAME.temporal_update

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

segmentation.DUMMYUNIONNAME.Reserved

Reservierte Bitfelder, um die gepackte Struktur zu vervollständigen. Ist auf 0 festzulegen. Der Accelerator ignoriert die Werte in den reservierten Bitfeldern.

segmentation.DUMMYUNIONNAME.ControlFlags

Stellt eine alternative Möglichkeit zum Zugriff auf die Bitfelder im Zusammenhang mit der Segmentierung bereit.

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 Die Werte des Segmentierungsfeatures an. Dieses Feld entspricht dem Syntaxelement feature_value aus der AV1-Spezifikation.

film_grain

Filmkörnungsparameter.

film_grain.DUMMYUNIONNAME

film_grain.DUMMYUNIONNAME.apply_grain

Wenn gleich 1, gibt an, dass diesem Frame Filmkörnung hinzugefügt werden soll. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.scaling_shift_minus8

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

film_grain.DUMMYUNIONNAME.chroma_scaling_from_luma

Gibt bei gleich 1 an, dass die Chromaskalierung aus der Lumaskalierung abgeleitet wird. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.ar_coeff_lag

Die Anzahl der autoregressiven Koeffizienten für Luma und Chroma. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.ar_coeff_shift_minus6

Der Bereich der automatisch regressiven Koeffizienten. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.grain_scale_shift

Gibt an, wie stark die gaußschen Zufallszahlen während des Kornsyntheseprozesses herunterskaliert werden sollen. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.DUMMYUNIONNAME.overlap_flag

Wenn gleich 1, gibt an, dass die Überlappung zwischen Filmkörnchenblöcken angewendet werden soll. Dieses Feld entspricht dem Syntaxelement mit demselben Namen 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 auf die Beispielwerte angewendet werden soll, nachdem das Filmkorn hinzugefügt wurde (siehe Semantik für color_range eine Erklärung des Studioschwungs). Wenn gleich 0, gibt an, dass das Ausschneiden auf den vollständigen 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 zu vervollständigen. Ist auf 0 festzulegen. Der Accelerator ignoriert die Werte in den reservierten Bitfeldern.

film_grain.DUMMYUNIONNAME.ControlFlags

Bietet eine alternative Möglichkeit, auf die Bitfelder im Zusammenhang mit Filmkörnung zuzugreifen.

film_grain.grain_seed

Der Startwert für den Pseudo-Zufallszahlengenerator, der für die Filmkornsynthese verwendet wird. Dieses Feld entspricht dem Syntaxelement mit demselben Namen 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. Hierbei handelt es sich um ein 2D-Array, bei jedem stückweisen Segment ist der erste angegebene Wert die Koordinaten x (Luma-Wert) und der zweite Wert 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 mit demselben Namen 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. Hierbei handelt es sich um ein 2D-Array, bei jedem stückweisen Segment ist der erste angegebene Wert die Koordinaten x (Luma-Wert) und der zweite Wert 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 ist. 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. Hierbei handelt es sich um ein 2D-Array, bei jedem stückweisen Segment ist der erste angegebene Wert die Koordinaten x (Luma-Wert) und der zweite Wert der Skalierungswert (y, Ausgabe). Dieses Feld entspricht dem point_cr_value Syntaxelement aus der AV1-Spezifikation.

film_grain.num_cr_points

Die Anzahl gültiger stückweiser Segmente, die in scaling_points_cr angegeben ist. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.ar_coeffs_y[24]

Die autoregressiven 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 autoregressiven 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 autoregressiven 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 für die Ableitung des Eingabeindexes zur Komponentenskalierungsfunktion verwendet wird. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.cb_luma_mult

Der Multiplikator, der für die Luma-Komponente in die Skalierungsfunktion der Cb-Komponente verwendet wird. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.cr_mult

Der Multiplikator für die Cr-Komponente, die für die Ableitung des Eingabeindexes zur Komponentenskalierungsfunktion verwendet wird. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.cr_luma_mult

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

film_grain.Reserved8Bits

Reserviert.

film_grain.cb_offset

Der Offset, der bei der Ableitung des Eingabeindexes auf die Skalierungsfunktion der Cb-Komponente verwendet wird. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

film_grain.cr_offset

Der Offset, der bei der Ableitung des Eingabeindexes auf die Skalierungsfunktion der Cr-Komponente verwendet wird. Dieses Feld entspricht dem Syntaxelement mit demselben Namen aus der AV1-Spezifikation.

Reserved32Bits

Reserviert.

StatusReportFeedbackNumber

Vom Hostdecoder festgelegte beliebige Zahl, die als Tag in der status Berichtsfeedbackdaten verwendet werden soll. Der Wert sollte nicht gleich 0 sein und sollte sich bei jedem Aufruf von Execute unterscheiden. Weitere Informationen finden Sie im Abschnitt Statusberichtsdatenstruktur in der Direct X-Videobeschleunigungsspezifikation für DIE AV1-Videocodierung.

Hinweise

Wenn Breite und Höhe für den Frame abgeleitet werden (z. B. über den 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 nachskalierte 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 sind die zulässigen Werte für subsampling_x und subsampling_y sowie die zugehörigen Chromaformate angegeben.

subsampling_x subsampling_y Chromaformat
1 1 4:2:0
1 0 4:2:2
0 0 4:4:4

Unter Direct X Video Acceleration Specification for AV1 Video Coding (Direct X Video Acceleration Specification for AV1 Video Coding) finden Sie ausführliche Informationen, einschließlich der Verwendung dieser Struktur.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Server) Windows Server 2022
Kopfzeile dxva.h