Coverage Report

Created: 2026-06-15 06:25

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