|
1501
|
1 #ifndef VULKAN_VIDEO_CODEC_AV1STD_H_
|
|
|
2 #define VULKAN_VIDEO_CODEC_AV1STD_H_ 1
|
|
|
3
|
|
|
4 /*
|
|
|
5 ** Copyright 2015-2025 The Khronos Group Inc.
|
|
|
6 **
|
|
|
7 ** SPDX-License-Identifier: Apache-2.0
|
|
|
8 */
|
|
|
9
|
|
|
10 /*
|
|
|
11 ** This header is generated from the Khronos Vulkan XML API Registry.
|
|
|
12 **
|
|
|
13 */
|
|
|
14
|
|
|
15
|
|
|
16 #ifdef __cplusplus
|
|
|
17 extern "C" {
|
|
|
18 #endif
|
|
|
19
|
|
|
20
|
|
|
21
|
|
|
22 // vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls.
|
|
|
23 #define vulkan_video_codec_av1std 1
|
|
|
24 #include "vulkan_video_codecs_common.h"
|
|
|
25 #define STD_VIDEO_AV1_NUM_REF_FRAMES 8U
|
|
|
26 #define STD_VIDEO_AV1_REFS_PER_FRAME 7U
|
|
|
27 #define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8U
|
|
|
28 #define STD_VIDEO_AV1_MAX_TILE_COLS 64U
|
|
|
29 #define STD_VIDEO_AV1_MAX_TILE_ROWS 64U
|
|
|
30 #define STD_VIDEO_AV1_MAX_SEGMENTS 8U
|
|
|
31 #define STD_VIDEO_AV1_SEG_LVL_MAX 8U
|
|
|
32 #define STD_VIDEO_AV1_PRIMARY_REF_NONE 7U
|
|
|
33 #define STD_VIDEO_AV1_SELECT_INTEGER_MV 2U
|
|
|
34 #define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2U
|
|
|
35 #define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2U
|
|
|
36 #define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4U
|
|
|
37 #define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2U
|
|
|
38 #define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8U
|
|
|
39 #define STD_VIDEO_AV1_MAX_NUM_PLANES 3U
|
|
|
40 #define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6U
|
|
|
41 #define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14U
|
|
|
42 #define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10U
|
|
|
43 #define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10U
|
|
|
44 #define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24U
|
|
|
45 #define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25U
|
|
|
46
|
|
|
47 typedef enum StdVideoAV1Profile {
|
|
|
48 STD_VIDEO_AV1_PROFILE_MAIN = 0,
|
|
|
49 STD_VIDEO_AV1_PROFILE_HIGH = 1,
|
|
|
50 STD_VIDEO_AV1_PROFILE_PROFESSIONAL = 2,
|
|
|
51 STD_VIDEO_AV1_PROFILE_INVALID = 0x7FFFFFFF,
|
|
|
52 STD_VIDEO_AV1_PROFILE_MAX_ENUM = 0x7FFFFFFF
|
|
|
53 } StdVideoAV1Profile;
|
|
|
54
|
|
|
55 typedef enum StdVideoAV1Level {
|
|
|
56 STD_VIDEO_AV1_LEVEL_2_0 = 0,
|
|
|
57 STD_VIDEO_AV1_LEVEL_2_1 = 1,
|
|
|
58 STD_VIDEO_AV1_LEVEL_2_2 = 2,
|
|
|
59 STD_VIDEO_AV1_LEVEL_2_3 = 3,
|
|
|
60 STD_VIDEO_AV1_LEVEL_3_0 = 4,
|
|
|
61 STD_VIDEO_AV1_LEVEL_3_1 = 5,
|
|
|
62 STD_VIDEO_AV1_LEVEL_3_2 = 6,
|
|
|
63 STD_VIDEO_AV1_LEVEL_3_3 = 7,
|
|
|
64 STD_VIDEO_AV1_LEVEL_4_0 = 8,
|
|
|
65 STD_VIDEO_AV1_LEVEL_4_1 = 9,
|
|
|
66 STD_VIDEO_AV1_LEVEL_4_2 = 10,
|
|
|
67 STD_VIDEO_AV1_LEVEL_4_3 = 11,
|
|
|
68 STD_VIDEO_AV1_LEVEL_5_0 = 12,
|
|
|
69 STD_VIDEO_AV1_LEVEL_5_1 = 13,
|
|
|
70 STD_VIDEO_AV1_LEVEL_5_2 = 14,
|
|
|
71 STD_VIDEO_AV1_LEVEL_5_3 = 15,
|
|
|
72 STD_VIDEO_AV1_LEVEL_6_0 = 16,
|
|
|
73 STD_VIDEO_AV1_LEVEL_6_1 = 17,
|
|
|
74 STD_VIDEO_AV1_LEVEL_6_2 = 18,
|
|
|
75 STD_VIDEO_AV1_LEVEL_6_3 = 19,
|
|
|
76 STD_VIDEO_AV1_LEVEL_7_0 = 20,
|
|
|
77 STD_VIDEO_AV1_LEVEL_7_1 = 21,
|
|
|
78 STD_VIDEO_AV1_LEVEL_7_2 = 22,
|
|
|
79 STD_VIDEO_AV1_LEVEL_7_3 = 23,
|
|
|
80 STD_VIDEO_AV1_LEVEL_INVALID = 0x7FFFFFFF,
|
|
|
81 STD_VIDEO_AV1_LEVEL_MAX_ENUM = 0x7FFFFFFF
|
|
|
82 } StdVideoAV1Level;
|
|
|
83
|
|
|
84 typedef enum StdVideoAV1FrameType {
|
|
|
85 STD_VIDEO_AV1_FRAME_TYPE_KEY = 0,
|
|
|
86 STD_VIDEO_AV1_FRAME_TYPE_INTER = 1,
|
|
|
87 STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY = 2,
|
|
|
88 STD_VIDEO_AV1_FRAME_TYPE_SWITCH = 3,
|
|
|
89 STD_VIDEO_AV1_FRAME_TYPE_INVALID = 0x7FFFFFFF,
|
|
|
90 STD_VIDEO_AV1_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
91 } StdVideoAV1FrameType;
|
|
|
92
|
|
|
93 typedef enum StdVideoAV1ReferenceName {
|
|
|
94 STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME = 0,
|
|
|
95 STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME = 1,
|
|
|
96 STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME = 2,
|
|
|
97 STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME = 3,
|
|
|
98 STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME = 4,
|
|
|
99 STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME = 5,
|
|
|
100 STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME = 6,
|
|
|
101 STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME = 7,
|
|
|
102 STD_VIDEO_AV1_REFERENCE_NAME_INVALID = 0x7FFFFFFF,
|
|
|
103 STD_VIDEO_AV1_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF
|
|
|
104 } StdVideoAV1ReferenceName;
|
|
|
105
|
|
|
106 typedef enum StdVideoAV1InterpolationFilter {
|
|
|
107 STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0,
|
|
|
108 STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1,
|
|
|
109 STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2,
|
|
|
110 STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR = 3,
|
|
|
111 STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4,
|
|
|
112 STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF,
|
|
|
113 STD_VIDEO_AV1_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF
|
|
|
114 } StdVideoAV1InterpolationFilter;
|
|
|
115
|
|
|
116 typedef enum StdVideoAV1TxMode {
|
|
|
117 STD_VIDEO_AV1_TX_MODE_ONLY_4X4 = 0,
|
|
|
118 STD_VIDEO_AV1_TX_MODE_LARGEST = 1,
|
|
|
119 STD_VIDEO_AV1_TX_MODE_SELECT = 2,
|
|
|
120 STD_VIDEO_AV1_TX_MODE_INVALID = 0x7FFFFFFF,
|
|
|
121 STD_VIDEO_AV1_TX_MODE_MAX_ENUM = 0x7FFFFFFF
|
|
|
122 } StdVideoAV1TxMode;
|
|
|
123
|
|
|
124 typedef enum StdVideoAV1FrameRestorationType {
|
|
|
125 STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE = 0,
|
|
|
126 STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER = 1,
|
|
|
127 STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ = 2,
|
|
|
128 STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE = 3,
|
|
|
129 STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID = 0x7FFFFFFF,
|
|
|
130 STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
131 } StdVideoAV1FrameRestorationType;
|
|
|
132
|
|
|
133 typedef enum StdVideoAV1ColorPrimaries {
|
|
|
134 STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1,
|
|
|
135 STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED = 2,
|
|
|
136 STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4,
|
|
|
137 STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5,
|
|
|
138 STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6,
|
|
|
139 STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240 = 7,
|
|
|
140 STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM = 8,
|
|
|
141 STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020 = 9,
|
|
|
142 STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ = 10,
|
|
|
143 STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11,
|
|
|
144 STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12,
|
|
|
145 STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22,
|
|
|
146 STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF,
|
|
|
147 // STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED is a legacy alias
|
|
|
148 STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED,
|
|
|
149 STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF
|
|
|
150 } StdVideoAV1ColorPrimaries;
|
|
|
151
|
|
|
152 typedef enum StdVideoAV1TransferCharacteristics {
|
|
|
153 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0,
|
|
|
154 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1,
|
|
|
155 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2,
|
|
|
156 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3,
|
|
|
157 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4,
|
|
|
158 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5,
|
|
|
159 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6,
|
|
|
160 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7,
|
|
|
161 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8,
|
|
|
162 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9,
|
|
|
163 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10,
|
|
|
164 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11,
|
|
|
165 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12,
|
|
|
166 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13,
|
|
|
167 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14,
|
|
|
168 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15,
|
|
|
169 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16,
|
|
|
170 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17,
|
|
|
171 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18,
|
|
|
172 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF,
|
|
|
173 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM = 0x7FFFFFFF
|
|
|
174 } StdVideoAV1TransferCharacteristics;
|
|
|
175
|
|
|
176 typedef enum StdVideoAV1MatrixCoefficients {
|
|
|
177 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0,
|
|
|
178 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1,
|
|
|
179 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2,
|
|
|
180 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3,
|
|
|
181 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4,
|
|
|
182 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5,
|
|
|
183 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6,
|
|
|
184 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7,
|
|
|
185 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8,
|
|
|
186 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9,
|
|
|
187 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10,
|
|
|
188 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11,
|
|
|
189 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12,
|
|
|
190 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13,
|
|
|
191 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14,
|
|
|
192 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF,
|
|
|
193 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM = 0x7FFFFFFF
|
|
|
194 } StdVideoAV1MatrixCoefficients;
|
|
|
195
|
|
|
196 typedef enum StdVideoAV1ChromaSamplePosition {
|
|
|
197 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0,
|
|
|
198 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1,
|
|
|
199 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2,
|
|
|
200 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3,
|
|
|
201 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF,
|
|
|
202 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM = 0x7FFFFFFF
|
|
|
203 } StdVideoAV1ChromaSamplePosition;
|
|
|
204 typedef struct StdVideoAV1ColorConfigFlags {
|
|
|
205 uint32_t mono_chrome : 1;
|
|
|
206 uint32_t color_range : 1;
|
|
|
207 uint32_t separate_uv_delta_q : 1;
|
|
|
208 uint32_t color_description_present_flag : 1;
|
|
|
209 uint32_t reserved : 28;
|
|
|
210 } StdVideoAV1ColorConfigFlags;
|
|
|
211
|
|
|
212 typedef struct StdVideoAV1ColorConfig {
|
|
|
213 StdVideoAV1ColorConfigFlags flags;
|
|
|
214 uint8_t BitDepth;
|
|
|
215 uint8_t subsampling_x;
|
|
|
216 uint8_t subsampling_y;
|
|
|
217 uint8_t reserved1;
|
|
|
218 StdVideoAV1ColorPrimaries color_primaries;
|
|
|
219 StdVideoAV1TransferCharacteristics transfer_characteristics;
|
|
|
220 StdVideoAV1MatrixCoefficients matrix_coefficients;
|
|
|
221 StdVideoAV1ChromaSamplePosition chroma_sample_position;
|
|
|
222 } StdVideoAV1ColorConfig;
|
|
|
223
|
|
|
224 typedef struct StdVideoAV1TimingInfoFlags {
|
|
|
225 uint32_t equal_picture_interval : 1;
|
|
|
226 uint32_t reserved : 31;
|
|
|
227 } StdVideoAV1TimingInfoFlags;
|
|
|
228
|
|
|
229 typedef struct StdVideoAV1TimingInfo {
|
|
|
230 StdVideoAV1TimingInfoFlags flags;
|
|
|
231 uint32_t num_units_in_display_tick;
|
|
|
232 uint32_t time_scale;
|
|
|
233 uint32_t num_ticks_per_picture_minus_1;
|
|
|
234 } StdVideoAV1TimingInfo;
|
|
|
235
|
|
|
236 typedef struct StdVideoAV1LoopFilterFlags {
|
|
|
237 uint32_t loop_filter_delta_enabled : 1;
|
|
|
238 uint32_t loop_filter_delta_update : 1;
|
|
|
239 uint32_t reserved : 30;
|
|
|
240 } StdVideoAV1LoopFilterFlags;
|
|
|
241
|
|
|
242 typedef struct StdVideoAV1LoopFilter {
|
|
|
243 StdVideoAV1LoopFilterFlags flags;
|
|
|
244 uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS];
|
|
|
245 uint8_t loop_filter_sharpness;
|
|
|
246 uint8_t update_ref_delta;
|
|
|
247 int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME];
|
|
|
248 uint8_t update_mode_delta;
|
|
|
249 int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS];
|
|
|
250 } StdVideoAV1LoopFilter;
|
|
|
251
|
|
|
252 typedef struct StdVideoAV1QuantizationFlags {
|
|
|
253 uint32_t using_qmatrix : 1;
|
|
|
254 uint32_t diff_uv_delta : 1;
|
|
|
255 uint32_t reserved : 30;
|
|
|
256 } StdVideoAV1QuantizationFlags;
|
|
|
257
|
|
|
258 typedef struct StdVideoAV1Quantization {
|
|
|
259 StdVideoAV1QuantizationFlags flags;
|
|
|
260 uint8_t base_q_idx;
|
|
|
261 int8_t DeltaQYDc;
|
|
|
262 int8_t DeltaQUDc;
|
|
|
263 int8_t DeltaQUAc;
|
|
|
264 int8_t DeltaQVDc;
|
|
|
265 int8_t DeltaQVAc;
|
|
|
266 uint8_t qm_y;
|
|
|
267 uint8_t qm_u;
|
|
|
268 uint8_t qm_v;
|
|
|
269 } StdVideoAV1Quantization;
|
|
|
270
|
|
|
271 typedef struct StdVideoAV1Segmentation {
|
|
|
272 uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS];
|
|
|
273 int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX];
|
|
|
274 } StdVideoAV1Segmentation;
|
|
|
275
|
|
|
276 typedef struct StdVideoAV1TileInfoFlags {
|
|
|
277 uint32_t uniform_tile_spacing_flag : 1;
|
|
|
278 uint32_t reserved : 31;
|
|
|
279 } StdVideoAV1TileInfoFlags;
|
|
|
280
|
|
|
281 typedef struct StdVideoAV1TileInfo {
|
|
|
282 StdVideoAV1TileInfoFlags flags;
|
|
|
283 uint8_t TileCols;
|
|
|
284 uint8_t TileRows;
|
|
|
285 uint16_t context_update_tile_id;
|
|
|
286 uint8_t tile_size_bytes_minus_1;
|
|
|
287 uint8_t reserved1[7];
|
|
|
288 const uint16_t* pMiColStarts;
|
|
|
289 const uint16_t* pMiRowStarts;
|
|
|
290 const uint16_t* pWidthInSbsMinus1;
|
|
|
291 const uint16_t* pHeightInSbsMinus1;
|
|
|
292 } StdVideoAV1TileInfo;
|
|
|
293
|
|
|
294 typedef struct StdVideoAV1CDEF {
|
|
|
295 uint8_t cdef_damping_minus_3;
|
|
|
296 uint8_t cdef_bits;
|
|
|
297 uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
|
|
|
298 uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
|
|
|
299 uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
|
|
|
300 uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
|
|
|
301 } StdVideoAV1CDEF;
|
|
|
302
|
|
|
303 typedef struct StdVideoAV1LoopRestoration {
|
|
|
304 StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES];
|
|
|
305 uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES];
|
|
|
306 } StdVideoAV1LoopRestoration;
|
|
|
307
|
|
|
308 typedef struct StdVideoAV1GlobalMotion {
|
|
|
309 uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES];
|
|
|
310 int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS];
|
|
|
311 } StdVideoAV1GlobalMotion;
|
|
|
312
|
|
|
313 typedef struct StdVideoAV1FilmGrainFlags {
|
|
|
314 uint32_t chroma_scaling_from_luma : 1;
|
|
|
315 uint32_t overlap_flag : 1;
|
|
|
316 uint32_t clip_to_restricted_range : 1;
|
|
|
317 uint32_t update_grain : 1;
|
|
|
318 uint32_t reserved : 28;
|
|
|
319 } StdVideoAV1FilmGrainFlags;
|
|
|
320
|
|
|
321 typedef struct StdVideoAV1FilmGrain {
|
|
|
322 StdVideoAV1FilmGrainFlags flags;
|
|
|
323 uint8_t grain_scaling_minus_8;
|
|
|
324 uint8_t ar_coeff_lag;
|
|
|
325 uint8_t ar_coeff_shift_minus_6;
|
|
|
326 uint8_t grain_scale_shift;
|
|
|
327 uint16_t grain_seed;
|
|
|
328 uint8_t film_grain_params_ref_idx;
|
|
|
329 uint8_t num_y_points;
|
|
|
330 uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS];
|
|
|
331 uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS];
|
|
|
332 uint8_t num_cb_points;
|
|
|
333 uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS];
|
|
|
334 uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS];
|
|
|
335 uint8_t num_cr_points;
|
|
|
336 uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS];
|
|
|
337 uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS];
|
|
|
338 int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA];
|
|
|
339 int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];
|
|
|
340 int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];
|
|
|
341 uint8_t cb_mult;
|
|
|
342 uint8_t cb_luma_mult;
|
|
|
343 uint16_t cb_offset;
|
|
|
344 uint8_t cr_mult;
|
|
|
345 uint8_t cr_luma_mult;
|
|
|
346 uint16_t cr_offset;
|
|
|
347 } StdVideoAV1FilmGrain;
|
|
|
348
|
|
|
349 typedef struct StdVideoAV1SequenceHeaderFlags {
|
|
|
350 uint32_t still_picture : 1;
|
|
|
351 uint32_t reduced_still_picture_header : 1;
|
|
|
352 uint32_t use_128x128_superblock : 1;
|
|
|
353 uint32_t enable_filter_intra : 1;
|
|
|
354 uint32_t enable_intra_edge_filter : 1;
|
|
|
355 uint32_t enable_interintra_compound : 1;
|
|
|
356 uint32_t enable_masked_compound : 1;
|
|
|
357 uint32_t enable_warped_motion : 1;
|
|
|
358 uint32_t enable_dual_filter : 1;
|
|
|
359 uint32_t enable_order_hint : 1;
|
|
|
360 uint32_t enable_jnt_comp : 1;
|
|
|
361 uint32_t enable_ref_frame_mvs : 1;
|
|
|
362 uint32_t frame_id_numbers_present_flag : 1;
|
|
|
363 uint32_t enable_superres : 1;
|
|
|
364 uint32_t enable_cdef : 1;
|
|
|
365 uint32_t enable_restoration : 1;
|
|
|
366 uint32_t film_grain_params_present : 1;
|
|
|
367 uint32_t timing_info_present_flag : 1;
|
|
|
368 uint32_t initial_display_delay_present_flag : 1;
|
|
|
369 uint32_t reserved : 13;
|
|
|
370 } StdVideoAV1SequenceHeaderFlags;
|
|
|
371
|
|
|
372 typedef struct StdVideoAV1SequenceHeader {
|
|
|
373 StdVideoAV1SequenceHeaderFlags flags;
|
|
|
374 StdVideoAV1Profile seq_profile;
|
|
|
375 uint8_t frame_width_bits_minus_1;
|
|
|
376 uint8_t frame_height_bits_minus_1;
|
|
|
377 uint16_t max_frame_width_minus_1;
|
|
|
378 uint16_t max_frame_height_minus_1;
|
|
|
379 uint8_t delta_frame_id_length_minus_2;
|
|
|
380 uint8_t additional_frame_id_length_minus_1;
|
|
|
381 uint8_t order_hint_bits_minus_1;
|
|
|
382 uint8_t seq_force_integer_mv;
|
|
|
383 uint8_t seq_force_screen_content_tools;
|
|
|
384 uint8_t reserved1[5];
|
|
|
385 const StdVideoAV1ColorConfig* pColorConfig;
|
|
|
386 const StdVideoAV1TimingInfo* pTimingInfo;
|
|
|
387 } StdVideoAV1SequenceHeader;
|
|
|
388
|
|
|
389
|
|
|
390 #ifdef __cplusplus
|
|
|
391 }
|
|
|
392 #endif
|
|
|
393
|
|
|
394 #endif
|