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 |