Coverage Report

Created: 2026-10-17 06:56

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