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;
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 |