/work/svt-av1/Source/Lib/Codec/definitions.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright(c) 2019 Intel Corporation |
3 | | * Copyright (c) 2016, Alliance for Open Media. All rights reserved |
4 | | * |
5 | | * This source code is subject to the terms of the BSD 2 Clause License and |
6 | | * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License |
7 | | * was not distributed with this source code in the LICENSE file, you can |
8 | | * obtain it at https://www.aomedia.org/license/software-license. If the Alliance for Open |
9 | | * Media Patent License 1.0 was not distributed with this source code in the |
10 | | * PATENTS file, you can obtain it at https://www.aomedia.org/license/patent-license. |
11 | | */ |
12 | | // |
13 | | #ifndef EbDefinitions_h |
14 | | #define EbDefinitions_h |
15 | | |
16 | | #include <stdint.h> |
17 | | #include <stdlib.h> |
18 | | #include <string.h> |
19 | | #include <stddef.h> |
20 | | #include <assert.h> |
21 | | #include "EbSvtAv1.h" |
22 | | #include "EbSvtAv1Enc.h" |
23 | | #include <stdbool.h> |
24 | | |
25 | | #ifdef _WIN32 |
26 | | #define inline __inline |
27 | | #elif __GNUC__ |
28 | | #define inline __inline__ |
29 | | #else |
30 | | #define inline |
31 | | #endif |
32 | | |
33 | | #define INLINE inline |
34 | | |
35 | | #ifdef _WIN32 |
36 | | #define NOINLINE __declspec(noinline) |
37 | | #else |
38 | | #define NOINLINE __attribute__((noinline)) |
39 | | #endif |
40 | | |
41 | | #if EXCLUDE_HASH |
42 | | #define EB_LINE_NUM 0 |
43 | | #else |
44 | 0 | #define EB_LINE_NUM __LINE__ |
45 | | #endif |
46 | | |
47 | | #ifdef __cplusplus |
48 | | extern "C" { |
49 | | #endif |
50 | | #define EB_HME_SEARCH_AREA_COLUMN_MAX_COUNT 2 |
51 | | #define EB_HME_SEARCH_AREA_ROW_MAX_COUNT 2 |
52 | | |
53 | 2.15k | #define TASK_PAME 0 |
54 | 431 | #define TASK_TFME 1 |
55 | 431 | #define TASK_SUPERRES_RE_ME 3 |
56 | 0 | #define TASK_DG_DETECTOR_HME 4 |
57 | 0 | #define MAX_TPL_GROUP_SIZE 512 //enough to cover 6L gop |
58 | | |
59 | 0 | #define MAX_TPL_EXT_GROUP_SIZE MAX_TPL_GROUP_SIZE |
60 | 431 | #define OUT_Q_ADVANCE(h, size) (((h) == (size) - 1) ? 0 : (h) + 1) |
61 | 431 | #define MIN_LAD_MG 1 |
62 | 0 | #define RC_DEFAULT_LAD_MG 2 // default look ahead value for rate control |
63 | | void svt_aom_assert_err(uint32_t condition, char* err_msg); |
64 | | |
65 | 0 | #define TPL_DEP_COST_SCALE_LOG2 4 |
66 | | #define MAX_TX_WEIGHT 500 |
67 | 0 | #define MAX_TPL_LA_SW MAX_TPL_GROUP_SIZE // Max TPL look ahead sliding window size |
68 | | #define UPDATED_LINKS 100 //max number of pictures a dep-Cnt-cleanUp triggering picture can process |
69 | | #define MAX_TILE_CNTS 128 // Annex A.3 |
70 | | |
71 | 0 | #define ALT_REF_QP_THRESH 20 |
72 | | // Q threshold for high precision mv. |
73 | 0 | #define HIGH_PRECISION_MV_QTHRESH_0 128 |
74 | 0 | #define HIGH_PRECISION_MV_QTHRESH_1 196 |
75 | 0 | #define HIGH_PRECISION_REF_PERC_TH 50 |
76 | | // Actions in the second pass: Frame and SB QP assignment and temporal filtering strenght change |
77 | 0 | #define AOM_INTERP_EXTEND 4 |
78 | | #define AOM_LEFT_TOP_MARGIN_PX(subsampling) ((AOM_BORDER_IN_PIXELS >> subsampling) - AOM_INTERP_EXTEND) |
79 | | #define AOM_LEFT_TOP_MARGIN_SCALED(subsampling) (AOM_LEFT_TOP_MARGIN_PX(subsampling) << SCALE_SUBPEL_BITS) |
80 | | |
81 | 0 | #define DS_SC_FACT 23 |
82 | | |
83 | 431 | #define VQ_NOISE_LVL_TH 15000 |
84 | | #define VQ_STABILITY_ME_VAR_TH 750 |
85 | 0 | #define VQ_PIC_AVG_VARIANCE_TH 1000 |
86 | 0 | #define NUM_MV_COMPONENTS 2 |
87 | 0 | #define NUM_MV_HIST 2 |
88 | | #define MAX_MV_HIST_SIZE (2 * REF_LIST_MAX_DEPTH * NUM_MV_COMPONENTS * NUM_MV_HIST) |
89 | | |
90 | 431 | #define INVALID_LUMA 256 |
91 | | |
92 | 6.85k | #define NEAREST_NEAR_MV_CNT 4 // 1 nearest + 3 near |
93 | | |
94 | | typedef struct SharpnessCtrls { |
95 | | uint8_t scene_transition; |
96 | | uint8_t tf; |
97 | | uint8_t unipred_bias; |
98 | | uint8_t ifs; |
99 | | uint8_t cdef; |
100 | | uint8_t restoration; |
101 | | uint8_t rdoq; |
102 | | } SharpnessCtrls; |
103 | | |
104 | | typedef struct VqCtrls { |
105 | | SharpnessCtrls sharpness_ctrls; |
106 | | } VqCtrls; |
107 | | |
108 | | typedef struct MrpCtrls { |
109 | | /* |
110 | | * Referencing_scheme [0, 2] used only in 3L-5L |
111 | | * referencing_scheme = 0 means that no top - layer pictures will be used as a reference |
112 | | * referencing_scheme = 1 means that all top - layer pictures may be used as a reference |
113 | | * referencing_scheme = 2 means that some top - layer pictures will be used as a reference(depending on their position in the MG) |
114 | | */ |
115 | | uint8_t referencing_scheme; |
116 | | |
117 | | #if !TUNE_SIMPLIFY_SETTINGS |
118 | | // SC signals |
119 | | uint8_t sc_base_ref_list0_count; |
120 | | uint8_t sc_base_ref_list1_count; |
121 | | uint8_t sc_non_base_ref_list0_count; |
122 | | uint8_t sc_non_base_ref_list1_count; |
123 | | // non-SC signals |
124 | | #endif |
125 | | uint8_t base_ref_list0_count; |
126 | | uint8_t base_ref_list1_count; |
127 | | uint8_t non_base_ref_list0_count; |
128 | | uint8_t non_base_ref_list1_count; |
129 | | // Use extra reference frames in the rps list for 5L. |
130 | | uint8_t more_5L_refs; |
131 | | |
132 | | // Limit references to (1,1) if it's safe to do so based on brightness and ME ZZ sad |
133 | | // 0:off 1:brigthness + ME ZZ sad 2:brightness only. action taken at pic level in PD |
134 | | uint8_t safe_limit_nref; |
135 | | // used for mode 1 of safe_limit_nref. zz sad of closest references is smaller than this th |
136 | | // 0: feature off non-zero-value: feature on |
137 | | uint32_t safe_limit_zz_th; |
138 | | // Limit candidate types to LAST, BWD and LAST-BWD |
139 | | bool only_l_bwd; |
140 | | // Limit PME to ref index 0 only |
141 | | bool pme_ref0_only; |
142 | | // Use only best references decided by me in md |
143 | | //0:speed feature off |
144 | | //1:use with high me distortion constraint fast |
145 | | //2:use with TPL constraint faster |
146 | | //3:use with no constraint fastest |
147 | | uint8_t use_best_references; |
148 | | // When LD rtc is used, reduce the number of ref buffers based on the number of references used |
149 | | // and the known rps structure. Signal is set automatically based on refs used. |
150 | | // 0: off, use at least DPB ref buffers. |
151 | | // 1: on; when each ref list uses <=2 refs, reduce the number of ref frame buffers because only |
152 | | // base and layer1 pics are added to the dpb. |
153 | | // 2: on; when each ref list uses <=1 refs, further reduce the number of ref frame buffers because only |
154 | | // one base and one layer1 pic are added to the dpb at a time. |
155 | | uint8_t ld_reduce_ref_buffs; |
156 | | // When flat rtc structure is used, this is the number of refs to use (from previous consecutive frames) |
157 | | uint8_t flat_max_refs; |
158 | | #if OPT_MRP_HME_L0_DETECT |
159 | | // HME L0 MRP detector threshold. 0: off. Higher values are more conservative. |
160 | | uint16_t early_hme_l0_prune_th; |
161 | | #endif |
162 | | |
163 | | } MrpCtrls; |
164 | | |
165 | | typedef struct TfControls { |
166 | | // Filtering set |
167 | | uint8_t enabled; // Specifies whether the current input will be filtered or not (0: OFF, 1: ON) |
168 | | // Specifies whether the U& V planes will be filered or not (0: OFF (filter plane Y only) |
169 | | // 1: ON (filter all planes) 2: filter Y and decide to filter U and V based on the noise level) |
170 | | uint8_t chroma_lvl; |
171 | | // Specifies whether the motion esimation is used or (0, 0) MVs are used (0: use motion estimation |
172 | | // 1: skip motion estimation search and use (0, 0) MVs |
173 | | uint8_t use_zz_based_filter; |
174 | | // Number of reference frame(s) set |
175 | | uint8_t num_past_pics; // Specifies the default number of frame(s) from past |
176 | | uint8_t num_future_pics; // Specifies the default number of frame(s) from future |
177 | | // Specifies whether the number of reference frame(s) will be modified or not |
178 | | // For INTRA, the modulation uses the noise level |
179 | | // For BASE and L1, the modulation uses the filt_INTRA-to-unfilterd_INTRA distortion range |
180 | | uint8_t modulate_pics; |
181 | | // Specifies whether to use the key- rame noise level for all inputs or to re - compute the |
182 | | // noise level for each input |
183 | | uint8_t use_intra_for_noise_est; |
184 | | // Specifies the maximum number of frame(s) from past(after all adjustments) |
185 | | uint8_t max_num_past_pics; |
186 | | // Specifies the maximum number of frame(s) from future(after all adjustments) |
187 | | uint8_t max_num_future_pics; |
188 | | |
189 | | // Motion search |
190 | | // Specifies the accuracy of the ME search (note that ME performs a HME search, then a Full - |
191 | | // Pel search). |
192 | | uint8_t hme_me_level; |
193 | | // Specifies the accuracy of the Half-Pel search (0: OFF, 1 : perform refinement for the 8 |
194 | | // neighboring positions, 2/3 : perform refinement for the 2 horizontal-neighboring positions |
195 | | // and for the 2 vertical-neighboring positions, but not for all the 4 diagonal-neighboring |
196 | | // positions = function(horizontal & vertical distortions) |
197 | | uint8_t half_pel_mode; |
198 | | // Specifies the accuracy of the Quarter-Pel search (0: OFF, 1 : perform refinement for the 8 |
199 | | // neighboring positions, 2/3 : perform refinement for the 2 horizontal-neighboring positions |
200 | | // and for the 2 vertical-neighboring positions, but not for all the 4 diagonal-neighboring |
201 | | // positions = function(horizontal & vertical distortions) |
202 | | uint8_t quarter_pel_mode; |
203 | | // Specifies the accuracy of the Eight-Pel search (0: OFF, 1 : perform refinement for the 8 |
204 | | // neighboring positions) |
205 | | uint8_t eight_pel_mode; |
206 | | // Specifies whether the Sub-Pel search for a 10bit input will be performed in 8bit |
207 | | // resolution(0: OFF, 1 : ON, NA if 8bit input) |
208 | | uint8_t use_8bit_subpel; |
209 | | // Specifies whether the Sub-Pel positions that require a 2D interpolation will be tested or not |
210 | | // (0: OFF, 1 : ON, NA if 16x16 block or if the Sub-Pel mode is set to 1) |
211 | | uint8_t avoid_2d_qpel; |
212 | | // Specifies the Sub-Pel search filter type(0: regular, 1 : bilinear, NA if 16x16 block or if |
213 | | // the Sub - Pel mode is set to 1) |
214 | | uint8_t use_2tap; |
215 | | // Specifies whether sub-sampled input / prediction will be used at the distortion computation |
216 | | // of the Sub-Pel search |
217 | | uint8_t sub_sampling_shift; |
218 | | // Specifies the 32x32 prediction error(after subpel) under which the subpel for the 16x16 |
219 | | // block(s) is bypassed |
220 | | uint64_t pred_error_32x32_th; |
221 | | // If true, check 8x8 blocks for TF prediction |
222 | | bool enable_8x8_pred; |
223 | | |
224 | | // Specifies whether to exit ME after HME or not (0: perform both HME and Full-Pel search, else |
225 | | // if the HME distortion is less than me_exit_th then exit after HME(i.e. do not perform the |
226 | | // Full-Pel search) |
227 | | uint32_t me_exit_th; |
228 | | // Specifies whether to perform Sub-Pel search for only the 64x64 block or to use default |
229 | | // size(s) (32x32 or/ and 16x16) (∞: perform Sub-Pel search for default size(s), else if the |
230 | | // deviation between the 64x64 ME distortion and the sum of the 4 32x32 ME distortions is less |
231 | | // than use_pred_64x64_only_th then perform Sub - Pel search for only the 64x64 block |
232 | | uint8_t use_pred_64x64_only_th; |
233 | | // Exit the subpel search if per-pixel distortion/variance is less than the TH (i.e. if the search results so far are "good enough") |
234 | | // 0 is off; higher is more aggressive |
235 | | uint8_t subpel_early_exit_th; |
236 | | // Specifies whether to skip reference frame e.g. 1 = use all frames, 2 = use every other frame, 4 = use 1/4 frames, etc. |
237 | | uint8_t ref_frame_factor; |
238 | | // Specifies whether to tune the params using qp (0: OFF, 1: ON) |
239 | | uint8_t qp_opt; |
240 | | } TfControls; |
241 | | |
242 | | typedef enum GM_LEVEL { |
243 | | GM_FULL = 0, // Exhaustive search mode. |
244 | | GM_DOWN = 1, // Downsampled search mode, with a downsampling factor of 2 in each dimension |
245 | | GM_DOWN16 = 2, // Downsampled search mode, with a downsampling factor of 4 in each dimension |
246 | | // The search mode is set adaptively (whether GM_FULL or GM_DOWN) based on the |
247 | | // average ME distortion |
248 | | GM_ADAPT_0 = 3, |
249 | | // The search mode is set adaptively (whether GM_DOWN or GM_DOWN16) based on the |
250 | | // average ME distortion, and the picture variance |
251 | | GM_ADAPT_1 = 4, |
252 | | } GM_LEVEL; |
253 | | |
254 | | typedef enum SqWeightOffsets { |
255 | | CONSERVATIVE_OFFSET_0 = 5, |
256 | | CONSERVATIVE_OFFSET_1 = 10, |
257 | | AGGRESSIVE_OFFSET_0 = -5, |
258 | | AGGRESSIVE_OFFSET_1 = -10 |
259 | | } SqWeightOffsets; |
260 | | |
261 | 431 | #define COEFF_LVL_INTRA_TH_0 25 |
262 | 431 | #define COEFF_LVL_INTRA_TH_1 50 |
263 | 431 | #define COEFF_LVL_INTRA_TH_2 150 |
264 | | |
265 | 0 | #define COEFF_LVL_INTER_TH_0 (5833 / 96) |
266 | 0 | #define COEFF_LVL_INTER_TH_1 (5833 / 48) |
267 | 0 | #define COEFF_LVL_INTER_TH_2 (16666 / 48) |
268 | | |
269 | | typedef enum InputCoeffLvl { |
270 | | VLOW_LVL = 0, |
271 | | LOW_LVL = 1, |
272 | | NORMAL_LVL = 2, |
273 | | HIGH_LVL = 3, |
274 | | INVALID_LVL = ~0, |
275 | | } InputCoeffLvl; |
276 | | |
277 | | typedef struct Buf2D { |
278 | | uint8_t* buf; |
279 | | uint8_t* buf0; |
280 | | int width; |
281 | | int height; |
282 | | int stride; |
283 | | } Buf2D; |
284 | | |
285 | | typedef struct MvLimits { |
286 | | int col_min; |
287 | | int col_max; |
288 | | int row_min; |
289 | | int row_max; |
290 | | } MvLimits; |
291 | | |
292 | | typedef struct { |
293 | | uint8_t by; |
294 | | uint8_t bx; |
295 | | } CdefList; |
296 | | |
297 | | /*!\brief force enum to be unsigned 1 byte*/ |
298 | | #define UENUM1BYTE(enumvar) \ |
299 | | ; \ |
300 | | typedef uint8_t enumvar |
301 | | |
302 | | enum { |
303 | | // No recode. |
304 | | DISALLOW_RECODE = 0, |
305 | | // Allow recode for KF and exceeding maximum frame bandwidth. |
306 | | ALLOW_RECODE_KFMAXBW = 1, |
307 | | // Allow recode only for KF/ARF/GF frames. |
308 | | ALLOW_RECODE_KFARFGF = 2, |
309 | | // Allow recode for all frames based on bitrate constraints. |
310 | | ALLOW_RECODE = 3, |
311 | | // Default setting, ALLOW_RECODE_KFARFGF for M0~5 and |
312 | | // ALLOW_RECODE_KFMAXBW for M6~8. |
313 | | ALLOW_RECODE_DEFAULT = 4, |
314 | | } UENUM1BYTE(RecodeLoopType); |
315 | | |
316 | | /********************************************************/ |
317 | | /****************** Pre-defined Values ******************/ |
318 | | /********************************************************/ |
319 | | |
320 | | /* maximum number of frames allowed for the Alt-ref picture computation |
321 | | * this number can be increased by increasing the constant |
322 | | * FUTURE_WINDOW_WIDTH defined in EbPictureDecisionProcess.c |
323 | | */ |
324 | 0 | #define ALTREF_MAX_NFRAMES 33 |
325 | | #define PAD_VALUE (128 + 32) |
326 | 0 | #define TF_MAX_EXTENSION 6 // Max additional tf pics after modulation per side |
327 | 0 | #define TF_MAX_BASE_REF_PICS 7 // Max tf pics at each side for BASE |
328 | 0 | #define TF_MAX_L1_REF_PICS_6L 2 // Max additional tf pics at each side for L1 for 6L hierarchy |
329 | 0 | #define TF_MAX_L1_REF_PICS_SUB_6L 1 // Max additional tf pics at each side for L1 for sub-6L hierarchy |
330 | | |
331 | 793k | #define MAX_TXB_COUNT 16 // Maximum number of transform blocks per depth |
332 | | #define MAX_TXB_COUNT_UV 4 // Maximum number of transform blocks per depth for chroma planes |
333 | 1.29k | #define MAX_LAD 120 // max lookahead-distance 2x60fps |
334 | 7.53M | #define ROUND_UV(x) (((x) >> 3) << 3) |
335 | 7.32k | #define SWITCHABLE_FILTER_CONTEXTS ((SWITCHABLE_FILTERS + 1) * 4) |
336 | 0 | #define CFL_BUF_LINE (32) |
337 | | #define CFL_BUF_LINE_I128 (CFL_BUF_LINE >> 3) |
338 | | #define CFL_BUF_LINE_I256 (CFL_BUF_LINE >> 4) |
339 | | #define CFL_BUF_SQUARE (CFL_BUF_LINE * CFL_BUF_LINE) |
340 | | /*********************************** AV1_OBU ********************************/ |
341 | 694k | #define INVALID_NEIGHBOR_DATA 0xFFu |
342 | | #define CONFIG_COEFFICIENT_RANGE_CHECKING 0 |
343 | | |
344 | | // Max superblock size |
345 | 985k | #define MAX_SB_SIZE_LOG2 7 |
346 | 0 | #define MAX_SB_SIZE (1 << MAX_SB_SIZE_LOG2) |
347 | 0 | #define MAX_SB_SQUARE (MAX_SB_SIZE * MAX_SB_SIZE) |
348 | | #define SB_STRIDE_Y MAX_SB_SIZE |
349 | | #define SB_STRIDE_UV (MAX_SB_SIZE >> 1) |
350 | | |
351 | 0 | #define INTERPOLATION_OFFSET 8 |
352 | | #define STRIDE_PACK (MAX_SB_SIZE + (INTERPOLATION_OFFSET << 1)) |
353 | | #define PACKED_BUFFER_SIZE ((MAX_SB_SIZE + (INTERPOLATION_OFFSET << 1)) * (MAX_SB_SIZE + (INTERPOLATION_OFFSET << 1))) |
354 | | |
355 | | // Min superblock size |
356 | 0 | #define MIN_SB_SIZE 64 |
357 | 0 | #define MIN_SB_SIZE_LOG2 6 |
358 | | |
359 | | // Pixels per Mode Info (MI) unit |
360 | 13.8M | #define MI_SIZE_LOG2 2 |
361 | 478k | #define MI_SIZE (1 << MI_SIZE_LOG2) |
362 | | |
363 | | // MI-units per max superblock (MI Block - MIB) |
364 | 985k | #define MAX_MIB_SIZE_LOG2 (MAX_SB_SIZE_LOG2 - MI_SIZE_LOG2) |
365 | 431 | #define MAX_MIB_SIZE (1 << MAX_MIB_SIZE_LOG2) |
366 | | |
367 | | // MI-units per min superblock |
368 | 0 | #define SB64_MIB_SIZE 16 |
369 | | |
370 | | // MI-units per min superblock |
371 | | #define MIN_MIB_SIZE_LOG2 (MIN_SB_SIZE_LOG2 - MI_SIZE_LOG2) |
372 | | |
373 | | // Mask to extract MI offset within max MIB |
374 | | #define MAX_MIB_MASK (MAX_MIB_SIZE - 1) |
375 | | |
376 | | // Maximum size of a loop restoration tile |
377 | | #define RESTORATION_TILESIZE_MAX 256 |
378 | | // Maximum number of tile rows and tile columns |
379 | 0 | #define MAX_TILE_ROWS 64 |
380 | | #define MAX_TILE_COLS 64 |
381 | | |
382 | 0 | #define MAX_VARTX_DEPTH 2 |
383 | 15.2k | #define MI_SIZE_64X64 (64 >> MI_SIZE_LOG2) |
384 | | #define MI_SIZE_128X128 (128 >> MI_SIZE_LOG2) |
385 | 0 | #define MAX_PALETTE_SQUARE (64 * 64) |
386 | | // Maximum number of colors in a palette. |
387 | 0 | #define PALETTE_MAX_SIZE 8 |
388 | | // Minimum number of colors in a palette. |
389 | 0 | #define PALETTE_MIN_SIZE 2 |
390 | 0 | #define FRAME_OFFSET_BITS 5 |
391 | 0 | #define MAX_FRAME_DISTANCE ((1 << FRAME_OFFSET_BITS) - 1) |
392 | | |
393 | | // 4 frame filter levels: y plane vertical, y plane horizontal, |
394 | | // u plane, and v plane |
395 | 0 | #define FRAME_LF_COUNT 4 |
396 | 0 | #define MAX_MODE_LF_DELTAS 2 |
397 | 862 | #define LEVEL_MAJOR_BITS 3 |
398 | 1.72k | #define LEVEL_MINOR_BITS 2 |
399 | 862 | #define LEVEL_BITS (LEVEL_MAJOR_BITS + LEVEL_MINOR_BITS) |
400 | | |
401 | 862 | #define LEVEL_MAJOR_MIN 2 |
402 | 0 | #define LEVEL_MAJOR_MAX ((1 << LEVEL_MAJOR_BITS) - 1 + LEVEL_MAJOR_MIN) |
403 | | #define LEVEL_MINOR_MIN 0 |
404 | 0 | #define LEVEL_MINOR_MAX ((1 << LEVEL_MINOR_BITS) - 1) |
405 | | |
406 | 0 | #define OP_POINTS_CNT_MINUS_1_BITS 5 |
407 | 0 | #define OP_POINTS_IDC_BITS 12 |
408 | 2.15k | #define TX_SIZE_LUMA_MIN (TX_4X4) |
409 | | /* We don't need to code a transform size unless the allowed size is at least |
410 | | one more than the minimum. */ |
411 | 2.15k | #define TX_SIZE_CTX_MIN (TX_SIZE_LUMA_MIN + 1) |
412 | | |
413 | | // Maximum tx_size categories |
414 | 2.15k | #define MAX_TX_CATS (TX_SIZES - TX_SIZE_CTX_MIN) |
415 | 37.8k | #define MAX_TX_DEPTH 2 |
416 | | |
417 | 65.3k | #define MAX_TX_SIZE_LOG2 (6) |
418 | 65.3k | #define MAX_TX_SIZE (1 << MAX_TX_SIZE_LOG2) |
419 | | #define MIN_TX_SIZE_LOG2 2 |
420 | | #define MIN_TX_SIZE (1 << MIN_TX_SIZE_LOG2) |
421 | | #define MAX_TX_SQUARE (MAX_TX_SIZE * MAX_TX_SIZE) |
422 | | |
423 | | // Pad 4 extra columns to remove horizontal availability check. |
424 | 46 | #define TX_PAD_HOR_LOG2 2 |
425 | 24.9k | #define TX_PAD_HOR 4 |
426 | | // Pad 4 extra rows on bottom to remove vertical availability check. |
427 | | // No top padding needed: context functions only read right/below neighbors. |
428 | 1.80k | #define TX_PAD_TOP 0 |
429 | 1.80k | #define TX_PAD_BOTTOM 4 |
430 | 1.80k | #define TX_PAD_VER (TX_PAD_TOP + TX_PAD_BOTTOM) |
431 | | // Pad 16 extra bytes to avoid reading overflow in SIMD optimization. |
432 | 1.80k | #define TX_PAD_END 16 |
433 | 1.80k | #define TX_PAD_2D ((MAX_TX_SIZE + TX_PAD_HOR) * (MAX_TX_SIZE + TX_PAD_VER) + TX_PAD_END) |
434 | | // Offset where the guaranteed-zero tail begins in levels_buf. |
435 | | // Data is placed so it ends at this offset; the tail serves as bottom padding. |
436 | 13.3k | #define LEVELS_TAIL_OFFSET ((MAX_TX_SIZE + TX_PAD_HOR) * MAX_TX_SIZE) |
437 | 0 | #define DIST_PRECISION_BITS 4 |
438 | | |
439 | 862 | #define PROFILE_BITS 3 |
440 | | |
441 | | // AV1 Loop Filter |
442 | 0 | #define FILTER_BITS 7 |
443 | | #define SUBPEL_BITS 4 |
444 | | #define SUBPEL_MASK ((1 << SUBPEL_BITS) - 1) |
445 | | #define SUBPEL_SHIFTS (1 << SUBPEL_BITS) |
446 | | #define SUBPEL_TAPS 8 |
447 | | |
448 | | #define SCALE_SUBPEL_BITS 10 |
449 | | #define SCALE_SUBPEL_SHIFTS (1 << SCALE_SUBPEL_BITS) |
450 | | #define SCALE_SUBPEL_MASK (SCALE_SUBPEL_SHIFTS - 1) |
451 | | #define SCALE_EXTRA_BITS (SCALE_SUBPEL_BITS - SUBPEL_BITS) |
452 | | #define SCALE_EXTRA_OFF ((1 << SCALE_EXTRA_BITS) / 2) |
453 | | |
454 | 0 | #define LEAST_SQUARES_SAMPLES_MAX_BITS 3 |
455 | 0 | #define LEAST_SQUARES_SAMPLES_MAX (1 << LEAST_SQUARES_SAMPLES_MAX_BITS) |
456 | | #define SAMPLES_ARRAY_SIZE (LEAST_SQUARES_SAMPLES_MAX * 2) |
457 | | |
458 | | typedef int16_t InterpKernel[SUBPEL_TAPS]; |
459 | | |
460 | | /***************************************************/ |
461 | | /****************** Helper Macros ******************/ |
462 | | /***************************************************/ |
463 | | /* Shift down with rounding for use when n >= 0, value >= 0 */ |
464 | 6.80M | #define ROUND_POWER_OF_TWO(value, n) (((value) + (((1 << (n)) >> 1))) >> (n)) |
465 | | |
466 | | /* Shift down with rounding for signed integers, for use when n >= 0 */ |
467 | | #define ROUND_POWER_OF_TWO_SIGNED(value, n) \ |
468 | 0 | (((value) < 0) ? -ROUND_POWER_OF_TWO(-(value), (n)) : ROUND_POWER_OF_TWO((value), (n))) |
469 | | |
470 | | /* Shift down with rounding for use when n >= 0, value >= 0 for (64 bit) */ |
471 | 0 | #define ROUND_POWER_OF_TWO_64(value, n) (((value) + ((((int64_t)1 << (n)) >> 1))) >> (n)) |
472 | | |
473 | | /* Shift down with rounding for signed integers, for use when n >= 0 (64 bit) */ |
474 | | #define ROUND_POWER_OF_TWO_SIGNED_64(value, n) \ |
475 | 0 | (((value) < 0) ? -ROUND_POWER_OF_TWO_64(-(value), (n)) : ROUND_POWER_OF_TWO_64((value), (n))) |
476 | | |
477 | | #define IS_POWER_OF_TWO(x) (((x) & ((x) - 1)) == 0) |
478 | | |
479 | | #ifdef __cplusplus |
480 | | #define EB_EXTERN extern "C" |
481 | | #else |
482 | | #define EB_EXTERN |
483 | | #endif // __cplusplus |
484 | | |
485 | | #ifdef _WIN32 |
486 | | #define FOPEN(f, s, m) fopen_s(&f, s, m) |
487 | | #else |
488 | 0 | #define FOPEN(f, s, m) f = fopen(s, m) |
489 | | #endif |
490 | | |
491 | 7.29k | #define IMPLIES(a, b) (!(a) || (b)) // Logical 'a implies b' (or 'a -> b') |
492 | | #if (defined(__GNUC__) && __GNUC__) || defined(__SUNPRO_C) |
493 | 2.78M | #define DECLARE_ALIGNED(n, typ, val) typ val __attribute__((aligned(n))) |
494 | | #elif defined(_WIN32) |
495 | | #define DECLARE_ALIGNED(n, typ, val) __declspec(align(n)) typ val |
496 | | #else |
497 | | #warning No alignment directives known for this compiler. |
498 | | #define DECLARE_ALIGNED(n, typ, val) typ val |
499 | | #endif |
500 | | |
501 | | #ifdef _MSC_VER |
502 | | #define EB_ALIGN(n) __declspec(align(n)) |
503 | | #elif defined(__GNUC__) |
504 | 118k | #define EB_ALIGN(n) __attribute__((__aligned__(n))) |
505 | | #else |
506 | | #define EB_ALIGN(n) |
507 | | #endif |
508 | | |
509 | | #ifndef EB_LIKELY |
510 | | #if HAVE_BUILTIN_EXPECT |
511 | | #define EB_LIKELY(x) __builtin_expect(!!(x), 1) |
512 | 850k | #define EB_UNLIKELY(x) __builtin_expect(!!(x), 0) |
513 | | #else |
514 | | #define EB_LIKELY(x) (x) |
515 | | #define EB_UNLIKELY(x) (x) |
516 | | #endif |
517 | | #endif |
518 | | |
519 | | #ifndef EB_ASSUME |
520 | | #if HAVE_BUILTIN_ASSUME |
521 | 821k | #define EB_ASSUME(x) __builtin_assume(x) |
522 | | #else |
523 | | #define EB_ASSUME(x) ((void)0) |
524 | | #endif |
525 | | #endif |
526 | | |
527 | | #if defined(__clang__) && defined(__has_warning) |
528 | | #if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") |
529 | | #define AOM_FALLTHROUGH_INTENDED [[clang::fallthrough]] // NOLINT |
530 | | #endif |
531 | | #elif defined(__GNUC__) && __GNUC__ >= 7 |
532 | | #define AOM_FALLTHROUGH_INTENDED __attribute__((fallthrough)) // NOLINT |
533 | | #endif |
534 | | |
535 | | #ifndef AOM_FALLTHROUGH_INTENDED |
536 | | #define AOM_FALLTHROUGH_INTENDED \ |
537 | 446k | do { \ |
538 | 446k | } while (0) |
539 | | #endif |
540 | | |
541 | | #ifdef _MSC_VER |
542 | | #define AOM_FORCE_INLINE __forceinline |
543 | | #define AOM_INLINE __inline |
544 | | #else |
545 | | #define AOM_FORCE_INLINE __inline__ __attribute__((always_inline)) |
546 | | #define AOM_INLINE inline |
547 | | #endif |
548 | | |
549 | | #define SIMD_INLINE static AOM_FORCE_INLINE |
550 | | |
551 | | //*********************************************************************************************************************// |
552 | | // mem.h |
553 | | /* shift right or left depending on sign of n */ |
554 | 29.2k | #define RIGHT_SIGNED_SHIFT(value, n) ((n) < 0 ? ((value) << (-(n))) : ((value) >> (n))) |
555 | | //*********************************************************************************************************************// |
556 | | // mem_ops.h |
557 | | #ifndef MAU_T |
558 | | /* Minimum Access Unit for this target */ |
559 | 0 | #define MAU_T uint8_t |
560 | | #endif |
561 | | |
562 | | #ifndef MEM_VALUE_T |
563 | | #define MEM_VALUE_T int32_t |
564 | | #endif |
565 | | |
566 | | #undef MEM_VALUE_T_SZ_BITS |
567 | | #define MEM_VALUE_T_SZ_BITS (sizeof(MEM_VALUE_T) << 3) |
568 | | |
569 | 0 | static __inline void mem_put_le16(void* vmem, MEM_VALUE_T val) { |
570 | 0 | MAU_T* mem = (MAU_T*)vmem; |
571 | |
|
572 | 0 | mem[0] = (MAU_T)((val >> 0) & 0xff); |
573 | 0 | mem[1] = (MAU_T)((val >> 8) & 0xff); |
574 | 0 | } Unexecuted instantiation: enc_handle.c:mem_put_le16 Unexecuted instantiation: enc_settings.c:mem_put_le16 Unexecuted instantiation: metadata_handle.c:mem_put_le16 Unexecuted instantiation: aom_dsp_rtcd.c:mem_put_le16 Unexecuted instantiation: av1me.c:mem_put_le16 Unexecuted instantiation: bitstream_unit.c:mem_put_le16 Unexecuted instantiation: cdef_process.c:mem_put_le16 Unexecuted instantiation: common_dsp_rtcd.c:mem_put_le16 Unexecuted instantiation: common_utils.c:mem_put_le16 Unexecuted instantiation: convolve.c:mem_put_le16 Unexecuted instantiation: corner_match.c:mem_put_le16 Unexecuted instantiation: deblocking_common.c:mem_put_le16 Unexecuted instantiation: dlf_process.c:mem_put_le16 Unexecuted instantiation: enc_cdef.c:mem_put_le16 Unexecuted instantiation: enc_dec_process.c:mem_put_le16 Unexecuted instantiation: enc_dec_results.c:mem_put_le16 Unexecuted instantiation: enc_dec_tasks.c:mem_put_le16 Unexecuted instantiation: enc_inter_prediction.c:mem_put_le16 Unexecuted instantiation: enc_intra_prediction.c:mem_put_le16 Unexecuted instantiation: enc_mode_config.c:mem_put_le16 Unexecuted instantiation: entropy_coding.c:mem_put_le16 Unexecuted instantiation: ec_process.c:mem_put_le16 Unexecuted instantiation: ec_results.c:mem_put_le16 Unexecuted instantiation: fft.c:mem_put_le16 Unexecuted instantiation: full_loop.c:mem_put_le16 Unexecuted instantiation: grainSynthesis.c:mem_put_le16 Unexecuted instantiation: hash.c:mem_put_le16 Unexecuted instantiation: hash_motion.c:mem_put_le16 Unexecuted instantiation: initial_rc_process.c:mem_put_le16 Unexecuted instantiation: initial_rc_results.c:mem_put_le16 Unexecuted instantiation: inter_prediction.c:mem_put_le16 Unexecuted instantiation: intra_prediction.c:mem_put_le16 Unexecuted instantiation: inv_transforms.c:mem_put_le16 Unexecuted instantiation: md_rate_estimation.c:mem_put_le16 Unexecuted instantiation: me_sad_calculation.c:mem_put_le16 Unexecuted instantiation: mode_decision.c:mem_put_le16 Unexecuted instantiation: md_config_process.c:mem_put_le16 Unexecuted instantiation: md_process.c:mem_put_le16 Unexecuted instantiation: motion_estimation.c:mem_put_le16 Unexecuted instantiation: me_process.c:mem_put_le16 Unexecuted instantiation: me_results.c:mem_put_le16 Unexecuted instantiation: neighbor_arrays.c:mem_put_le16 Unexecuted instantiation: noise_model.c:mem_put_le16 Unexecuted instantiation: noise_util.c:mem_put_le16 Unexecuted instantiation: packetization_process.c:mem_put_le16 Unexecuted instantiation: packetization_reorder_queue.c:mem_put_le16 Unexecuted instantiation: palette.c:mem_put_le16 Unexecuted instantiation: pic_analysis_process.c:mem_put_le16 Unexecuted instantiation: pic_analysis_results.c:mem_put_le16 Unexecuted instantiation: pic_buffer_desc.c:mem_put_le16 Unexecuted instantiation: pcs.c:mem_put_le16 Unexecuted instantiation: pd_process.c:mem_put_le16 Unexecuted instantiation: pd_reorder_queue.c:mem_put_le16 Unexecuted instantiation: pd_results.c:mem_put_le16 Unexecuted instantiation: pic_demux_results.c:mem_put_le16 Unexecuted instantiation: pic_manager_process.c:mem_put_le16 Unexecuted instantiation: pic_manager_queue.c:mem_put_le16 Unexecuted instantiation: pic_operators.c:mem_put_le16 Unexecuted instantiation: pred_structure.c:mem_put_le16 Unexecuted instantiation: product_coding_loop.c:mem_put_le16 Unexecuted instantiation: ac_bias.c:mem_put_le16 Unexecuted instantiation: rc_aq.c:mem_put_le16 Unexecuted instantiation: rc_process.c:mem_put_le16 Unexecuted instantiation: rc_results.c:mem_put_le16 Unexecuted instantiation: rc_rtc_cbr.c:mem_put_le16 Unexecuted instantiation: rc_tasks.c:mem_put_le16 Unexecuted instantiation: rc_vbr_cbr.c:mem_put_le16 Unexecuted instantiation: rd_cost.c:mem_put_le16 Unexecuted instantiation: reference_object.c:mem_put_le16 Unexecuted instantiation: resize.c:mem_put_le16 Unexecuted instantiation: resource_coordination_process.c:mem_put_le16 Unexecuted instantiation: resource_coordination_results.c:mem_put_le16 Unexecuted instantiation: rest_process.c:mem_put_le16 Unexecuted instantiation: restoration.c:mem_put_le16 Unexecuted instantiation: restoration_pick.c:mem_put_le16 Unexecuted instantiation: segmentation.c:mem_put_le16 Unexecuted instantiation: segmentation_params.c:mem_put_le16 Unexecuted instantiation: sequence_control_set.c:mem_put_le16 Unexecuted instantiation: src_ops_process.c:mem_put_le16 Unexecuted instantiation: super_res.c:mem_put_le16 Unexecuted instantiation: svt_log.c:mem_put_le16 Unexecuted instantiation: svt_malloc.c:mem_put_le16 Unexecuted instantiation: svt_psnr.c:mem_put_le16 Unexecuted instantiation: svt_threads.c:mem_put_le16 Unexecuted instantiation: sys_resource_manager.c:mem_put_le16 Unexecuted instantiation: kernel_dispatch.c:mem_put_le16 Unexecuted instantiation: temporal_filtering.c:mem_put_le16 Unexecuted instantiation: transforms.c:mem_put_le16 Unexecuted instantiation: utility.c:mem_put_le16 Unexecuted instantiation: vector.c:mem_put_le16 Unexecuted instantiation: warped_motion.c:mem_put_le16 Unexecuted instantiation: blend_a64_mask_c.c:mem_put_le16 Unexecuted instantiation: cfl_c.c:mem_put_le16 Unexecuted instantiation: compute_sad_c.c:mem_put_le16 Unexecuted instantiation: encode_txb_ref_c.c:mem_put_le16 Unexecuted instantiation: filterintra_c.c:mem_put_le16 Unexecuted instantiation: inter_prediction_c.c:mem_put_le16 Unexecuted instantiation: intra_prediction_c.c:mem_put_le16 Unexecuted instantiation: pack_unpack_c.c:mem_put_le16 Unexecuted instantiation: picture_operators_c.c:mem_put_le16 Unexecuted instantiation: sad_av1.c:mem_put_le16 Unexecuted instantiation: variance.c:mem_put_le16 Unexecuted instantiation: adaptive_mv_pred.c:mem_put_le16 Unexecuted instantiation: blend_a64_mask.c:mem_put_le16 Unexecuted instantiation: block_structures.c:mem_put_le16 Unexecuted instantiation: cabac_context_model.c:mem_put_le16 Unexecuted instantiation: cdef.c:mem_put_le16 Unexecuted instantiation: coding_loop.c:mem_put_le16 Unexecuted instantiation: coding_unit.c:mem_put_le16 Unexecuted instantiation: coefficients.c:mem_put_le16 Unexecuted instantiation: deblocking_filter.c:mem_put_le16 Unexecuted instantiation: enc_dec_segments.c:mem_put_le16 Unexecuted instantiation: encode_context.c:mem_put_le16 Unexecuted instantiation: firstpass.c:mem_put_le16 Unexecuted instantiation: global_me.c:mem_put_le16 Unexecuted instantiation: global_me_cost.c:mem_put_le16 Unexecuted instantiation: mcomp.c:mem_put_le16 Unexecuted instantiation: me_context.c:mem_put_le16 Unexecuted instantiation: pass2_strategy.c:mem_put_le16 Unexecuted instantiation: pd_queue.c:mem_put_le16 Unexecuted instantiation: rc_crf_cqp.c:mem_put_le16 Unexecuted instantiation: corner_detect.c:mem_put_le16 Unexecuted instantiation: global_motion.c:mem_put_le16 Unexecuted instantiation: ransac.c:mem_put_le16 Unexecuted instantiation: enc_warped_motion.c:mem_put_le16 |
575 | | |
576 | 0 | static __inline void mem_put_le24(void* vmem, MEM_VALUE_T val) { |
577 | 0 | MAU_T* mem = (MAU_T*)vmem; |
578 | |
|
579 | 0 | mem[0] = (MAU_T)((val >> 0) & 0xff); |
580 | 0 | mem[1] = (MAU_T)((val >> 8) & 0xff); |
581 | 0 | mem[2] = (MAU_T)((val >> 16) & 0xff); |
582 | 0 | } Unexecuted instantiation: enc_handle.c:mem_put_le24 Unexecuted instantiation: enc_settings.c:mem_put_le24 Unexecuted instantiation: metadata_handle.c:mem_put_le24 Unexecuted instantiation: aom_dsp_rtcd.c:mem_put_le24 Unexecuted instantiation: av1me.c:mem_put_le24 Unexecuted instantiation: bitstream_unit.c:mem_put_le24 Unexecuted instantiation: cdef_process.c:mem_put_le24 Unexecuted instantiation: common_dsp_rtcd.c:mem_put_le24 Unexecuted instantiation: common_utils.c:mem_put_le24 Unexecuted instantiation: convolve.c:mem_put_le24 Unexecuted instantiation: corner_match.c:mem_put_le24 Unexecuted instantiation: deblocking_common.c:mem_put_le24 Unexecuted instantiation: dlf_process.c:mem_put_le24 Unexecuted instantiation: enc_cdef.c:mem_put_le24 Unexecuted instantiation: enc_dec_process.c:mem_put_le24 Unexecuted instantiation: enc_dec_results.c:mem_put_le24 Unexecuted instantiation: enc_dec_tasks.c:mem_put_le24 Unexecuted instantiation: enc_inter_prediction.c:mem_put_le24 Unexecuted instantiation: enc_intra_prediction.c:mem_put_le24 Unexecuted instantiation: enc_mode_config.c:mem_put_le24 Unexecuted instantiation: entropy_coding.c:mem_put_le24 Unexecuted instantiation: ec_process.c:mem_put_le24 Unexecuted instantiation: ec_results.c:mem_put_le24 Unexecuted instantiation: fft.c:mem_put_le24 Unexecuted instantiation: full_loop.c:mem_put_le24 Unexecuted instantiation: grainSynthesis.c:mem_put_le24 Unexecuted instantiation: hash.c:mem_put_le24 Unexecuted instantiation: hash_motion.c:mem_put_le24 Unexecuted instantiation: initial_rc_process.c:mem_put_le24 Unexecuted instantiation: initial_rc_results.c:mem_put_le24 Unexecuted instantiation: inter_prediction.c:mem_put_le24 Unexecuted instantiation: intra_prediction.c:mem_put_le24 Unexecuted instantiation: inv_transforms.c:mem_put_le24 Unexecuted instantiation: md_rate_estimation.c:mem_put_le24 Unexecuted instantiation: me_sad_calculation.c:mem_put_le24 Unexecuted instantiation: mode_decision.c:mem_put_le24 Unexecuted instantiation: md_config_process.c:mem_put_le24 Unexecuted instantiation: md_process.c:mem_put_le24 Unexecuted instantiation: motion_estimation.c:mem_put_le24 Unexecuted instantiation: me_process.c:mem_put_le24 Unexecuted instantiation: me_results.c:mem_put_le24 Unexecuted instantiation: neighbor_arrays.c:mem_put_le24 Unexecuted instantiation: noise_model.c:mem_put_le24 Unexecuted instantiation: noise_util.c:mem_put_le24 Unexecuted instantiation: packetization_process.c:mem_put_le24 Unexecuted instantiation: packetization_reorder_queue.c:mem_put_le24 Unexecuted instantiation: palette.c:mem_put_le24 Unexecuted instantiation: pic_analysis_process.c:mem_put_le24 Unexecuted instantiation: pic_analysis_results.c:mem_put_le24 Unexecuted instantiation: pic_buffer_desc.c:mem_put_le24 Unexecuted instantiation: pcs.c:mem_put_le24 Unexecuted instantiation: pd_process.c:mem_put_le24 Unexecuted instantiation: pd_reorder_queue.c:mem_put_le24 Unexecuted instantiation: pd_results.c:mem_put_le24 Unexecuted instantiation: pic_demux_results.c:mem_put_le24 Unexecuted instantiation: pic_manager_process.c:mem_put_le24 Unexecuted instantiation: pic_manager_queue.c:mem_put_le24 Unexecuted instantiation: pic_operators.c:mem_put_le24 Unexecuted instantiation: pred_structure.c:mem_put_le24 Unexecuted instantiation: product_coding_loop.c:mem_put_le24 Unexecuted instantiation: ac_bias.c:mem_put_le24 Unexecuted instantiation: rc_aq.c:mem_put_le24 Unexecuted instantiation: rc_process.c:mem_put_le24 Unexecuted instantiation: rc_results.c:mem_put_le24 Unexecuted instantiation: rc_rtc_cbr.c:mem_put_le24 Unexecuted instantiation: rc_tasks.c:mem_put_le24 Unexecuted instantiation: rc_vbr_cbr.c:mem_put_le24 Unexecuted instantiation: rd_cost.c:mem_put_le24 Unexecuted instantiation: reference_object.c:mem_put_le24 Unexecuted instantiation: resize.c:mem_put_le24 Unexecuted instantiation: resource_coordination_process.c:mem_put_le24 Unexecuted instantiation: resource_coordination_results.c:mem_put_le24 Unexecuted instantiation: rest_process.c:mem_put_le24 Unexecuted instantiation: restoration.c:mem_put_le24 Unexecuted instantiation: restoration_pick.c:mem_put_le24 Unexecuted instantiation: segmentation.c:mem_put_le24 Unexecuted instantiation: segmentation_params.c:mem_put_le24 Unexecuted instantiation: sequence_control_set.c:mem_put_le24 Unexecuted instantiation: src_ops_process.c:mem_put_le24 Unexecuted instantiation: super_res.c:mem_put_le24 Unexecuted instantiation: svt_log.c:mem_put_le24 Unexecuted instantiation: svt_malloc.c:mem_put_le24 Unexecuted instantiation: svt_psnr.c:mem_put_le24 Unexecuted instantiation: svt_threads.c:mem_put_le24 Unexecuted instantiation: sys_resource_manager.c:mem_put_le24 Unexecuted instantiation: kernel_dispatch.c:mem_put_le24 Unexecuted instantiation: temporal_filtering.c:mem_put_le24 Unexecuted instantiation: transforms.c:mem_put_le24 Unexecuted instantiation: utility.c:mem_put_le24 Unexecuted instantiation: vector.c:mem_put_le24 Unexecuted instantiation: warped_motion.c:mem_put_le24 Unexecuted instantiation: blend_a64_mask_c.c:mem_put_le24 Unexecuted instantiation: cfl_c.c:mem_put_le24 Unexecuted instantiation: compute_sad_c.c:mem_put_le24 Unexecuted instantiation: encode_txb_ref_c.c:mem_put_le24 Unexecuted instantiation: filterintra_c.c:mem_put_le24 Unexecuted instantiation: inter_prediction_c.c:mem_put_le24 Unexecuted instantiation: intra_prediction_c.c:mem_put_le24 Unexecuted instantiation: pack_unpack_c.c:mem_put_le24 Unexecuted instantiation: picture_operators_c.c:mem_put_le24 Unexecuted instantiation: sad_av1.c:mem_put_le24 Unexecuted instantiation: variance.c:mem_put_le24 Unexecuted instantiation: adaptive_mv_pred.c:mem_put_le24 Unexecuted instantiation: blend_a64_mask.c:mem_put_le24 Unexecuted instantiation: block_structures.c:mem_put_le24 Unexecuted instantiation: cabac_context_model.c:mem_put_le24 Unexecuted instantiation: cdef.c:mem_put_le24 Unexecuted instantiation: coding_loop.c:mem_put_le24 Unexecuted instantiation: coding_unit.c:mem_put_le24 Unexecuted instantiation: coefficients.c:mem_put_le24 Unexecuted instantiation: deblocking_filter.c:mem_put_le24 Unexecuted instantiation: enc_dec_segments.c:mem_put_le24 Unexecuted instantiation: encode_context.c:mem_put_le24 Unexecuted instantiation: firstpass.c:mem_put_le24 Unexecuted instantiation: global_me.c:mem_put_le24 Unexecuted instantiation: global_me_cost.c:mem_put_le24 Unexecuted instantiation: mcomp.c:mem_put_le24 Unexecuted instantiation: me_context.c:mem_put_le24 Unexecuted instantiation: pass2_strategy.c:mem_put_le24 Unexecuted instantiation: pd_queue.c:mem_put_le24 Unexecuted instantiation: rc_crf_cqp.c:mem_put_le24 Unexecuted instantiation: corner_detect.c:mem_put_le24 Unexecuted instantiation: global_motion.c:mem_put_le24 Unexecuted instantiation: ransac.c:mem_put_le24 Unexecuted instantiation: enc_warped_motion.c:mem_put_le24 |
583 | | |
584 | 0 | static __inline void mem_put_le32(void* vmem, MEM_VALUE_T val) { |
585 | 0 | MAU_T* mem = (MAU_T*)vmem; |
586 | |
|
587 | 0 | mem[0] = (MAU_T)((val >> 0) & 0xff); |
588 | 0 | mem[1] = (MAU_T)((val >> 8) & 0xff); |
589 | 0 | mem[2] = (MAU_T)((val >> 16) & 0xff); |
590 | 0 | mem[3] = (MAU_T)((val >> 24) & 0xff); |
591 | 0 | } Unexecuted instantiation: enc_handle.c:mem_put_le32 Unexecuted instantiation: enc_settings.c:mem_put_le32 Unexecuted instantiation: metadata_handle.c:mem_put_le32 Unexecuted instantiation: aom_dsp_rtcd.c:mem_put_le32 Unexecuted instantiation: av1me.c:mem_put_le32 Unexecuted instantiation: bitstream_unit.c:mem_put_le32 Unexecuted instantiation: cdef_process.c:mem_put_le32 Unexecuted instantiation: common_dsp_rtcd.c:mem_put_le32 Unexecuted instantiation: common_utils.c:mem_put_le32 Unexecuted instantiation: convolve.c:mem_put_le32 Unexecuted instantiation: corner_match.c:mem_put_le32 Unexecuted instantiation: deblocking_common.c:mem_put_le32 Unexecuted instantiation: dlf_process.c:mem_put_le32 Unexecuted instantiation: enc_cdef.c:mem_put_le32 Unexecuted instantiation: enc_dec_process.c:mem_put_le32 Unexecuted instantiation: enc_dec_results.c:mem_put_le32 Unexecuted instantiation: enc_dec_tasks.c:mem_put_le32 Unexecuted instantiation: enc_inter_prediction.c:mem_put_le32 Unexecuted instantiation: enc_intra_prediction.c:mem_put_le32 Unexecuted instantiation: enc_mode_config.c:mem_put_le32 Unexecuted instantiation: entropy_coding.c:mem_put_le32 Unexecuted instantiation: ec_process.c:mem_put_le32 Unexecuted instantiation: ec_results.c:mem_put_le32 Unexecuted instantiation: fft.c:mem_put_le32 Unexecuted instantiation: full_loop.c:mem_put_le32 Unexecuted instantiation: grainSynthesis.c:mem_put_le32 Unexecuted instantiation: hash.c:mem_put_le32 Unexecuted instantiation: hash_motion.c:mem_put_le32 Unexecuted instantiation: initial_rc_process.c:mem_put_le32 Unexecuted instantiation: initial_rc_results.c:mem_put_le32 Unexecuted instantiation: inter_prediction.c:mem_put_le32 Unexecuted instantiation: intra_prediction.c:mem_put_le32 Unexecuted instantiation: inv_transforms.c:mem_put_le32 Unexecuted instantiation: md_rate_estimation.c:mem_put_le32 Unexecuted instantiation: me_sad_calculation.c:mem_put_le32 Unexecuted instantiation: mode_decision.c:mem_put_le32 Unexecuted instantiation: md_config_process.c:mem_put_le32 Unexecuted instantiation: md_process.c:mem_put_le32 Unexecuted instantiation: motion_estimation.c:mem_put_le32 Unexecuted instantiation: me_process.c:mem_put_le32 Unexecuted instantiation: me_results.c:mem_put_le32 Unexecuted instantiation: neighbor_arrays.c:mem_put_le32 Unexecuted instantiation: noise_model.c:mem_put_le32 Unexecuted instantiation: noise_util.c:mem_put_le32 Unexecuted instantiation: packetization_process.c:mem_put_le32 Unexecuted instantiation: packetization_reorder_queue.c:mem_put_le32 Unexecuted instantiation: palette.c:mem_put_le32 Unexecuted instantiation: pic_analysis_process.c:mem_put_le32 Unexecuted instantiation: pic_analysis_results.c:mem_put_le32 Unexecuted instantiation: pic_buffer_desc.c:mem_put_le32 Unexecuted instantiation: pcs.c:mem_put_le32 Unexecuted instantiation: pd_process.c:mem_put_le32 Unexecuted instantiation: pd_reorder_queue.c:mem_put_le32 Unexecuted instantiation: pd_results.c:mem_put_le32 Unexecuted instantiation: pic_demux_results.c:mem_put_le32 Unexecuted instantiation: pic_manager_process.c:mem_put_le32 Unexecuted instantiation: pic_manager_queue.c:mem_put_le32 Unexecuted instantiation: pic_operators.c:mem_put_le32 Unexecuted instantiation: pred_structure.c:mem_put_le32 Unexecuted instantiation: product_coding_loop.c:mem_put_le32 Unexecuted instantiation: ac_bias.c:mem_put_le32 Unexecuted instantiation: rc_aq.c:mem_put_le32 Unexecuted instantiation: rc_process.c:mem_put_le32 Unexecuted instantiation: rc_results.c:mem_put_le32 Unexecuted instantiation: rc_rtc_cbr.c:mem_put_le32 Unexecuted instantiation: rc_tasks.c:mem_put_le32 Unexecuted instantiation: rc_vbr_cbr.c:mem_put_le32 Unexecuted instantiation: rd_cost.c:mem_put_le32 Unexecuted instantiation: reference_object.c:mem_put_le32 Unexecuted instantiation: resize.c:mem_put_le32 Unexecuted instantiation: resource_coordination_process.c:mem_put_le32 Unexecuted instantiation: resource_coordination_results.c:mem_put_le32 Unexecuted instantiation: rest_process.c:mem_put_le32 Unexecuted instantiation: restoration.c:mem_put_le32 Unexecuted instantiation: restoration_pick.c:mem_put_le32 Unexecuted instantiation: segmentation.c:mem_put_le32 Unexecuted instantiation: segmentation_params.c:mem_put_le32 Unexecuted instantiation: sequence_control_set.c:mem_put_le32 Unexecuted instantiation: src_ops_process.c:mem_put_le32 Unexecuted instantiation: super_res.c:mem_put_le32 Unexecuted instantiation: svt_log.c:mem_put_le32 Unexecuted instantiation: svt_malloc.c:mem_put_le32 Unexecuted instantiation: svt_psnr.c:mem_put_le32 Unexecuted instantiation: svt_threads.c:mem_put_le32 Unexecuted instantiation: sys_resource_manager.c:mem_put_le32 Unexecuted instantiation: kernel_dispatch.c:mem_put_le32 Unexecuted instantiation: temporal_filtering.c:mem_put_le32 Unexecuted instantiation: transforms.c:mem_put_le32 Unexecuted instantiation: utility.c:mem_put_le32 Unexecuted instantiation: vector.c:mem_put_le32 Unexecuted instantiation: warped_motion.c:mem_put_le32 Unexecuted instantiation: blend_a64_mask_c.c:mem_put_le32 Unexecuted instantiation: cfl_c.c:mem_put_le32 Unexecuted instantiation: compute_sad_c.c:mem_put_le32 Unexecuted instantiation: encode_txb_ref_c.c:mem_put_le32 Unexecuted instantiation: filterintra_c.c:mem_put_le32 Unexecuted instantiation: inter_prediction_c.c:mem_put_le32 Unexecuted instantiation: intra_prediction_c.c:mem_put_le32 Unexecuted instantiation: pack_unpack_c.c:mem_put_le32 Unexecuted instantiation: picture_operators_c.c:mem_put_le32 Unexecuted instantiation: sad_av1.c:mem_put_le32 Unexecuted instantiation: variance.c:mem_put_le32 Unexecuted instantiation: adaptive_mv_pred.c:mem_put_le32 Unexecuted instantiation: blend_a64_mask.c:mem_put_le32 Unexecuted instantiation: block_structures.c:mem_put_le32 Unexecuted instantiation: cabac_context_model.c:mem_put_le32 Unexecuted instantiation: cdef.c:mem_put_le32 Unexecuted instantiation: coding_loop.c:mem_put_le32 Unexecuted instantiation: coding_unit.c:mem_put_le32 Unexecuted instantiation: coefficients.c:mem_put_le32 Unexecuted instantiation: deblocking_filter.c:mem_put_le32 Unexecuted instantiation: enc_dec_segments.c:mem_put_le32 Unexecuted instantiation: encode_context.c:mem_put_le32 Unexecuted instantiation: firstpass.c:mem_put_le32 Unexecuted instantiation: global_me.c:mem_put_le32 Unexecuted instantiation: global_me_cost.c:mem_put_le32 Unexecuted instantiation: mcomp.c:mem_put_le32 Unexecuted instantiation: me_context.c:mem_put_le32 Unexecuted instantiation: pass2_strategy.c:mem_put_le32 Unexecuted instantiation: pd_queue.c:mem_put_le32 Unexecuted instantiation: rc_crf_cqp.c:mem_put_le32 Unexecuted instantiation: corner_detect.c:mem_put_le32 Unexecuted instantiation: global_motion.c:mem_put_le32 Unexecuted instantiation: ransac.c:mem_put_le32 Unexecuted instantiation: enc_warped_motion.c:mem_put_le32 |
592 | | |
593 | | // bitops.h |
594 | | // These versions of get_msb() are only valid when n != 0 because all |
595 | | // of the optimized versions are undefined when n == 0: |
596 | | // https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html |
597 | | |
598 | 0 | #define svt_log2f_safe(x) get_msb((x) | 1) |
599 | 1.28M | #define svt_log2f get_msb |
600 | | |
601 | | // use GNU builtins where available. |
602 | | #if defined(__GNUC__) && ((__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || __GNUC__ >= 4) |
603 | 3.54M | static INLINE int32_t get_msb(uint32_t n) { |
604 | 3.54M | assert(n != 0); |
605 | 3.54M | return 31 - __builtin_clz(n); |
606 | 3.54M | } Unexecuted instantiation: segmentation.c:get_msb Unexecuted instantiation: cdef.c:get_msb Unexecuted instantiation: enc_handle.c:get_msb Unexecuted instantiation: enc_settings.c:get_msb Unexecuted instantiation: metadata_handle.c:get_msb Unexecuted instantiation: av1me.c:get_msb Line | Count | Source | 603 | 850k | static INLINE int32_t get_msb(uint32_t n) { | 604 | | assert(n != 0); | 605 | 850k | return 31 - __builtin_clz(n); | 606 | 850k | } |
Unexecuted instantiation: cdef_process.c:get_msb Unexecuted instantiation: common_dsp_rtcd.c:get_msb Unexecuted instantiation: common_utils.c:get_msb Unexecuted instantiation: deblocking_common.c:get_msb Unexecuted instantiation: dlf_process.c:get_msb Unexecuted instantiation: enc_cdef.c:get_msb enc_dec_process.c:get_msb Line | Count | Source | 603 | 1.49k | static INLINE int32_t get_msb(uint32_t n) { | 604 | | assert(n != 0); | 605 | 1.49k | return 31 - __builtin_clz(n); | 606 | 1.49k | } |
Unexecuted instantiation: enc_dec_results.c:get_msb Unexecuted instantiation: enc_dec_tasks.c:get_msb Unexecuted instantiation: enc_inter_prediction.c:get_msb Unexecuted instantiation: enc_intra_prediction.c:get_msb Unexecuted instantiation: enc_mode_config.c:get_msb Line | Count | Source | 603 | 14.8k | static INLINE int32_t get_msb(uint32_t n) { | 604 | | assert(n != 0); | 605 | 14.8k | return 31 - __builtin_clz(n); | 606 | 14.8k | } |
Line | Count | Source | 603 | 4.65k | static INLINE int32_t get_msb(uint32_t n) { | 604 | | assert(n != 0); | 605 | 4.65k | return 31 - __builtin_clz(n); | 606 | 4.65k | } |
Unexecuted instantiation: ec_results.c:get_msb Unexecuted instantiation: fft.c:get_msb Line | Count | Source | 603 | 14.6k | static INLINE int32_t get_msb(uint32_t n) { | 604 | | assert(n != 0); | 605 | 14.6k | return 31 - __builtin_clz(n); | 606 | 14.6k | } |
Unexecuted instantiation: grainSynthesis.c:get_msb Unexecuted instantiation: hash.c:get_msb Unexecuted instantiation: initial_rc_process.c:get_msb Unexecuted instantiation: initial_rc_results.c:get_msb Unexecuted instantiation: inter_prediction.c:get_msb Unexecuted instantiation: intra_prediction.c:get_msb Unexecuted instantiation: inv_transforms.c:get_msb md_rate_estimation.c:get_msb Line | Count | Source | 603 | 2.24M | static INLINE int32_t get_msb(uint32_t n) { | 604 | | assert(n != 0); | 605 | 2.24M | return 31 - __builtin_clz(n); | 606 | 2.24M | } |
Unexecuted instantiation: me_sad_calculation.c:get_msb Unexecuted instantiation: mode_decision.c:get_msb Unexecuted instantiation: md_config_process.c:get_msb Unexecuted instantiation: md_process.c:get_msb Unexecuted instantiation: motion_estimation.c:get_msb Unexecuted instantiation: me_process.c:get_msb Unexecuted instantiation: me_results.c:get_msb neighbor_arrays.c:get_msb Line | Count | Source | 603 | 227k | static INLINE int32_t get_msb(uint32_t n) { | 604 | | assert(n != 0); | 605 | 227k | return 31 - __builtin_clz(n); | 606 | 227k | } |
Unexecuted instantiation: noise_model.c:get_msb Unexecuted instantiation: packetization_process.c:get_msb Unexecuted instantiation: packetization_reorder_queue.c:get_msb Unexecuted instantiation: pic_analysis_process.c:get_msb Unexecuted instantiation: pic_analysis_results.c:get_msb Unexecuted instantiation: pic_buffer_desc.c:get_msb Unexecuted instantiation: pcs.c:get_msb Unexecuted instantiation: pd_process.c:get_msb Unexecuted instantiation: pd_reorder_queue.c:get_msb Unexecuted instantiation: pd_results.c:get_msb Unexecuted instantiation: pic_demux_results.c:get_msb Unexecuted instantiation: pic_manager_process.c:get_msb Unexecuted instantiation: pic_manager_queue.c:get_msb Unexecuted instantiation: pic_operators.c:get_msb Unexecuted instantiation: pred_structure.c:get_msb product_coding_loop.c:get_msb Line | Count | Source | 603 | 117k | static INLINE int32_t get_msb(uint32_t n) { | 604 | | assert(n != 0); | 605 | 117k | return 31 - __builtin_clz(n); | 606 | 117k | } |
Unexecuted instantiation: ac_bias.c:get_msb Unexecuted instantiation: rc_aq.c:get_msb Unexecuted instantiation: rc_process.c:get_msb Unexecuted instantiation: rc_results.c:get_msb Unexecuted instantiation: rc_rtc_cbr.c:get_msb Unexecuted instantiation: rc_tasks.c:get_msb Unexecuted instantiation: rc_vbr_cbr.c:get_msb Unexecuted instantiation: rd_cost.c:get_msb Unexecuted instantiation: reference_object.c:get_msb Unexecuted instantiation: resource_coordination_process.c:get_msb Unexecuted instantiation: resource_coordination_results.c:get_msb Unexecuted instantiation: rest_process.c:get_msb Unexecuted instantiation: restoration_pick.c:get_msb Unexecuted instantiation: segmentation_params.c:get_msb Unexecuted instantiation: sequence_control_set.c:get_msb Unexecuted instantiation: src_ops_process.c:get_msb Unexecuted instantiation: super_res.c:get_msb Unexecuted instantiation: svt_log.c:get_msb Unexecuted instantiation: svt_malloc.c:get_msb Unexecuted instantiation: svt_psnr.c:get_msb Unexecuted instantiation: svt_threads.c:get_msb Unexecuted instantiation: sys_resource_manager.c:get_msb Unexecuted instantiation: kernel_dispatch.c:get_msb Unexecuted instantiation: temporal_filtering.c:get_msb Unexecuted instantiation: transforms.c:get_msb Line | Count | Source | 603 | 73.2k | static INLINE int32_t get_msb(uint32_t n) { | 604 | | assert(n != 0); | 605 | 73.2k | return 31 - __builtin_clz(n); | 606 | 73.2k | } |
Unexecuted instantiation: vector.c:get_msb Unexecuted instantiation: blend_a64_mask_c.c:get_msb Unexecuted instantiation: cfl_c.c:get_msb Unexecuted instantiation: compute_sad_c.c:get_msb Unexecuted instantiation: encode_txb_ref_c.c:get_msb Unexecuted instantiation: filterintra_c.c:get_msb Unexecuted instantiation: inter_prediction_c.c:get_msb Unexecuted instantiation: intra_prediction_c.c:get_msb Unexecuted instantiation: pack_unpack_c.c:get_msb Unexecuted instantiation: picture_operators_c.c:get_msb Unexecuted instantiation: adaptive_mv_pred.c:get_msb Unexecuted instantiation: block_structures.c:get_msb Unexecuted instantiation: cabac_context_model.c:get_msb Unexecuted instantiation: coding_loop.c:get_msb Unexecuted instantiation: coding_unit.c:get_msb Unexecuted instantiation: coefficients.c:get_msb Unexecuted instantiation: deblocking_filter.c:get_msb Unexecuted instantiation: enc_dec_segments.c:get_msb Unexecuted instantiation: encode_context.c:get_msb Unexecuted instantiation: global_me.c:get_msb Unexecuted instantiation: global_me_cost.c:get_msb Unexecuted instantiation: me_context.c:get_msb Unexecuted instantiation: pd_queue.c:get_msb Unexecuted instantiation: rc_crf_cqp.c:get_msb Unexecuted instantiation: corner_detect.c:get_msb Unexecuted instantiation: enc_warped_motion.c:get_msb |
607 | | |
608 | 0 | #define svt_ctz(x) __builtin_ctz(x) |
609 | | #define svt_ctzll(x) __builtin_ctzll(x) |
610 | | |
611 | | #elif defined(_MSC_VER) |
612 | | #include <intrin.h> |
613 | | |
614 | | static INLINE int32_t get_msb(uint32_t n) { |
615 | | unsigned long first_set_bit; |
616 | | assert(n != 0); |
617 | | _BitScanReverse(&first_set_bit, n); |
618 | | return first_set_bit; |
619 | | } |
620 | | |
621 | | static inline int svt_ctz(unsigned long x) { |
622 | | unsigned long k; |
623 | | _BitScanForward(&k, x); |
624 | | return k; |
625 | | } |
626 | | |
627 | | static inline int svt_ctzll(unsigned __int64 x) { |
628 | | unsigned long k; |
629 | | _BitScanForward64(&k, x); |
630 | | return k; |
631 | | } |
632 | | |
633 | | #else |
634 | | // Returns (int32_t)floor(log2(n)). n must be > 0. |
635 | | /*static*/ INLINE int32_t get_msb(uint32_t n) { |
636 | | int32_t log = 0; |
637 | | uint32_t value = n; |
638 | | int32_t i; |
639 | | |
640 | | assert(n != 0); |
641 | | |
642 | | for (i = 4; i >= 0; --i) { |
643 | | const int32_t shift = (1 << i); |
644 | | const uint32_t x = value >> shift; |
645 | | if (x != 0) { |
646 | | value = x; |
647 | | log += shift; |
648 | | } |
649 | | } |
650 | | return log; |
651 | | } |
652 | | #endif |
653 | | |
654 | | // Count of set bits in x. Portable, branchless, ~12 ops; not on any hot |
655 | | // path so the C version is fine and avoids compiler-specific intrinsics. |
656 | 0 | static INLINE int svt_numbits(unsigned int x) { |
657 | 0 | x = x - ((x >> 1) & 0x55555555u); |
658 | 0 | x = (x & 0x33333333u) + ((x >> 2) & 0x33333333u); |
659 | 0 | x = (x + (x >> 4)) & 0x0F0F0F0Fu; |
660 | 0 | return (int)((x * 0x01010101u) >> 24); |
661 | 0 | } Unexecuted instantiation: enc_handle.c:svt_numbits Unexecuted instantiation: enc_settings.c:svt_numbits Unexecuted instantiation: metadata_handle.c:svt_numbits Unexecuted instantiation: aom_dsp_rtcd.c:svt_numbits Unexecuted instantiation: av1me.c:svt_numbits Unexecuted instantiation: bitstream_unit.c:svt_numbits Unexecuted instantiation: cdef_process.c:svt_numbits Unexecuted instantiation: common_dsp_rtcd.c:svt_numbits Unexecuted instantiation: common_utils.c:svt_numbits Unexecuted instantiation: convolve.c:svt_numbits Unexecuted instantiation: corner_match.c:svt_numbits Unexecuted instantiation: deblocking_common.c:svt_numbits Unexecuted instantiation: dlf_process.c:svt_numbits Unexecuted instantiation: enc_cdef.c:svt_numbits Unexecuted instantiation: enc_dec_process.c:svt_numbits Unexecuted instantiation: enc_dec_results.c:svt_numbits Unexecuted instantiation: enc_dec_tasks.c:svt_numbits Unexecuted instantiation: enc_inter_prediction.c:svt_numbits Unexecuted instantiation: enc_intra_prediction.c:svt_numbits Unexecuted instantiation: enc_mode_config.c:svt_numbits Unexecuted instantiation: entropy_coding.c:svt_numbits Unexecuted instantiation: ec_process.c:svt_numbits Unexecuted instantiation: ec_results.c:svt_numbits Unexecuted instantiation: fft.c:svt_numbits Unexecuted instantiation: full_loop.c:svt_numbits Unexecuted instantiation: grainSynthesis.c:svt_numbits Unexecuted instantiation: hash.c:svt_numbits Unexecuted instantiation: hash_motion.c:svt_numbits Unexecuted instantiation: initial_rc_process.c:svt_numbits Unexecuted instantiation: initial_rc_results.c:svt_numbits Unexecuted instantiation: inter_prediction.c:svt_numbits Unexecuted instantiation: intra_prediction.c:svt_numbits Unexecuted instantiation: inv_transforms.c:svt_numbits Unexecuted instantiation: md_rate_estimation.c:svt_numbits Unexecuted instantiation: me_sad_calculation.c:svt_numbits Unexecuted instantiation: mode_decision.c:svt_numbits Unexecuted instantiation: md_config_process.c:svt_numbits Unexecuted instantiation: md_process.c:svt_numbits Unexecuted instantiation: motion_estimation.c:svt_numbits Unexecuted instantiation: me_process.c:svt_numbits Unexecuted instantiation: me_results.c:svt_numbits Unexecuted instantiation: neighbor_arrays.c:svt_numbits Unexecuted instantiation: noise_model.c:svt_numbits Unexecuted instantiation: noise_util.c:svt_numbits Unexecuted instantiation: packetization_process.c:svt_numbits Unexecuted instantiation: packetization_reorder_queue.c:svt_numbits Unexecuted instantiation: palette.c:svt_numbits Unexecuted instantiation: pic_analysis_process.c:svt_numbits Unexecuted instantiation: pic_analysis_results.c:svt_numbits Unexecuted instantiation: pic_buffer_desc.c:svt_numbits Unexecuted instantiation: pcs.c:svt_numbits Unexecuted instantiation: pd_process.c:svt_numbits Unexecuted instantiation: pd_reorder_queue.c:svt_numbits Unexecuted instantiation: pd_results.c:svt_numbits Unexecuted instantiation: pic_demux_results.c:svt_numbits Unexecuted instantiation: pic_manager_process.c:svt_numbits Unexecuted instantiation: pic_manager_queue.c:svt_numbits Unexecuted instantiation: pic_operators.c:svt_numbits Unexecuted instantiation: pred_structure.c:svt_numbits Unexecuted instantiation: product_coding_loop.c:svt_numbits Unexecuted instantiation: ac_bias.c:svt_numbits Unexecuted instantiation: rc_aq.c:svt_numbits Unexecuted instantiation: rc_process.c:svt_numbits Unexecuted instantiation: rc_results.c:svt_numbits Unexecuted instantiation: rc_rtc_cbr.c:svt_numbits Unexecuted instantiation: rc_tasks.c:svt_numbits Unexecuted instantiation: rc_vbr_cbr.c:svt_numbits Unexecuted instantiation: rd_cost.c:svt_numbits Unexecuted instantiation: reference_object.c:svt_numbits Unexecuted instantiation: resize.c:svt_numbits Unexecuted instantiation: resource_coordination_process.c:svt_numbits Unexecuted instantiation: resource_coordination_results.c:svt_numbits Unexecuted instantiation: rest_process.c:svt_numbits Unexecuted instantiation: restoration.c:svt_numbits Unexecuted instantiation: restoration_pick.c:svt_numbits Unexecuted instantiation: segmentation.c:svt_numbits Unexecuted instantiation: segmentation_params.c:svt_numbits Unexecuted instantiation: sequence_control_set.c:svt_numbits Unexecuted instantiation: src_ops_process.c:svt_numbits Unexecuted instantiation: super_res.c:svt_numbits Unexecuted instantiation: svt_log.c:svt_numbits Unexecuted instantiation: svt_malloc.c:svt_numbits Unexecuted instantiation: svt_psnr.c:svt_numbits Unexecuted instantiation: svt_threads.c:svt_numbits Unexecuted instantiation: sys_resource_manager.c:svt_numbits Unexecuted instantiation: kernel_dispatch.c:svt_numbits Unexecuted instantiation: temporal_filtering.c:svt_numbits Unexecuted instantiation: transforms.c:svt_numbits Unexecuted instantiation: utility.c:svt_numbits Unexecuted instantiation: vector.c:svt_numbits Unexecuted instantiation: warped_motion.c:svt_numbits Unexecuted instantiation: blend_a64_mask_c.c:svt_numbits Unexecuted instantiation: cfl_c.c:svt_numbits Unexecuted instantiation: compute_sad_c.c:svt_numbits Unexecuted instantiation: encode_txb_ref_c.c:svt_numbits Unexecuted instantiation: filterintra_c.c:svt_numbits Unexecuted instantiation: inter_prediction_c.c:svt_numbits Unexecuted instantiation: intra_prediction_c.c:svt_numbits Unexecuted instantiation: pack_unpack_c.c:svt_numbits Unexecuted instantiation: picture_operators_c.c:svt_numbits Unexecuted instantiation: sad_av1.c:svt_numbits Unexecuted instantiation: variance.c:svt_numbits Unexecuted instantiation: adaptive_mv_pred.c:svt_numbits Unexecuted instantiation: blend_a64_mask.c:svt_numbits Unexecuted instantiation: block_structures.c:svt_numbits Unexecuted instantiation: cabac_context_model.c:svt_numbits Unexecuted instantiation: cdef.c:svt_numbits Unexecuted instantiation: coding_loop.c:svt_numbits Unexecuted instantiation: coding_unit.c:svt_numbits Unexecuted instantiation: coefficients.c:svt_numbits Unexecuted instantiation: deblocking_filter.c:svt_numbits Unexecuted instantiation: enc_dec_segments.c:svt_numbits Unexecuted instantiation: encode_context.c:svt_numbits Unexecuted instantiation: firstpass.c:svt_numbits Unexecuted instantiation: global_me.c:svt_numbits Unexecuted instantiation: global_me_cost.c:svt_numbits Unexecuted instantiation: mcomp.c:svt_numbits Unexecuted instantiation: me_context.c:svt_numbits Unexecuted instantiation: pass2_strategy.c:svt_numbits Unexecuted instantiation: pd_queue.c:svt_numbits Unexecuted instantiation: rc_crf_cqp.c:svt_numbits Unexecuted instantiation: corner_detect.c:svt_numbits Unexecuted instantiation: global_motion.c:svt_numbits Unexecuted instantiation: ransac.c:svt_numbits Unexecuted instantiation: enc_warped_motion.c:svt_numbits |
662 | | |
663 | | /* clang-format on */ |
664 | | |
665 | | typedef uint16_t ConvBufType; |
666 | | |
667 | | typedef struct ConvolveParams { |
668 | | int32_t ref; |
669 | | int32_t do_average; |
670 | | ConvBufType* dst; |
671 | | int32_t dst_stride; |
672 | | int32_t round_0; |
673 | | int32_t round_1; |
674 | | int32_t plane; |
675 | | int32_t is_compound; |
676 | | int32_t use_jnt_comp_avg; |
677 | | int32_t fwd_offset; |
678 | | int32_t bck_offset; |
679 | | int32_t use_dist_wtd_comp_avg; |
680 | | } ConvolveParams; |
681 | | |
682 | | // texture component type |
683 | | typedef enum ATTRIBUTE_PACKED { |
684 | | COMPONENT_LUMA = 0, // luma |
685 | | COMPONENT_CHROMA = 1, // chroma (Cb+Cr) |
686 | | COMPONENT_CHROMA_CB = 2, // chroma Cb |
687 | | COMPONENT_CHROMA_CR = 3, // chroma Cr |
688 | | COMPONENT_ALL = 4, // Y+Cb+Cr |
689 | | COMPONENT_NONE = 15 |
690 | | } COMPONENT_TYPE; |
691 | | |
692 | | typedef enum ATTRIBUTE_PACKED { PLANE_Y, PLANE_U, PLANE_V, MAX_PLANES } Plane; |
693 | | |
694 | | typedef enum ATTRIBUTE_PACKED { PLANE_TYPE_Y, PLANE_TYPE_UV, PLANE_TYPES } PlaneType; |
695 | | |
696 | 30.6M | static INLINE int32_t clamp(int32_t value, int32_t low, int32_t high) { |
697 | 30.6M | return value < low ? low : (value > high ? high : value); |
698 | 30.6M | } Unexecuted instantiation: cdef.c:clamp Line | Count | Source | 696 | 6.46k | static INLINE int32_t clamp(int32_t value, int32_t low, int32_t high) { | 697 | 6.46k | return value < low ? low : (value > high ? high : value); | 698 | 6.46k | } |
Unexecuted instantiation: enc_settings.c:clamp Unexecuted instantiation: metadata_handle.c:clamp Unexecuted instantiation: av1me.c:clamp Unexecuted instantiation: bitstream_unit.c:clamp Unexecuted instantiation: cdef_process.c:clamp Unexecuted instantiation: common_dsp_rtcd.c:clamp Unexecuted instantiation: common_utils.c:clamp Unexecuted instantiation: deblocking_common.c:clamp Unexecuted instantiation: dlf_process.c:clamp Line | Count | Source | 696 | 1.02k | static INLINE int32_t clamp(int32_t value, int32_t low, int32_t high) { | 697 | 1.02k | return value < low ? low : (value > high ? high : value); | 698 | 1.02k | } |
Unexecuted instantiation: enc_dec_process.c:clamp Unexecuted instantiation: enc_dec_results.c:clamp Unexecuted instantiation: enc_dec_tasks.c:clamp Unexecuted instantiation: enc_inter_prediction.c:clamp Unexecuted instantiation: enc_intra_prediction.c:clamp Unexecuted instantiation: enc_mode_config.c:clamp Unexecuted instantiation: entropy_coding.c:clamp Unexecuted instantiation: ec_process.c:clamp Unexecuted instantiation: ec_results.c:clamp Line | Count | Source | 696 | 10.4k | static INLINE int32_t clamp(int32_t value, int32_t low, int32_t high) { | 697 | 10.4k | return value < low ? low : (value > high ? high : value); | 698 | 10.4k | } |
Unexecuted instantiation: grainSynthesis.c:clamp Unexecuted instantiation: hash.c:clamp Unexecuted instantiation: initial_rc_process.c:clamp Unexecuted instantiation: initial_rc_results.c:clamp Unexecuted instantiation: inter_prediction.c:clamp Unexecuted instantiation: intra_prediction.c:clamp Line | Count | Source | 696 | 28.3M | static INLINE int32_t clamp(int32_t value, int32_t low, int32_t high) { | 697 | 28.3M | return value < low ? low : (value > high ? high : value); | 698 | 28.3M | } |
md_rate_estimation.c:clamp Line | Count | Source | 696 | 2.24M | static INLINE int32_t clamp(int32_t value, int32_t low, int32_t high) { | 697 | 2.24M | return value < low ? low : (value > high ? high : value); | 698 | 2.24M | } |
Unexecuted instantiation: me_sad_calculation.c:clamp Unexecuted instantiation: mode_decision.c:clamp Unexecuted instantiation: md_config_process.c:clamp Unexecuted instantiation: md_process.c:clamp Unexecuted instantiation: motion_estimation.c:clamp Unexecuted instantiation: me_process.c:clamp Unexecuted instantiation: me_results.c:clamp Unexecuted instantiation: neighbor_arrays.c:clamp Unexecuted instantiation: packetization_process.c:clamp Unexecuted instantiation: packetization_reorder_queue.c:clamp Unexecuted instantiation: pic_analysis_process.c:clamp Unexecuted instantiation: pic_analysis_results.c:clamp Unexecuted instantiation: pic_buffer_desc.c:clamp Unexecuted instantiation: pcs.c:clamp Unexecuted instantiation: pd_process.c:clamp Unexecuted instantiation: pd_reorder_queue.c:clamp Unexecuted instantiation: pd_results.c:clamp Unexecuted instantiation: pic_demux_results.c:clamp Unexecuted instantiation: pic_manager_process.c:clamp Unexecuted instantiation: pic_manager_queue.c:clamp Unexecuted instantiation: pic_operators.c:clamp Unexecuted instantiation: pred_structure.c:clamp Unexecuted instantiation: product_coding_loop.c:clamp Unexecuted instantiation: ac_bias.c:clamp Unexecuted instantiation: rc_aq.c:clamp Unexecuted instantiation: rc_process.c:clamp Unexecuted instantiation: rc_results.c:clamp Unexecuted instantiation: rc_rtc_cbr.c:clamp Unexecuted instantiation: rc_tasks.c:clamp Unexecuted instantiation: rc_vbr_cbr.c:clamp Unexecuted instantiation: rd_cost.c:clamp Unexecuted instantiation: reference_object.c:clamp Unexecuted instantiation: resource_coordination_process.c:clamp Unexecuted instantiation: resource_coordination_results.c:clamp Unexecuted instantiation: rest_process.c:clamp Unexecuted instantiation: restoration_pick.c:clamp Unexecuted instantiation: segmentation_params.c:clamp Unexecuted instantiation: sequence_control_set.c:clamp Unexecuted instantiation: src_ops_process.c:clamp Unexecuted instantiation: super_res.c:clamp Unexecuted instantiation: svt_log.c:clamp Unexecuted instantiation: svt_malloc.c:clamp Unexecuted instantiation: svt_psnr.c:clamp Unexecuted instantiation: svt_threads.c:clamp Unexecuted instantiation: sys_resource_manager.c:clamp Unexecuted instantiation: kernel_dispatch.c:clamp Unexecuted instantiation: temporal_filtering.c:clamp Unexecuted instantiation: transforms.c:clamp Unexecuted instantiation: utility.c:clamp Unexecuted instantiation: vector.c:clamp Unexecuted instantiation: blend_a64_mask_c.c:clamp Unexecuted instantiation: cfl_c.c:clamp Unexecuted instantiation: compute_sad_c.c:clamp Unexecuted instantiation: encode_txb_ref_c.c:clamp Unexecuted instantiation: filterintra_c.c:clamp Unexecuted instantiation: inter_prediction_c.c:clamp Unexecuted instantiation: intra_prediction_c.c:clamp Unexecuted instantiation: pack_unpack_c.c:clamp Unexecuted instantiation: picture_operators_c.c:clamp Unexecuted instantiation: adaptive_mv_pred.c:clamp Unexecuted instantiation: block_structures.c:clamp Unexecuted instantiation: cabac_context_model.c:clamp Unexecuted instantiation: coding_loop.c:clamp Unexecuted instantiation: coding_unit.c:clamp Unexecuted instantiation: coefficients.c:clamp deblocking_filter.c:clamp Line | Count | Source | 696 | 1.02k | static INLINE int32_t clamp(int32_t value, int32_t low, int32_t high) { | 697 | 1.02k | return value < low ? low : (value > high ? high : value); | 698 | 1.02k | } |
Unexecuted instantiation: enc_dec_segments.c:clamp Unexecuted instantiation: encode_context.c:clamp Unexecuted instantiation: global_me.c:clamp Unexecuted instantiation: global_me_cost.c:clamp Unexecuted instantiation: me_context.c:clamp Unexecuted instantiation: pd_queue.c:clamp Unexecuted instantiation: rc_crf_cqp.c:clamp Unexecuted instantiation: corner_detect.c:clamp Unexecuted instantiation: enc_warped_motion.c:clamp |
699 | | |
700 | 291M | static INLINE int64_t clamp64(int64_t value, int64_t low, int64_t high) { |
701 | 291M | return value < low ? low : (value > high ? high : value); |
702 | 291M | } Unexecuted instantiation: enc_handle.c:clamp64 Unexecuted instantiation: enc_settings.c:clamp64 Unexecuted instantiation: metadata_handle.c:clamp64 Unexecuted instantiation: av1me.c:clamp64 Unexecuted instantiation: bitstream_unit.c:clamp64 Unexecuted instantiation: cdef_process.c:clamp64 Unexecuted instantiation: common_dsp_rtcd.c:clamp64 Unexecuted instantiation: common_utils.c:clamp64 Unexecuted instantiation: deblocking_common.c:clamp64 Unexecuted instantiation: dlf_process.c:clamp64 Unexecuted instantiation: enc_cdef.c:clamp64 Unexecuted instantiation: enc_dec_process.c:clamp64 Unexecuted instantiation: enc_dec_results.c:clamp64 Unexecuted instantiation: enc_dec_tasks.c:clamp64 Unexecuted instantiation: enc_inter_prediction.c:clamp64 Unexecuted instantiation: enc_intra_prediction.c:clamp64 Unexecuted instantiation: enc_mode_config.c:clamp64 Unexecuted instantiation: entropy_coding.c:clamp64 Unexecuted instantiation: ec_process.c:clamp64 Unexecuted instantiation: ec_results.c:clamp64 Line | Count | Source | 700 | 9.94k | static INLINE int64_t clamp64(int64_t value, int64_t low, int64_t high) { | 701 | 9.94k | return value < low ? low : (value > high ? high : value); | 702 | 9.94k | } |
Unexecuted instantiation: grainSynthesis.c:clamp64 Unexecuted instantiation: hash.c:clamp64 Unexecuted instantiation: initial_rc_process.c:clamp64 Unexecuted instantiation: initial_rc_results.c:clamp64 Unexecuted instantiation: inter_prediction.c:clamp64 Unexecuted instantiation: intra_prediction.c:clamp64 Line | Count | Source | 700 | 291M | static INLINE int64_t clamp64(int64_t value, int64_t low, int64_t high) { | 701 | 291M | return value < low ? low : (value > high ? high : value); | 702 | 291M | } |
Unexecuted instantiation: md_rate_estimation.c:clamp64 Unexecuted instantiation: me_sad_calculation.c:clamp64 Unexecuted instantiation: mode_decision.c:clamp64 Unexecuted instantiation: md_config_process.c:clamp64 Unexecuted instantiation: md_process.c:clamp64 Unexecuted instantiation: motion_estimation.c:clamp64 Unexecuted instantiation: me_process.c:clamp64 Unexecuted instantiation: me_results.c:clamp64 Unexecuted instantiation: neighbor_arrays.c:clamp64 Unexecuted instantiation: packetization_process.c:clamp64 Unexecuted instantiation: packetization_reorder_queue.c:clamp64 Unexecuted instantiation: pic_analysis_process.c:clamp64 Unexecuted instantiation: pic_analysis_results.c:clamp64 Unexecuted instantiation: pic_buffer_desc.c:clamp64 Unexecuted instantiation: pcs.c:clamp64 Unexecuted instantiation: pd_process.c:clamp64 Unexecuted instantiation: pd_reorder_queue.c:clamp64 Unexecuted instantiation: pd_results.c:clamp64 Unexecuted instantiation: pic_demux_results.c:clamp64 Unexecuted instantiation: pic_manager_process.c:clamp64 Unexecuted instantiation: pic_manager_queue.c:clamp64 Unexecuted instantiation: pic_operators.c:clamp64 Unexecuted instantiation: pred_structure.c:clamp64 Unexecuted instantiation: product_coding_loop.c:clamp64 Unexecuted instantiation: ac_bias.c:clamp64 Unexecuted instantiation: rc_aq.c:clamp64 Unexecuted instantiation: rc_process.c:clamp64 Unexecuted instantiation: rc_results.c:clamp64 Unexecuted instantiation: rc_rtc_cbr.c:clamp64 Unexecuted instantiation: rc_tasks.c:clamp64 Unexecuted instantiation: rc_vbr_cbr.c:clamp64 Unexecuted instantiation: rd_cost.c:clamp64 Unexecuted instantiation: reference_object.c:clamp64 Unexecuted instantiation: resource_coordination_process.c:clamp64 Unexecuted instantiation: resource_coordination_results.c:clamp64 Unexecuted instantiation: rest_process.c:clamp64 Unexecuted instantiation: restoration_pick.c:clamp64 Unexecuted instantiation: segmentation_params.c:clamp64 Unexecuted instantiation: sequence_control_set.c:clamp64 Unexecuted instantiation: src_ops_process.c:clamp64 Unexecuted instantiation: super_res.c:clamp64 Unexecuted instantiation: svt_log.c:clamp64 Unexecuted instantiation: svt_malloc.c:clamp64 Unexecuted instantiation: svt_psnr.c:clamp64 Unexecuted instantiation: svt_threads.c:clamp64 Unexecuted instantiation: sys_resource_manager.c:clamp64 Unexecuted instantiation: kernel_dispatch.c:clamp64 Unexecuted instantiation: temporal_filtering.c:clamp64 Unexecuted instantiation: transforms.c:clamp64 Unexecuted instantiation: utility.c:clamp64 Unexecuted instantiation: vector.c:clamp64 Unexecuted instantiation: blend_a64_mask_c.c:clamp64 Unexecuted instantiation: cfl_c.c:clamp64 Unexecuted instantiation: compute_sad_c.c:clamp64 Unexecuted instantiation: encode_txb_ref_c.c:clamp64 Unexecuted instantiation: filterintra_c.c:clamp64 Unexecuted instantiation: inter_prediction_c.c:clamp64 Unexecuted instantiation: intra_prediction_c.c:clamp64 Unexecuted instantiation: pack_unpack_c.c:clamp64 Unexecuted instantiation: picture_operators_c.c:clamp64 Unexecuted instantiation: adaptive_mv_pred.c:clamp64 Unexecuted instantiation: block_structures.c:clamp64 Unexecuted instantiation: cabac_context_model.c:clamp64 Unexecuted instantiation: coding_loop.c:clamp64 Unexecuted instantiation: coding_unit.c:clamp64 Unexecuted instantiation: coefficients.c:clamp64 Unexecuted instantiation: deblocking_filter.c:clamp64 Unexecuted instantiation: enc_dec_segments.c:clamp64 Unexecuted instantiation: encode_context.c:clamp64 Unexecuted instantiation: global_me.c:clamp64 Unexecuted instantiation: global_me_cost.c:clamp64 Unexecuted instantiation: me_context.c:clamp64 Unexecuted instantiation: pd_queue.c:clamp64 Unexecuted instantiation: rc_crf_cqp.c:clamp64 Unexecuted instantiation: corner_detect.c:clamp64 Unexecuted instantiation: enc_warped_motion.c:clamp64 |
703 | | |
704 | | // from aom aom_dsp_common.h |
705 | 0 | static INLINE double fclamp(double value, double low, double high) { |
706 | 0 | return value < low ? low : (value > high ? high : value); |
707 | 0 | } Unexecuted instantiation: enc_handle.c:fclamp Unexecuted instantiation: enc_settings.c:fclamp Unexecuted instantiation: metadata_handle.c:fclamp Unexecuted instantiation: av1me.c:fclamp Unexecuted instantiation: bitstream_unit.c:fclamp Unexecuted instantiation: cdef_process.c:fclamp Unexecuted instantiation: common_dsp_rtcd.c:fclamp Unexecuted instantiation: common_utils.c:fclamp Unexecuted instantiation: deblocking_common.c:fclamp Unexecuted instantiation: dlf_process.c:fclamp Unexecuted instantiation: enc_cdef.c:fclamp Unexecuted instantiation: enc_dec_process.c:fclamp Unexecuted instantiation: enc_dec_results.c:fclamp Unexecuted instantiation: enc_dec_tasks.c:fclamp Unexecuted instantiation: enc_inter_prediction.c:fclamp Unexecuted instantiation: enc_intra_prediction.c:fclamp Unexecuted instantiation: enc_mode_config.c:fclamp Unexecuted instantiation: entropy_coding.c:fclamp Unexecuted instantiation: ec_process.c:fclamp Unexecuted instantiation: ec_results.c:fclamp Unexecuted instantiation: full_loop.c:fclamp Unexecuted instantiation: grainSynthesis.c:fclamp Unexecuted instantiation: hash.c:fclamp Unexecuted instantiation: initial_rc_process.c:fclamp Unexecuted instantiation: initial_rc_results.c:fclamp Unexecuted instantiation: inter_prediction.c:fclamp Unexecuted instantiation: intra_prediction.c:fclamp Unexecuted instantiation: inv_transforms.c:fclamp Unexecuted instantiation: md_rate_estimation.c:fclamp Unexecuted instantiation: me_sad_calculation.c:fclamp Unexecuted instantiation: mode_decision.c:fclamp Unexecuted instantiation: md_config_process.c:fclamp Unexecuted instantiation: md_process.c:fclamp Unexecuted instantiation: motion_estimation.c:fclamp Unexecuted instantiation: me_process.c:fclamp Unexecuted instantiation: me_results.c:fclamp Unexecuted instantiation: neighbor_arrays.c:fclamp Unexecuted instantiation: packetization_process.c:fclamp Unexecuted instantiation: packetization_reorder_queue.c:fclamp Unexecuted instantiation: pic_analysis_process.c:fclamp Unexecuted instantiation: pic_analysis_results.c:fclamp Unexecuted instantiation: pic_buffer_desc.c:fclamp Unexecuted instantiation: pcs.c:fclamp Unexecuted instantiation: pd_process.c:fclamp Unexecuted instantiation: pd_reorder_queue.c:fclamp Unexecuted instantiation: pd_results.c:fclamp Unexecuted instantiation: pic_demux_results.c:fclamp Unexecuted instantiation: pic_manager_process.c:fclamp Unexecuted instantiation: pic_manager_queue.c:fclamp Unexecuted instantiation: pic_operators.c:fclamp Unexecuted instantiation: pred_structure.c:fclamp Unexecuted instantiation: product_coding_loop.c:fclamp Unexecuted instantiation: ac_bias.c:fclamp Unexecuted instantiation: rc_aq.c:fclamp Unexecuted instantiation: rc_process.c:fclamp Unexecuted instantiation: rc_results.c:fclamp Unexecuted instantiation: rc_rtc_cbr.c:fclamp Unexecuted instantiation: rc_tasks.c:fclamp Unexecuted instantiation: rc_vbr_cbr.c:fclamp Unexecuted instantiation: rd_cost.c:fclamp Unexecuted instantiation: reference_object.c:fclamp Unexecuted instantiation: resource_coordination_process.c:fclamp Unexecuted instantiation: resource_coordination_results.c:fclamp Unexecuted instantiation: rest_process.c:fclamp Unexecuted instantiation: restoration_pick.c:fclamp Unexecuted instantiation: segmentation_params.c:fclamp Unexecuted instantiation: sequence_control_set.c:fclamp Unexecuted instantiation: src_ops_process.c:fclamp Unexecuted instantiation: super_res.c:fclamp Unexecuted instantiation: svt_log.c:fclamp Unexecuted instantiation: svt_malloc.c:fclamp Unexecuted instantiation: svt_psnr.c:fclamp Unexecuted instantiation: svt_threads.c:fclamp Unexecuted instantiation: sys_resource_manager.c:fclamp Unexecuted instantiation: kernel_dispatch.c:fclamp Unexecuted instantiation: temporal_filtering.c:fclamp Unexecuted instantiation: transforms.c:fclamp Unexecuted instantiation: utility.c:fclamp Unexecuted instantiation: vector.c:fclamp Unexecuted instantiation: blend_a64_mask_c.c:fclamp Unexecuted instantiation: cfl_c.c:fclamp Unexecuted instantiation: compute_sad_c.c:fclamp Unexecuted instantiation: encode_txb_ref_c.c:fclamp Unexecuted instantiation: filterintra_c.c:fclamp Unexecuted instantiation: inter_prediction_c.c:fclamp Unexecuted instantiation: intra_prediction_c.c:fclamp Unexecuted instantiation: pack_unpack_c.c:fclamp Unexecuted instantiation: picture_operators_c.c:fclamp Unexecuted instantiation: adaptive_mv_pred.c:fclamp Unexecuted instantiation: block_structures.c:fclamp Unexecuted instantiation: cabac_context_model.c:fclamp Unexecuted instantiation: coding_loop.c:fclamp Unexecuted instantiation: coding_unit.c:fclamp Unexecuted instantiation: coefficients.c:fclamp Unexecuted instantiation: deblocking_filter.c:fclamp Unexecuted instantiation: enc_dec_segments.c:fclamp Unexecuted instantiation: encode_context.c:fclamp Unexecuted instantiation: global_me.c:fclamp Unexecuted instantiation: global_me_cost.c:fclamp Unexecuted instantiation: me_context.c:fclamp Unexecuted instantiation: pd_queue.c:fclamp Unexecuted instantiation: rc_crf_cqp.c:fclamp Unexecuted instantiation: corner_detect.c:fclamp Unexecuted instantiation: enc_warped_motion.c:fclamp |
708 | | |
709 | 0 | static INLINE uint8_t clip_pixel(int32_t val) { |
710 | 0 | return (uint8_t)((val > 255) ? 255 : (val < 0) ? 0 : val); |
711 | 0 | } Unexecuted instantiation: enc_handle.c:clip_pixel Unexecuted instantiation: enc_settings.c:clip_pixel Unexecuted instantiation: metadata_handle.c:clip_pixel Unexecuted instantiation: av1me.c:clip_pixel Unexecuted instantiation: bitstream_unit.c:clip_pixel Unexecuted instantiation: cdef_process.c:clip_pixel Unexecuted instantiation: common_dsp_rtcd.c:clip_pixel Unexecuted instantiation: common_utils.c:clip_pixel Unexecuted instantiation: deblocking_common.c:clip_pixel Unexecuted instantiation: dlf_process.c:clip_pixel Unexecuted instantiation: enc_cdef.c:clip_pixel Unexecuted instantiation: enc_dec_process.c:clip_pixel Unexecuted instantiation: enc_dec_results.c:clip_pixel Unexecuted instantiation: enc_dec_tasks.c:clip_pixel Unexecuted instantiation: enc_inter_prediction.c:clip_pixel Unexecuted instantiation: enc_intra_prediction.c:clip_pixel Unexecuted instantiation: enc_mode_config.c:clip_pixel Unexecuted instantiation: entropy_coding.c:clip_pixel Unexecuted instantiation: ec_process.c:clip_pixel Unexecuted instantiation: ec_results.c:clip_pixel Unexecuted instantiation: full_loop.c:clip_pixel Unexecuted instantiation: grainSynthesis.c:clip_pixel Unexecuted instantiation: hash.c:clip_pixel Unexecuted instantiation: initial_rc_process.c:clip_pixel Unexecuted instantiation: initial_rc_results.c:clip_pixel Unexecuted instantiation: inter_prediction.c:clip_pixel Unexecuted instantiation: intra_prediction.c:clip_pixel Unexecuted instantiation: inv_transforms.c:clip_pixel Unexecuted instantiation: md_rate_estimation.c:clip_pixel Unexecuted instantiation: me_sad_calculation.c:clip_pixel Unexecuted instantiation: mode_decision.c:clip_pixel Unexecuted instantiation: md_config_process.c:clip_pixel Unexecuted instantiation: md_process.c:clip_pixel Unexecuted instantiation: motion_estimation.c:clip_pixel Unexecuted instantiation: me_process.c:clip_pixel Unexecuted instantiation: me_results.c:clip_pixel Unexecuted instantiation: neighbor_arrays.c:clip_pixel Unexecuted instantiation: packetization_process.c:clip_pixel Unexecuted instantiation: packetization_reorder_queue.c:clip_pixel Unexecuted instantiation: pic_analysis_process.c:clip_pixel Unexecuted instantiation: pic_analysis_results.c:clip_pixel Unexecuted instantiation: pic_buffer_desc.c:clip_pixel Unexecuted instantiation: pcs.c:clip_pixel Unexecuted instantiation: pd_process.c:clip_pixel Unexecuted instantiation: pd_reorder_queue.c:clip_pixel Unexecuted instantiation: pd_results.c:clip_pixel Unexecuted instantiation: pic_demux_results.c:clip_pixel Unexecuted instantiation: pic_manager_process.c:clip_pixel Unexecuted instantiation: pic_manager_queue.c:clip_pixel Unexecuted instantiation: pic_operators.c:clip_pixel Unexecuted instantiation: pred_structure.c:clip_pixel Unexecuted instantiation: product_coding_loop.c:clip_pixel Unexecuted instantiation: ac_bias.c:clip_pixel Unexecuted instantiation: rc_aq.c:clip_pixel Unexecuted instantiation: rc_process.c:clip_pixel Unexecuted instantiation: rc_results.c:clip_pixel Unexecuted instantiation: rc_rtc_cbr.c:clip_pixel Unexecuted instantiation: rc_tasks.c:clip_pixel Unexecuted instantiation: rc_vbr_cbr.c:clip_pixel Unexecuted instantiation: rd_cost.c:clip_pixel Unexecuted instantiation: reference_object.c:clip_pixel Unexecuted instantiation: resource_coordination_process.c:clip_pixel Unexecuted instantiation: resource_coordination_results.c:clip_pixel Unexecuted instantiation: rest_process.c:clip_pixel Unexecuted instantiation: restoration_pick.c:clip_pixel Unexecuted instantiation: segmentation_params.c:clip_pixel Unexecuted instantiation: sequence_control_set.c:clip_pixel Unexecuted instantiation: src_ops_process.c:clip_pixel Unexecuted instantiation: super_res.c:clip_pixel Unexecuted instantiation: svt_log.c:clip_pixel Unexecuted instantiation: svt_malloc.c:clip_pixel Unexecuted instantiation: svt_psnr.c:clip_pixel Unexecuted instantiation: svt_threads.c:clip_pixel Unexecuted instantiation: sys_resource_manager.c:clip_pixel Unexecuted instantiation: kernel_dispatch.c:clip_pixel Unexecuted instantiation: temporal_filtering.c:clip_pixel Unexecuted instantiation: transforms.c:clip_pixel Unexecuted instantiation: utility.c:clip_pixel Unexecuted instantiation: vector.c:clip_pixel Unexecuted instantiation: blend_a64_mask_c.c:clip_pixel Unexecuted instantiation: cfl_c.c:clip_pixel Unexecuted instantiation: compute_sad_c.c:clip_pixel Unexecuted instantiation: encode_txb_ref_c.c:clip_pixel Unexecuted instantiation: filterintra_c.c:clip_pixel Unexecuted instantiation: inter_prediction_c.c:clip_pixel Unexecuted instantiation: intra_prediction_c.c:clip_pixel Unexecuted instantiation: pack_unpack_c.c:clip_pixel Unexecuted instantiation: picture_operators_c.c:clip_pixel Unexecuted instantiation: adaptive_mv_pred.c:clip_pixel Unexecuted instantiation: block_structures.c:clip_pixel Unexecuted instantiation: cabac_context_model.c:clip_pixel Unexecuted instantiation: coding_loop.c:clip_pixel Unexecuted instantiation: coding_unit.c:clip_pixel Unexecuted instantiation: coefficients.c:clip_pixel Unexecuted instantiation: deblocking_filter.c:clip_pixel Unexecuted instantiation: enc_dec_segments.c:clip_pixel Unexecuted instantiation: encode_context.c:clip_pixel Unexecuted instantiation: global_me.c:clip_pixel Unexecuted instantiation: global_me_cost.c:clip_pixel Unexecuted instantiation: me_context.c:clip_pixel Unexecuted instantiation: pd_queue.c:clip_pixel Unexecuted instantiation: rc_crf_cqp.c:clip_pixel Unexecuted instantiation: corner_detect.c:clip_pixel Unexecuted instantiation: enc_warped_motion.c:clip_pixel |
712 | | |
713 | 27.5M | static INLINE uint16_t clip_pixel_highbd(int32_t val, int32_t bd) { |
714 | 27.5M | switch (bd) { |
715 | 27.5M | case 8: |
716 | 27.5M | default: |
717 | 27.5M | return (uint16_t)clamp(val, 0, 255); |
718 | 0 | case 10: |
719 | 0 | return (uint16_t)clamp(val, 0, 1023); |
720 | 0 | case 12: |
721 | 0 | return (uint16_t)clamp(val, 0, 4095); |
722 | 27.5M | } |
723 | 27.5M | } Unexecuted instantiation: enc_handle.c:clip_pixel_highbd Unexecuted instantiation: enc_settings.c:clip_pixel_highbd Unexecuted instantiation: metadata_handle.c:clip_pixel_highbd Unexecuted instantiation: av1me.c:clip_pixel_highbd Unexecuted instantiation: bitstream_unit.c:clip_pixel_highbd Unexecuted instantiation: cdef_process.c:clip_pixel_highbd Unexecuted instantiation: common_dsp_rtcd.c:clip_pixel_highbd Unexecuted instantiation: common_utils.c:clip_pixel_highbd Unexecuted instantiation: deblocking_common.c:clip_pixel_highbd Unexecuted instantiation: dlf_process.c:clip_pixel_highbd Unexecuted instantiation: enc_cdef.c:clip_pixel_highbd Unexecuted instantiation: enc_dec_process.c:clip_pixel_highbd Unexecuted instantiation: enc_dec_results.c:clip_pixel_highbd Unexecuted instantiation: enc_dec_tasks.c:clip_pixel_highbd Unexecuted instantiation: enc_inter_prediction.c:clip_pixel_highbd Unexecuted instantiation: enc_intra_prediction.c:clip_pixel_highbd Unexecuted instantiation: enc_mode_config.c:clip_pixel_highbd Unexecuted instantiation: entropy_coding.c:clip_pixel_highbd Unexecuted instantiation: ec_process.c:clip_pixel_highbd Unexecuted instantiation: ec_results.c:clip_pixel_highbd Unexecuted instantiation: full_loop.c:clip_pixel_highbd Unexecuted instantiation: grainSynthesis.c:clip_pixel_highbd Unexecuted instantiation: hash.c:clip_pixel_highbd Unexecuted instantiation: initial_rc_process.c:clip_pixel_highbd Unexecuted instantiation: initial_rc_results.c:clip_pixel_highbd Unexecuted instantiation: inter_prediction.c:clip_pixel_highbd Unexecuted instantiation: intra_prediction.c:clip_pixel_highbd inv_transforms.c:clip_pixel_highbd Line | Count | Source | 713 | 27.5M | static INLINE uint16_t clip_pixel_highbd(int32_t val, int32_t bd) { | 714 | 27.5M | switch (bd) { | 715 | 27.5M | case 8: | 716 | 27.5M | default: | 717 | 27.5M | return (uint16_t)clamp(val, 0, 255); | 718 | 0 | case 10: | 719 | 0 | return (uint16_t)clamp(val, 0, 1023); | 720 | 0 | case 12: | 721 | 0 | return (uint16_t)clamp(val, 0, 4095); | 722 | 27.5M | } | 723 | 27.5M | } |
Unexecuted instantiation: md_rate_estimation.c:clip_pixel_highbd Unexecuted instantiation: me_sad_calculation.c:clip_pixel_highbd Unexecuted instantiation: mode_decision.c:clip_pixel_highbd Unexecuted instantiation: md_config_process.c:clip_pixel_highbd Unexecuted instantiation: md_process.c:clip_pixel_highbd Unexecuted instantiation: motion_estimation.c:clip_pixel_highbd Unexecuted instantiation: me_process.c:clip_pixel_highbd Unexecuted instantiation: me_results.c:clip_pixel_highbd Unexecuted instantiation: neighbor_arrays.c:clip_pixel_highbd Unexecuted instantiation: packetization_process.c:clip_pixel_highbd Unexecuted instantiation: packetization_reorder_queue.c:clip_pixel_highbd Unexecuted instantiation: pic_analysis_process.c:clip_pixel_highbd Unexecuted instantiation: pic_analysis_results.c:clip_pixel_highbd Unexecuted instantiation: pic_buffer_desc.c:clip_pixel_highbd Unexecuted instantiation: pcs.c:clip_pixel_highbd Unexecuted instantiation: pd_process.c:clip_pixel_highbd Unexecuted instantiation: pd_reorder_queue.c:clip_pixel_highbd Unexecuted instantiation: pd_results.c:clip_pixel_highbd Unexecuted instantiation: pic_demux_results.c:clip_pixel_highbd Unexecuted instantiation: pic_manager_process.c:clip_pixel_highbd Unexecuted instantiation: pic_manager_queue.c:clip_pixel_highbd Unexecuted instantiation: pic_operators.c:clip_pixel_highbd Unexecuted instantiation: pred_structure.c:clip_pixel_highbd Unexecuted instantiation: product_coding_loop.c:clip_pixel_highbd Unexecuted instantiation: ac_bias.c:clip_pixel_highbd Unexecuted instantiation: rc_aq.c:clip_pixel_highbd Unexecuted instantiation: rc_process.c:clip_pixel_highbd Unexecuted instantiation: rc_results.c:clip_pixel_highbd Unexecuted instantiation: rc_rtc_cbr.c:clip_pixel_highbd Unexecuted instantiation: rc_tasks.c:clip_pixel_highbd Unexecuted instantiation: rc_vbr_cbr.c:clip_pixel_highbd Unexecuted instantiation: rd_cost.c:clip_pixel_highbd Unexecuted instantiation: reference_object.c:clip_pixel_highbd Unexecuted instantiation: resource_coordination_process.c:clip_pixel_highbd Unexecuted instantiation: resource_coordination_results.c:clip_pixel_highbd Unexecuted instantiation: rest_process.c:clip_pixel_highbd Unexecuted instantiation: restoration_pick.c:clip_pixel_highbd Unexecuted instantiation: segmentation_params.c:clip_pixel_highbd Unexecuted instantiation: sequence_control_set.c:clip_pixel_highbd Unexecuted instantiation: src_ops_process.c:clip_pixel_highbd Unexecuted instantiation: super_res.c:clip_pixel_highbd Unexecuted instantiation: svt_log.c:clip_pixel_highbd Unexecuted instantiation: svt_malloc.c:clip_pixel_highbd Unexecuted instantiation: svt_psnr.c:clip_pixel_highbd Unexecuted instantiation: svt_threads.c:clip_pixel_highbd Unexecuted instantiation: sys_resource_manager.c:clip_pixel_highbd Unexecuted instantiation: kernel_dispatch.c:clip_pixel_highbd Unexecuted instantiation: temporal_filtering.c:clip_pixel_highbd Unexecuted instantiation: transforms.c:clip_pixel_highbd Unexecuted instantiation: utility.c:clip_pixel_highbd Unexecuted instantiation: vector.c:clip_pixel_highbd Unexecuted instantiation: blend_a64_mask_c.c:clip_pixel_highbd Unexecuted instantiation: cfl_c.c:clip_pixel_highbd Unexecuted instantiation: compute_sad_c.c:clip_pixel_highbd Unexecuted instantiation: encode_txb_ref_c.c:clip_pixel_highbd Unexecuted instantiation: filterintra_c.c:clip_pixel_highbd Unexecuted instantiation: inter_prediction_c.c:clip_pixel_highbd Unexecuted instantiation: intra_prediction_c.c:clip_pixel_highbd Unexecuted instantiation: pack_unpack_c.c:clip_pixel_highbd Unexecuted instantiation: picture_operators_c.c:clip_pixel_highbd Unexecuted instantiation: adaptive_mv_pred.c:clip_pixel_highbd Unexecuted instantiation: block_structures.c:clip_pixel_highbd Unexecuted instantiation: cabac_context_model.c:clip_pixel_highbd Unexecuted instantiation: coding_loop.c:clip_pixel_highbd Unexecuted instantiation: coding_unit.c:clip_pixel_highbd Unexecuted instantiation: coefficients.c:clip_pixel_highbd Unexecuted instantiation: deblocking_filter.c:clip_pixel_highbd Unexecuted instantiation: enc_dec_segments.c:clip_pixel_highbd Unexecuted instantiation: encode_context.c:clip_pixel_highbd Unexecuted instantiation: global_me.c:clip_pixel_highbd Unexecuted instantiation: global_me_cost.c:clip_pixel_highbd Unexecuted instantiation: me_context.c:clip_pixel_highbd Unexecuted instantiation: pd_queue.c:clip_pixel_highbd Unexecuted instantiation: rc_crf_cqp.c:clip_pixel_highbd Unexecuted instantiation: corner_detect.c:clip_pixel_highbd Unexecuted instantiation: enc_warped_motion.c:clip_pixel_highbd |
724 | | |
725 | 0 | static INLINE unsigned int negative_to_zero(int value) { |
726 | 0 | return (value < 0) ? 0 : value; |
727 | 0 | } Unexecuted instantiation: enc_handle.c:negative_to_zero Unexecuted instantiation: enc_settings.c:negative_to_zero Unexecuted instantiation: metadata_handle.c:negative_to_zero Unexecuted instantiation: av1me.c:negative_to_zero Unexecuted instantiation: bitstream_unit.c:negative_to_zero Unexecuted instantiation: cdef_process.c:negative_to_zero Unexecuted instantiation: common_dsp_rtcd.c:negative_to_zero Unexecuted instantiation: common_utils.c:negative_to_zero Unexecuted instantiation: deblocking_common.c:negative_to_zero Unexecuted instantiation: dlf_process.c:negative_to_zero Unexecuted instantiation: enc_cdef.c:negative_to_zero Unexecuted instantiation: enc_dec_process.c:negative_to_zero Unexecuted instantiation: enc_dec_results.c:negative_to_zero Unexecuted instantiation: enc_dec_tasks.c:negative_to_zero Unexecuted instantiation: enc_inter_prediction.c:negative_to_zero Unexecuted instantiation: enc_intra_prediction.c:negative_to_zero Unexecuted instantiation: enc_mode_config.c:negative_to_zero Unexecuted instantiation: entropy_coding.c:negative_to_zero Unexecuted instantiation: ec_process.c:negative_to_zero Unexecuted instantiation: ec_results.c:negative_to_zero Unexecuted instantiation: full_loop.c:negative_to_zero Unexecuted instantiation: grainSynthesis.c:negative_to_zero Unexecuted instantiation: hash.c:negative_to_zero Unexecuted instantiation: initial_rc_process.c:negative_to_zero Unexecuted instantiation: initial_rc_results.c:negative_to_zero Unexecuted instantiation: inter_prediction.c:negative_to_zero Unexecuted instantiation: intra_prediction.c:negative_to_zero Unexecuted instantiation: inv_transforms.c:negative_to_zero Unexecuted instantiation: md_rate_estimation.c:negative_to_zero Unexecuted instantiation: me_sad_calculation.c:negative_to_zero Unexecuted instantiation: mode_decision.c:negative_to_zero Unexecuted instantiation: md_config_process.c:negative_to_zero Unexecuted instantiation: md_process.c:negative_to_zero Unexecuted instantiation: motion_estimation.c:negative_to_zero Unexecuted instantiation: me_process.c:negative_to_zero Unexecuted instantiation: me_results.c:negative_to_zero Unexecuted instantiation: neighbor_arrays.c:negative_to_zero Unexecuted instantiation: packetization_process.c:negative_to_zero Unexecuted instantiation: packetization_reorder_queue.c:negative_to_zero Unexecuted instantiation: pic_analysis_process.c:negative_to_zero Unexecuted instantiation: pic_analysis_results.c:negative_to_zero Unexecuted instantiation: pic_buffer_desc.c:negative_to_zero Unexecuted instantiation: pcs.c:negative_to_zero Unexecuted instantiation: pd_process.c:negative_to_zero Unexecuted instantiation: pd_reorder_queue.c:negative_to_zero Unexecuted instantiation: pd_results.c:negative_to_zero Unexecuted instantiation: pic_demux_results.c:negative_to_zero Unexecuted instantiation: pic_manager_process.c:negative_to_zero Unexecuted instantiation: pic_manager_queue.c:negative_to_zero Unexecuted instantiation: pic_operators.c:negative_to_zero Unexecuted instantiation: pred_structure.c:negative_to_zero Unexecuted instantiation: product_coding_loop.c:negative_to_zero Unexecuted instantiation: ac_bias.c:negative_to_zero Unexecuted instantiation: rc_aq.c:negative_to_zero Unexecuted instantiation: rc_process.c:negative_to_zero Unexecuted instantiation: rc_results.c:negative_to_zero Unexecuted instantiation: rc_rtc_cbr.c:negative_to_zero Unexecuted instantiation: rc_tasks.c:negative_to_zero Unexecuted instantiation: rc_vbr_cbr.c:negative_to_zero Unexecuted instantiation: rd_cost.c:negative_to_zero Unexecuted instantiation: reference_object.c:negative_to_zero Unexecuted instantiation: resource_coordination_process.c:negative_to_zero Unexecuted instantiation: resource_coordination_results.c:negative_to_zero Unexecuted instantiation: rest_process.c:negative_to_zero Unexecuted instantiation: restoration_pick.c:negative_to_zero Unexecuted instantiation: segmentation_params.c:negative_to_zero Unexecuted instantiation: sequence_control_set.c:negative_to_zero Unexecuted instantiation: src_ops_process.c:negative_to_zero Unexecuted instantiation: super_res.c:negative_to_zero Unexecuted instantiation: svt_log.c:negative_to_zero Unexecuted instantiation: svt_malloc.c:negative_to_zero Unexecuted instantiation: svt_psnr.c:negative_to_zero Unexecuted instantiation: svt_threads.c:negative_to_zero Unexecuted instantiation: sys_resource_manager.c:negative_to_zero Unexecuted instantiation: kernel_dispatch.c:negative_to_zero Unexecuted instantiation: temporal_filtering.c:negative_to_zero Unexecuted instantiation: transforms.c:negative_to_zero Unexecuted instantiation: utility.c:negative_to_zero Unexecuted instantiation: vector.c:negative_to_zero Unexecuted instantiation: blend_a64_mask_c.c:negative_to_zero Unexecuted instantiation: cfl_c.c:negative_to_zero Unexecuted instantiation: compute_sad_c.c:negative_to_zero Unexecuted instantiation: encode_txb_ref_c.c:negative_to_zero Unexecuted instantiation: filterintra_c.c:negative_to_zero Unexecuted instantiation: inter_prediction_c.c:negative_to_zero Unexecuted instantiation: intra_prediction_c.c:negative_to_zero Unexecuted instantiation: pack_unpack_c.c:negative_to_zero Unexecuted instantiation: picture_operators_c.c:negative_to_zero Unexecuted instantiation: adaptive_mv_pred.c:negative_to_zero Unexecuted instantiation: block_structures.c:negative_to_zero Unexecuted instantiation: cabac_context_model.c:negative_to_zero Unexecuted instantiation: coding_loop.c:negative_to_zero Unexecuted instantiation: coding_unit.c:negative_to_zero Unexecuted instantiation: coefficients.c:negative_to_zero Unexecuted instantiation: deblocking_filter.c:negative_to_zero Unexecuted instantiation: enc_dec_segments.c:negative_to_zero Unexecuted instantiation: encode_context.c:negative_to_zero Unexecuted instantiation: global_me.c:negative_to_zero Unexecuted instantiation: global_me_cost.c:negative_to_zero Unexecuted instantiation: me_context.c:negative_to_zero Unexecuted instantiation: pd_queue.c:negative_to_zero Unexecuted instantiation: rc_crf_cqp.c:negative_to_zero Unexecuted instantiation: corner_detect.c:negative_to_zero Unexecuted instantiation: enc_warped_motion.c:negative_to_zero |
728 | | |
729 | 0 | static INLINE int av1_num_planes(EbColorConfig* color_info) { |
730 | 0 | return color_info->mono_chrome ? 1 : MAX_PLANES; |
731 | 0 | } Unexecuted instantiation: enc_handle.c:av1_num_planes Unexecuted instantiation: enc_settings.c:av1_num_planes Unexecuted instantiation: metadata_handle.c:av1_num_planes Unexecuted instantiation: aom_dsp_rtcd.c:av1_num_planes Unexecuted instantiation: av1me.c:av1_num_planes Unexecuted instantiation: bitstream_unit.c:av1_num_planes Unexecuted instantiation: cdef_process.c:av1_num_planes Unexecuted instantiation: common_dsp_rtcd.c:av1_num_planes Unexecuted instantiation: common_utils.c:av1_num_planes Unexecuted instantiation: corner_match.c:av1_num_planes Unexecuted instantiation: deblocking_common.c:av1_num_planes Unexecuted instantiation: dlf_process.c:av1_num_planes Unexecuted instantiation: enc_cdef.c:av1_num_planes Unexecuted instantiation: enc_dec_process.c:av1_num_planes Unexecuted instantiation: enc_dec_results.c:av1_num_planes Unexecuted instantiation: enc_dec_tasks.c:av1_num_planes Unexecuted instantiation: enc_inter_prediction.c:av1_num_planes Unexecuted instantiation: enc_intra_prediction.c:av1_num_planes Unexecuted instantiation: enc_mode_config.c:av1_num_planes Unexecuted instantiation: entropy_coding.c:av1_num_planes Unexecuted instantiation: ec_process.c:av1_num_planes Unexecuted instantiation: ec_results.c:av1_num_planes Unexecuted instantiation: fft.c:av1_num_planes Unexecuted instantiation: full_loop.c:av1_num_planes Unexecuted instantiation: grainSynthesis.c:av1_num_planes Unexecuted instantiation: hash.c:av1_num_planes Unexecuted instantiation: initial_rc_process.c:av1_num_planes Unexecuted instantiation: initial_rc_results.c:av1_num_planes Unexecuted instantiation: inter_prediction.c:av1_num_planes Unexecuted instantiation: intra_prediction.c:av1_num_planes Unexecuted instantiation: inv_transforms.c:av1_num_planes Unexecuted instantiation: md_rate_estimation.c:av1_num_planes Unexecuted instantiation: me_sad_calculation.c:av1_num_planes Unexecuted instantiation: mode_decision.c:av1_num_planes Unexecuted instantiation: md_config_process.c:av1_num_planes Unexecuted instantiation: md_process.c:av1_num_planes Unexecuted instantiation: motion_estimation.c:av1_num_planes Unexecuted instantiation: me_process.c:av1_num_planes Unexecuted instantiation: me_results.c:av1_num_planes Unexecuted instantiation: neighbor_arrays.c:av1_num_planes Unexecuted instantiation: noise_model.c:av1_num_planes Unexecuted instantiation: noise_util.c:av1_num_planes Unexecuted instantiation: packetization_process.c:av1_num_planes Unexecuted instantiation: packetization_reorder_queue.c:av1_num_planes Unexecuted instantiation: pic_analysis_process.c:av1_num_planes Unexecuted instantiation: pic_analysis_results.c:av1_num_planes Unexecuted instantiation: pic_buffer_desc.c:av1_num_planes Unexecuted instantiation: pcs.c:av1_num_planes Unexecuted instantiation: pd_process.c:av1_num_planes Unexecuted instantiation: pd_reorder_queue.c:av1_num_planes Unexecuted instantiation: pd_results.c:av1_num_planes Unexecuted instantiation: pic_demux_results.c:av1_num_planes Unexecuted instantiation: pic_manager_process.c:av1_num_planes Unexecuted instantiation: pic_manager_queue.c:av1_num_planes Unexecuted instantiation: pic_operators.c:av1_num_planes Unexecuted instantiation: pred_structure.c:av1_num_planes Unexecuted instantiation: product_coding_loop.c:av1_num_planes Unexecuted instantiation: ac_bias.c:av1_num_planes Unexecuted instantiation: rc_aq.c:av1_num_planes Unexecuted instantiation: rc_process.c:av1_num_planes Unexecuted instantiation: rc_results.c:av1_num_planes Unexecuted instantiation: rc_rtc_cbr.c:av1_num_planes Unexecuted instantiation: rc_tasks.c:av1_num_planes Unexecuted instantiation: rc_vbr_cbr.c:av1_num_planes Unexecuted instantiation: rd_cost.c:av1_num_planes Unexecuted instantiation: reference_object.c:av1_num_planes Unexecuted instantiation: resource_coordination_process.c:av1_num_planes Unexecuted instantiation: resource_coordination_results.c:av1_num_planes Unexecuted instantiation: rest_process.c:av1_num_planes Unexecuted instantiation: restoration_pick.c:av1_num_planes Unexecuted instantiation: segmentation_params.c:av1_num_planes Unexecuted instantiation: sequence_control_set.c:av1_num_planes Unexecuted instantiation: src_ops_process.c:av1_num_planes Unexecuted instantiation: super_res.c:av1_num_planes Unexecuted instantiation: svt_log.c:av1_num_planes Unexecuted instantiation: svt_malloc.c:av1_num_planes Unexecuted instantiation: svt_psnr.c:av1_num_planes Unexecuted instantiation: svt_threads.c:av1_num_planes Unexecuted instantiation: sys_resource_manager.c:av1_num_planes Unexecuted instantiation: kernel_dispatch.c:av1_num_planes Unexecuted instantiation: temporal_filtering.c:av1_num_planes Unexecuted instantiation: transforms.c:av1_num_planes Unexecuted instantiation: utility.c:av1_num_planes Unexecuted instantiation: vector.c:av1_num_planes Unexecuted instantiation: warped_motion.c:av1_num_planes Unexecuted instantiation: blend_a64_mask_c.c:av1_num_planes Unexecuted instantiation: cfl_c.c:av1_num_planes Unexecuted instantiation: compute_sad_c.c:av1_num_planes Unexecuted instantiation: encode_txb_ref_c.c:av1_num_planes Unexecuted instantiation: filterintra_c.c:av1_num_planes Unexecuted instantiation: inter_prediction_c.c:av1_num_planes Unexecuted instantiation: intra_prediction_c.c:av1_num_planes Unexecuted instantiation: pack_unpack_c.c:av1_num_planes Unexecuted instantiation: picture_operators_c.c:av1_num_planes Unexecuted instantiation: sad_av1.c:av1_num_planes Unexecuted instantiation: adaptive_mv_pred.c:av1_num_planes Unexecuted instantiation: blend_a64_mask.c:av1_num_planes Unexecuted instantiation: block_structures.c:av1_num_planes Unexecuted instantiation: cabac_context_model.c:av1_num_planes Unexecuted instantiation: coding_loop.c:av1_num_planes Unexecuted instantiation: coding_unit.c:av1_num_planes Unexecuted instantiation: coefficients.c:av1_num_planes Unexecuted instantiation: deblocking_filter.c:av1_num_planes Unexecuted instantiation: enc_dec_segments.c:av1_num_planes Unexecuted instantiation: encode_context.c:av1_num_planes Unexecuted instantiation: global_me.c:av1_num_planes Unexecuted instantiation: global_me_cost.c:av1_num_planes Unexecuted instantiation: me_context.c:av1_num_planes Unexecuted instantiation: pd_queue.c:av1_num_planes Unexecuted instantiation: rc_crf_cqp.c:av1_num_planes Unexecuted instantiation: corner_detect.c:av1_num_planes Unexecuted instantiation: ransac.c:av1_num_planes Unexecuted instantiation: enc_warped_motion.c:av1_num_planes |
732 | | |
733 | | typedef struct IntraSize { |
734 | | uint8_t top; |
735 | | uint8_t left; |
736 | | } IntraSize; |
737 | | |
738 | 0 | #define MI_SIZE_W_8X8 2 |
739 | 0 | #define MI_SIZE_W_16X16 4 |
740 | 0 | #define MI_SIZE_W_64X64 16 |
741 | | |
742 | | //*********************************************************************************************************************// |
743 | | // enums.h |
744 | | typedef enum PdPass { |
745 | | PD_PASS_0, |
746 | | PD_PASS_1, |
747 | | PD_PASS_TOTAL, |
748 | | } PdPass; |
749 | | |
750 | | typedef enum ATTRIBUTE_PACKED { |
751 | | REGULAR_PD0 = |
752 | | -1, // The regular PD0 path; negative so that LPD1 can start at 0 (easy for indexing arrays in lpd0_ctrls) |
753 | | LPD0_LVL_0 = 0, |
754 | | LPD0_LVL_1 = 1, |
755 | | LPD0_LVL_2 = 2, |
756 | | LPD0_LVL_3 = 3, |
757 | | LPD0_LVL_4 = 4, |
758 | | VERY_LIGHT_PD0 = 5, // Lightest PD0 path, doesn't perform TX |
759 | | LPD0_LEVELS // Number of light-PD0 paths (regular PD0 isn't a light-PD0 path) |
760 | | } Pd0Level; |
761 | | |
762 | | typedef enum ATTRIBUTE_PACKED { |
763 | | REGULAR_PD1 = |
764 | | -1, // The regular PD1 path; negative so that LPD1 can start at 0 (easy for indexing arrays in lpd1_ctrls) |
765 | | LPD1_LVL_0 = 0, // Light-PD1 path, with safest feature levels |
766 | | LPD1_LVL_1 = 1, // Light PD1 path, having more shortcuts than previous LPD1 level |
767 | | LPD1_LVL_2 = 2, // Light PD1 path, having more shortcuts than previous LPD1 level |
768 | | LPD1_LVL_3 = 3, // Light PD1 path, having more shortcuts than previous LPD1 level |
769 | | LPD1_LVL_4 = 4, // Light PD1 path, having more shortcuts than previous LPD1 level |
770 | | #if OPT_LPD1 |
771 | | LPD1_LVL_5 = 5, // Light PD1 path, having more shortcuts than previous LPD1 level |
772 | | LPD1_LVL_6 = 6, // Light-PD1 path, with most aggressive feature levels |
773 | | #else |
774 | | LPD1_LVL_5 = 5, // Light-PD1 path, with most aggressive feature levels |
775 | | #endif |
776 | | LPD1_LEVELS // Number of light-PD1 paths (regular PD1 isn't a light-PD1 path) |
777 | | } Pd1Level; |
778 | | |
779 | | // If adding/removing a class, must also update is_intra_class func and MD_STAGE_NICS array |
780 | | typedef enum CandClass { |
781 | | CAND_CLASS_0, |
782 | | CAND_CLASS_1, |
783 | | CAND_CLASS_2, |
784 | | CAND_CLASS_3, |
785 | | CAND_CLASS_4, |
786 | | CAND_CLASS_TOTAL |
787 | | } CandClass; |
788 | | |
789 | | typedef enum MdStage { MD_STAGE_0, MD_STAGE_1, MD_STAGE_2, MD_STAGE_3, MD_STAGE_TOTAL, INVALID_MD_STAGE } MdStage; |
790 | | |
791 | | typedef enum MdStagingMode { |
792 | | MD_STAGING_MODE_0, |
793 | | MD_STAGING_MODE_1, |
794 | | MD_STAGING_MODE_2, |
795 | | MD_STAGING_MODE_TOTAL |
796 | | } MdStagingMode; |
797 | | |
798 | 1.14M | static INLINE bool is_intra_class(CandClass c) { |
799 | 1.14M | return (c == CAND_CLASS_0 || c == CAND_CLASS_3 || c == CAND_CLASS_4); |
800 | 1.14M | } Unexecuted instantiation: enc_handle.c:is_intra_class Unexecuted instantiation: enc_settings.c:is_intra_class Unexecuted instantiation: metadata_handle.c:is_intra_class Unexecuted instantiation: aom_dsp_rtcd.c:is_intra_class Unexecuted instantiation: av1me.c:is_intra_class Unexecuted instantiation: bitstream_unit.c:is_intra_class Unexecuted instantiation: cdef_process.c:is_intra_class Unexecuted instantiation: common_dsp_rtcd.c:is_intra_class Unexecuted instantiation: common_utils.c:is_intra_class Unexecuted instantiation: convolve.c:is_intra_class Unexecuted instantiation: corner_match.c:is_intra_class Unexecuted instantiation: deblocking_common.c:is_intra_class Unexecuted instantiation: dlf_process.c:is_intra_class Unexecuted instantiation: enc_cdef.c:is_intra_class Unexecuted instantiation: enc_dec_process.c:is_intra_class Unexecuted instantiation: enc_dec_results.c:is_intra_class Unexecuted instantiation: enc_dec_tasks.c:is_intra_class Unexecuted instantiation: enc_inter_prediction.c:is_intra_class Unexecuted instantiation: enc_intra_prediction.c:is_intra_class Unexecuted instantiation: enc_mode_config.c:is_intra_class Unexecuted instantiation: entropy_coding.c:is_intra_class Unexecuted instantiation: ec_process.c:is_intra_class Unexecuted instantiation: ec_results.c:is_intra_class Unexecuted instantiation: fft.c:is_intra_class Unexecuted instantiation: full_loop.c:is_intra_class Unexecuted instantiation: grainSynthesis.c:is_intra_class Unexecuted instantiation: hash.c:is_intra_class Unexecuted instantiation: hash_motion.c:is_intra_class Unexecuted instantiation: initial_rc_process.c:is_intra_class Unexecuted instantiation: initial_rc_results.c:is_intra_class Unexecuted instantiation: inter_prediction.c:is_intra_class Unexecuted instantiation: intra_prediction.c:is_intra_class Unexecuted instantiation: inv_transforms.c:is_intra_class Unexecuted instantiation: md_rate_estimation.c:is_intra_class Unexecuted instantiation: me_sad_calculation.c:is_intra_class Unexecuted instantiation: mode_decision.c:is_intra_class Unexecuted instantiation: md_config_process.c:is_intra_class Unexecuted instantiation: md_process.c:is_intra_class Unexecuted instantiation: motion_estimation.c:is_intra_class Unexecuted instantiation: me_process.c:is_intra_class Unexecuted instantiation: me_results.c:is_intra_class Unexecuted instantiation: neighbor_arrays.c:is_intra_class Unexecuted instantiation: noise_model.c:is_intra_class Unexecuted instantiation: noise_util.c:is_intra_class Unexecuted instantiation: packetization_process.c:is_intra_class Unexecuted instantiation: packetization_reorder_queue.c:is_intra_class Unexecuted instantiation: palette.c:is_intra_class Unexecuted instantiation: pic_analysis_process.c:is_intra_class Unexecuted instantiation: pic_analysis_results.c:is_intra_class Unexecuted instantiation: pic_buffer_desc.c:is_intra_class Unexecuted instantiation: pcs.c:is_intra_class Unexecuted instantiation: pd_process.c:is_intra_class Unexecuted instantiation: pd_reorder_queue.c:is_intra_class Unexecuted instantiation: pd_results.c:is_intra_class Unexecuted instantiation: pic_demux_results.c:is_intra_class Unexecuted instantiation: pic_manager_process.c:is_intra_class Unexecuted instantiation: pic_manager_queue.c:is_intra_class Unexecuted instantiation: pic_operators.c:is_intra_class Unexecuted instantiation: pred_structure.c:is_intra_class product_coding_loop.c:is_intra_class Line | Count | Source | 798 | 1.14M | static INLINE bool is_intra_class(CandClass c) { | 799 | 1.14M | return (c == CAND_CLASS_0 || c == CAND_CLASS_3 || c == CAND_CLASS_4); | 800 | 1.14M | } |
Unexecuted instantiation: ac_bias.c:is_intra_class Unexecuted instantiation: rc_aq.c:is_intra_class Unexecuted instantiation: rc_process.c:is_intra_class Unexecuted instantiation: rc_results.c:is_intra_class Unexecuted instantiation: rc_rtc_cbr.c:is_intra_class Unexecuted instantiation: rc_tasks.c:is_intra_class Unexecuted instantiation: rc_vbr_cbr.c:is_intra_class Unexecuted instantiation: rd_cost.c:is_intra_class Unexecuted instantiation: reference_object.c:is_intra_class Unexecuted instantiation: resize.c:is_intra_class Unexecuted instantiation: resource_coordination_process.c:is_intra_class Unexecuted instantiation: resource_coordination_results.c:is_intra_class Unexecuted instantiation: rest_process.c:is_intra_class Unexecuted instantiation: restoration.c:is_intra_class Unexecuted instantiation: restoration_pick.c:is_intra_class Unexecuted instantiation: segmentation.c:is_intra_class Unexecuted instantiation: segmentation_params.c:is_intra_class Unexecuted instantiation: sequence_control_set.c:is_intra_class Unexecuted instantiation: src_ops_process.c:is_intra_class Unexecuted instantiation: super_res.c:is_intra_class Unexecuted instantiation: svt_log.c:is_intra_class Unexecuted instantiation: svt_malloc.c:is_intra_class Unexecuted instantiation: svt_psnr.c:is_intra_class Unexecuted instantiation: svt_threads.c:is_intra_class Unexecuted instantiation: sys_resource_manager.c:is_intra_class Unexecuted instantiation: kernel_dispatch.c:is_intra_class Unexecuted instantiation: temporal_filtering.c:is_intra_class Unexecuted instantiation: transforms.c:is_intra_class Unexecuted instantiation: utility.c:is_intra_class Unexecuted instantiation: vector.c:is_intra_class Unexecuted instantiation: warped_motion.c:is_intra_class Unexecuted instantiation: blend_a64_mask_c.c:is_intra_class Unexecuted instantiation: cfl_c.c:is_intra_class Unexecuted instantiation: compute_sad_c.c:is_intra_class Unexecuted instantiation: encode_txb_ref_c.c:is_intra_class Unexecuted instantiation: filterintra_c.c:is_intra_class Unexecuted instantiation: inter_prediction_c.c:is_intra_class Unexecuted instantiation: intra_prediction_c.c:is_intra_class Unexecuted instantiation: pack_unpack_c.c:is_intra_class Unexecuted instantiation: picture_operators_c.c:is_intra_class Unexecuted instantiation: sad_av1.c:is_intra_class Unexecuted instantiation: variance.c:is_intra_class Unexecuted instantiation: adaptive_mv_pred.c:is_intra_class Unexecuted instantiation: blend_a64_mask.c:is_intra_class Unexecuted instantiation: block_structures.c:is_intra_class Unexecuted instantiation: cabac_context_model.c:is_intra_class Unexecuted instantiation: cdef.c:is_intra_class Unexecuted instantiation: coding_loop.c:is_intra_class Unexecuted instantiation: coding_unit.c:is_intra_class Unexecuted instantiation: coefficients.c:is_intra_class Unexecuted instantiation: deblocking_filter.c:is_intra_class Unexecuted instantiation: enc_dec_segments.c:is_intra_class Unexecuted instantiation: encode_context.c:is_intra_class Unexecuted instantiation: firstpass.c:is_intra_class Unexecuted instantiation: global_me.c:is_intra_class Unexecuted instantiation: global_me_cost.c:is_intra_class Unexecuted instantiation: mcomp.c:is_intra_class Unexecuted instantiation: me_context.c:is_intra_class Unexecuted instantiation: pass2_strategy.c:is_intra_class Unexecuted instantiation: pd_queue.c:is_intra_class Unexecuted instantiation: rc_crf_cqp.c:is_intra_class Unexecuted instantiation: corner_detect.c:is_intra_class Unexecuted instantiation: global_motion.c:is_intra_class Unexecuted instantiation: ransac.c:is_intra_class Unexecuted instantiation: enc_warped_motion.c:is_intra_class |
801 | | |
802 | 5.48k | #define NICS_PIC_TYPE 3 |
803 | 1.37k | #define NICS_SCALING_LEVELS 16 |
804 | | static const uint32_t MD_STAGE_NICS[NICS_PIC_TYPE][CAND_CLASS_TOTAL] = { |
805 | | // C0 C1 C2 C3 |
806 | | {64, 0, 0, 64, 64}, // I SLICE |
807 | | {32, 32, 32, 32, 32}, // REF FRAMES |
808 | | {16, 16, 16, 16, 16}, // NON-REF FRAMES |
809 | | }; |
810 | 489k | #define MD_STAGE_NICS_SCAL_DENUM 16 |
811 | | |
812 | | static const uint32_t MD_STAGE_NICS_SCAL_NUM[NICS_SCALING_LEVELS][MD_STAGE_TOTAL] = { |
813 | | // S0 S1 S2 S3 |
814 | | {0, 20, 20, 20}, // LEVEL 0 |
815 | | {0, 18, 18, 18}, // LEVEL 1 |
816 | | {0, 16, 16, 16}, // LEVEL 2 |
817 | | {0, 12, 12, 12}, // LEVEL 3 |
818 | | {0, 10, 10, 10}, // LEVEL 4 |
819 | | {0, 8, 8, 8}, // LEVEL 5 |
820 | | {0, 6, 6, 6}, // LEVEL 6 |
821 | | {0, 4, 5, 5}, // LEVEL 7 |
822 | | {0, 4, 4, 4}, // LEVEL 8 |
823 | | {0, 3, 4, 4}, // LEVEL 9 |
824 | | {0, 3, 3, 3}, // LEVEL 10 |
825 | | {0, 3, 2, 2}, // LEVEL 11 |
826 | | {0, 3, 1, 1}, // LEVEL 12 |
827 | | {0, 2, 1, 1}, // LEVEL 13 |
828 | | {0, 2, 0, 0}, // LEVEL 14 |
829 | | {0, 0, 0, 0} // LEVEL 15 |
830 | | }; |
831 | | |
832 | | typedef enum { |
833 | | EIGHTTAP_REGULAR, |
834 | | EIGHTTAP_SMOOTH, |
835 | | MULTITAP_SHARP, |
836 | | BILINEAR, |
837 | | INTERP_FILTERS_ALL, |
838 | | SWITCHABLE_FILTERS = BILINEAR, |
839 | | SWITCHABLE = SWITCHABLE_FILTERS + 1, /* the last switchable one */ |
840 | | EXTRA_FILTERS = INTERP_FILTERS_ALL - SWITCHABLE_FILTERS, |
841 | | } InterpFilter; |
842 | | |
843 | | enum { |
844 | | SPEL_ME, //ME |
845 | | SPEL_PME, //PME |
846 | | } UENUM1BYTE(SUBPEL_STAGE); |
847 | | |
848 | | enum { |
849 | | USE_2_TAPS_ORIG = 0, // This is used in temporal filtering. |
850 | | USE_2_TAPS, |
851 | | USE_4_TAPS, |
852 | | USE_8_TAPS, |
853 | | } UENUM1BYTE(SUBPEL_SEARCH_TYPE); |
854 | | |
855 | | enum { |
856 | | SUBPEL_TREE = 0, |
857 | | SUBPEL_TREE_PRUNED = 1, // Prunes 1/2-pel searches |
858 | | #if OPT_LPD1 |
859 | | SUBPEL_FIXED_STAGE_SEARCH = 2, |
860 | | #else |
861 | | //SUBPEL_TREE_PRUNED_MORE = 2, // Not supported - (from libaom: Prunes 1/2-pel searches more aggressively) |
862 | | //SUBPEL_TREE_PRUNED_EVENMORE = 3, // Not supported - (from libaom: Prunes 1/2- and 1/4-pel searches) |
863 | | #endif |
864 | | } UENUM1BYTE(SUBPEL_SEARCH_METHODS); |
865 | | |
866 | | enum { EIGHTH_PEL, QUARTER_PEL, HALF_PEL, FULL_PEL } UENUM1BYTE(SUBPEL_FORCE_STOP); |
867 | | |
868 | | typedef struct InterpFilterParams { |
869 | | const int16_t* filter_ptr; |
870 | | uint16_t taps; |
871 | | uint16_t subpel_shifts; |
872 | | InterpFilter interp_filter; |
873 | | } InterpFilterParams; |
874 | | |
875 | | typedef enum IfsLevel { |
876 | | IFS_OFF, // IFS OFF |
877 | | IFS_MDS0, // IFS @ md_stage_0() |
878 | | IFS_MDS1, // IFS @ md_stage_1() |
879 | | IFS_MDS2, // IFS @ md_stage_2() |
880 | | IFS_MDS3, // IFS @ md_stage_3() |
881 | | } IfsLevel; |
882 | | |
883 | | typedef enum SpatialSseLevel { |
884 | | SSSE_MDS1, // Spatial SSE @ md_stage_1() and beyond |
885 | | SSSE_MDS2, // Spatial SSE @ md_stage_2() and beyond |
886 | | SSSE_MDS3, // Spatial SSE @ md_stage_3() and beyond |
887 | | SSSE_OFF // Spatial SSE OFF |
888 | | } SpatialSseLevel; |
889 | | |
890 | | typedef enum DistortionType { SAD, VAR, SSD, DIST_TYPES } DistortionType; |
891 | | |
892 | | // Profile 0. 8-bit and 10-bit 4:2:0 and 4:0:0 only. |
893 | | // Profile 1. 8-bit and 10-bit 4:4:4 |
894 | | // Profile 2. 8-bit and 10-bit 4:2:2 |
895 | | // 12 bit 4:0:0, 4:2:2 and 4:4:4 |
896 | | typedef enum BitstreamProfile { PROFILE_0, PROFILE_1, PROFILE_2, MAX_PROFILES } BitstreamProfile; |
897 | | |
898 | | // Note: Some enums use the attribute 'packed' to use smallest possible integer |
899 | | // type, so that we can save memory when they are used in structs/arrays. |
900 | | |
901 | | typedef enum ATTRIBUTE_PACKED { |
902 | | BLOCK_4X4, |
903 | | BLOCK_4X8, |
904 | | BLOCK_8X4, |
905 | | BLOCK_8X8, |
906 | | BLOCK_8X16, |
907 | | BLOCK_16X8, |
908 | | BLOCK_16X16, |
909 | | BLOCK_16X32, |
910 | | BLOCK_32X16, |
911 | | BLOCK_32X32, |
912 | | BLOCK_32X64, |
913 | | BLOCK_64X32, |
914 | | BLOCK_64X64, |
915 | | BLOCK_64X128, |
916 | | BLOCK_128X64, |
917 | | BLOCK_128X128, |
918 | | BLOCK_4X16, |
919 | | BLOCK_16X4, |
920 | | BLOCK_8X32, |
921 | | BLOCK_32X8, |
922 | | BLOCK_16X64, |
923 | | BLOCK_64X16, |
924 | | BLOCK_SIZES_ALL, |
925 | | BLOCK_SIZES = BLOCK_4X16, |
926 | | BLOCK_INVALID = 255, |
927 | | BLOCK_LARGEST = (BLOCK_SIZES - 1) |
928 | | } BlockSize; |
929 | | |
930 | | typedef enum ATTRIBUTE_PACKED { |
931 | | PARTITION_NONE, |
932 | | PARTITION_HORZ, |
933 | | PARTITION_VERT, |
934 | | PARTITION_SPLIT, |
935 | | PARTITION_HORZ_A, // HORZ split and the top partition is split again |
936 | | PARTITION_HORZ_B, // HORZ split and the bottom partition is split again |
937 | | PARTITION_VERT_A, // VERT split and the left partition is split again |
938 | | PARTITION_VERT_B, // VERT split and the right partition is split again |
939 | | PARTITION_HORZ_4, // 4:1 horizontal partition |
940 | | PARTITION_VERT_4, // 4:1 vertical partition |
941 | | EXT_PARTITION_TYPES, |
942 | | PARTITION_TYPES = PARTITION_SPLIT + 1, |
943 | | PARTITION_INVALID = 255 |
944 | | } PartitionType; |
945 | | |
946 | | #define MAX_NUM_BLOCKS_ALLOC 4421 |
947 | | |
948 | | typedef enum ATTRIBUTE_PACKED { |
949 | | PART_N, |
950 | | PART_H, |
951 | | PART_V, |
952 | | PART_H4, |
953 | | PART_V4, |
954 | | PART_HA, |
955 | | PART_HB, |
956 | | PART_VA, |
957 | | PART_VB, |
958 | | PART_S |
959 | | } Part; |
960 | | |
961 | | typedef char PartitionContextType; |
962 | 491k | #define PARTITION_PLOFFSET 4 // number of probability models per block size |
963 | 9.05k | #define PARTITION_BLOCK_SIZES 5 |
964 | 9.05k | #define PARTITION_CONTEXTS (PARTITION_BLOCK_SIZES * PARTITION_PLOFFSET) |
965 | | |
966 | | // block transform size |
967 | | #ifdef _MSC_VER |
968 | | typedef uint8_t TxSize; |
969 | | |
970 | | enum ATTRIBUTE_PACKED { |
971 | | #else |
972 | | typedef enum ATTRIBUTE_PACKED { |
973 | | #endif |
974 | | TX_4X4, // 4x4 transform |
975 | | TX_8X8, // 8x8 transform |
976 | | TX_16X16, // 16x16 transform |
977 | | TX_32X32, // 32x32 transform |
978 | | TX_64X64, // 64x64 transform |
979 | | TX_4X8, // 4x8 transform |
980 | | TX_8X4, // 8x4 transform |
981 | | TX_8X16, // 8x16 transform |
982 | | TX_16X8, // 16x8 transform |
983 | | TX_16X32, // 16x32 transform |
984 | | TX_32X16, // 32x16 transform |
985 | | TX_32X64, // 32x64 transform |
986 | | TX_64X32, // 64x32 transform |
987 | | TX_4X16, // 4x16 transform |
988 | | TX_16X4, // 16x4 transform |
989 | | TX_8X32, // 8x32 transform |
990 | | TX_32X8, // 32x8 transform |
991 | | TX_16X64, // 16x64 transform |
992 | | TX_64X16, // 64x16 transform |
993 | | TX_SIZES_ALL, // Includes rectangular transforms |
994 | | TX_SIZES = TX_4X8, // Does NOT include rectangular transforms |
995 | | TX_SIZES_LARGEST = TX_64X64, |
996 | | TX_INVALID = 255 // Invalid transform size |
997 | | |
998 | | #ifdef _MSC_VER |
999 | | }; |
1000 | | #else |
1001 | | } TxSize; |
1002 | | #endif |
1003 | | |
1004 | | // TranLow is the datatype used for final transform coefficients. |
1005 | | typedef int32_t TranLow; |
1006 | | typedef uint8_t QmVal; |
1007 | | |
1008 | | typedef enum TxClass { |
1009 | | TX_CLASS_2D = 0, |
1010 | | TX_CLASS_HORIZ = 1, |
1011 | | TX_CLASS_VERT = 2, |
1012 | | TX_CLASSES = 3, |
1013 | | } TxClass; |
1014 | | |
1015 | 16.8k | #define ALIGN_POWER_OF_TWO(value, n) (((value) + ((1 << (n)) - 1)) & ~((1 << (n)) - 1)) |
1016 | | |
1017 | 69.8k | #define CONVERT_TO_SHORTPTR(x) ((uint16_t*)(((uintptr_t)(x)) << 1)) |
1018 | 66.3k | #define CONVERT_TO_BYTEPTR(x) ((uint8_t*)(((uintptr_t)(x)) >> 1)) |
1019 | | |
1020 | 3.87M | #define AOMMIN(x, y) (((x) < (y)) ? (x) : (y)) |
1021 | 2.50M | #define AOMMAX(x, y) (((x) > (y)) ? (x) : (y)) |
1022 | | |
1023 | | // frame transform mode |
1024 | | typedef enum ATTRIBUTE_PACKED { |
1025 | | ONLY_4X4, // use only 4x4 transform |
1026 | | TX_MODE_LARGEST, // transform size is the largest possible for pu size |
1027 | | TX_MODE_SELECT, // transform specified for each block |
1028 | | TX_MODES, |
1029 | | } TxMode; |
1030 | | |
1031 | | // 1D tx types |
1032 | | typedef enum ATTRIBUTE_PACKED { |
1033 | | DCT_1D, |
1034 | | ADST_1D, |
1035 | | FLIPADST_1D, |
1036 | | IDTX_1D, |
1037 | | TX_TYPES_1D, |
1038 | | } TxType1D; |
1039 | | |
1040 | | #ifdef _MSC_VER |
1041 | | typedef uint8_t TxType; |
1042 | | |
1043 | | enum ATTRIBUTE_PACKED { |
1044 | | #else |
1045 | | typedef enum ATTRIBUTE_PACKED { |
1046 | | #endif |
1047 | | DCT_DCT, // DCT in both horizontal and vertical |
1048 | | ADST_DCT, // ADST in vertical, DCT in horizontal |
1049 | | DCT_ADST, // DCT in vertical, ADST in horizontal |
1050 | | ADST_ADST, // ADST in both directions |
1051 | | FLIPADST_DCT, |
1052 | | DCT_FLIPADST, |
1053 | | FLIPADST_FLIPADST, |
1054 | | ADST_FLIPADST, |
1055 | | FLIPADST_ADST, |
1056 | | IDTX, |
1057 | | V_DCT, |
1058 | | H_DCT, |
1059 | | V_ADST, |
1060 | | H_ADST, |
1061 | | V_FLIPADST, |
1062 | | H_FLIPADST, |
1063 | | TX_TYPES, |
1064 | | INVALID_TX_TYPE, |
1065 | | #ifdef _MSC_VER |
1066 | | }; |
1067 | | #else |
1068 | | } TxType; |
1069 | | #endif |
1070 | | |
1071 | 0 | #define MAX_TX_TYPE_GROUP 6 |
1072 | | static const TxType tx_type_group[MAX_TX_TYPE_GROUP][TX_TYPES] = {{DCT_DCT, INVALID_TX_TYPE}, |
1073 | | {V_DCT, H_DCT, INVALID_TX_TYPE}, |
1074 | | {ADST_ADST, INVALID_TX_TYPE}, |
1075 | | {ADST_DCT, DCT_ADST, INVALID_TX_TYPE}, |
1076 | | {FLIPADST_FLIPADST, IDTX, INVALID_TX_TYPE}, |
1077 | | {FLIPADST_DCT, |
1078 | | DCT_FLIPADST, |
1079 | | ADST_FLIPADST, |
1080 | | FLIPADST_ADST, |
1081 | | V_ADST, |
1082 | | H_ADST, |
1083 | | V_FLIPADST, |
1084 | | H_FLIPADST, |
1085 | | INVALID_TX_TYPE}}; |
1086 | | |
1087 | | typedef enum ATTRIBUTE_PACKED { |
1088 | | // DCT only |
1089 | | EXT_TX_SET_DCTONLY, |
1090 | | // DCT + Identity only |
1091 | | EXT_TX_SET_DCT_IDTX, |
1092 | | // Discrete Trig transforms w/o flip (4) + Identity (1) |
1093 | | EXT_TX_SET_DTT4_IDTX, |
1094 | | // Discrete Trig transforms w/o flip (4) + Identity (1) + 1D Hor/vert DCT (2) |
1095 | | EXT_TX_SET_DTT4_IDTX_1DDCT, |
1096 | | // Discrete Trig transforms w/ flip (9) + Identity (1) + 1D Hor/Ver DCT (2) |
1097 | | EXT_TX_SET_DTT9_IDTX_1DDCT, |
1098 | | // Discrete Trig transforms w/ flip (9) + Identity (1) + 1D Hor/Ver (6) |
1099 | | EXT_TX_SET_ALL16, |
1100 | | EXT_TX_SET_TYPES |
1101 | | } TxSetType; |
1102 | | |
1103 | | typedef struct TxfmParam { |
1104 | | // for both forward and inverse transforms |
1105 | | TxType tx_type; |
1106 | | TxSize tx_size; |
1107 | | int32_t lossless; |
1108 | | int32_t bd; |
1109 | | // are the pixel buffers octets or shorts? This should collapse to |
1110 | | // bd==8 implies !is_hbd, but that's not certain right now. |
1111 | | int32_t is_hbd; |
1112 | | TxSetType tx_set_type; |
1113 | | // for inverse transforms only |
1114 | | int32_t eob; |
1115 | | } TxfmParam; |
1116 | | |
1117 | | #define IS_2D_TRANSFORM(tx_type) (tx_type < IDTX) |
1118 | 2.15k | #define EXT_TX_SIZES 4 // number of sizes that use extended transforms |
1119 | 6.89k | #define EXT_TX_SETS_INTER 4 // Sets of transform selections for INTER |
1120 | 5.17k | #define EXT_TX_SETS_INTRA 3 // Sets of transform selections for INTRA |
1121 | | |
1122 | | typedef enum ATTRIBUTE_PACKED { |
1123 | | UNIDIR_COMP_REFERENCE, |
1124 | | BIDIR_COMP_REFERENCE, |
1125 | | COMP_REFERENCE_TYPES, |
1126 | | } CompReferenceType; |
1127 | | |
1128 | 60.3k | #define CFL_ALPHABET_SIZE_LOG2 4 |
1129 | 60.3k | #define CFL_ALPHABET_SIZE (1 << CFL_ALPHABET_SIZE_LOG2) |
1130 | 0 | #define CFL_IDX_U(idx) (idx >> CFL_ALPHABET_SIZE_LOG2) |
1131 | 0 | #define CFL_IDX_V(idx) (idx & (CFL_ALPHABET_SIZE - 1)) |
1132 | | |
1133 | | typedef enum ATTRIBUTE_PACKED { CFL_PRED_U, CFL_PRED_V, CFL_PRED_PLANES } CflPredType; |
1134 | | |
1135 | | typedef enum ATTRIBUTE_PACKED { CFL_SIGN_ZERO, CFL_SIGN_NEG, CFL_SIGN_POS, CFL_SIGNS } CflSignType; |
1136 | | |
1137 | | typedef enum ATTRIBUTE_PACKED { CFL_DISALLOWED, CFL_ALLOWED, CFL_ALLOWED_TYPES } CflAllowedType; |
1138 | | |
1139 | | // CFL_SIGN_ZERO,CFL_SIGN_ZERO is invalid |
1140 | 3.87k | #define CFL_JOINT_SIGNS (CFL_SIGNS * CFL_SIGNS - 1) |
1141 | | // CFL_SIGN_U is equivalent to (js + 1) / 3 for js in 0 to 8 |
1142 | 12.0k | #define CFL_SIGN_U(js) (((js + 1) * 11) >> 5) |
1143 | | // CFL_SIGN_V is equivalent to (js + 1) % 3 for js in 0 to 8 |
1144 | 6.03k | #define CFL_SIGN_V(js) ((js + 1) - CFL_SIGNS * CFL_SIGN_U(js)) |
1145 | | |
1146 | | // There is no context when the alpha for a given plane is zero. |
1147 | | // So there are 2 fewer contexts than joint signs. |
1148 | | #define CFL_ALPHA_CONTEXTS (CFL_JOINT_SIGNS + 1 - CFL_SIGNS) |
1149 | 2.58k | #define CFL_CONTEXT_U(js) (js + 1 - CFL_SIGNS) |
1150 | | // Also, the contexts are symmetric under swapping the planes. |
1151 | 2.58k | #define CFL_CONTEXT_V(js) (CFL_SIGN_V(js) * CFL_SIGNS + CFL_SIGN_U(js) - CFL_SIGNS) |
1152 | | |
1153 | | typedef enum ATTRIBUTE_PACKED { |
1154 | | PALETTE_MAP, |
1155 | | COLOR_MAP_TYPES, |
1156 | | } COLOR_MAP_TYPE; |
1157 | | |
1158 | | typedef enum ATTRIBUTE_PACKED { |
1159 | | TWO_COLORS, |
1160 | | THREE_COLORS, |
1161 | | FOUR_COLORS, |
1162 | | FIVE_COLORS, |
1163 | | SIX_COLORS, |
1164 | | SEVEN_COLORS, |
1165 | | EIGHT_COLORS, |
1166 | | PALETTE_SIZES |
1167 | | } PaletteSize; |
1168 | | |
1169 | | typedef enum ATTRIBUTE_PACKED { |
1170 | | PALETTE_COLOR_ONE, |
1171 | | PALETTE_COLOR_TWO, |
1172 | | PALETTE_COLOR_THREE, |
1173 | | PALETTE_COLOR_FOUR, |
1174 | | PALETTE_COLOR_FIVE, |
1175 | | PALETTE_COLOR_SIX, |
1176 | | PALETTE_COLOR_SEVEN, |
1177 | | PALETTE_COLOR_EIGHT, |
1178 | | PALETTE_COLORS |
1179 | | } PaletteColor; |
1180 | | |
1181 | | // Note: All directional predictors must be between V_PRED and D67_PRED (both |
1182 | | // inclusive). |
1183 | | typedef enum ATTRIBUTE_PACKED { |
1184 | | DC_PRED, // Average of above and left pixels |
1185 | | V_PRED, // Vertical |
1186 | | H_PRED, // Horizontal |
1187 | | D45_PRED, // Directional 45 degree |
1188 | | D135_PRED, // Directional 135 degree |
1189 | | D113_PRED, // Directional 113 degree |
1190 | | D157_PRED, // Directional 157 degree |
1191 | | D203_PRED, // Directional 203 degree |
1192 | | D67_PRED, // Directional 67 degree |
1193 | | SMOOTH_PRED, // Combination of horizontal and vertical interpolation |
1194 | | SMOOTH_V_PRED, // Vertical interpolation |
1195 | | SMOOTH_H_PRED, // Horizontal interpolation |
1196 | | PAETH_PRED, // Predict from the direction of smallest gradient |
1197 | | NEARESTMV, |
1198 | | NEARMV, |
1199 | | GLOBALMV, |
1200 | | NEWMV, |
1201 | | // Compound ref compound modes |
1202 | | NEAREST_NEARESTMV, |
1203 | | NEAR_NEARMV, |
1204 | | NEAREST_NEWMV, |
1205 | | NEW_NEARESTMV, |
1206 | | NEAR_NEWMV, |
1207 | | NEW_NEARMV, |
1208 | | GLOBAL_GLOBALMV, |
1209 | | NEW_NEWMV, |
1210 | | MB_MODE_COUNT, |
1211 | | INTRA_MODE_START = DC_PRED, |
1212 | | INTRA_MODE_END = NEARESTMV, |
1213 | | INTRA_MODE_NUM = INTRA_MODE_END - INTRA_MODE_START, |
1214 | | SINGLE_INTER_MODE_START = NEARESTMV, |
1215 | | SINGLE_INTER_MODE_END = NEAREST_NEARESTMV, |
1216 | | SINGLE_INTER_MODE_NUM = SINGLE_INTER_MODE_END - SINGLE_INTER_MODE_START, |
1217 | | COMP_INTER_MODE_START = NEAREST_NEARESTMV, |
1218 | | COMP_INTER_MODE_END = MB_MODE_COUNT, |
1219 | | COMP_INTER_MODE_NUM = COMP_INTER_MODE_END - COMP_INTER_MODE_START, |
1220 | | INTRA_MODES = PAETH_PRED + 1, // PAETH_PRED has to be the last intra mode. |
1221 | | INTRA_INVALID = MB_MODE_COUNT, // For uv_mode in inter blocks |
1222 | | } PredictionMode; |
1223 | | |
1224 | | #define MAX_UPSAMPLE_SZ 16 |
1225 | | |
1226 | | typedef enum ATTRIBUTE_PACKED { |
1227 | | UV_DC_PRED, // Average of above and left pixels |
1228 | | UV_V_PRED, // Vertical |
1229 | | UV_H_PRED, // Horizontal |
1230 | | UV_D45_PRED, // Directional 45 degree |
1231 | | UV_D135_PRED, // Directional 135 degree |
1232 | | UV_D113_PRED, // Directional 113 degree |
1233 | | UV_D157_PRED, // Directional 157 degree |
1234 | | UV_D203_PRED, // Directional 203 degree |
1235 | | UV_D67_PRED, // Directional 67 degree |
1236 | | UV_SMOOTH_PRED, // Combination of horizontal and vertical interpolation |
1237 | | UV_SMOOTH_V_PRED, // Vertical interpolation |
1238 | | UV_SMOOTH_H_PRED, // Horizontal interpolation |
1239 | | UV_PAETH_PRED, // Predict from the direction of smallest gradient |
1240 | | UV_CFL_PRED, // Chroma-from-Luma |
1241 | | UV_INTRA_MODES, |
1242 | | UV_MODE_INVALID, // For uv_mode in inter blocks |
1243 | | } UvPredictionMode; |
1244 | | |
1245 | | typedef enum ATTRIBUTE_PACKED { |
1246 | | SIMPLE_TRANSLATION, |
1247 | | OBMC_CAUSAL, // 2-sided OBMC |
1248 | | WARPED_CAUSAL, // 2-sided WARPED |
1249 | | MOTION_MODES |
1250 | | } MotionMode; |
1251 | | |
1252 | | typedef enum ATTRIBUTE_PACKED { II_DC_PRED, II_V_PRED, II_H_PRED, II_SMOOTH_PRED, INTERINTRA_MODES } InterIntraMode; |
1253 | | |
1254 | | typedef enum ATTRIBUTE_PACKED { |
1255 | | COMPOUND_AVERAGE, |
1256 | | COMPOUND_DISTWTD, |
1257 | | COMPOUND_WEDGE, |
1258 | | COMPOUND_DIFFWTD, |
1259 | | COMPOUND_TYPES, |
1260 | | MASKED_COMPOUND_TYPES = 2, |
1261 | | } CompoundType; |
1262 | | |
1263 | 0 | #define AOM_BLEND_A64_ROUND_BITS 6 |
1264 | 0 | #define AOM_BLEND_A64_MAX_ALPHA (1 << AOM_BLEND_A64_ROUND_BITS) // 64 |
1265 | | |
1266 | | #define AOM_BLEND_A64(a, v0, v1) \ |
1267 | 0 | ROUND_POWER_OF_TWO((a) * (v0) + (AOM_BLEND_A64_MAX_ALPHA - (a)) * (v1), AOM_BLEND_A64_ROUND_BITS) |
1268 | 0 | #define DIFF_FACTOR_LOG2 4 |
1269 | 0 | #define DIFF_FACTOR (1 << DIFF_FACTOR_LOG2) |
1270 | 0 | #define AOM_BLEND_AVG(v0, v1) ROUND_POWER_OF_TWO((v0) + (v1), 1) |
1271 | | typedef uint16_t CONV_BUF_TYPE; |
1272 | | #define MAX_WEDGE_TYPES (1 << 4) |
1273 | 1.28k | #define MAX_WEDGE_SIZE_LOG2 5 // 32x32 |
1274 | 1.28k | #define MAX_WEDGE_SIZE (1 << MAX_WEDGE_SIZE_LOG2) |
1275 | | #define MAX_WEDGE_SQUARE (MAX_WEDGE_SIZE * MAX_WEDGE_SIZE) |
1276 | 12.2k | #define WEDGE_WEIGHT_BITS 6 |
1277 | 1.28k | #define MASK_PRIMARY_SIZE ((MAX_WEDGE_SIZE) << 1) |
1278 | 577 | #define MASK_PRIMARY_STRIDE (MASK_PRIMARY_SIZE) |
1279 | | |
1280 | | enum { |
1281 | | MD_COMP_AVG, |
1282 | | MD_COMP_DIST, |
1283 | | MD_COMP_DIFF0, |
1284 | | MD_COMP_WEDGE, |
1285 | | MD_COMP_TYPES, |
1286 | | } UENUM1BYTE(MD_COMP_TYPE); |
1287 | | |
1288 | | #define COMPOUND_TYPE CompoundType |
1289 | 0 | #define MAX_DIFFWTD_MASK_BITS 1 |
1290 | | |
1291 | | enum { |
1292 | | DIFFWTD_38 = 0, |
1293 | | DIFFWTD_38_INV, |
1294 | | DIFFWTD_MASK_TYPES, |
1295 | | } UENUM1BYTE(DIFFWTD_MASK_TYPE); |
1296 | | |
1297 | | typedef struct { |
1298 | | /*!< Specifies how the two predictions should be blended together. */ |
1299 | | CompoundType type; |
1300 | | |
1301 | | /*!< Used to derive the direction and offset of the wedge mask used during blending. */ |
1302 | | uint8_t wedge_index; |
1303 | | |
1304 | | /*!< Specifies the sign of the wedge blend. */ |
1305 | | uint8_t wedge_sign; |
1306 | | |
1307 | | /*!< Specifies the type of mask to be used during blending. */ |
1308 | | DIFFWTD_MASK_TYPE mask_type; |
1309 | | } InterInterCompoundData; |
1310 | | |
1311 | | typedef enum ATTRIBUTE_PACKED { |
1312 | | FILTER_DC_PRED, |
1313 | | FILTER_V_PRED, |
1314 | | FILTER_H_PRED, |
1315 | | FILTER_D157_PRED, |
1316 | | FILTER_PAETH_PRED, |
1317 | | FILTER_INTRA_MODES, |
1318 | | } FilterIntraMode; |
1319 | | |
1320 | | static const PredictionMode fimode_to_intramode[FILTER_INTRA_MODES] = {DC_PRED, V_PRED, H_PRED, D157_PRED, PAETH_PRED}; |
1321 | 3.87k | #define DIRECTIONAL_MODES 8 |
1322 | 0 | #define MAX_ANGLE_DELTA 3 |
1323 | 0 | #define ANGLE_STEP 3 |
1324 | | |
1325 | | #define INTER_MODES (1 + NEWMV - NEARESTMV) |
1326 | | |
1327 | 0 | #define INTER_COMPOUND_MODES (1 + NEW_NEWMV - NEAREST_NEARESTMV) |
1328 | | |
1329 | 3.44k | #define SKIP_CONTEXTS 3 |
1330 | | #define SKIP_MODE_CONTEXTS 3 |
1331 | | |
1332 | 0 | #define COMP_INDEX_CONTEXTS 6 |
1333 | 0 | #define COMP_GROUP_IDX_CONTEXTS 6 |
1334 | | |
1335 | 0 | #define NEWMV_MODE_CONTEXTS 6 |
1336 | 0 | #define GLOBALMV_MODE_CONTEXTS 2 |
1337 | 0 | #define REFMV_MODE_CONTEXTS 6 |
1338 | 0 | #define DRL_MODE_CONTEXTS 3 |
1339 | | |
1340 | 0 | #define GLOBALMV_OFFSET 3 |
1341 | 0 | #define REFMV_OFFSET 4 |
1342 | | |
1343 | 0 | #define NEWMV_CTX_MASK ((1 << GLOBALMV_OFFSET) - 1) |
1344 | 0 | #define GLOBALMV_CTX_MASK ((1 << (REFMV_OFFSET - GLOBALMV_OFFSET)) - 1) |
1345 | 0 | #define REFMV_CTX_MASK ((1 << (8 - REFMV_OFFSET)) - 1) |
1346 | | |
1347 | | #define COMP_NEWMV_CTXS 5 |
1348 | 0 | #define INTER_MODE_CONTEXTS 8 |
1349 | | |
1350 | 0 | #define DELTA_Q_SMALL 3 |
1351 | 0 | #define DELTA_Q_PROBS (DELTA_Q_SMALL) |
1352 | 862 | #define DEFAULT_DELTA_Q_RES 1 |
1353 | | #define DELTA_LF_SMALL 3 |
1354 | | #define DELTA_LF_PROBS (DELTA_LF_SMALL) |
1355 | | |
1356 | | /* Segment Feature Masks */ |
1357 | 0 | #define MAX_MV_REF_CANDIDATES 2 |
1358 | | |
1359 | 0 | #define MAX_REF_MV_STACK_SIZE 8 |
1360 | 0 | #define REF_CAT_LEVEL 640 |
1361 | | |
1362 | 0 | #define INTRA_INTER_CONTEXTS 4 |
1363 | 0 | #define COMP_INTER_CONTEXTS 5 |
1364 | 0 | #define REF_CONTEXTS 3 |
1365 | | |
1366 | 0 | #define COMP_REF_TYPE_CONTEXTS 5 |
1367 | 0 | #define UNI_COMP_REF_CONTEXTS 3 |
1368 | | |
1369 | 9.48k | #define TXFM_PARTITION_CONTEXTS ((TX_SIZES - TX_8X8) * 6 - 3) |
1370 | | typedef uint8_t TXFM_CONTEXT; |
1371 | | |
1372 | | // frame types |
1373 | | enum { |
1374 | | NONE_FRAME = -1, |
1375 | | INTRA_FRAME, |
1376 | | LAST_FRAME, |
1377 | | LAST2_FRAME, |
1378 | | LAST3_FRAME, |
1379 | | GOLDEN_FRAME, |
1380 | | BWDREF_FRAME, |
1381 | | ALTREF2_FRAME, |
1382 | | ALTREF_FRAME, |
1383 | | REF_FRAMES, |
1384 | | |
1385 | | // Extra/scratch reference frame. It may be: |
1386 | | // - used to update the ALTREF2_FRAME ref (see lshift_bwd_ref_frames()), or |
1387 | | // - updated from ALTREF2_FRAME ref (see rshift_bwd_ref_frames()). |
1388 | | EXTREF_FRAME = REF_FRAMES, |
1389 | | |
1390 | | // Number of inter (non-intra) reference types. |
1391 | | INTER_REFS_PER_FRAME = ALTREF_FRAME - LAST_FRAME + 1, |
1392 | | |
1393 | | TOTAL_REFS_PER_FRAME = ALTREF_FRAME - INTRA_FRAME + 1, |
1394 | | |
1395 | | // Number of forward (aka past) reference types. |
1396 | | FWD_REFS = GOLDEN_FRAME - LAST_FRAME + 1, |
1397 | | |
1398 | | // Number of backward (aka future) reference types. |
1399 | | BWD_REFS = ALTREF_FRAME - BWDREF_FRAME + 1, |
1400 | | |
1401 | | SINGLE_REFS = FWD_REFS + BWD_REFS, |
1402 | | }; |
1403 | | |
1404 | 0 | #define REF_FRAMES_LOG2 3 |
1405 | | #define REFS_PER_FRAME 7 |
1406 | | |
1407 | 0 | #define LAST_BWD_FRAME 8 |
1408 | | |
1409 | 0 | #define FWD_RF_OFFSET(ref) (ref - LAST_FRAME) |
1410 | 0 | #define BWD_RF_OFFSET(ref) (ref - BWDREF_FRAME) |
1411 | | |
1412 | | typedef enum ATTRIBUTE_PACKED { |
1413 | | LAST_LAST2_FRAMES, // { LAST_FRAME, LAST2_FRAME } |
1414 | | LAST_LAST3_FRAMES, // { LAST_FRAME, LAST3_FRAME } |
1415 | | LAST_GOLDEN_FRAMES, // { LAST_FRAME, GOLDEN_FRAME } |
1416 | | BWDREF_ALTREF_FRAMES, // { BWDREF_FRAME, ALTREF_FRAME } |
1417 | | LAST2_LAST3_FRAMES, // { LAST2_FRAME, LAST3_FRAME } |
1418 | | LAST2_GOLDEN_FRAMES, // { LAST2_FRAME, GOLDEN_FRAME } |
1419 | | LAST3_GOLDEN_FRAMES, // { LAST3_FRAME, GOLDEN_FRAME } |
1420 | | BWDREF_ALTREF2_FRAMES, // { BWDREF_FRAME, ALTREF2_FRAME } |
1421 | | ALTREF2_ALTREF_FRAMES, // { ALTREF2_FRAME, ALTREF_FRAME } |
1422 | | TOTAL_UNIDIR_COMP_REFS, |
1423 | | // NOTE: UNIDIR_COMP_REFS is the number of uni-directional reference pairs |
1424 | | // that are explicitly signaled. |
1425 | | UNIDIR_COMP_REFS = BWDREF_ALTREF_FRAMES + 1, |
1426 | | } UniDirCompRef; |
1427 | | |
1428 | 229k | #define TOTAL_COMP_REFS (FWD_REFS * BWD_REFS + TOTAL_UNIDIR_COMP_REFS) |
1429 | | |
1430 | | #define COMP_REFS (FWD_REFS * BWD_REFS + UNIDIR_COMP_REFS) |
1431 | | |
1432 | | // NOTE: A limited number of unidirectional reference pairs can be signalled for |
1433 | | // compound prediction. The use of skip mode, on the other hand, makes it |
1434 | | // possible to have a reference pair not listed for explicit signaling. |
1435 | 229k | #define MODE_CTX_REF_FRAMES (TOTAL_REFS_PER_FRAME + TOTAL_COMP_REFS) |
1436 | | |
1437 | | typedef enum ATTRIBUTE_PACKED { |
1438 | | RESTORE_NONE, |
1439 | | RESTORE_WIENER, |
1440 | | RESTORE_SGRPROJ, |
1441 | | RESTORE_SWITCHABLE, |
1442 | | RESTORE_SWITCHABLE_TYPES = RESTORE_SWITCHABLE, |
1443 | | RESTORE_TYPES = 4, |
1444 | | } RestorationType; |
1445 | | |
1446 | 8.18k | #define SCALE_NUMERATOR 8 |
1447 | 0 | #define SUPERRES_SCALE_BITS 3 |
1448 | 0 | #define SUPERRES_SCALE_DENOMINATOR_MIN (SCALE_NUMERATOR + 1) |
1449 | 51.7k | #define NUM_SR_SCALES 8 // number of super-res scales |
1450 | 512k | #define NUM_RESIZE_SCALES 9 // number of resize scales, index 0~8 means 8/8~8/16 and index 9 means 3/4 for dynamic mode |
1451 | 0 | #define SCALE_DENOMINATOR_MAX 16 // maximum scaling denominator is 16 |
1452 | 0 | #define SCALE_THREE_QUATER 17 // 3/4 of resize dynamic mode is defined as 17 |
1453 | | |
1454 | | //**********************************************************************************************************************// |
1455 | | // onyxc_int.h |
1456 | 14.6k | #define CDEF_MAX_STRENGTHS 16 |
1457 | | |
1458 | 0 | #define UNDISP_QUEUE_SIZE (REF_FRAMES * 10) |
1459 | | |
1460 | | /* Constant values while waiting for the sequence header */ |
1461 | 4.74k | #define FRAME_ID_LENGTH 15 |
1462 | 4.74k | #define DELTA_FRAME_ID_LENGTH 14 |
1463 | | |
1464 | 0 | #define PRIMARY_REF_BITS 3 |
1465 | 6.37k | #define PRIMARY_REF_NONE 7 |
1466 | | |
1467 | 28.4k | #define MAX_NUM_TEMPORAL_LAYERS 8 |
1468 | 28.4k | #define MAX_NUM_SPATIAL_LAYERS 4 |
1469 | 28.4k | #define MAX_NUM_OPERATING_POINTS (MAX_NUM_TEMPORAL_LAYERS * MAX_NUM_SPATIAL_LAYERS) |
1470 | | |
1471 | | /* clang-format off */ |
1472 | 0 | static INLINE int32_t is_valid_seq_level_idx(uint8_t seq_level_idx) { |
1473 | 0 | return seq_level_idx == 31 || |
1474 | 0 | (seq_level_idx < 24 && |
1475 | | // The following levels are currently undefined. |
1476 | 0 | seq_level_idx != 2 && seq_level_idx != 3 && |
1477 | 0 | seq_level_idx != 6 && seq_level_idx != 7 && |
1478 | 0 | seq_level_idx != 10 && seq_level_idx != 11 && |
1479 | 0 | seq_level_idx != 20 && seq_level_idx != 21 && |
1480 | 0 | seq_level_idx != 22 && seq_level_idx != 23); |
1481 | 0 | } Unexecuted instantiation: enc_handle.c:is_valid_seq_level_idx Unexecuted instantiation: enc_settings.c:is_valid_seq_level_idx Unexecuted instantiation: metadata_handle.c:is_valid_seq_level_idx Unexecuted instantiation: aom_dsp_rtcd.c:is_valid_seq_level_idx Unexecuted instantiation: av1me.c:is_valid_seq_level_idx Unexecuted instantiation: bitstream_unit.c:is_valid_seq_level_idx Unexecuted instantiation: cdef_process.c:is_valid_seq_level_idx Unexecuted instantiation: common_dsp_rtcd.c:is_valid_seq_level_idx Unexecuted instantiation: common_utils.c:is_valid_seq_level_idx Unexecuted instantiation: corner_match.c:is_valid_seq_level_idx Unexecuted instantiation: deblocking_common.c:is_valid_seq_level_idx Unexecuted instantiation: dlf_process.c:is_valid_seq_level_idx Unexecuted instantiation: enc_cdef.c:is_valid_seq_level_idx Unexecuted instantiation: enc_dec_process.c:is_valid_seq_level_idx Unexecuted instantiation: enc_dec_results.c:is_valid_seq_level_idx Unexecuted instantiation: enc_dec_tasks.c:is_valid_seq_level_idx Unexecuted instantiation: enc_inter_prediction.c:is_valid_seq_level_idx Unexecuted instantiation: enc_intra_prediction.c:is_valid_seq_level_idx Unexecuted instantiation: enc_mode_config.c:is_valid_seq_level_idx Unexecuted instantiation: entropy_coding.c:is_valid_seq_level_idx Unexecuted instantiation: ec_process.c:is_valid_seq_level_idx Unexecuted instantiation: ec_results.c:is_valid_seq_level_idx Unexecuted instantiation: fft.c:is_valid_seq_level_idx Unexecuted instantiation: full_loop.c:is_valid_seq_level_idx Unexecuted instantiation: grainSynthesis.c:is_valid_seq_level_idx Unexecuted instantiation: hash.c:is_valid_seq_level_idx Unexecuted instantiation: initial_rc_process.c:is_valid_seq_level_idx Unexecuted instantiation: initial_rc_results.c:is_valid_seq_level_idx Unexecuted instantiation: inter_prediction.c:is_valid_seq_level_idx Unexecuted instantiation: intra_prediction.c:is_valid_seq_level_idx Unexecuted instantiation: inv_transforms.c:is_valid_seq_level_idx Unexecuted instantiation: md_rate_estimation.c:is_valid_seq_level_idx Unexecuted instantiation: me_sad_calculation.c:is_valid_seq_level_idx Unexecuted instantiation: mode_decision.c:is_valid_seq_level_idx Unexecuted instantiation: md_config_process.c:is_valid_seq_level_idx Unexecuted instantiation: md_process.c:is_valid_seq_level_idx Unexecuted instantiation: motion_estimation.c:is_valid_seq_level_idx Unexecuted instantiation: me_process.c:is_valid_seq_level_idx Unexecuted instantiation: me_results.c:is_valid_seq_level_idx Unexecuted instantiation: neighbor_arrays.c:is_valid_seq_level_idx Unexecuted instantiation: noise_model.c:is_valid_seq_level_idx Unexecuted instantiation: noise_util.c:is_valid_seq_level_idx Unexecuted instantiation: packetization_process.c:is_valid_seq_level_idx Unexecuted instantiation: packetization_reorder_queue.c:is_valid_seq_level_idx Unexecuted instantiation: pic_analysis_process.c:is_valid_seq_level_idx Unexecuted instantiation: pic_analysis_results.c:is_valid_seq_level_idx Unexecuted instantiation: pic_buffer_desc.c:is_valid_seq_level_idx Unexecuted instantiation: pcs.c:is_valid_seq_level_idx Unexecuted instantiation: pd_process.c:is_valid_seq_level_idx Unexecuted instantiation: pd_reorder_queue.c:is_valid_seq_level_idx Unexecuted instantiation: pd_results.c:is_valid_seq_level_idx Unexecuted instantiation: pic_demux_results.c:is_valid_seq_level_idx Unexecuted instantiation: pic_manager_process.c:is_valid_seq_level_idx Unexecuted instantiation: pic_manager_queue.c:is_valid_seq_level_idx Unexecuted instantiation: pic_operators.c:is_valid_seq_level_idx Unexecuted instantiation: pred_structure.c:is_valid_seq_level_idx Unexecuted instantiation: product_coding_loop.c:is_valid_seq_level_idx Unexecuted instantiation: ac_bias.c:is_valid_seq_level_idx Unexecuted instantiation: rc_aq.c:is_valid_seq_level_idx Unexecuted instantiation: rc_process.c:is_valid_seq_level_idx Unexecuted instantiation: rc_results.c:is_valid_seq_level_idx Unexecuted instantiation: rc_rtc_cbr.c:is_valid_seq_level_idx Unexecuted instantiation: rc_tasks.c:is_valid_seq_level_idx Unexecuted instantiation: rc_vbr_cbr.c:is_valid_seq_level_idx Unexecuted instantiation: rd_cost.c:is_valid_seq_level_idx Unexecuted instantiation: reference_object.c:is_valid_seq_level_idx Unexecuted instantiation: resource_coordination_process.c:is_valid_seq_level_idx Unexecuted instantiation: resource_coordination_results.c:is_valid_seq_level_idx Unexecuted instantiation: rest_process.c:is_valid_seq_level_idx Unexecuted instantiation: restoration_pick.c:is_valid_seq_level_idx Unexecuted instantiation: segmentation_params.c:is_valid_seq_level_idx Unexecuted instantiation: sequence_control_set.c:is_valid_seq_level_idx Unexecuted instantiation: src_ops_process.c:is_valid_seq_level_idx Unexecuted instantiation: super_res.c:is_valid_seq_level_idx Unexecuted instantiation: svt_log.c:is_valid_seq_level_idx Unexecuted instantiation: svt_malloc.c:is_valid_seq_level_idx Unexecuted instantiation: svt_psnr.c:is_valid_seq_level_idx Unexecuted instantiation: svt_threads.c:is_valid_seq_level_idx Unexecuted instantiation: sys_resource_manager.c:is_valid_seq_level_idx Unexecuted instantiation: kernel_dispatch.c:is_valid_seq_level_idx Unexecuted instantiation: temporal_filtering.c:is_valid_seq_level_idx Unexecuted instantiation: transforms.c:is_valid_seq_level_idx Unexecuted instantiation: utility.c:is_valid_seq_level_idx Unexecuted instantiation: vector.c:is_valid_seq_level_idx Unexecuted instantiation: warped_motion.c:is_valid_seq_level_idx Unexecuted instantiation: blend_a64_mask_c.c:is_valid_seq_level_idx Unexecuted instantiation: cfl_c.c:is_valid_seq_level_idx Unexecuted instantiation: compute_sad_c.c:is_valid_seq_level_idx Unexecuted instantiation: encode_txb_ref_c.c:is_valid_seq_level_idx Unexecuted instantiation: filterintra_c.c:is_valid_seq_level_idx Unexecuted instantiation: inter_prediction_c.c:is_valid_seq_level_idx Unexecuted instantiation: intra_prediction_c.c:is_valid_seq_level_idx Unexecuted instantiation: pack_unpack_c.c:is_valid_seq_level_idx Unexecuted instantiation: picture_operators_c.c:is_valid_seq_level_idx Unexecuted instantiation: sad_av1.c:is_valid_seq_level_idx Unexecuted instantiation: adaptive_mv_pred.c:is_valid_seq_level_idx Unexecuted instantiation: blend_a64_mask.c:is_valid_seq_level_idx Unexecuted instantiation: block_structures.c:is_valid_seq_level_idx Unexecuted instantiation: cabac_context_model.c:is_valid_seq_level_idx Unexecuted instantiation: coding_loop.c:is_valid_seq_level_idx Unexecuted instantiation: coding_unit.c:is_valid_seq_level_idx Unexecuted instantiation: coefficients.c:is_valid_seq_level_idx Unexecuted instantiation: deblocking_filter.c:is_valid_seq_level_idx Unexecuted instantiation: enc_dec_segments.c:is_valid_seq_level_idx Unexecuted instantiation: encode_context.c:is_valid_seq_level_idx Unexecuted instantiation: global_me.c:is_valid_seq_level_idx Unexecuted instantiation: global_me_cost.c:is_valid_seq_level_idx Unexecuted instantiation: me_context.c:is_valid_seq_level_idx Unexecuted instantiation: pd_queue.c:is_valid_seq_level_idx Unexecuted instantiation: rc_crf_cqp.c:is_valid_seq_level_idx Unexecuted instantiation: corner_detect.c:is_valid_seq_level_idx Unexecuted instantiation: ransac.c:is_valid_seq_level_idx Unexecuted instantiation: enc_warped_motion.c:is_valid_seq_level_idx |
1482 | | |
1483 | | /* clang-format on */ |
1484 | | |
1485 | | typedef enum { |
1486 | | SINGLE_REFERENCE = 0, |
1487 | | COMPOUND_REFERENCE = 1, |
1488 | | REFERENCE_MODE_SELECT = 2, |
1489 | | REFERENCE_MODES = 3, |
1490 | | } ReferenceMode; |
1491 | | |
1492 | | typedef enum RefreshFrameContextMode { |
1493 | | /** |
1494 | | * Frame context updates are disabled |
1495 | | */ |
1496 | | REFRESH_FRAME_CONTEXT_DISABLED, |
1497 | | /** |
1498 | | * Update frame context to values resulting from backward probability |
1499 | | * updates based on entropy/counts in the decoded frame |
1500 | | */ |
1501 | | REFRESH_FRAME_CONTEXT_BACKWARD, |
1502 | | } RefreshFrameContextMode; |
1503 | | |
1504 | | //**********************************************************************************************************************// |
1505 | | // aom_codec.h |
1506 | | /*!\brief Algorithm return codes */ |
1507 | | typedef enum AomCodecErr { |
1508 | | /*!\brief Operation completed without error */ |
1509 | | SVT_AOM_CODEC_OK, |
1510 | | /*!\brief Unspecified error */ |
1511 | | SVT_AOM_CODEC_ERROR, |
1512 | | /*!\brief Memory operation failed */ |
1513 | | SVT_AOM_CODEC_MEM_ERROR, |
1514 | | /*!\brief ABI version mismatch */ |
1515 | | SVT_AOM_CODEC_ABI_MISMATCH, |
1516 | | /*!\brief Algorithm does not have required capability */ |
1517 | | SVT_AOM_CODEC_INCAPABLE, |
1518 | | /*!\brief The given Bitstream is not supported. |
1519 | | * |
1520 | | * The Bitstream was unable to be parsed at the highest level. The decoder |
1521 | | * is unable to proceed. This error \ref SHOULD be treated as fatal to the |
1522 | | * stream. */ |
1523 | | SVT_AOM_CODEC_UNSUP_BITSTREAM, |
1524 | | /*!\brief Encoded Bitstream uses an unsupported feature |
1525 | | * |
1526 | | * The decoder does not implement a feature required by the encoder. This |
1527 | | * return code should only be used for features that prevent future |
1528 | | * pictures from being properly decoded. This error \ref MAY be treated as |
1529 | | * fatal to the stream or \ref MAY be treated as fatal to the current GOP. |
1530 | | */ |
1531 | | SVT_AOM_CODEC_UNSUP_FEATURE, |
1532 | | /*!\brief The coded data for this stream is corrupt or incomplete |
1533 | | * |
1534 | | * There was a problem decoding the current frame. This return code |
1535 | | * should only be used for failures that prevent future pictures from |
1536 | | * being properly decoded. This error \ref MAY be treated as fatal to the |
1537 | | * stream or \ref MAY be treated as fatal to the current GOP. If decoding |
1538 | | * is continued for the current GOP, artifacts may be present. |
1539 | | */ |
1540 | | SVT_AOM_CODEC_CORRUPT_FRAME, |
1541 | | /*!\brief An application-supplied parameter is not valid. |
1542 | | * |
1543 | | */ |
1544 | | SVT_AOM_CODEC_INVALID_PARAM, |
1545 | | /*!\brief An iterator reached the end of list. |
1546 | | * |
1547 | | */ |
1548 | | SVT_AOM_CODEC_LIST_END |
1549 | | } AomCodecErr; |
1550 | | |
1551 | | // above and left partition |
1552 | | typedef struct PartitionContext { |
1553 | | PartitionContextType above; |
1554 | | PartitionContextType left; |
1555 | | } PartitionContext; |
1556 | | |
1557 | | // Generates 5 bit field in which each bit set to 1 represents |
1558 | | // a BlockSize partition 11111 means we split 128x128, 64x64, 32x32, 16x16 |
1559 | | // and 8x8. 10000 means we just split the 128x128 to 64x64 |
1560 | | /* clang-format off */ |
1561 | | static const struct |
1562 | | { |
1563 | | PartitionContextType above; |
1564 | | PartitionContextType left; |
1565 | | } partition_context_lookup[BLOCK_SIZES_ALL] = { |
1566 | | { 31, 31 }, // 4X4 - {0b11111, 0b11111} |
1567 | | { 31, 30 }, // 4X8 - {0b11111, 0b11110} |
1568 | | { 30, 31 }, // 8X4 - {0b11110, 0b11111} |
1569 | | { 30, 30 }, // 8X8 - {0b11110, 0b11110} |
1570 | | { 30, 28 }, // 8X16 - {0b11110, 0b11100} |
1571 | | { 28, 30 }, // 16X8 - {0b11100, 0b11110} |
1572 | | { 28, 28 }, // 16X16 - {0b11100, 0b11100} |
1573 | | { 28, 24 }, // 16X32 - {0b11100, 0b11000} |
1574 | | { 24, 28 }, // 32X16 - {0b11000, 0b11100} |
1575 | | { 24, 24 }, // 32X32 - {0b11000, 0b11000} |
1576 | | { 24, 16 }, // 32X64 - {0b11000, 0b10000} |
1577 | | { 16, 24 }, // 64X32 - {0b10000, 0b11000} |
1578 | | { 16, 16 }, // 64X64 - {0b10000, 0b10000} |
1579 | | { 16, 0 }, // 64X128- {0b10000, 0b00000} |
1580 | | { 0, 16 }, // 128X64- {0b00000, 0b10000} |
1581 | | { 0, 0 }, // 128X128-{0b00000, 0b00000} |
1582 | | { 31, 28 }, // 4X16 - {0b11111, 0b11100} |
1583 | | { 28, 31 }, // 16X4 - {0b11100, 0b11111} |
1584 | | { 30, 24 }, // 8X32 - {0b11110, 0b11000} |
1585 | | { 24, 30 }, // 32X8 - {0b11000, 0b11110} |
1586 | | { 28, 16 }, // 16X64 - {0b11100, 0b10000} |
1587 | | { 16, 28 }, // 64X16 - {0b10000, 0b11100} |
1588 | | }; |
1589 | | |
1590 | | /* clang-format on */ |
1591 | | |
1592 | | typedef struct SgrParamsType { |
1593 | | int32_t r[2]; // radii |
1594 | | int32_t s[2]; // sgr parameters for r[0] and r[1], based on GenSgrprojVtable() |
1595 | | } SgrParamsType; |
1596 | | |
1597 | | //**********************************************************************************************************************// |
1598 | | // blockd.h |
1599 | | typedef enum FrameType { |
1600 | | KEY_FRAME = 0, |
1601 | | INTER_FRAME = 1, |
1602 | | INTRA_ONLY_FRAME = 2, // replaces intra-only |
1603 | | S_FRAME = 3, |
1604 | | FRAME_TYPES, |
1605 | | } FrameType; |
1606 | | |
1607 | | typedef int8_t MvReferenceFrame; |
1608 | | |
1609 | 693k | static INLINE bool is_intra_mode(PredictionMode mode) { |
1610 | 693k | return mode < INTRA_MODE_END; // && mode >= INTRA_MODE_START; // mode is always greater than INTRA_MODE_START |
1611 | 693k | } Unexecuted instantiation: enc_handle.c:is_intra_mode Unexecuted instantiation: enc_settings.c:is_intra_mode Unexecuted instantiation: metadata_handle.c:is_intra_mode Unexecuted instantiation: aom_dsp_rtcd.c:is_intra_mode Unexecuted instantiation: av1me.c:is_intra_mode Unexecuted instantiation: bitstream_unit.c:is_intra_mode Unexecuted instantiation: cdef_process.c:is_intra_mode Unexecuted instantiation: common_dsp_rtcd.c:is_intra_mode Unexecuted instantiation: common_utils.c:is_intra_mode Unexecuted instantiation: convolve.c:is_intra_mode Unexecuted instantiation: corner_match.c:is_intra_mode Unexecuted instantiation: deblocking_common.c:is_intra_mode Unexecuted instantiation: dlf_process.c:is_intra_mode Unexecuted instantiation: enc_cdef.c:is_intra_mode Unexecuted instantiation: enc_dec_process.c:is_intra_mode Unexecuted instantiation: enc_dec_results.c:is_intra_mode Unexecuted instantiation: enc_dec_tasks.c:is_intra_mode Unexecuted instantiation: enc_inter_prediction.c:is_intra_mode Unexecuted instantiation: enc_intra_prediction.c:is_intra_mode Unexecuted instantiation: enc_mode_config.c:is_intra_mode Unexecuted instantiation: entropy_coding.c:is_intra_mode Unexecuted instantiation: ec_process.c:is_intra_mode Unexecuted instantiation: ec_results.c:is_intra_mode Unexecuted instantiation: fft.c:is_intra_mode Unexecuted instantiation: full_loop.c:is_intra_mode Unexecuted instantiation: grainSynthesis.c:is_intra_mode Unexecuted instantiation: hash.c:is_intra_mode Unexecuted instantiation: hash_motion.c:is_intra_mode Unexecuted instantiation: initial_rc_process.c:is_intra_mode Unexecuted instantiation: initial_rc_results.c:is_intra_mode Unexecuted instantiation: inter_prediction.c:is_intra_mode Unexecuted instantiation: intra_prediction.c:is_intra_mode Unexecuted instantiation: inv_transforms.c:is_intra_mode Unexecuted instantiation: md_rate_estimation.c:is_intra_mode Unexecuted instantiation: me_sad_calculation.c:is_intra_mode mode_decision.c:is_intra_mode Line | Count | Source | 1609 | 457k | static INLINE bool is_intra_mode(PredictionMode mode) { | 1610 | 457k | return mode < INTRA_MODE_END; // && mode >= INTRA_MODE_START; // mode is always greater than INTRA_MODE_START | 1611 | 457k | } |
Unexecuted instantiation: md_config_process.c:is_intra_mode Unexecuted instantiation: md_process.c:is_intra_mode Unexecuted instantiation: motion_estimation.c:is_intra_mode Unexecuted instantiation: me_process.c:is_intra_mode Unexecuted instantiation: me_results.c:is_intra_mode Unexecuted instantiation: neighbor_arrays.c:is_intra_mode Unexecuted instantiation: noise_model.c:is_intra_mode Unexecuted instantiation: noise_util.c:is_intra_mode Unexecuted instantiation: packetization_process.c:is_intra_mode Unexecuted instantiation: packetization_reorder_queue.c:is_intra_mode Unexecuted instantiation: palette.c:is_intra_mode Unexecuted instantiation: pic_analysis_process.c:is_intra_mode Unexecuted instantiation: pic_analysis_results.c:is_intra_mode Unexecuted instantiation: pic_buffer_desc.c:is_intra_mode Unexecuted instantiation: pcs.c:is_intra_mode Unexecuted instantiation: pd_process.c:is_intra_mode Unexecuted instantiation: pd_reorder_queue.c:is_intra_mode Unexecuted instantiation: pd_results.c:is_intra_mode Unexecuted instantiation: pic_demux_results.c:is_intra_mode Unexecuted instantiation: pic_manager_process.c:is_intra_mode Unexecuted instantiation: pic_manager_queue.c:is_intra_mode Unexecuted instantiation: pic_operators.c:is_intra_mode Unexecuted instantiation: pred_structure.c:is_intra_mode product_coding_loop.c:is_intra_mode Line | Count | Source | 1609 | 236k | static INLINE bool is_intra_mode(PredictionMode mode) { | 1610 | 236k | return mode < INTRA_MODE_END; // && mode >= INTRA_MODE_START; // mode is always greater than INTRA_MODE_START | 1611 | 236k | } |
Unexecuted instantiation: ac_bias.c:is_intra_mode Unexecuted instantiation: rc_aq.c:is_intra_mode Unexecuted instantiation: rc_process.c:is_intra_mode Unexecuted instantiation: rc_results.c:is_intra_mode Unexecuted instantiation: rc_rtc_cbr.c:is_intra_mode Unexecuted instantiation: rc_tasks.c:is_intra_mode Unexecuted instantiation: rc_vbr_cbr.c:is_intra_mode Unexecuted instantiation: rd_cost.c:is_intra_mode Unexecuted instantiation: reference_object.c:is_intra_mode Unexecuted instantiation: resize.c:is_intra_mode Unexecuted instantiation: resource_coordination_process.c:is_intra_mode Unexecuted instantiation: resource_coordination_results.c:is_intra_mode Unexecuted instantiation: rest_process.c:is_intra_mode Unexecuted instantiation: restoration.c:is_intra_mode Unexecuted instantiation: restoration_pick.c:is_intra_mode Unexecuted instantiation: segmentation.c:is_intra_mode Unexecuted instantiation: segmentation_params.c:is_intra_mode Unexecuted instantiation: sequence_control_set.c:is_intra_mode Unexecuted instantiation: src_ops_process.c:is_intra_mode Unexecuted instantiation: super_res.c:is_intra_mode Unexecuted instantiation: svt_log.c:is_intra_mode Unexecuted instantiation: svt_malloc.c:is_intra_mode Unexecuted instantiation: svt_psnr.c:is_intra_mode Unexecuted instantiation: svt_threads.c:is_intra_mode Unexecuted instantiation: sys_resource_manager.c:is_intra_mode Unexecuted instantiation: kernel_dispatch.c:is_intra_mode Unexecuted instantiation: temporal_filtering.c:is_intra_mode Unexecuted instantiation: transforms.c:is_intra_mode Unexecuted instantiation: utility.c:is_intra_mode Unexecuted instantiation: vector.c:is_intra_mode Unexecuted instantiation: warped_motion.c:is_intra_mode Unexecuted instantiation: blend_a64_mask_c.c:is_intra_mode Unexecuted instantiation: cfl_c.c:is_intra_mode Unexecuted instantiation: compute_sad_c.c:is_intra_mode Unexecuted instantiation: encode_txb_ref_c.c:is_intra_mode Unexecuted instantiation: filterintra_c.c:is_intra_mode Unexecuted instantiation: inter_prediction_c.c:is_intra_mode Unexecuted instantiation: intra_prediction_c.c:is_intra_mode Unexecuted instantiation: pack_unpack_c.c:is_intra_mode Unexecuted instantiation: picture_operators_c.c:is_intra_mode Unexecuted instantiation: sad_av1.c:is_intra_mode Unexecuted instantiation: variance.c:is_intra_mode Unexecuted instantiation: adaptive_mv_pred.c:is_intra_mode Unexecuted instantiation: blend_a64_mask.c:is_intra_mode Unexecuted instantiation: block_structures.c:is_intra_mode Unexecuted instantiation: cabac_context_model.c:is_intra_mode Unexecuted instantiation: cdef.c:is_intra_mode Unexecuted instantiation: coding_loop.c:is_intra_mode Unexecuted instantiation: coding_unit.c:is_intra_mode Unexecuted instantiation: coefficients.c:is_intra_mode Unexecuted instantiation: deblocking_filter.c:is_intra_mode Unexecuted instantiation: enc_dec_segments.c:is_intra_mode Unexecuted instantiation: encode_context.c:is_intra_mode Unexecuted instantiation: firstpass.c:is_intra_mode Unexecuted instantiation: global_me.c:is_intra_mode Unexecuted instantiation: global_me_cost.c:is_intra_mode Unexecuted instantiation: mcomp.c:is_intra_mode Unexecuted instantiation: me_context.c:is_intra_mode Unexecuted instantiation: pass2_strategy.c:is_intra_mode Unexecuted instantiation: pd_queue.c:is_intra_mode Unexecuted instantiation: rc_crf_cqp.c:is_intra_mode Unexecuted instantiation: corner_detect.c:is_intra_mode Unexecuted instantiation: global_motion.c:is_intra_mode Unexecuted instantiation: ransac.c:is_intra_mode Unexecuted instantiation: enc_warped_motion.c:is_intra_mode |
1612 | | |
1613 | 2.28M | static INLINE bool is_inter_mode(PredictionMode mode) { |
1614 | 2.28M | return mode >= SINGLE_INTER_MODE_START && mode < COMP_INTER_MODE_END; |
1615 | 2.28M | } Unexecuted instantiation: enc_handle.c:is_inter_mode Unexecuted instantiation: enc_settings.c:is_inter_mode Unexecuted instantiation: metadata_handle.c:is_inter_mode Unexecuted instantiation: av1me.c:is_inter_mode Unexecuted instantiation: bitstream_unit.c:is_inter_mode Unexecuted instantiation: cdef_process.c:is_inter_mode Unexecuted instantiation: common_dsp_rtcd.c:is_inter_mode Unexecuted instantiation: common_utils.c:is_inter_mode Unexecuted instantiation: deblocking_common.c:is_inter_mode Unexecuted instantiation: dlf_process.c:is_inter_mode Unexecuted instantiation: enc_cdef.c:is_inter_mode Unexecuted instantiation: enc_dec_process.c:is_inter_mode Unexecuted instantiation: enc_dec_results.c:is_inter_mode Unexecuted instantiation: enc_dec_tasks.c:is_inter_mode Unexecuted instantiation: enc_inter_prediction.c:is_inter_mode Unexecuted instantiation: enc_intra_prediction.c:is_inter_mode Unexecuted instantiation: enc_mode_config.c:is_inter_mode entropy_coding.c:is_inter_mode Line | Count | Source | 1613 | 14.6k | static INLINE bool is_inter_mode(PredictionMode mode) { | 1614 | 14.6k | return mode >= SINGLE_INTER_MODE_START && mode < COMP_INTER_MODE_END; | 1615 | 14.6k | } |
Unexecuted instantiation: ec_process.c:is_inter_mode Unexecuted instantiation: ec_results.c:is_inter_mode Unexecuted instantiation: fft.c:is_inter_mode full_loop.c:is_inter_mode Line | Count | Source | 1613 | 118k | static INLINE bool is_inter_mode(PredictionMode mode) { | 1614 | 118k | return mode >= SINGLE_INTER_MODE_START && mode < COMP_INTER_MODE_END; | 1615 | 118k | } |
Unexecuted instantiation: grainSynthesis.c:is_inter_mode Unexecuted instantiation: hash.c:is_inter_mode Unexecuted instantiation: initial_rc_process.c:is_inter_mode Unexecuted instantiation: initial_rc_results.c:is_inter_mode Unexecuted instantiation: inter_prediction.c:is_inter_mode Unexecuted instantiation: intra_prediction.c:is_inter_mode Unexecuted instantiation: inv_transforms.c:is_inter_mode Unexecuted instantiation: md_rate_estimation.c:is_inter_mode Unexecuted instantiation: me_sad_calculation.c:is_inter_mode Unexecuted instantiation: mode_decision.c:is_inter_mode Unexecuted instantiation: md_config_process.c:is_inter_mode Unexecuted instantiation: md_process.c:is_inter_mode Unexecuted instantiation: motion_estimation.c:is_inter_mode Unexecuted instantiation: me_process.c:is_inter_mode Unexecuted instantiation: me_results.c:is_inter_mode Unexecuted instantiation: neighbor_arrays.c:is_inter_mode Unexecuted instantiation: noise_model.c:is_inter_mode Unexecuted instantiation: packetization_process.c:is_inter_mode Unexecuted instantiation: packetization_reorder_queue.c:is_inter_mode Unexecuted instantiation: pic_analysis_process.c:is_inter_mode Unexecuted instantiation: pic_analysis_results.c:is_inter_mode Unexecuted instantiation: pic_buffer_desc.c:is_inter_mode Unexecuted instantiation: pcs.c:is_inter_mode Unexecuted instantiation: pd_process.c:is_inter_mode Unexecuted instantiation: pd_reorder_queue.c:is_inter_mode Unexecuted instantiation: pd_results.c:is_inter_mode Unexecuted instantiation: pic_demux_results.c:is_inter_mode Unexecuted instantiation: pic_manager_process.c:is_inter_mode Unexecuted instantiation: pic_manager_queue.c:is_inter_mode Unexecuted instantiation: pic_operators.c:is_inter_mode Unexecuted instantiation: pred_structure.c:is_inter_mode product_coding_loop.c:is_inter_mode Line | Count | Source | 1613 | 2.15M | static INLINE bool is_inter_mode(PredictionMode mode) { | 1614 | 2.15M | return mode >= SINGLE_INTER_MODE_START && mode < COMP_INTER_MODE_END; | 1615 | 2.15M | } |
Unexecuted instantiation: ac_bias.c:is_inter_mode Unexecuted instantiation: rc_aq.c:is_inter_mode Unexecuted instantiation: rc_process.c:is_inter_mode Unexecuted instantiation: rc_results.c:is_inter_mode Unexecuted instantiation: rc_rtc_cbr.c:is_inter_mode Unexecuted instantiation: rc_tasks.c:is_inter_mode Unexecuted instantiation: rc_vbr_cbr.c:is_inter_mode Line | Count | Source | 1613 | 3.63k | static INLINE bool is_inter_mode(PredictionMode mode) { | 1614 | 3.63k | return mode >= SINGLE_INTER_MODE_START && mode < COMP_INTER_MODE_END; | 1615 | 3.63k | } |
Unexecuted instantiation: reference_object.c:is_inter_mode Unexecuted instantiation: resource_coordination_process.c:is_inter_mode Unexecuted instantiation: resource_coordination_results.c:is_inter_mode Unexecuted instantiation: rest_process.c:is_inter_mode Unexecuted instantiation: restoration_pick.c:is_inter_mode Unexecuted instantiation: segmentation_params.c:is_inter_mode Unexecuted instantiation: sequence_control_set.c:is_inter_mode Unexecuted instantiation: src_ops_process.c:is_inter_mode Unexecuted instantiation: super_res.c:is_inter_mode Unexecuted instantiation: svt_log.c:is_inter_mode Unexecuted instantiation: svt_malloc.c:is_inter_mode Unexecuted instantiation: svt_psnr.c:is_inter_mode Unexecuted instantiation: svt_threads.c:is_inter_mode Unexecuted instantiation: sys_resource_manager.c:is_inter_mode Unexecuted instantiation: kernel_dispatch.c:is_inter_mode Unexecuted instantiation: temporal_filtering.c:is_inter_mode Unexecuted instantiation: transforms.c:is_inter_mode Unexecuted instantiation: utility.c:is_inter_mode Unexecuted instantiation: vector.c:is_inter_mode Unexecuted instantiation: blend_a64_mask_c.c:is_inter_mode Unexecuted instantiation: cfl_c.c:is_inter_mode Unexecuted instantiation: compute_sad_c.c:is_inter_mode Unexecuted instantiation: encode_txb_ref_c.c:is_inter_mode Unexecuted instantiation: filterintra_c.c:is_inter_mode Unexecuted instantiation: inter_prediction_c.c:is_inter_mode Unexecuted instantiation: intra_prediction_c.c:is_inter_mode Unexecuted instantiation: pack_unpack_c.c:is_inter_mode Unexecuted instantiation: picture_operators_c.c:is_inter_mode Unexecuted instantiation: adaptive_mv_pred.c:is_inter_mode Unexecuted instantiation: block_structures.c:is_inter_mode Unexecuted instantiation: cabac_context_model.c:is_inter_mode Unexecuted instantiation: coding_loop.c:is_inter_mode Unexecuted instantiation: coding_unit.c:is_inter_mode Unexecuted instantiation: coefficients.c:is_inter_mode Unexecuted instantiation: deblocking_filter.c:is_inter_mode Unexecuted instantiation: enc_dec_segments.c:is_inter_mode Unexecuted instantiation: encode_context.c:is_inter_mode Unexecuted instantiation: global_me.c:is_inter_mode Unexecuted instantiation: global_me_cost.c:is_inter_mode Unexecuted instantiation: me_context.c:is_inter_mode Unexecuted instantiation: pd_queue.c:is_inter_mode Unexecuted instantiation: rc_crf_cqp.c:is_inter_mode Unexecuted instantiation: corner_detect.c:is_inter_mode Unexecuted instantiation: ransac.c:is_inter_mode Unexecuted instantiation: enc_warped_motion.c:is_inter_mode |
1616 | | |
1617 | 0 | static INLINE int32_t is_inter_compound_mode(PredictionMode mode) { |
1618 | 0 | return mode >= NEAREST_NEARESTMV && mode <= NEW_NEWMV; |
1619 | 0 | } Unexecuted instantiation: enc_handle.c:is_inter_compound_mode Unexecuted instantiation: enc_settings.c:is_inter_compound_mode Unexecuted instantiation: metadata_handle.c:is_inter_compound_mode Unexecuted instantiation: av1me.c:is_inter_compound_mode Unexecuted instantiation: bitstream_unit.c:is_inter_compound_mode Unexecuted instantiation: cdef_process.c:is_inter_compound_mode Unexecuted instantiation: common_dsp_rtcd.c:is_inter_compound_mode Unexecuted instantiation: common_utils.c:is_inter_compound_mode Unexecuted instantiation: deblocking_common.c:is_inter_compound_mode Unexecuted instantiation: dlf_process.c:is_inter_compound_mode Unexecuted instantiation: enc_cdef.c:is_inter_compound_mode Unexecuted instantiation: enc_dec_process.c:is_inter_compound_mode Unexecuted instantiation: enc_dec_results.c:is_inter_compound_mode Unexecuted instantiation: enc_dec_tasks.c:is_inter_compound_mode Unexecuted instantiation: enc_inter_prediction.c:is_inter_compound_mode Unexecuted instantiation: enc_intra_prediction.c:is_inter_compound_mode Unexecuted instantiation: enc_mode_config.c:is_inter_compound_mode Unexecuted instantiation: entropy_coding.c:is_inter_compound_mode Unexecuted instantiation: ec_process.c:is_inter_compound_mode Unexecuted instantiation: ec_results.c:is_inter_compound_mode Unexecuted instantiation: fft.c:is_inter_compound_mode Unexecuted instantiation: full_loop.c:is_inter_compound_mode Unexecuted instantiation: grainSynthesis.c:is_inter_compound_mode Unexecuted instantiation: hash.c:is_inter_compound_mode Unexecuted instantiation: initial_rc_process.c:is_inter_compound_mode Unexecuted instantiation: initial_rc_results.c:is_inter_compound_mode Unexecuted instantiation: inter_prediction.c:is_inter_compound_mode Unexecuted instantiation: intra_prediction.c:is_inter_compound_mode Unexecuted instantiation: inv_transforms.c:is_inter_compound_mode Unexecuted instantiation: md_rate_estimation.c:is_inter_compound_mode Unexecuted instantiation: me_sad_calculation.c:is_inter_compound_mode Unexecuted instantiation: mode_decision.c:is_inter_compound_mode Unexecuted instantiation: md_config_process.c:is_inter_compound_mode Unexecuted instantiation: md_process.c:is_inter_compound_mode Unexecuted instantiation: motion_estimation.c:is_inter_compound_mode Unexecuted instantiation: me_process.c:is_inter_compound_mode Unexecuted instantiation: me_results.c:is_inter_compound_mode Unexecuted instantiation: neighbor_arrays.c:is_inter_compound_mode Unexecuted instantiation: noise_model.c:is_inter_compound_mode Unexecuted instantiation: packetization_process.c:is_inter_compound_mode Unexecuted instantiation: packetization_reorder_queue.c:is_inter_compound_mode Unexecuted instantiation: pic_analysis_process.c:is_inter_compound_mode Unexecuted instantiation: pic_analysis_results.c:is_inter_compound_mode Unexecuted instantiation: pic_buffer_desc.c:is_inter_compound_mode Unexecuted instantiation: pcs.c:is_inter_compound_mode Unexecuted instantiation: pd_process.c:is_inter_compound_mode Unexecuted instantiation: pd_reorder_queue.c:is_inter_compound_mode Unexecuted instantiation: pd_results.c:is_inter_compound_mode Unexecuted instantiation: pic_demux_results.c:is_inter_compound_mode Unexecuted instantiation: pic_manager_process.c:is_inter_compound_mode Unexecuted instantiation: pic_manager_queue.c:is_inter_compound_mode Unexecuted instantiation: pic_operators.c:is_inter_compound_mode Unexecuted instantiation: pred_structure.c:is_inter_compound_mode Unexecuted instantiation: product_coding_loop.c:is_inter_compound_mode Unexecuted instantiation: ac_bias.c:is_inter_compound_mode Unexecuted instantiation: rc_aq.c:is_inter_compound_mode Unexecuted instantiation: rc_process.c:is_inter_compound_mode Unexecuted instantiation: rc_results.c:is_inter_compound_mode Unexecuted instantiation: rc_rtc_cbr.c:is_inter_compound_mode Unexecuted instantiation: rc_tasks.c:is_inter_compound_mode Unexecuted instantiation: rc_vbr_cbr.c:is_inter_compound_mode Unexecuted instantiation: rd_cost.c:is_inter_compound_mode Unexecuted instantiation: reference_object.c:is_inter_compound_mode Unexecuted instantiation: resource_coordination_process.c:is_inter_compound_mode Unexecuted instantiation: resource_coordination_results.c:is_inter_compound_mode Unexecuted instantiation: rest_process.c:is_inter_compound_mode Unexecuted instantiation: restoration_pick.c:is_inter_compound_mode Unexecuted instantiation: segmentation_params.c:is_inter_compound_mode Unexecuted instantiation: sequence_control_set.c:is_inter_compound_mode Unexecuted instantiation: src_ops_process.c:is_inter_compound_mode Unexecuted instantiation: super_res.c:is_inter_compound_mode Unexecuted instantiation: svt_log.c:is_inter_compound_mode Unexecuted instantiation: svt_malloc.c:is_inter_compound_mode Unexecuted instantiation: svt_psnr.c:is_inter_compound_mode Unexecuted instantiation: svt_threads.c:is_inter_compound_mode Unexecuted instantiation: sys_resource_manager.c:is_inter_compound_mode Unexecuted instantiation: kernel_dispatch.c:is_inter_compound_mode Unexecuted instantiation: temporal_filtering.c:is_inter_compound_mode Unexecuted instantiation: transforms.c:is_inter_compound_mode Unexecuted instantiation: utility.c:is_inter_compound_mode Unexecuted instantiation: vector.c:is_inter_compound_mode Unexecuted instantiation: blend_a64_mask_c.c:is_inter_compound_mode Unexecuted instantiation: cfl_c.c:is_inter_compound_mode Unexecuted instantiation: compute_sad_c.c:is_inter_compound_mode Unexecuted instantiation: encode_txb_ref_c.c:is_inter_compound_mode Unexecuted instantiation: filterintra_c.c:is_inter_compound_mode Unexecuted instantiation: inter_prediction_c.c:is_inter_compound_mode Unexecuted instantiation: intra_prediction_c.c:is_inter_compound_mode Unexecuted instantiation: pack_unpack_c.c:is_inter_compound_mode Unexecuted instantiation: picture_operators_c.c:is_inter_compound_mode Unexecuted instantiation: adaptive_mv_pred.c:is_inter_compound_mode Unexecuted instantiation: block_structures.c:is_inter_compound_mode Unexecuted instantiation: cabac_context_model.c:is_inter_compound_mode Unexecuted instantiation: coding_loop.c:is_inter_compound_mode Unexecuted instantiation: coding_unit.c:is_inter_compound_mode Unexecuted instantiation: coefficients.c:is_inter_compound_mode Unexecuted instantiation: deblocking_filter.c:is_inter_compound_mode Unexecuted instantiation: enc_dec_segments.c:is_inter_compound_mode Unexecuted instantiation: encode_context.c:is_inter_compound_mode Unexecuted instantiation: global_me.c:is_inter_compound_mode Unexecuted instantiation: global_me_cost.c:is_inter_compound_mode Unexecuted instantiation: me_context.c:is_inter_compound_mode Unexecuted instantiation: pd_queue.c:is_inter_compound_mode Unexecuted instantiation: rc_crf_cqp.c:is_inter_compound_mode Unexecuted instantiation: corner_detect.c:is_inter_compound_mode Unexecuted instantiation: ransac.c:is_inter_compound_mode Unexecuted instantiation: enc_warped_motion.c:is_inter_compound_mode |
1620 | | |
1621 | 0 | static INLINE int is_inter_singleref_mode(PredictionMode mode) { |
1622 | 0 | return mode >= SINGLE_INTER_MODE_START && mode < SINGLE_INTER_MODE_END; |
1623 | 0 | } Unexecuted instantiation: enc_handle.c:is_inter_singleref_mode Unexecuted instantiation: enc_settings.c:is_inter_singleref_mode Unexecuted instantiation: metadata_handle.c:is_inter_singleref_mode Unexecuted instantiation: av1me.c:is_inter_singleref_mode Unexecuted instantiation: bitstream_unit.c:is_inter_singleref_mode Unexecuted instantiation: cdef_process.c:is_inter_singleref_mode Unexecuted instantiation: common_dsp_rtcd.c:is_inter_singleref_mode Unexecuted instantiation: common_utils.c:is_inter_singleref_mode Unexecuted instantiation: deblocking_common.c:is_inter_singleref_mode Unexecuted instantiation: dlf_process.c:is_inter_singleref_mode Unexecuted instantiation: enc_cdef.c:is_inter_singleref_mode Unexecuted instantiation: enc_dec_process.c:is_inter_singleref_mode Unexecuted instantiation: enc_dec_results.c:is_inter_singleref_mode Unexecuted instantiation: enc_dec_tasks.c:is_inter_singleref_mode Unexecuted instantiation: enc_inter_prediction.c:is_inter_singleref_mode Unexecuted instantiation: enc_intra_prediction.c:is_inter_singleref_mode Unexecuted instantiation: enc_mode_config.c:is_inter_singleref_mode Unexecuted instantiation: entropy_coding.c:is_inter_singleref_mode Unexecuted instantiation: ec_process.c:is_inter_singleref_mode Unexecuted instantiation: ec_results.c:is_inter_singleref_mode Unexecuted instantiation: fft.c:is_inter_singleref_mode Unexecuted instantiation: full_loop.c:is_inter_singleref_mode Unexecuted instantiation: grainSynthesis.c:is_inter_singleref_mode Unexecuted instantiation: hash.c:is_inter_singleref_mode Unexecuted instantiation: initial_rc_process.c:is_inter_singleref_mode Unexecuted instantiation: initial_rc_results.c:is_inter_singleref_mode Unexecuted instantiation: inter_prediction.c:is_inter_singleref_mode Unexecuted instantiation: intra_prediction.c:is_inter_singleref_mode Unexecuted instantiation: inv_transforms.c:is_inter_singleref_mode Unexecuted instantiation: md_rate_estimation.c:is_inter_singleref_mode Unexecuted instantiation: me_sad_calculation.c:is_inter_singleref_mode Unexecuted instantiation: mode_decision.c:is_inter_singleref_mode Unexecuted instantiation: md_config_process.c:is_inter_singleref_mode Unexecuted instantiation: md_process.c:is_inter_singleref_mode Unexecuted instantiation: motion_estimation.c:is_inter_singleref_mode Unexecuted instantiation: me_process.c:is_inter_singleref_mode Unexecuted instantiation: me_results.c:is_inter_singleref_mode Unexecuted instantiation: neighbor_arrays.c:is_inter_singleref_mode Unexecuted instantiation: noise_model.c:is_inter_singleref_mode Unexecuted instantiation: packetization_process.c:is_inter_singleref_mode Unexecuted instantiation: packetization_reorder_queue.c:is_inter_singleref_mode Unexecuted instantiation: pic_analysis_process.c:is_inter_singleref_mode Unexecuted instantiation: pic_analysis_results.c:is_inter_singleref_mode Unexecuted instantiation: pic_buffer_desc.c:is_inter_singleref_mode Unexecuted instantiation: pcs.c:is_inter_singleref_mode Unexecuted instantiation: pd_process.c:is_inter_singleref_mode Unexecuted instantiation: pd_reorder_queue.c:is_inter_singleref_mode Unexecuted instantiation: pd_results.c:is_inter_singleref_mode Unexecuted instantiation: pic_demux_results.c:is_inter_singleref_mode Unexecuted instantiation: pic_manager_process.c:is_inter_singleref_mode Unexecuted instantiation: pic_manager_queue.c:is_inter_singleref_mode Unexecuted instantiation: pic_operators.c:is_inter_singleref_mode Unexecuted instantiation: pred_structure.c:is_inter_singleref_mode Unexecuted instantiation: product_coding_loop.c:is_inter_singleref_mode Unexecuted instantiation: ac_bias.c:is_inter_singleref_mode Unexecuted instantiation: rc_aq.c:is_inter_singleref_mode Unexecuted instantiation: rc_process.c:is_inter_singleref_mode Unexecuted instantiation: rc_results.c:is_inter_singleref_mode Unexecuted instantiation: rc_rtc_cbr.c:is_inter_singleref_mode Unexecuted instantiation: rc_tasks.c:is_inter_singleref_mode Unexecuted instantiation: rc_vbr_cbr.c:is_inter_singleref_mode Unexecuted instantiation: rd_cost.c:is_inter_singleref_mode Unexecuted instantiation: reference_object.c:is_inter_singleref_mode Unexecuted instantiation: resource_coordination_process.c:is_inter_singleref_mode Unexecuted instantiation: resource_coordination_results.c:is_inter_singleref_mode Unexecuted instantiation: rest_process.c:is_inter_singleref_mode Unexecuted instantiation: restoration_pick.c:is_inter_singleref_mode Unexecuted instantiation: segmentation_params.c:is_inter_singleref_mode Unexecuted instantiation: sequence_control_set.c:is_inter_singleref_mode Unexecuted instantiation: src_ops_process.c:is_inter_singleref_mode Unexecuted instantiation: super_res.c:is_inter_singleref_mode Unexecuted instantiation: svt_log.c:is_inter_singleref_mode Unexecuted instantiation: svt_malloc.c:is_inter_singleref_mode Unexecuted instantiation: svt_psnr.c:is_inter_singleref_mode Unexecuted instantiation: svt_threads.c:is_inter_singleref_mode Unexecuted instantiation: sys_resource_manager.c:is_inter_singleref_mode Unexecuted instantiation: kernel_dispatch.c:is_inter_singleref_mode Unexecuted instantiation: temporal_filtering.c:is_inter_singleref_mode Unexecuted instantiation: transforms.c:is_inter_singleref_mode Unexecuted instantiation: utility.c:is_inter_singleref_mode Unexecuted instantiation: vector.c:is_inter_singleref_mode Unexecuted instantiation: blend_a64_mask_c.c:is_inter_singleref_mode Unexecuted instantiation: cfl_c.c:is_inter_singleref_mode Unexecuted instantiation: compute_sad_c.c:is_inter_singleref_mode Unexecuted instantiation: encode_txb_ref_c.c:is_inter_singleref_mode Unexecuted instantiation: filterintra_c.c:is_inter_singleref_mode Unexecuted instantiation: inter_prediction_c.c:is_inter_singleref_mode Unexecuted instantiation: intra_prediction_c.c:is_inter_singleref_mode Unexecuted instantiation: pack_unpack_c.c:is_inter_singleref_mode Unexecuted instantiation: picture_operators_c.c:is_inter_singleref_mode Unexecuted instantiation: adaptive_mv_pred.c:is_inter_singleref_mode Unexecuted instantiation: block_structures.c:is_inter_singleref_mode Unexecuted instantiation: cabac_context_model.c:is_inter_singleref_mode Unexecuted instantiation: coding_loop.c:is_inter_singleref_mode Unexecuted instantiation: coding_unit.c:is_inter_singleref_mode Unexecuted instantiation: coefficients.c:is_inter_singleref_mode Unexecuted instantiation: deblocking_filter.c:is_inter_singleref_mode Unexecuted instantiation: enc_dec_segments.c:is_inter_singleref_mode Unexecuted instantiation: encode_context.c:is_inter_singleref_mode Unexecuted instantiation: global_me.c:is_inter_singleref_mode Unexecuted instantiation: global_me_cost.c:is_inter_singleref_mode Unexecuted instantiation: me_context.c:is_inter_singleref_mode Unexecuted instantiation: pd_queue.c:is_inter_singleref_mode Unexecuted instantiation: rc_crf_cqp.c:is_inter_singleref_mode Unexecuted instantiation: corner_detect.c:is_inter_singleref_mode Unexecuted instantiation: ransac.c:is_inter_singleref_mode Unexecuted instantiation: enc_warped_motion.c:is_inter_singleref_mode |
1624 | | |
1625 | | //**********************************************************************************************************************// |
1626 | | // encoder.h |
1627 | | typedef enum FrameContextIndex { |
1628 | | // regular inter frame |
1629 | | REGULAR_FRAME = 0, |
1630 | | // alternate reference frame |
1631 | | ARF_FRAME = 1, |
1632 | | // overlay frame |
1633 | | OVERLAY_FRAME = 2, |
1634 | | // golden frame |
1635 | | GLD_FRAME = 3, |
1636 | | // backward reference frame |
1637 | | BRF_FRAME = 4, |
1638 | | // extra alternate reference frame |
1639 | | EXT_ARF_FRAME = 5, |
1640 | | FRAME_CONTEXT_INDEXES |
1641 | | } FrameContextIndex; |
1642 | | |
1643 | | //**********************************************************************************************************************// |
1644 | | // common.h |
1645 | 97.5k | #define av1_zero(dest) memset(&(dest), 0, sizeof(dest)) |
1646 | | //**********************************************************************************************************************// |
1647 | | // alloccommon.h |
1648 | 862 | #define INVALID_IDX -1 // Invalid buffer index. |
1649 | | |
1650 | | //**********************************************************************************************************************// |
1651 | | // quant_common.h |
1652 | 110k | #define MINQ 0 |
1653 | 905k | #define MAXQ 255 |
1654 | 110k | #define QINDEX_RANGE (MAXQ - MINQ + 1) |
1655 | 862 | #define QINDEX_BITS 8 |
1656 | 7.19k | #define MIN_QP_VALUE 0 |
1657 | 1.18M | #define MAX_QP_VALUE 63 |
1658 | | // Total number of QM sets stored |
1659 | 1.54M | #define QM_LEVEL_BITS 4 |
1660 | 1.54M | #define NUM_QM_LEVELS (1 << QM_LEVEL_BITS) |
1661 | | // av1_loopfilter.h |
1662 | 51.4k | #define MAX_LOOP_FILTER 63 |
1663 | 82.2k | #define SIMD_WIDTH 16 |
1664 | | |
1665 | | typedef struct LoopFilter { |
1666 | | int32_t filter_level[2]; |
1667 | | int32_t filter_level_u; |
1668 | | int32_t filter_level_v; |
1669 | | |
1670 | | int32_t sharpness_level; |
1671 | | |
1672 | | uint8_t mode_ref_delta_enabled; |
1673 | | uint8_t mode_ref_delta_update; |
1674 | | |
1675 | | // 0 = Intra, Last, Last2+Last3, |
1676 | | // GF, BRF, ARF2, ARF |
1677 | | int8_t ref_deltas[REF_FRAMES]; |
1678 | | |
1679 | | // 0 = ZERO_MV, MV |
1680 | | int8_t mode_deltas[MAX_MODE_LF_DELTAS]; |
1681 | | int32_t combine_vert_horz_lf; |
1682 | | } LoopFilter; |
1683 | | |
1684 | 6.34k | #define MAX_SEGMENTS 8 |
1685 | | |
1686 | | // Need to align this structure so when it is declared and |
1687 | | // passed it can be loaded into vector registers. |
1688 | | typedef struct LoopFilterThresh { |
1689 | | DECLARE_ALIGNED(SIMD_WIDTH, uint8_t, mblim[SIMD_WIDTH]); |
1690 | | DECLARE_ALIGNED(SIMD_WIDTH, uint8_t, lim[SIMD_WIDTH]); |
1691 | | DECLARE_ALIGNED(SIMD_WIDTH, uint8_t, hev_thr[SIMD_WIDTH]); |
1692 | | } LoopFilterThresh; |
1693 | | |
1694 | | typedef struct LoopFilterInfoN { |
1695 | | LoopFilterThresh lfthr[MAX_LOOP_FILTER + 1]; |
1696 | | uint8_t lvl[MAX_PLANES][MAX_SEGMENTS][2][REF_FRAMES][MAX_MODE_LF_DELTAS]; |
1697 | | } LoopFilterInfoN; |
1698 | | |
1699 | | #define CDEF_PRI_STRENGTHS 16 |
1700 | | #define CDEF_SEC_STRENGTHS 4 |
1701 | | // Bits of precision used for the model |
1702 | 6.89k | #define WARPEDMODEL_PREC_BITS 16 |
1703 | | // The following constants describe the various precisions |
1704 | | // of different parameters in the global motion experiment. |
1705 | | // |
1706 | | // Given the general homography: |
1707 | | // [x' (a b c [x |
1708 | | // z . y' = d e f * y |
1709 | | // 1] 0 0 1) 1] |
1710 | | // |
1711 | | // Constants using the name ALPHA here are related to parameters |
1712 | | // a, b, d, e. Constants using the name TRANS are related |
1713 | | // to parameters c and f. |
1714 | | // |
1715 | | // Anything ending in PREC_BITS is the number of bits of precision |
1716 | | // to maintain when converting from double to integer. |
1717 | | // |
1718 | | // The ABS parameters are used to create an upper and lower bound |
1719 | | // for each parameter. In other words, after a parameter is integerized |
1720 | | // it is clamped between -(1 << ABS_XXX_BITS) and (1 << ABS_XXX_BITS). |
1721 | | // |
1722 | | // XXX_PREC_DIFF and XXX_DECODE_FACTOR |
1723 | | // are computed once here to prevent repetitive |
1724 | | // computation on the decoder side. These are |
1725 | | // to allow the global motion parameters to be encoded in a lower |
1726 | | // precision than the warped model precision. This means that they |
1727 | | // need to be changed to warped precision when they are decoded. |
1728 | | // |
1729 | | // XX_MIN, XX_MAX are also computed to avoid repeated computation |
1730 | | |
1731 | 0 | #define SUBEXPFIN_K 3 |
1732 | 0 | #define GM_TRANS_PREC_BITS 6 |
1733 | 0 | #define GM_ABS_TRANS_BITS 12 |
1734 | 0 | #define GM_ABS_TRANS_ONLY_BITS (GM_ABS_TRANS_BITS - GM_TRANS_PREC_BITS + 3) |
1735 | 0 | #define GM_TRANS_PREC_DIFF (WARPEDMODEL_PREC_BITS - GM_TRANS_PREC_BITS) |
1736 | 0 | #define GM_TRANS_ONLY_PREC_DIFF (WARPEDMODEL_PREC_BITS - 3) |
1737 | 0 | #define GM_TRANS_DECODE_FACTOR (1 << GM_TRANS_PREC_DIFF) |
1738 | | |
1739 | 0 | #define GM_ALPHA_PREC_BITS 15 |
1740 | 0 | #define GM_ABS_ALPHA_BITS 12 |
1741 | 0 | #define GM_ALPHA_PREC_DIFF (WARPEDMODEL_PREC_BITS - GM_ALPHA_PREC_BITS) |
1742 | | #define GM_ALPHA_DECODE_FACTOR (1 << GM_ALPHA_PREC_DIFF) |
1743 | | |
1744 | 0 | #define GM_TRANS_MAX (1 << GM_ABS_TRANS_BITS) |
1745 | 0 | #define GM_ALPHA_MAX (1 << GM_ABS_ALPHA_BITS) |
1746 | | |
1747 | 0 | #define GM_TRANS_MIN -GM_TRANS_MAX |
1748 | | #define GM_ALPHA_MIN -GM_ALPHA_MAX |
1749 | | |
1750 | | typedef enum TransformationType { |
1751 | | IDENTITY = 0, // identity transformation, 0-parameter |
1752 | | TRANSLATION = 1, // translational motion 2-parameter |
1753 | | ROTZOOM = 2, // simplified affine with rotation + zoom only, 4-parameter |
1754 | | AFFINE = 3, // affine, 6-parameter |
1755 | | TRANS_TYPES, |
1756 | | } TransformationType; |
1757 | | |
1758 | 0 | #define MAX_PARAMDIM 6 |
1759 | | |
1760 | | // The order of values in the wmmat matrix below is best described |
1761 | | // by the affine transformation: |
1762 | | // [x' (m2 m3 m0 [x |
1763 | | // z . y' = m4 m5 m1 * y |
1764 | | // 1] 0 0 1) 1] |
1765 | | typedef struct WarpedMotionParams { |
1766 | | TransformationType wmtype; |
1767 | | int32_t wmmat[MAX_PARAMDIM]; |
1768 | | int16_t alpha, beta, gamma, delta; |
1769 | | int8_t invalid; |
1770 | | } WarpedMotionParams; |
1771 | | |
1772 | | /*! Scale factors and scaling function pointers when reference and current frame dimensions are not equal */ |
1773 | | typedef struct ScaleFactors { |
1774 | | int32_t x_scale_fp; // horizontal fixed point scale factor |
1775 | | int32_t y_scale_fp; // vertical fixed point scale factor |
1776 | | int32_t x_step_q4; |
1777 | | int32_t y_step_q4; |
1778 | | |
1779 | | int32_t (*scale_value_x)(int32_t val, const struct ScaleFactors* sf); |
1780 | | int32_t (*scale_value_y)(int32_t val, const struct ScaleFactors* sf); |
1781 | | } ScaleFactors; |
1782 | | |
1783 | | /* clang-format off */ |
1784 | | static const WarpedMotionParams default_warp_params = { |
1785 | | IDENTITY, |
1786 | | {0, 0, (1 << WARPEDMODEL_PREC_BITS), 0, 0, (1 << WARPEDMODEL_PREC_BITS)}, |
1787 | | 0, 0, 0, 0, |
1788 | | 0, |
1789 | | }; |
1790 | | |
1791 | | /*********************************** AV1_OBU ********************************/ |
1792 | | |
1793 | | //**********************************************************************************************************************// |
1794 | | //**********************************************************************************************************************// |
1795 | | |
1796 | | // ***************************** Definitions ***************************** |
1797 | | |
1798 | 0 | #define SC_FRAMES_TO_IGNORE 1000 // The speed control algorith starts after SC_FRAMES_TO_IGNORE number frames. |
1799 | 0 | #define SC_FRAMES_INTERVAL_SPEED 60 // The speed control Interval To Check the speed |
1800 | 0 | #define SC_FRAMES_INTERVAL_T1 60 // The speed control Interval Threshold1 |
1801 | 0 | #define SC_FRAMES_INTERVAL_T2 180 // The speed control Interval Threshold2 |
1802 | | #define SC_FRAMES_INTERVAL_T3 120 // The speed control Interval Threshold3 |
1803 | | |
1804 | | /** Redefine ASSERT() to avoid warnings |
1805 | | */ |
1806 | | #if defined _DEBUG || _DEBUG_ |
1807 | | #define ASSERT assert |
1808 | | #elif defined _DEBUG |
1809 | | #define ASSERT assert |
1810 | | #else |
1811 | 97.5k | #define ASSERT(exp) ((void)sizeof(exp)) |
1812 | | #endif |
1813 | | |
1814 | 0 | #define ME_FILTER_TAP 4 |
1815 | 862 | #define SUB_SAD_SEARCH 0 |
1816 | 0 | #define FULL_SAD_SEARCH 1 |
1817 | | /************************ INPUT CLASS **************************/ |
1818 | | typedef enum ResolutionRange { |
1819 | | INPUT_SIZE_240p_RANGE = 0, |
1820 | | INPUT_SIZE_360p_RANGE = 1, |
1821 | | INPUT_SIZE_480p_RANGE = 2, |
1822 | | INPUT_SIZE_720p_RANGE = 3, |
1823 | | INPUT_SIZE_1080p_RANGE = 4, |
1824 | | INPUT_SIZE_4K_RANGE = 5, |
1825 | | INPUT_SIZE_8K_RANGE = 6, |
1826 | | INPUT_SIZE_COUNT = 7 |
1827 | | } ResolutionRange; |
1828 | | |
1829 | 2.58k | #define INPUT_SIZE_240p_TH 0x28500 // 0.165 Million |
1830 | 0 | #define INPUT_SIZE_360p_TH 0x4CE00 // 0.315 Million |
1831 | 0 | #define INPUT_SIZE_480p_TH 0xA1400 // 0.661 Million |
1832 | 0 | #define INPUT_SIZE_720p_TH 0x16DA00 // 1.5 Million |
1833 | 0 | #define INPUT_SIZE_1080p_TH 0x535200 // 5.46 Million |
1834 | 1.29k | #define INPUT_SIZE_4K_TH 0x140A000 // 21 Million |
1835 | | #define INPUT_SIZE_8K_TH 0X5028000 // 84 Million |
1836 | | |
1837 | | // There must absolutely be no reason to use more than 2x of original bytes, assuming 4:2:0 |
1838 | 431 | #define BITSTREAM_BUFFER_SIZE(pixels) ((pixels) * 3 / 2 * 2) |
1839 | | |
1840 | | /** The EbPtr type is intended to be used to pass pointers to and from the eBrisk |
1841 | | API. This is a 32 bit pointer and is aligned on a 32 bit word boundary. |
1842 | | */ |
1843 | | typedef void *EbPtr; |
1844 | | |
1845 | | /** The EbString type is intended to be used to pass "C" type strings to and |
1846 | | from the eBrisk API. The EbString type is a 32 bit pointer to a zero terminated |
1847 | | string. The pointer is word aligned and the string is byte aligned. |
1848 | | */ |
1849 | | typedef char * EbString; |
1850 | | |
1851 | | /** The EbByte type is intended to be used to pass arrays of bytes such as |
1852 | | buffers to and from the eBrisk API. The EbByte type is a 32 bit pointer. |
1853 | | The pointer is word aligned and the buffer is byte aligned. |
1854 | | */ |
1855 | | typedef uint8_t * EbByte; |
1856 | | |
1857 | | /** The EB_SAMPLE type is intended to be used to pass arrays of bytes such as |
1858 | | buffers to and from the eBrisk API. The EbByte type is a 32 bit pointer. |
1859 | | The pointer is word aligned and the buffer is byte aligned. |
1860 | | */ |
1861 | | |
1862 | | /** The MD_BIT_DEPTH_MODE type is used to describe the bitdepth of MD path. |
1863 | | */ |
1864 | | |
1865 | | typedef enum MD_BIT_DEPTH_MODE |
1866 | | { |
1867 | | EB_8_BIT_MD = 0, // 8bit mode decision |
1868 | | EB_10_BIT_MD = 1, // 10bit mode decision |
1869 | | EB_DUAL_BIT_MD = 2 // Auto: 8bit & 10bit mode decision |
1870 | | } MD_BIT_DEPTH_MODE; |
1871 | | |
1872 | | typedef enum Tune { |
1873 | | TUNE_VQ = 0, // Visual Quality (video) |
1874 | | TUNE_PSNR = 1, // Average of (PSNR, SSIM, VMAF) |
1875 | | TUNE_SSIM = 2, // SSIM-optimized |
1876 | | TUNE_IQ = 3, // Image Quality |
1877 | | #if FTR_TUNE_VMAF |
1878 | | TUNE_MS_SSIM = 4, // MS_SSIM and SSIMULACRA2 optimized |
1879 | | TUNE_VMAF = 5 // VMAF preprocessing (unsharp filter on luma) |
1880 | | #else |
1881 | | TUNE_MS_SSIM = 4 // MS_SSIM and SSIMULACRA2 optimized |
1882 | | |
1883 | | #endif |
1884 | | } Tune; |
1885 | | |
1886 | | /* |
1887 | | * The SliceType type is used to describe the slice prediction type. |
1888 | | */ |
1889 | | typedef enum ATTRIBUTE_PACKED { |
1890 | | B_SLICE = 0, // Inter frame |
1891 | | I_SLICE = 1, // Intra only frame |
1892 | | INVALID_SLICE = 0xFF |
1893 | | } SliceType; |
1894 | | |
1895 | 431 | #define SPEED_CONTROL_INIT_MOD ENC_M5; |
1896 | | typedef enum ATTRIBUTE_PACKED { |
1897 | | REF_LIST_0 = 0, |
1898 | | REF_LIST_1 = 1, |
1899 | | TOTAL_NUM_OF_REF_LISTS = 2, |
1900 | | INVALID_LIST = 0xFF |
1901 | | } RefList; |
1902 | | |
1903 | | typedef enum ATTRIBUTE_PACKED { |
1904 | | UNI_PRED_LIST_0 = 0, |
1905 | | UNI_PRED_LIST_1 = 1, |
1906 | | BI_PRED = 2, |
1907 | | EB_PREDDIRECTION_TOTAL = 3, |
1908 | | INVALID_PRED_DIRECTION = 0xFF |
1909 | | } PredDirection; |
1910 | | |
1911 | 0 | #define MAX_PAL_CAND 14 |
1912 | | |
1913 | | typedef struct { |
1914 | | // Value of base colors for Y only |
1915 | | uint16_t palette_colors[PALETTE_MAX_SIZE]; |
1916 | | // Number of base colors for Y only |
1917 | | uint8_t palette_size; |
1918 | | } PaletteLumaModeInfo; |
1919 | | |
1920 | | typedef struct { |
1921 | | // Value of base colors for Y, U, and V |
1922 | | uint16_t palette_colors[3 * PALETTE_MAX_SIZE]; |
1923 | | // Number of base colors for Y (0) and UV (1) |
1924 | | } PaletteModeInfo; |
1925 | | |
1926 | | typedef struct { |
1927 | | PaletteModeInfo pmi; |
1928 | | uint8_t *color_idx_map; |
1929 | | } PaletteInfo; |
1930 | | /** The EbHandle type is used to define OS object handles for threads, |
1931 | | semaphores, mutexs, etc. |
1932 | | */ |
1933 | | typedef void * EbHandle; |
1934 | | |
1935 | | /** The AtomicVarU32 type is used to define sn obj with its mutex |
1936 | | */ |
1937 | | typedef struct AtomicVarU32 { |
1938 | | uint32_t obj; |
1939 | | EbHandle mutex; |
1940 | | } AtomicVarU32; |
1941 | | |
1942 | | /** |
1943 | | object_ptr is a EbPtr to the object being constructed. |
1944 | | object_init_data_ptr is a EbPtr to a data structure used to initialize the object. |
1945 | | */ |
1946 | | typedef EbErrorType(*EbCreator)( |
1947 | | EbPtr *object_dbl_ptr, |
1948 | | EbPtr object_init_data_ptr); |
1949 | | typedef enum DistCalcType |
1950 | | { |
1951 | | DIST_CALC_RESIDUAL = 0, // SSE(Coefficients - ReconCoefficients) |
1952 | | DIST_CALC_PREDICTION = 1, // SSE(Coefficients) *Note - useful in modes that don't send residual coeff bits |
1953 | | DIST_CALC_TOTAL = 2 |
1954 | | } DistCalcType; |
1955 | | |
1956 | | typedef enum DistType |
1957 | | { |
1958 | | DIST_SSD = 0, |
1959 | | DIST_SSIM = 1, |
1960 | | DIST_TOTAL = 2 |
1961 | | } DistType; |
1962 | | |
1963 | | typedef enum EbPtrType |
1964 | | { |
1965 | | EB_N_PTR = 0, // malloc'd pointer |
1966 | | EB_C_PTR = 1, // calloc'd pointer |
1967 | | EB_A_PTR = 2, // malloc'd pointer aligned |
1968 | | EB_MUTEX = 3, // mutex |
1969 | | EB_SEMAPHORE = 4, // semaphore |
1970 | | EB_THREAD = 5, // thread handle |
1971 | | EB_PTR_TYPE_TOTAL, |
1972 | | } EbPtrType; |
1973 | | |
1974 | | typedef struct EbMemoryMapEntry |
1975 | | { |
1976 | | EbPtr ptr; // points to a memory pointer |
1977 | | EbPtrType ptr_type; // pointer type |
1978 | | EbPtr prev_entry; // pointer to the prev entry |
1979 | | } EbMemoryMapEntry; |
1980 | | |
1981 | 375k | #define ALVALUE 64 |
1982 | | |
1983 | | #define EB_CREATE_SEMAPHORE(pointer, initial_count, max_count) \ |
1984 | 50.5k | do { \ |
1985 | 50.5k | pointer = svt_create_semaphore(initial_count, max_count); \ |
1986 | 50.5k | EB_ADD_MEM(pointer, 1, EB_SEMAPHORE); \ |
1987 | 50.5k | }while (0) |
1988 | | |
1989 | | #define EB_DESTROY_SEMAPHORE(pointer) \ |
1990 | 50.5k | do { \ |
1991 | 50.5k | if (pointer) { \ |
1992 | 50.5k | svt_destroy_semaphore(pointer); \ |
1993 | 50.5k | EB_REMOVE_MEM_ENTRY(pointer, EB_SEMAPHORE); \ |
1994 | 50.5k | pointer = NULL; \ |
1995 | 50.5k | } \ |
1996 | 50.5k | }while (0) |
1997 | | |
1998 | | #define EB_CREATE_MUTEX(pointer) \ |
1999 | 338k | do { \ |
2000 | 338k | pointer = svt_create_mutex(); \ |
2001 | 338k | EB_ADD_MEM(pointer, 1, EB_MUTEX); \ |
2002 | 338k | } while (0) |
2003 | | |
2004 | | #define EB_DESTROY_MUTEX(pointer) \ |
2005 | 338k | do { \ |
2006 | 338k | if (pointer) { \ |
2007 | 338k | svt_destroy_mutex(pointer); \ |
2008 | 338k | EB_REMOVE_MEM_ENTRY(pointer, EB_MUTEX); \ |
2009 | 338k | pointer = NULL; \ |
2010 | 338k | } \ |
2011 | 338k | } while (0) |
2012 | | |
2013 | 4.74k | #define EB_MEMSET(dst, val, count) \ |
2014 | 4.74k | memset(dst, val, count) |
2015 | | |
2016 | | /************************************** |
2017 | | * Callback Functions |
2018 | | **************************************/ |
2019 | | typedef struct EbCallback |
2020 | | { |
2021 | | EbPtr app_private_data; |
2022 | | EbPtr handle; |
2023 | | void(*error_handler)( |
2024 | | EbPtr handle, |
2025 | | uint32_t errorCode); |
2026 | | } EbCallback; |
2027 | | |
2028 | | // Common Macros |
2029 | 95.3k | #define UNUSED(x) (void)(x) |
2030 | | |
2031 | | //***Encoding Parameters*** |
2032 | 5.60k | #define BLOCK_SIZE_64 64u |
2033 | 2.05k | #define LOG_MIN_BLOCK_SIZE 3 |
2034 | 2.05k | #define MIN_BLOCK_SIZE (1 << LOG_MIN_BLOCK_SIZE) |
2035 | | |
2036 | | // super-resolution definitions |
2037 | 1.72k | #define MIN_SUPERRES_DENOM 8 |
2038 | 862 | #define MAX_SUPERRES_DENOM 16 |
2039 | | |
2040 | | // reference scaling definitions |
2041 | 1.72k | #define MIN_RESIZE_DENOM 8 |
2042 | 862 | #define MAX_RESIZE_DENOM 16 |
2043 | | |
2044 | | //***Prediction Structure*** |
2045 | 4.31k | #define MAX_TEMPORAL_LAYERS 6 |
2046 | | #define MAX_MINIGOP_SIZE (1 << (MAX_TEMPORAL_LAYERS - 1)) |
2047 | 0 | #define MAX_NUM_OF_REF_PIC_LIST 2 |
2048 | | #define MAX_REF_IDX 4 |
2049 | | #define MAX_ELAPSED_IDR_COUNT 1024 |
2050 | | |
2051 | 0 | #define _MVXT(mv) ( (int16_t)((mv) & 0xFFFF) ) |
2052 | 0 | #define _MVYT(mv) ( (int16_t)((mv) >> 16 ) ) |
2053 | | |
2054 | 431 | #define HIGHER_THAN_CLASS_1_REGION_SPLIT_PER_WIDTH 4 |
2055 | 431 | #define HIGHER_THAN_CLASS_1_REGION_SPLIT_PER_HEIGHT 4 |
2056 | | |
2057 | | #define EbBlockMeanPrec uint8_t |
2058 | 5.73k | #define BLOCK_MEAN_PREC_FULL 0 |
2059 | 431 | #define BLOCK_MEAN_PREC_SUB 1 |
2060 | | typedef enum { |
2061 | | DEFAULT_SHAPE = 0, |
2062 | | N2_SHAPE = 1, |
2063 | | N4_SHAPE = 2, |
2064 | | ONLY_DC_SHAPE = 3 |
2065 | | }TxCoeffShape; |
2066 | | |
2067 | | typedef enum { |
2068 | | CHROMA_MODE_0 = 0, // Full chroma search @ MD |
2069 | | CHROMA_MODE_1 = 1, // Fast chroma search @ MD |
2070 | | CHROMA_MODE_2 = 2 // Chroma blind @ MD |
2071 | | }ChromaLevel; |
2072 | | |
2073 | | // Multi-Pass Partitioning Depth(Multi - Pass PD) performs multiple PD stages for the same SB towards 1 final Partitioning Structure |
2074 | | // As we go from PDn to PDn + 1, the prediction accuracy of the MD feature(s) increases while the number of block(s) decreases |
2075 | | typedef enum MultiPassPdLevel { |
2076 | | MULTI_PASS_PD_OFF = 0, // Multi-Pass PD OFF = 1-single PD Pass |
2077 | | MULTI_PASS_PD_ON = 1, // Multi-Pass PD ON = PD0 | PD0_REFINEMENT | PD1 |
2078 | | MULTI_PASS_PD_INVALID = 0, // Invalid Multi-Pass PD Mode |
2079 | | } MultiPassPdLevel; |
2080 | | |
2081 | | typedef enum RasterScanCuIndex { |
2082 | | // 2Nx2N [85 partitions] |
2083 | | RASTER_SCAN_CU_INDEX_64x64 = 0, |
2084 | | RASTER_SCAN_CU_INDEX_32x32_0 = 1, |
2085 | | RASTER_SCAN_CU_INDEX_32x32_1 = 2, |
2086 | | RASTER_SCAN_CU_INDEX_32x32_2 = 3, |
2087 | | RASTER_SCAN_CU_INDEX_32x32_3 = 4, |
2088 | | RASTER_SCAN_CU_INDEX_16x16_0 = 5, |
2089 | | RASTER_SCAN_CU_INDEX_16x16_1 = 6, |
2090 | | RASTER_SCAN_CU_INDEX_16x16_2 = 7, |
2091 | | RASTER_SCAN_CU_INDEX_16x16_3 = 8, |
2092 | | RASTER_SCAN_CU_INDEX_16x16_4 = 9, |
2093 | | RASTER_SCAN_CU_INDEX_16x16_5 = 10, |
2094 | | RASTER_SCAN_CU_INDEX_16x16_6 = 11, |
2095 | | RASTER_SCAN_CU_INDEX_16x16_7 = 12, |
2096 | | RASTER_SCAN_CU_INDEX_16x16_8 = 13, |
2097 | | RASTER_SCAN_CU_INDEX_16x16_9 = 14, |
2098 | | RASTER_SCAN_CU_INDEX_16x16_10 = 15, |
2099 | | RASTER_SCAN_CU_INDEX_16x16_11 = 16, |
2100 | | RASTER_SCAN_CU_INDEX_16x16_12 = 17, |
2101 | | RASTER_SCAN_CU_INDEX_16x16_13 = 18, |
2102 | | RASTER_SCAN_CU_INDEX_16x16_14 = 19, |
2103 | | RASTER_SCAN_CU_INDEX_16x16_15 = 20, |
2104 | | RASTER_SCAN_CU_INDEX_8x8_0 = 21, |
2105 | | RASTER_SCAN_CU_INDEX_8x8_1 = 22, |
2106 | | RASTER_SCAN_CU_INDEX_8x8_2 = 23, |
2107 | | RASTER_SCAN_CU_INDEX_8x8_3 = 24, |
2108 | | RASTER_SCAN_CU_INDEX_8x8_4 = 25, |
2109 | | RASTER_SCAN_CU_INDEX_8x8_5 = 26, |
2110 | | RASTER_SCAN_CU_INDEX_8x8_6 = 27, |
2111 | | RASTER_SCAN_CU_INDEX_8x8_7 = 28, |
2112 | | RASTER_SCAN_CU_INDEX_8x8_8 = 29, |
2113 | | RASTER_SCAN_CU_INDEX_8x8_9 = 30, |
2114 | | RASTER_SCAN_CU_INDEX_8x8_10 = 31, |
2115 | | RASTER_SCAN_CU_INDEX_8x8_11 = 32, |
2116 | | RASTER_SCAN_CU_INDEX_8x8_12 = 33, |
2117 | | RASTER_SCAN_CU_INDEX_8x8_13 = 34, |
2118 | | RASTER_SCAN_CU_INDEX_8x8_14 = 35, |
2119 | | RASTER_SCAN_CU_INDEX_8x8_15 = 36, |
2120 | | RASTER_SCAN_CU_INDEX_8x8_16 = 37, |
2121 | | RASTER_SCAN_CU_INDEX_8x8_17 = 38, |
2122 | | RASTER_SCAN_CU_INDEX_8x8_18 = 39, |
2123 | | RASTER_SCAN_CU_INDEX_8x8_19 = 40, |
2124 | | RASTER_SCAN_CU_INDEX_8x8_20 = 41, |
2125 | | RASTER_SCAN_CU_INDEX_8x8_21 = 42, |
2126 | | RASTER_SCAN_CU_INDEX_8x8_22 = 43, |
2127 | | RASTER_SCAN_CU_INDEX_8x8_23 = 44, |
2128 | | RASTER_SCAN_CU_INDEX_8x8_24 = 45, |
2129 | | RASTER_SCAN_CU_INDEX_8x8_25 = 46, |
2130 | | RASTER_SCAN_CU_INDEX_8x8_26 = 47, |
2131 | | RASTER_SCAN_CU_INDEX_8x8_27 = 48, |
2132 | | RASTER_SCAN_CU_INDEX_8x8_28 = 49, |
2133 | | RASTER_SCAN_CU_INDEX_8x8_29 = 50, |
2134 | | RASTER_SCAN_CU_INDEX_8x8_30 = 51, |
2135 | | RASTER_SCAN_CU_INDEX_8x8_31 = 52, |
2136 | | RASTER_SCAN_CU_INDEX_8x8_32 = 53, |
2137 | | RASTER_SCAN_CU_INDEX_8x8_33 = 54, |
2138 | | RASTER_SCAN_CU_INDEX_8x8_34 = 55, |
2139 | | RASTER_SCAN_CU_INDEX_8x8_35 = 56, |
2140 | | RASTER_SCAN_CU_INDEX_8x8_36 = 57, |
2141 | | RASTER_SCAN_CU_INDEX_8x8_37 = 58, |
2142 | | RASTER_SCAN_CU_INDEX_8x8_38 = 59, |
2143 | | RASTER_SCAN_CU_INDEX_8x8_39 = 60, |
2144 | | RASTER_SCAN_CU_INDEX_8x8_40 = 61, |
2145 | | RASTER_SCAN_CU_INDEX_8x8_41 = 62, |
2146 | | RASTER_SCAN_CU_INDEX_8x8_42 = 63, |
2147 | | RASTER_SCAN_CU_INDEX_8x8_43 = 64, |
2148 | | RASTER_SCAN_CU_INDEX_8x8_44 = 65, |
2149 | | RASTER_SCAN_CU_INDEX_8x8_45 = 66, |
2150 | | RASTER_SCAN_CU_INDEX_8x8_46 = 67, |
2151 | | RASTER_SCAN_CU_INDEX_8x8_47 = 68, |
2152 | | RASTER_SCAN_CU_INDEX_8x8_48 = 69, |
2153 | | RASTER_SCAN_CU_INDEX_8x8_49 = 70, |
2154 | | RASTER_SCAN_CU_INDEX_8x8_50 = 71, |
2155 | | RASTER_SCAN_CU_INDEX_8x8_51 = 72, |
2156 | | RASTER_SCAN_CU_INDEX_8x8_52 = 73, |
2157 | | RASTER_SCAN_CU_INDEX_8x8_53 = 74, |
2158 | | RASTER_SCAN_CU_INDEX_8x8_54 = 75, |
2159 | | RASTER_SCAN_CU_INDEX_8x8_55 = 76, |
2160 | | RASTER_SCAN_CU_INDEX_8x8_56 = 77, |
2161 | | RASTER_SCAN_CU_INDEX_8x8_57 = 78, |
2162 | | RASTER_SCAN_CU_INDEX_8x8_58 = 79, |
2163 | | RASTER_SCAN_CU_INDEX_8x8_59 = 80, |
2164 | | RASTER_SCAN_CU_INDEX_8x8_60 = 81, |
2165 | | RASTER_SCAN_CU_INDEX_8x8_61 = 82, |
2166 | | RASTER_SCAN_CU_INDEX_8x8_62 = 83, |
2167 | | RASTER_SCAN_CU_INDEX_8x8_63 = 84 |
2168 | | } RasterScanCuIndex; |
2169 | | |
2170 | | typedef struct StatStruct { |
2171 | | uint64_t poc; |
2172 | | uint64_t total_num_bits; |
2173 | | uint8_t qindex; |
2174 | | uint8_t worst_qindex; |
2175 | | uint8_t temporal_layer_index; |
2176 | | } StatStruct; |
2177 | | |
2178 | | extern const uint8_t me_idx_85_8x8_to_16x16_conversion[64]; |
2179 | | extern const uint8_t me_idx_16x16_to_parent_32x32_conversion[16]; |
2180 | | |
2181 | | typedef enum IntrabcMotionDirection |
2182 | | { |
2183 | | IBC_MOTION_ABOVE, |
2184 | | IBC_MOTION_LEFT, |
2185 | | IBC_MOTION_DIRECTIONS |
2186 | | } IntrabcMotionDirection; |
2187 | | typedef struct _EbEncHandle EbEncHandle; |
2188 | | typedef struct _EbThreadContext EbThreadContext; |
2189 | | typedef enum { |
2190 | | // level of using SSIM based function to calculate distortion in MD |
2191 | | SSIM_LVL_0 = 0, // default, feature off |
2192 | | SSIM_LVL_1 = 1, // use ssim cost to find best candidate in product_full_mode_decision() |
2193 | | SSIM_LVL_2 = 2, // use ssim cost to find best tx type in tx_type_search() |
2194 | | SSIM_LVL_3 = 3 // for both product_full_mode_decision() and tx_type_search() |
2195 | | } SsimLevel; |
2196 | | |
2197 | 0 | #define MAX_U32 0xFFFFFFFF |
2198 | | |
2199 | | // Both SFRAME_FLEXIBLE_BASE and SFRAME_DEC_POSI_BASE use flexible insertion |
2200 | 431 | #define IS_SFRAME_FLEXIBLE_INSERT(mode) (mode == SFRAME_FLEXIBLE_BASE || mode == SFRAME_DEC_POSI_BASE) |
2201 | | |
2202 | | #ifdef __cplusplus |
2203 | | } |
2204 | | #endif |
2205 | | /* clang-format on */ |
2206 | | #endif // EbDefinitions_h |