Coverage Report

Created: 2023-06-07 06:31

/src/aom/av1/common/av1_common_int.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
3
 *
4
 * This source code is subject to the terms of the BSD 2 Clause License and
5
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6
 * was not distributed with this source code in the LICENSE file, you can
7
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8
 * Media Patent License 1.0 was not distributed with this source code in the
9
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10
 */
11
12
#ifndef AOM_AV1_COMMON_AV1_COMMON_INT_H_
13
#define AOM_AV1_COMMON_AV1_COMMON_INT_H_
14
15
#include "config/aom_config.h"
16
#include "config/av1_rtcd.h"
17
18
#include "aom/internal/aom_codec_internal.h"
19
#include "aom_dsp/flow_estimation/corner_detect.h"
20
#include "aom_util/aom_thread.h"
21
#include "av1/common/alloccommon.h"
22
#include "av1/common/av1_loopfilter.h"
23
#include "av1/common/entropy.h"
24
#include "av1/common/entropymode.h"
25
#include "av1/common/entropymv.h"
26
#include "av1/common/enums.h"
27
#include "av1/common/frame_buffers.h"
28
#include "av1/common/mv.h"
29
#include "av1/common/quant_common.h"
30
#include "av1/common/restoration.h"
31
#include "av1/common/tile_common.h"
32
#include "av1/common/timing.h"
33
#include "aom_dsp/grain_params.h"
34
#include "aom_dsp/grain_table.h"
35
#include "aom_dsp/odintrin.h"
36
#ifdef __cplusplus
37
extern "C" {
38
#endif
39
40
#if defined(__clang__) && defined(__has_warning)
41
#if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
42
#define AOM_FALLTHROUGH_INTENDED [[clang::fallthrough]]  // NOLINT
43
#endif
44
#elif defined(__GNUC__) && __GNUC__ >= 7
45
#define AOM_FALLTHROUGH_INTENDED __attribute__((fallthrough))  // NOLINT
46
#endif
47
48
#ifndef AOM_FALLTHROUGH_INTENDED
49
#define AOM_FALLTHROUGH_INTENDED \
50
437k
  do {                           \
51
437k
  } while (0)
52
#endif
53
54
#define CDEF_MAX_STRENGTHS 16
55
56
/* Constant values while waiting for the sequence header */
57
#define FRAME_ID_LENGTH 15
58
#define DELTA_FRAME_ID_LENGTH 14
59
60
#define FRAME_CONTEXTS (FRAME_BUFFERS + 1)
61
// Extra frame context which is always kept at default values
62
#define FRAME_CONTEXT_DEFAULTS (FRAME_CONTEXTS - 1)
63
62.9k
#define PRIMARY_REF_BITS 3
64
1.04M
#define PRIMARY_REF_NONE 7
65
66
#define NUM_PING_PONG_BUFFERS 2
67
68
340k
#define MAX_NUM_TEMPORAL_LAYERS 8
69
131k
#define MAX_NUM_SPATIAL_LAYERS 4
70
/* clang-format off */
71
// clang-format seems to think this is a pointer dereference and not a
72
// multiplication.
73
#define MAX_NUM_OPERATING_POINTS \
74
  (MAX_NUM_TEMPORAL_LAYERS * MAX_NUM_SPATIAL_LAYERS)
75
/* clang-format on */
76
77
// TODO(jingning): Turning this on to set up transform coefficient
78
// processing timer.
79
#define TXCOEFF_TIMER 0
80
#define TXCOEFF_COST_TIMER 0
81
82
/*!\cond */
83
84
enum {
85
  SINGLE_REFERENCE = 0,
86
  COMPOUND_REFERENCE = 1,
87
  REFERENCE_MODE_SELECT = 2,
88
  REFERENCE_MODES = 3,
89
} UENUM1BYTE(REFERENCE_MODE);
90
91
enum {
92
  /**
93
   * Frame context updates are disabled
94
   */
95
  REFRESH_FRAME_CONTEXT_DISABLED,
96
  /**
97
   * Update frame context to values resulting from backward probability
98
   * updates based on entropy/counts in the decoded frame
99
   */
100
  REFRESH_FRAME_CONTEXT_BACKWARD,
101
} UENUM1BYTE(REFRESH_FRAME_CONTEXT_MODE);
102
103
10.8k
#define MFMV_STACK_SIZE 3
104
typedef struct {
105
  int_mv mfmv0;
106
  uint8_t ref_frame_offset;
107
} TPL_MV_REF;
108
109
typedef struct {
110
  int_mv mv;
111
  MV_REFERENCE_FRAME ref_frame;
112
} MV_REF;
113
114
typedef struct RefCntBuffer {
115
  // For a RefCntBuffer, the following are reference-holding variables:
116
  // - cm->ref_frame_map[]
117
  // - cm->cur_frame
118
  // - cm->scaled_ref_buf[] (encoder only)
119
  // - pbi->output_frame_index[] (decoder only)
120
  // With that definition, 'ref_count' is the number of reference-holding
121
  // variables that are currently referencing this buffer.
122
  // For example:
123
  // - suppose this buffer is at index 'k' in the buffer pool, and
124
  // - Total 'n' of the variables / array elements above have value 'k' (that
125
  // is, they are pointing to buffer at index 'k').
126
  // Then, pool->frame_bufs[k].ref_count = n.
127
  int ref_count;
128
129
  unsigned int order_hint;
130
  unsigned int ref_order_hints[INTER_REFS_PER_FRAME];
131
132
  // These variables are used only in encoder and compare the absolute
133
  // display order hint to compute the relative distance and overcome
134
  // the limitation of get_relative_dist() which returns incorrect
135
  // distance when a very old frame is used as a reference.
136
  unsigned int display_order_hint;
137
  unsigned int ref_display_order_hint[INTER_REFS_PER_FRAME];
138
  // Frame's level within the hierarchical structure.
139
  unsigned int pyramid_level;
140
  MV_REF *mvs;
141
  uint8_t *seg_map;
142
  struct segmentation seg;
143
  int mi_rows;
144
  int mi_cols;
145
  // Width and height give the size of the buffer (before any upscaling, unlike
146
  // the sizes that can be derived from the buf structure)
147
  int width;
148
  int height;
149
  WarpedMotionParams global_motion[REF_FRAMES];
150
  int showable_frame;  // frame can be used as show existing frame in future
151
  uint8_t film_grain_params_present;
152
  aom_film_grain_t film_grain_params;
153
  aom_codec_frame_buffer_t raw_frame_buffer;
154
  YV12_BUFFER_CONFIG buf;
155
  int temporal_id;  // Temporal layer ID of the frame
156
  int spatial_id;   // Spatial layer ID of the frame
157
  FRAME_TYPE frame_type;
158
159
  // This is only used in the encoder but needs to be indexed per ref frame
160
  // so it's extremely convenient to keep it here.
161
  int interp_filter_selected[SWITCHABLE];
162
163
  // Inter frame reference frame delta for loop filter
164
  int8_t ref_deltas[REF_FRAMES];
165
166
  // 0 = ZERO_MV, MV
167
  int8_t mode_deltas[MAX_MODE_LF_DELTAS];
168
169
  FRAME_CONTEXT frame_context;
170
} RefCntBuffer;
171
172
typedef struct BufferPool {
173
// Protect BufferPool from being accessed by several FrameWorkers at
174
// the same time during frame parallel decode.
175
// TODO(hkuang): Try to use atomic variable instead of locking the whole pool.
176
// TODO(wtc): Remove this. See
177
// https://chromium-review.googlesource.com/c/webm/libvpx/+/560630.
178
#if CONFIG_MULTITHREAD
179
  pthread_mutex_t pool_mutex;
180
#endif
181
182
  // Private data associated with the frame buffer callbacks.
183
  void *cb_priv;
184
185
  aom_get_frame_buffer_cb_fn_t get_fb_cb;
186
  aom_release_frame_buffer_cb_fn_t release_fb_cb;
187
188
  RefCntBuffer *frame_bufs;
189
  uint8_t num_frame_bufs;
190
191
  // Frame buffers allocated internally by the codec.
192
  InternalFrameBufferList int_frame_buffers;
193
} BufferPool;
194
195
/*!\endcond */
196
197
/*!\brief Parameters related to CDEF */
198
typedef struct {
199
  //! CDEF column line buffer
200
  uint16_t *colbuf[MAX_MB_PLANE];
201
  //! CDEF top & bottom line buffer
202
  uint16_t *linebuf[MAX_MB_PLANE];
203
  //! CDEF intermediate buffer
204
  uint16_t *srcbuf;
205
  //! CDEF column line buffer sizes
206
  size_t allocated_colbuf_size[MAX_MB_PLANE];
207
  //! CDEF top and bottom line buffer sizes
208
  size_t allocated_linebuf_size[MAX_MB_PLANE];
209
  //! CDEF intermediate buffer size
210
  size_t allocated_srcbuf_size;
211
  //! CDEF damping factor
212
  int cdef_damping;
213
  //! Number of CDEF strength values
214
  int nb_cdef_strengths;
215
  //! CDEF strength values for luma
216
  int cdef_strengths[CDEF_MAX_STRENGTHS];
217
  //! CDEF strength values for chroma
218
  int cdef_uv_strengths[CDEF_MAX_STRENGTHS];
219
  //! Number of CDEF strength values in bits
220
  int cdef_bits;
221
  //! Number of rows in the frame in 4 pixel
222
  int allocated_mi_rows;
223
  //! Number of CDEF workers
224
  int allocated_num_workers;
225
} CdefInfo;
226
227
/*!\cond */
228
229
typedef struct {
230
  int delta_q_present_flag;
231
  // Resolution of delta quant
232
  int delta_q_res;
233
  int delta_lf_present_flag;
234
  // Resolution of delta lf level
235
  int delta_lf_res;
236
  // This is a flag for number of deltas of loop filter level
237
  // 0: use 1 delta, for y_vertical, y_horizontal, u, and v
238
  // 1: use separate deltas for each filter level
239
  int delta_lf_multi;
240
} DeltaQInfo;
241
242
typedef struct {
243
  int enable_order_hint;        // 0 - disable order hint, and related tools
244
  int order_hint_bits_minus_1;  // dist_wtd_comp, ref_frame_mvs,
245
                                // frame_sign_bias
246
                                // if 0, enable_dist_wtd_comp and
247
                                // enable_ref_frame_mvs must be set as 0.
248
  int enable_dist_wtd_comp;     // 0 - disable dist-wtd compound modes
249
                                // 1 - enable it
250
  int enable_ref_frame_mvs;     // 0 - disable ref frame mvs
251
                                // 1 - enable it
252
} OrderHintInfo;
253
254
// Sequence header structure.
255
// Note: All syntax elements of sequence_header_obu that need to be
256
// bit-identical across multiple sequence headers must be part of this struct,
257
// so that consistency is checked by are_seq_headers_consistent() function.
258
// One exception is the last member 'op_params' that is ignored by
259
// are_seq_headers_consistent() function.
260
typedef struct SequenceHeader {
261
  int num_bits_width;
262
  int num_bits_height;
263
  int max_frame_width;
264
  int max_frame_height;
265
  // Whether current and reference frame IDs are signaled in the bitstream.
266
  // Frame id numbers are additional information that do not affect the
267
  // decoding process, but provide decoders with a way of detecting missing
268
  // reference frames so that appropriate action can be taken.
269
  uint8_t frame_id_numbers_present_flag;
270
  int frame_id_length;
271
  int delta_frame_id_length;
272
  BLOCK_SIZE sb_size;  // Size of the superblock used for this frame
273
  int mib_size;        // Size of the superblock in units of MI blocks
274
  int mib_size_log2;   // Log 2 of above.
275
276
  OrderHintInfo order_hint_info;
277
278
  uint8_t force_screen_content_tools;  // 0 - force off
279
                                       // 1 - force on
280
                                       // 2 - adaptive
281
  uint8_t still_picture;               // Video is a single frame still picture
282
  uint8_t reduced_still_picture_hdr;   // Use reduced header for still picture
283
  uint8_t force_integer_mv;            // 0 - Don't force. MV can use subpel
284
                                       // 1 - force to integer
285
                                       // 2 - adaptive
286
  uint8_t enable_filter_intra;         // enables/disables filterintra
287
  uint8_t enable_intra_edge_filter;    // enables/disables edge upsampling
288
  uint8_t enable_interintra_compound;  // enables/disables interintra_compound
289
  uint8_t enable_masked_compound;      // enables/disables masked compound
290
  uint8_t enable_dual_filter;          // 0 - disable dual interpolation filter
291
                                       // 1 - enable vert/horz filter selection
292
  uint8_t enable_warped_motion;        // 0 - disable warp for the sequence
293
                                       // 1 - enable warp for the sequence
294
  uint8_t enable_superres;             // 0 - Disable superres for the sequence
295
                                       //     and no frame level superres flag
296
                                       // 1 - Enable superres for the sequence
297
                                       //     enable per-frame superres flag
298
  uint8_t enable_cdef;                 // To turn on/off CDEF
299
  uint8_t enable_restoration;          // To turn on/off loop restoration
300
  BITSTREAM_PROFILE profile;
301
302
  // Color config.
303
  aom_bit_depth_t bit_depth;  // AOM_BITS_8 in profile 0 or 1,
304
                              // AOM_BITS_10 or AOM_BITS_12 in profile 2 or 3.
305
  uint8_t use_highbitdepth;   // If true, we need to use 16bit frame buffers.
306
  uint8_t monochrome;         // Monochrome video
307
  aom_color_primaries_t color_primaries;
308
  aom_transfer_characteristics_t transfer_characteristics;
309
  aom_matrix_coefficients_t matrix_coefficients;
310
  int color_range;
311
  int subsampling_x;  // Chroma subsampling for x
312
  int subsampling_y;  // Chroma subsampling for y
313
  aom_chroma_sample_position_t chroma_sample_position;
314
  uint8_t separate_uv_delta_q;
315
  uint8_t film_grain_params_present;
316
317
  // Operating point info.
318
  int operating_points_cnt_minus_1;
319
  int operating_point_idc[MAX_NUM_OPERATING_POINTS];
320
  int timing_info_present;
321
  aom_timing_info_t timing_info;
322
  uint8_t decoder_model_info_present_flag;
323
  aom_dec_model_info_t decoder_model_info;
324
  uint8_t display_model_info_present_flag;
325
  AV1_LEVEL seq_level_idx[MAX_NUM_OPERATING_POINTS];
326
  uint8_t tier[MAX_NUM_OPERATING_POINTS];  // seq_tier in spec. One bit: 0 or 1.
327
328
  // IMPORTANT: the op_params member must be at the end of the struct so that
329
  // are_seq_headers_consistent() can be implemented with a memcmp() call.
330
  // TODO(urvang): We probably don't need the +1 here.
331
  aom_dec_model_op_parameters_t op_params[MAX_NUM_OPERATING_POINTS + 1];
332
} SequenceHeader;
333
334
typedef struct {
335
  int skip_mode_allowed;
336
  int skip_mode_flag;
337
  int ref_frame_idx_0;
338
  int ref_frame_idx_1;
339
} SkipModeInfo;
340
341
typedef struct {
342
  FRAME_TYPE frame_type;
343
  REFERENCE_MODE reference_mode;
344
345
  unsigned int order_hint;
346
  unsigned int display_order_hint;
347
  // Frame's level within the hierarchical structure.
348
  unsigned int pyramid_level;
349
  unsigned int frame_number;
350
  SkipModeInfo skip_mode_info;
351
  int refresh_frame_flags;  // Which ref frames are overwritten by this frame
352
  int frame_refs_short_signaling;
353
} CurrentFrame;
354
355
/*!\endcond */
356
357
/*!
358
 * \brief Frame level features.
359
 */
360
typedef struct {
361
  /*!
362
   * If true, CDF update in the symbol encoding/decoding process is disabled.
363
   */
364
  bool disable_cdf_update;
365
  /*!
366
   * If true, motion vectors are specified to eighth pel precision; and
367
   * if false, motion vectors are specified to quarter pel precision.
368
   */
369
  bool allow_high_precision_mv;
370
  /*!
371
   * If true, force integer motion vectors; if false, use the default.
372
   */
373
  bool cur_frame_force_integer_mv;
374
  /*!
375
   * If true, palette tool and/or intra block copy tools may be used.
376
   */
377
  bool allow_screen_content_tools;
378
  bool allow_intrabc;       /*!< If true, intra block copy tool may be used. */
379
  bool allow_warped_motion; /*!< If true, frame may use warped motion mode. */
380
  /*!
381
   * If true, using previous frames' motion vectors for prediction is allowed.
382
   */
383
  bool allow_ref_frame_mvs;
384
  /*!
385
   * If true, frame is fully lossless at coded resolution.
386
   * */
387
  bool coded_lossless;
388
  /*!
389
   * If true, frame is fully lossless at upscaled resolution.
390
   */
391
  bool all_lossless;
392
  /*!
393
   * If true, the frame is restricted to a reduced subset of the full set of
394
   * transform types.
395
   */
396
  bool reduced_tx_set_used;
397
  /*!
398
   * If true, error resilient mode is enabled.
399
   * Note: Error resilient mode allows the syntax of a frame to be parsed
400
   * independently of previously decoded frames.
401
   */
402
  bool error_resilient_mode;
403
  /*!
404
   * If false, only MOTION_MODE that may be used is SIMPLE_TRANSLATION;
405
   * if true, all MOTION_MODES may be used.
406
   */
407
  bool switchable_motion_mode;
408
  TX_MODE tx_mode;            /*!< Transform mode at frame level. */
409
  InterpFilter interp_filter; /*!< Interpolation filter at frame level. */
410
  /*!
411
   * The reference frame that contains the CDF values and other state that
412
   * should be loaded at the start of the frame.
413
   */
414
  int primary_ref_frame;
415
  /*!
416
   * Byte alignment of the planes in the reference buffers.
417
   */
418
  int byte_alignment;
419
  /*!
420
   * Flag signaling how frame contexts should be updated at the end of
421
   * a frame decode.
422
   */
423
  REFRESH_FRAME_CONTEXT_MODE refresh_frame_context;
424
} FeatureFlags;
425
426
/*!
427
 * \brief Params related to tiles.
428
 */
429
typedef struct CommonTileParams {
430
  int cols;          /*!< number of tile columns that frame is divided into */
431
  int rows;          /*!< number of tile rows that frame is divided into */
432
  int max_width_sb;  /*!< maximum tile width in superblock units. */
433
  int max_height_sb; /*!< maximum tile height in superblock units. */
434
435
  /*!
436
   * Min width of non-rightmost tile in MI units. Only valid if cols > 1.
437
   */
438
  int min_inner_width;
439
440
  /*!
441
   * If true, tiles are uniformly spaced with power-of-two number of rows and
442
   * columns.
443
   * If false, tiles have explicitly configured widths and heights.
444
   */
445
  int uniform_spacing;
446
447
  /**
448
   * \name Members only valid when uniform_spacing == 1
449
   */
450
  /**@{*/
451
  int log2_cols; /*!< log2 of 'cols'. */
452
  int log2_rows; /*!< log2 of 'rows'. */
453
  int width;     /*!< tile width in MI units */
454
  int height;    /*!< tile height in MI units */
455
  /**@}*/
456
457
  /*!
458
   * Min num of tile columns possible based on 'max_width_sb' and frame width.
459
   */
460
  int min_log2_cols;
461
  /*!
462
   * Min num of tile rows possible based on 'max_height_sb' and frame height.
463
   */
464
  int min_log2_rows;
465
  /*!
466
   * Max num of tile columns possible based on frame width.
467
   */
468
  int max_log2_cols;
469
  /*!
470
   * Max num of tile rows possible based on frame height.
471
   */
472
  int max_log2_rows;
473
  /*!
474
   * log2 of min number of tiles (same as min_log2_cols + min_log2_rows).
475
   */
476
  int min_log2;
477
  /*!
478
   * col_start_sb[i] is the start position of tile column i in superblock units.
479
   * valid for 0 <= i <= cols
480
   */
481
  int col_start_sb[MAX_TILE_COLS + 1];
482
  /*!
483
   * row_start_sb[i] is the start position of tile row i in superblock units.
484
   * valid for 0 <= i <= rows
485
   */
486
  int row_start_sb[MAX_TILE_ROWS + 1];
487
  /*!
488
   * If true, we are using large scale tile mode.
489
   */
490
  unsigned int large_scale;
491
  /*!
492
   * Only relevant when large_scale == 1.
493
   * If true, the independent decoding of a single tile or a section of a frame
494
   * is allowed.
495
   */
496
  unsigned int single_tile_decoding;
497
} CommonTileParams;
498
499
typedef struct CommonModeInfoParams CommonModeInfoParams;
500
/*!
501
 * \brief Params related to MB_MODE_INFO arrays and related info.
502
 */
503
struct CommonModeInfoParams {
504
  /*!
505
   * Number of rows in the frame in 16 pixel units.
506
   * This is computed from frame height aligned to a multiple of 8.
507
   */
508
  int mb_rows;
509
  /*!
510
   * Number of cols in the frame in 16 pixel units.
511
   * This is computed from frame width aligned to a multiple of 8.
512
   */
513
  int mb_cols;
514
515
  /*!
516
   * Total MBs = mb_rows * mb_cols.
517
   */
518
  int MBs;
519
520
  /*!
521
   * Number of rows in the frame in 4 pixel (MB_MODE_INFO) units.
522
   * This is computed from frame height aligned to a multiple of 8.
523
   */
524
  int mi_rows;
525
  /*!
526
   * Number of cols in the frame in 4 pixel (MB_MODE_INFO) units.
527
   * This is computed from frame width aligned to a multiple of 8.
528
   */
529
  int mi_cols;
530
531
  /*!
532
   * An array of MB_MODE_INFO structs for every 'mi_alloc_bsize' sized block
533
   * in the frame.
534
   * Note: This array should be treated like a scratch memory, and should NOT be
535
   * accessed directly, in most cases. Please use 'mi_grid_base' array instead.
536
   */
537
  MB_MODE_INFO *mi_alloc;
538
  /*!
539
   * Number of allocated elements in 'mi_alloc'.
540
   */
541
  int mi_alloc_size;
542
  /*!
543
   * Stride for 'mi_alloc' array.
544
   */
545
  int mi_alloc_stride;
546
  /*!
547
   * The minimum block size that each element in 'mi_alloc' can correspond to.
548
   * For decoder, this is always BLOCK_4X4.
549
   * For encoder, this is BLOCK_8X8 for resolution >= 4k case or REALTIME mode
550
   * case. Otherwise, this is BLOCK_4X4.
551
   */
552
  BLOCK_SIZE mi_alloc_bsize;
553
554
  /*!
555
   * Grid of pointers to 4x4 MB_MODE_INFO structs allocated in 'mi_alloc'.
556
   * It's possible that:
557
   * - Multiple pointers in the grid point to the same element in 'mi_alloc'
558
   * (for example, for all 4x4 blocks that belong to the same partition block).
559
   * - Some pointers can be NULL (for example, for blocks outside visible area).
560
   */
561
  MB_MODE_INFO **mi_grid_base;
562
  /*!
563
   * Number of allocated elements in 'mi_grid_base' (and 'tx_type_map' also).
564
   */
565
  int mi_grid_size;
566
  /*!
567
   * Stride for 'mi_grid_base' (and 'tx_type_map' also).
568
   */
569
  int mi_stride;
570
571
  /*!
572
   * An array of tx types for each 4x4 block in the frame.
573
   * Number of allocated elements is same as 'mi_grid_size', and stride is
574
   * same as 'mi_grid_size'. So, indexing into 'tx_type_map' is same as that of
575
   * 'mi_grid_base'.
576
   */
577
  TX_TYPE *tx_type_map;
578
579
  /**
580
   * \name Function pointers to allow separate logic for encoder and decoder.
581
   */
582
  /**@{*/
583
  /*!
584
   * Free the memory allocated to arrays in 'mi_params'.
585
   * \param[in,out]   mi_params   object containing common mode info parameters
586
   */
587
  void (*free_mi)(struct CommonModeInfoParams *mi_params);
588
  /*!
589
   * Initialize / reset appropriate arrays in 'mi_params'.
590
   * \param[in,out]   mi_params   object containing common mode info parameters
591
   */
592
  void (*setup_mi)(struct CommonModeInfoParams *mi_params);
593
  /*!
594
   * Allocate required memory for arrays in 'mi_params'.
595
   * \param[in,out]   mi_params           object containing common mode info
596
   *                                      parameters
597
   * \param           width               frame width
598
   * \param           height              frame height
599
   * \param           min_partition_size  minimum partition size allowed while
600
   *                                      encoding
601
   */
602
  void (*set_mb_mi)(struct CommonModeInfoParams *mi_params, int width,
603
                    int height, BLOCK_SIZE min_partition_size);
604
  /**@}*/
605
};
606
607
typedef struct CommonQuantParams CommonQuantParams;
608
/*!
609
 * \brief Parameters related to quantization at the frame level.
610
 */
611
struct CommonQuantParams {
612
  /*!
613
   * Base qindex of the frame in the range 0 to 255.
614
   */
615
  int base_qindex;
616
617
  /*!
618
   * Delta of qindex (from base_qindex) for Y plane DC coefficient.
619
   * Note: y_ac_delta_q is implicitly 0.
620
   */
621
  int y_dc_delta_q;
622
623
  /*!
624
   * Delta of qindex (from base_qindex) for U plane DC coefficients.
625
   */
626
  int u_dc_delta_q;
627
  /*!
628
   * Delta of qindex (from base_qindex) for U plane AC coefficients.
629
   */
630
  int v_dc_delta_q;
631
632
  /*!
633
   * Delta of qindex (from base_qindex) for V plane DC coefficients.
634
   * Same as those for U plane if cm->seq_params->separate_uv_delta_q == 0.
635
   */
636
  int u_ac_delta_q;
637
  /*!
638
   * Delta of qindex (from base_qindex) for V plane AC coefficients.
639
   * Same as those for U plane if cm->seq_params->separate_uv_delta_q == 0.
640
   */
641
  int v_ac_delta_q;
642
643
  /*
644
   * Note: The qindex per superblock may have a delta from the qindex obtained
645
   * at frame level from parameters above, based on 'cm->delta_q_info'.
646
   */
647
648
  /**
649
   * \name True dequantizers.
650
   * The dequantizers below are true dequantizers used only in the
651
   * dequantization process.  They have the same coefficient
652
   * shift/scale as TX.
653
   */
654
  /**@{*/
655
  int16_t y_dequant_QTX[MAX_SEGMENTS][2]; /*!< Dequant for Y plane */
656
  int16_t u_dequant_QTX[MAX_SEGMENTS][2]; /*!< Dequant for U plane */
657
  int16_t v_dequant_QTX[MAX_SEGMENTS][2]; /*!< Dequant for V plane */
658
  /**@}*/
659
660
  /**
661
   * \name Global quantization matrix tables.
662
   */
663
  /**@{*/
664
  /*!
665
   * Global dequantization matrix table.
666
   */
667
  const qm_val_t *giqmatrix[NUM_QM_LEVELS][3][TX_SIZES_ALL];
668
  /*!
669
   * Global quantization matrix table.
670
   */
671
  const qm_val_t *gqmatrix[NUM_QM_LEVELS][3][TX_SIZES_ALL];
672
  /**@}*/
673
674
  /**
675
   * \name Local dequantization matrix tables for each frame.
676
   */
677
  /**@{*/
678
  /*!
679
   * Local dequant matrix for Y plane.
680
   */
681
  const qm_val_t *y_iqmatrix[MAX_SEGMENTS][TX_SIZES_ALL];
682
  /*!
683
   * Local dequant matrix for U plane.
684
   */
685
  const qm_val_t *u_iqmatrix[MAX_SEGMENTS][TX_SIZES_ALL];
686
  /*!
687
   * Local dequant matrix for V plane.
688
   */
689
  const qm_val_t *v_iqmatrix[MAX_SEGMENTS][TX_SIZES_ALL];
690
  /**@}*/
691
692
  /*!
693
   * Flag indicating whether quantization matrices are being used:
694
   *  - If true, qm_level_y, qm_level_u and qm_level_v indicate the level
695
   *    indices to be used to access appropriate global quant matrix tables.
696
   *  - If false, we implicitly use level index 'NUM_QM_LEVELS - 1'.
697
   */
698
  bool using_qmatrix;
699
  /**
700
   * \name Valid only when using_qmatrix == true
701
   * Indicate the level indices to be used to access appropriate global quant
702
   * matrix tables.
703
   */
704
  /**@{*/
705
  int qmatrix_level_y; /*!< Level index for Y plane */
706
  int qmatrix_level_u; /*!< Level index for U plane */
707
  int qmatrix_level_v; /*!< Level index for V plane */
708
  /**@}*/
709
};
710
711
typedef struct CommonContexts CommonContexts;
712
/*!
713
 * \brief Contexts used for transmitting various symbols in the bitstream.
714
 */
715
struct CommonContexts {
716
  /*!
717
   * Context used by 'FRAME_CONTEXT.partition_cdf' to transmit partition type.
718
   * partition[i][j] is the context for ith tile row, jth mi_col.
719
   */
720
  PARTITION_CONTEXT **partition;
721
722
  /*!
723
   * Context used to derive context for multiple symbols:
724
   * - 'TXB_CTX.txb_skip_ctx' used by 'FRAME_CONTEXT.txb_skip_cdf' to transmit
725
   * to transmit skip_txfm flag.
726
   * - 'TXB_CTX.dc_sign_ctx' used by 'FRAME_CONTEXT.dc_sign_cdf' to transmit
727
   * sign.
728
   * entropy[i][j][k] is the context for ith plane, jth tile row, kth mi_col.
729
   */
730
  ENTROPY_CONTEXT **entropy[MAX_MB_PLANE];
731
732
  /*!
733
   * Context used to derive context for 'FRAME_CONTEXT.txfm_partition_cdf' to
734
   * transmit 'is_split' flag to indicate if this transform block should be
735
   * split into smaller sub-blocks.
736
   * txfm[i][j] is the context for ith tile row, jth mi_col.
737
   */
738
  TXFM_CONTEXT **txfm;
739
740
  /*!
741
   * Dimensions that were used to allocate the arrays above.
742
   * If these dimensions change, the arrays may have to be re-allocated.
743
   */
744
  int num_planes;    /*!< Corresponds to av1_num_planes(cm) */
745
  int num_tile_rows; /*!< Corresponds to cm->tiles.row */
746
  int num_mi_cols;   /*!< Corresponds to cm->mi_params.mi_cols */
747
};
748
749
/*!
750
 * \brief Top level common structure used by both encoder and decoder.
751
 */
752
typedef struct AV1Common {
753
  /*!
754
   * Information about the current frame that is being coded.
755
   */
756
  CurrentFrame current_frame;
757
  /*!
758
   * Code and details about current error status.
759
   */
760
  struct aom_internal_error_info *error;
761
762
  /*!
763
   * AV1 allows two types of frame scaling operations:
764
   * 1. Frame super-resolution: that allows coding a frame at lower resolution
765
   * and after decoding the frame, normatively scales and restores the frame --
766
   * inside the coding loop.
767
   * 2. Frame resize: that allows coding frame at lower/higher resolution, and
768
   * then non-normatively upscale the frame at the time of rendering -- outside
769
   * the coding loop.
770
   * Hence, the need for 3 types of dimensions.
771
   */
772
773
  /**
774
   * \name Coded frame dimensions.
775
   */
776
  /**@{*/
777
  int width;  /*!< Coded frame width */
778
  int height; /*!< Coded frame height */
779
  /**@}*/
780
781
  /**
782
   * \name Rendered frame dimensions.
783
   * Dimensions after applying both super-resolution and resize to the coded
784
   * frame. Different from coded dimensions if super-resolution and/or resize
785
   * are being used for this frame.
786
   */
787
  /**@{*/
788
  int render_width;  /*!< Rendered frame width */
789
  int render_height; /*!< Rendered frame height */
790
  /**@}*/
791
792
  /**
793
   * \name Super-resolved frame dimensions.
794
   * Frame dimensions after applying super-resolution to the coded frame (if
795
   * present), but before applying resize.
796
   * Larger than the coded dimensions if super-resolution is being used for
797
   * this frame.
798
   * Different from rendered dimensions if resize is being used for this frame.
799
   */
800
  /**@{*/
801
  int superres_upscaled_width;  /*!< Super-resolved frame width */
802
  int superres_upscaled_height; /*!< Super-resolved frame height */
803
  /**@}*/
804
805
  /*!
806
   * The denominator of the superres scale used by this frame.
807
   * Note: The numerator is fixed to be SCALE_NUMERATOR.
808
   */
809
  uint8_t superres_scale_denominator;
810
811
  /*!
812
   * buffer_removal_times[op_num] specifies the frame removal time in units of
813
   * DecCT clock ticks counted from the removal time of the last random access
814
   * point for operating point op_num.
815
   * TODO(urvang): We probably don't need the +1 here.
816
   */
817
  uint32_t buffer_removal_times[MAX_NUM_OPERATING_POINTS + 1];
818
  /*!
819
   * Presentation time of the frame in clock ticks DispCT counted from the
820
   * removal time of the last random access point for the operating point that
821
   * is being decoded.
822
   */
823
  uint32_t frame_presentation_time;
824
825
  /*!
826
   * Buffer where previous frame is stored.
827
   */
828
  RefCntBuffer *prev_frame;
829
830
  /*!
831
   * Buffer into which the current frame will be stored and other related info.
832
   * TODO(hkuang): Combine this with cur_buf in macroblockd.
833
   */
834
  RefCntBuffer *cur_frame;
835
836
  /*!
837
   * For encoder, we have a two-level mapping from reference frame type to the
838
   * corresponding buffer in the buffer pool:
839
   * * 'remapped_ref_idx[i - 1]' maps reference type 'i' (range: LAST_FRAME ...
840
   * EXTREF_FRAME) to a remapped index 'j' (in range: 0 ... REF_FRAMES - 1)
841
   * * Later, 'cm->ref_frame_map[j]' maps the remapped index 'j' to a pointer to
842
   * the reference counted buffer structure RefCntBuffer, taken from the buffer
843
   * pool cm->buffer_pool->frame_bufs.
844
   *
845
   * LAST_FRAME,                        ...,      EXTREF_FRAME
846
   *      |                                           |
847
   *      v                                           v
848
   * remapped_ref_idx[LAST_FRAME - 1],  ...,  remapped_ref_idx[EXTREF_FRAME - 1]
849
   *      |                                           |
850
   *      v                                           v
851
   * ref_frame_map[],                   ...,     ref_frame_map[]
852
   *
853
   * Note: INTRA_FRAME always refers to the current frame, so there's no need to
854
   * have a remapped index for the same.
855
   */
856
  int remapped_ref_idx[REF_FRAMES];
857
858
  /*!
859
   * Scale of the current frame with respect to itself.
860
   * This is currently used for intra block copy, which behaves like an inter
861
   * prediction mode, where the reference frame is the current frame itself.
862
   */
863
  struct scale_factors sf_identity;
864
865
  /*!
866
   * Scale factors of the reference frame with respect to the current frame.
867
   * This is required for generating inter prediction and will be non-identity
868
   * for a reference frame, if it has different dimensions than the coded
869
   * dimensions of the current frame.
870
   */
871
  struct scale_factors ref_scale_factors[REF_FRAMES];
872
873
  /*!
874
   * For decoder, ref_frame_map[i] maps reference type 'i' to a pointer to
875
   * the buffer in the buffer pool 'cm->buffer_pool.frame_bufs'.
876
   * For encoder, ref_frame_map[j] (where j = remapped_ref_idx[i]) maps
877
   * remapped reference index 'j' (that is, original reference type 'i') to
878
   * a pointer to the buffer in the buffer pool 'cm->buffer_pool.frame_bufs'.
879
   */
880
  RefCntBuffer *ref_frame_map[REF_FRAMES];
881
882
  /*!
883
   * If true, this frame is actually shown after decoding.
884
   * If false, this frame is coded in the bitstream, but not shown. It is only
885
   * used as a reference for other frames coded later.
886
   */
887
  int show_frame;
888
889
  /*!
890
   * If true, this frame can be used as a show-existing frame for other frames
891
   * coded later.
892
   * When 'show_frame' is true, this is always true for all non-keyframes.
893
   * When 'show_frame' is false, this value is transmitted in the bitstream.
894
   */
895
  int showable_frame;
896
897
  /*!
898
   * If true, show an existing frame coded before, instead of actually coding a
899
   * frame. The existing frame comes from one of the existing reference buffers,
900
   * as signaled in the bitstream.
901
   */
902
  int show_existing_frame;
903
904
  /*!
905
   * Whether some features are allowed or not.
906
   */
907
  FeatureFlags features;
908
909
  /*!
910
   * Params related to MB_MODE_INFO arrays and related info.
911
   */
912
  CommonModeInfoParams mi_params;
913
914
#if CONFIG_ENTROPY_STATS
915
  /*!
916
   * Context type used by token CDFs, in the range 0 .. (TOKEN_CDF_Q_CTXS - 1).
917
   */
918
  int coef_cdf_category;
919
#endif  // CONFIG_ENTROPY_STATS
920
921
  /*!
922
   * Quantization params.
923
   */
924
  CommonQuantParams quant_params;
925
926
  /*!
927
   * Segmentation info for current frame.
928
   */
929
  struct segmentation seg;
930
931
  /*!
932
   * Segmentation map for previous frame.
933
   */
934
  uint8_t *last_frame_seg_map;
935
936
  /**
937
   * \name Deblocking filter parameters.
938
   */
939
  /**@{*/
940
  loop_filter_info_n lf_info; /*!< Loop filter info */
941
  struct loopfilter lf;       /*!< Loop filter parameters */
942
  /**@}*/
943
944
  /**
945
   * \name Loop Restoration filter parameters.
946
   */
947
  /**@{*/
948
  RestorationInfo rst_info[MAX_MB_PLANE]; /*!< Loop Restoration filter info */
949
  int32_t *rst_tmpbuf; /*!< Scratch buffer for self-guided restoration */
950
  RestorationLineBuffers *rlbs; /*!< Line buffers needed by loop restoration */
951
  YV12_BUFFER_CONFIG rst_frame; /*!< Stores the output of loop restoration */
952
  /**@}*/
953
954
  /*!
955
   * CDEF (Constrained Directional Enhancement Filter) parameters.
956
   */
957
  CdefInfo cdef_info;
958
959
  /*!
960
   * Parameters for film grain synthesis.
961
   */
962
  aom_film_grain_t film_grain_params;
963
964
  /*!
965
   * Parameters for delta quantization and delta loop filter level.
966
   */
967
  DeltaQInfo delta_q_info;
968
969
  /*!
970
   * Global motion parameters for each reference frame.
971
   */
972
  WarpedMotionParams global_motion[REF_FRAMES];
973
974
  /*!
975
   * Elements part of the sequence header, that are applicable for all the
976
   * frames in the video.
977
   */
978
  SequenceHeader *seq_params;
979
980
  /*!
981
   * Current CDFs of all the symbols for the current frame.
982
   */
983
  FRAME_CONTEXT *fc;
984
  /*!
985
   * Default CDFs used when features.primary_ref_frame = PRIMARY_REF_NONE
986
   * (e.g. for a keyframe). These default CDFs are defined by the bitstream and
987
   * copied from default CDF tables for each symbol.
988
   */
989
  FRAME_CONTEXT *default_frame_context;
990
991
  /*!
992
   * Parameters related to tiling.
993
   */
994
  CommonTileParams tiles;
995
996
  /*!
997
   * External BufferPool passed from outside.
998
   */
999
  BufferPool *buffer_pool;
1000
1001
  /*!
1002
   * Above context buffers and their sizes.
1003
   * Note: above contexts are allocated in this struct, as their size is
1004
   * dependent on frame width, while left contexts are declared and allocated in
1005
   * MACROBLOCKD struct, as they have a fixed size.
1006
   */
1007
  CommonContexts above_contexts;
1008
1009
  /**
1010
   * \name Signaled when cm->seq_params->frame_id_numbers_present_flag == 1
1011
   */
1012
  /**@{*/
1013
  int current_frame_id;         /*!< frame ID for the current frame. */
1014
  int ref_frame_id[REF_FRAMES]; /*!< frame IDs for the reference frames. */
1015
  /**@}*/
1016
1017
  /*!
1018
   * Motion vectors provided by motion field estimation.
1019
   * tpl_mvs[row * stride + col] stores MV for block at [mi_row, mi_col] where:
1020
   * mi_row = 2 * row,
1021
   * mi_col = 2 * col, and
1022
   * stride = cm->mi_params.mi_stride / 2
1023
   */
1024
  TPL_MV_REF *tpl_mvs;
1025
  /*!
1026
   * Allocated size of 'tpl_mvs' array. Refer to 'ensure_mv_buffer()' function.
1027
   */
1028
  int tpl_mvs_mem_size;
1029
  /*!
1030
   * ref_frame_sign_bias[k] is 1 if relative distance between reference 'k' and
1031
   * current frame is positive; and 0 otherwise.
1032
   */
1033
  int ref_frame_sign_bias[REF_FRAMES];
1034
  /*!
1035
   * ref_frame_side[k] is 1 if relative distance between reference 'k' and
1036
   * current frame is positive, -1 if relative distance is 0; and 0 otherwise.
1037
   * TODO(jingning): This can be combined with sign_bias later.
1038
   */
1039
  int8_t ref_frame_side[REF_FRAMES];
1040
1041
  /*!
1042
   * Temporal layer ID of this frame
1043
   * (in the range 0 ... (number_temporal_layers - 1)).
1044
   */
1045
  int temporal_layer_id;
1046
1047
  /*!
1048
   * Spatial layer ID of this frame
1049
   * (in the range 0 ... (number_spatial_layers - 1)).
1050
   */
1051
  int spatial_layer_id;
1052
1053
#if TXCOEFF_TIMER
1054
  int64_t cum_txcoeff_timer;
1055
  int64_t txcoeff_timer;
1056
  int txb_count;
1057
#endif  // TXCOEFF_TIMER
1058
1059
#if TXCOEFF_COST_TIMER
1060
  int64_t cum_txcoeff_cost_timer;
1061
  int64_t txcoeff_cost_timer;
1062
  int64_t txcoeff_cost_count;
1063
#endif  // TXCOEFF_COST_TIMER
1064
} AV1_COMMON;
1065
1066
/*!\cond */
1067
1068
// TODO(hkuang): Don't need to lock the whole pool after implementing atomic
1069
// frame reference count.
1070
1.91M
static void lock_buffer_pool(BufferPool *const pool) {
1071
1.91M
#if CONFIG_MULTITHREAD
1072
1.91M
  pthread_mutex_lock(&pool->pool_mutex);
1073
#else
1074
  (void)pool;
1075
#endif
1076
1.91M
}
av1_dx_iface.c:lock_buffer_pool
Line
Count
Source
1070
548k
static void lock_buffer_pool(BufferPool *const pool) {
1071
548k
#if CONFIG_MULTITHREAD
1072
548k
  pthread_mutex_lock(&pool->pool_mutex);
1073
#else
1074
  (void)pool;
1075
#endif
1076
548k
}
decodeframe.c:lock_buffer_pool
Line
Count
Source
1070
857k
static void lock_buffer_pool(BufferPool *const pool) {
1071
857k
#if CONFIG_MULTITHREAD
1072
857k
  pthread_mutex_lock(&pool->pool_mutex);
1073
#else
1074
  (void)pool;
1075
#endif
1076
857k
}
Unexecuted instantiation: decodemv.c:lock_buffer_pool
decoder.c:lock_buffer_pool
Line
Count
Source
1070
500k
static void lock_buffer_pool(BufferPool *const pool) {
1071
500k
#if CONFIG_MULTITHREAD
1072
500k
  pthread_mutex_lock(&pool->pool_mutex);
1073
#else
1074
  (void)pool;
1075
#endif
1076
500k
}
Unexecuted instantiation: decodetxb.c:lock_buffer_pool
Unexecuted instantiation: detokenize.c:lock_buffer_pool
Unexecuted instantiation: obu.c:lock_buffer_pool
Unexecuted instantiation: alloccommon.c:lock_buffer_pool
Unexecuted instantiation: av1_loopfilter.c:lock_buffer_pool
Unexecuted instantiation: blockd.c:lock_buffer_pool
Unexecuted instantiation: cdef.c:lock_buffer_pool
Unexecuted instantiation: cdef_block.c:lock_buffer_pool
Unexecuted instantiation: cfl.c:lock_buffer_pool
Unexecuted instantiation: convolve.c:lock_buffer_pool
Unexecuted instantiation: entropy.c:lock_buffer_pool
Unexecuted instantiation: entropymode.c:lock_buffer_pool
Unexecuted instantiation: entropymv.c:lock_buffer_pool
Unexecuted instantiation: mvref_common.c:lock_buffer_pool
Unexecuted instantiation: pred_common.c:lock_buffer_pool
Unexecuted instantiation: quant_common.c:lock_buffer_pool
Unexecuted instantiation: reconinter.c:lock_buffer_pool
Unexecuted instantiation: reconintra.c:lock_buffer_pool
resize.c:lock_buffer_pool
Line
Count
Source
1070
6.26k
static void lock_buffer_pool(BufferPool *const pool) {
1071
6.26k
#if CONFIG_MULTITHREAD
1072
6.26k
  pthread_mutex_lock(&pool->pool_mutex);
1073
#else
1074
  (void)pool;
1075
#endif
1076
6.26k
}
Unexecuted instantiation: restoration.c:lock_buffer_pool
Unexecuted instantiation: scan.c:lock_buffer_pool
Unexecuted instantiation: thread_common.c:lock_buffer_pool
Unexecuted instantiation: tile_common.c:lock_buffer_pool
Unexecuted instantiation: txb_common.c:lock_buffer_pool
Unexecuted instantiation: cfl_sse2.c:lock_buffer_pool
Unexecuted instantiation: cfl_ssse3.c:lock_buffer_pool
Unexecuted instantiation: resize_ssse3.c:lock_buffer_pool
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:lock_buffer_pool
Unexecuted instantiation: filterintra_sse4.c:lock_buffer_pool
Unexecuted instantiation: cfl_avx2.c:lock_buffer_pool
1077
1078
1.91M
static void unlock_buffer_pool(BufferPool *const pool) {
1079
1.91M
#if CONFIG_MULTITHREAD
1080
1.91M
  pthread_mutex_unlock(&pool->pool_mutex);
1081
#else
1082
  (void)pool;
1083
#endif
1084
1.91M
}
av1_dx_iface.c:unlock_buffer_pool
Line
Count
Source
1078
548k
static void unlock_buffer_pool(BufferPool *const pool) {
1079
548k
#if CONFIG_MULTITHREAD
1080
548k
  pthread_mutex_unlock(&pool->pool_mutex);
1081
#else
1082
  (void)pool;
1083
#endif
1084
548k
}
decodeframe.c:unlock_buffer_pool
Line
Count
Source
1078
857k
static void unlock_buffer_pool(BufferPool *const pool) {
1079
857k
#if CONFIG_MULTITHREAD
1080
857k
  pthread_mutex_unlock(&pool->pool_mutex);
1081
#else
1082
  (void)pool;
1083
#endif
1084
857k
}
Unexecuted instantiation: decodemv.c:unlock_buffer_pool
decoder.c:unlock_buffer_pool
Line
Count
Source
1078
500k
static void unlock_buffer_pool(BufferPool *const pool) {
1079
500k
#if CONFIG_MULTITHREAD
1080
500k
  pthread_mutex_unlock(&pool->pool_mutex);
1081
#else
1082
  (void)pool;
1083
#endif
1084
500k
}
Unexecuted instantiation: decodetxb.c:unlock_buffer_pool
Unexecuted instantiation: detokenize.c:unlock_buffer_pool
Unexecuted instantiation: obu.c:unlock_buffer_pool
Unexecuted instantiation: alloccommon.c:unlock_buffer_pool
Unexecuted instantiation: av1_loopfilter.c:unlock_buffer_pool
Unexecuted instantiation: blockd.c:unlock_buffer_pool
Unexecuted instantiation: cdef.c:unlock_buffer_pool
Unexecuted instantiation: cdef_block.c:unlock_buffer_pool
Unexecuted instantiation: cfl.c:unlock_buffer_pool
Unexecuted instantiation: convolve.c:unlock_buffer_pool
Unexecuted instantiation: entropy.c:unlock_buffer_pool
Unexecuted instantiation: entropymode.c:unlock_buffer_pool
Unexecuted instantiation: entropymv.c:unlock_buffer_pool
Unexecuted instantiation: mvref_common.c:unlock_buffer_pool
Unexecuted instantiation: pred_common.c:unlock_buffer_pool
Unexecuted instantiation: quant_common.c:unlock_buffer_pool
Unexecuted instantiation: reconinter.c:unlock_buffer_pool
Unexecuted instantiation: reconintra.c:unlock_buffer_pool
resize.c:unlock_buffer_pool
Line
Count
Source
1078
6.26k
static void unlock_buffer_pool(BufferPool *const pool) {
1079
6.26k
#if CONFIG_MULTITHREAD
1080
6.26k
  pthread_mutex_unlock(&pool->pool_mutex);
1081
#else
1082
  (void)pool;
1083
#endif
1084
6.26k
}
Unexecuted instantiation: restoration.c:unlock_buffer_pool
Unexecuted instantiation: scan.c:unlock_buffer_pool
Unexecuted instantiation: thread_common.c:unlock_buffer_pool
Unexecuted instantiation: tile_common.c:unlock_buffer_pool
Unexecuted instantiation: txb_common.c:unlock_buffer_pool
Unexecuted instantiation: cfl_sse2.c:unlock_buffer_pool
Unexecuted instantiation: cfl_ssse3.c:unlock_buffer_pool
Unexecuted instantiation: resize_ssse3.c:unlock_buffer_pool
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:unlock_buffer_pool
Unexecuted instantiation: filterintra_sse4.c:unlock_buffer_pool
Unexecuted instantiation: cfl_avx2.c:unlock_buffer_pool
1085
1086
0
static INLINE YV12_BUFFER_CONFIG *get_ref_frame(AV1_COMMON *cm, int index) {
1087
0
  if (index < 0 || index >= REF_FRAMES) return NULL;
1088
0
  if (cm->ref_frame_map[index] == NULL) return NULL;
1089
0
  return &cm->ref_frame_map[index]->buf;
1090
0
}
Unexecuted instantiation: av1_dx_iface.c:get_ref_frame
Unexecuted instantiation: decodeframe.c:get_ref_frame
Unexecuted instantiation: decodemv.c:get_ref_frame
Unexecuted instantiation: decoder.c:get_ref_frame
Unexecuted instantiation: decodetxb.c:get_ref_frame
Unexecuted instantiation: detokenize.c:get_ref_frame
Unexecuted instantiation: obu.c:get_ref_frame
Unexecuted instantiation: alloccommon.c:get_ref_frame
Unexecuted instantiation: av1_loopfilter.c:get_ref_frame
Unexecuted instantiation: blockd.c:get_ref_frame
Unexecuted instantiation: cdef.c:get_ref_frame
Unexecuted instantiation: cdef_block.c:get_ref_frame
Unexecuted instantiation: cfl.c:get_ref_frame
Unexecuted instantiation: convolve.c:get_ref_frame
Unexecuted instantiation: entropy.c:get_ref_frame
Unexecuted instantiation: entropymode.c:get_ref_frame
Unexecuted instantiation: entropymv.c:get_ref_frame
Unexecuted instantiation: mvref_common.c:get_ref_frame
Unexecuted instantiation: pred_common.c:get_ref_frame
Unexecuted instantiation: quant_common.c:get_ref_frame
Unexecuted instantiation: reconinter.c:get_ref_frame
Unexecuted instantiation: reconintra.c:get_ref_frame
Unexecuted instantiation: resize.c:get_ref_frame
Unexecuted instantiation: restoration.c:get_ref_frame
Unexecuted instantiation: scan.c:get_ref_frame
Unexecuted instantiation: thread_common.c:get_ref_frame
Unexecuted instantiation: tile_common.c:get_ref_frame
Unexecuted instantiation: txb_common.c:get_ref_frame
Unexecuted instantiation: cfl_sse2.c:get_ref_frame
Unexecuted instantiation: cfl_ssse3.c:get_ref_frame
Unexecuted instantiation: resize_ssse3.c:get_ref_frame
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_frame
Unexecuted instantiation: filterintra_sse4.c:get_ref_frame
Unexecuted instantiation: cfl_avx2.c:get_ref_frame
1091
1092
551k
static INLINE int get_free_fb(AV1_COMMON *cm) {
1093
551k
  RefCntBuffer *const frame_bufs = cm->buffer_pool->frame_bufs;
1094
551k
  int i;
1095
1096
551k
  lock_buffer_pool(cm->buffer_pool);
1097
551k
  const int num_frame_bufs = cm->buffer_pool->num_frame_bufs;
1098
2.04M
  for (i = 0; i < num_frame_bufs; ++i)
1099
2.04M
    if (frame_bufs[i].ref_count == 0) break;
1100
1101
551k
  if (i != num_frame_bufs) {
1102
551k
    if (frame_bufs[i].buf.use_external_reference_buffers) {
1103
      // If this frame buffer's y_buffer, u_buffer, and v_buffer point to the
1104
      // external reference buffers. Restore the buffer pointers to point to the
1105
      // internally allocated memory.
1106
0
      YV12_BUFFER_CONFIG *ybf = &frame_bufs[i].buf;
1107
0
      ybf->y_buffer = ybf->store_buf_adr[0];
1108
0
      ybf->u_buffer = ybf->store_buf_adr[1];
1109
0
      ybf->v_buffer = ybf->store_buf_adr[2];
1110
0
      ybf->use_external_reference_buffers = 0;
1111
0
    }
1112
1113
551k
    frame_bufs[i].ref_count = 1;
1114
551k
  } else {
1115
    // We should never run out of free buffers. If this assertion fails, there
1116
    // is a reference leak.
1117
0
    assert(0 && "Ran out of free frame buffers. Likely a reference leak.");
1118
    // Reset i to be INVALID_IDX to indicate no free buffer found.
1119
0
    i = INVALID_IDX;
1120
0
  }
1121
1122
0
  unlock_buffer_pool(cm->buffer_pool);
1123
551k
  return i;
1124
551k
}
Unexecuted instantiation: av1_dx_iface.c:get_free_fb
decodeframe.c:get_free_fb
Line
Count
Source
1092
301k
static INLINE int get_free_fb(AV1_COMMON *cm) {
1093
301k
  RefCntBuffer *const frame_bufs = cm->buffer_pool->frame_bufs;
1094
301k
  int i;
1095
1096
301k
  lock_buffer_pool(cm->buffer_pool);
1097
301k
  const int num_frame_bufs = cm->buffer_pool->num_frame_bufs;
1098
1.57M
  for (i = 0; i < num_frame_bufs; ++i)
1099
1.57M
    if (frame_bufs[i].ref_count == 0) break;
1100
1101
301k
  if (i != num_frame_bufs) {
1102
301k
    if (frame_bufs[i].buf.use_external_reference_buffers) {
1103
      // If this frame buffer's y_buffer, u_buffer, and v_buffer point to the
1104
      // external reference buffers. Restore the buffer pointers to point to the
1105
      // internally allocated memory.
1106
0
      YV12_BUFFER_CONFIG *ybf = &frame_bufs[i].buf;
1107
0
      ybf->y_buffer = ybf->store_buf_adr[0];
1108
0
      ybf->u_buffer = ybf->store_buf_adr[1];
1109
0
      ybf->v_buffer = ybf->store_buf_adr[2];
1110
0
      ybf->use_external_reference_buffers = 0;
1111
0
    }
1112
1113
301k
    frame_bufs[i].ref_count = 1;
1114
301k
  } else {
1115
    // We should never run out of free buffers. If this assertion fails, there
1116
    // is a reference leak.
1117
0
    assert(0 && "Ran out of free frame buffers. Likely a reference leak.");
1118
    // Reset i to be INVALID_IDX to indicate no free buffer found.
1119
0
    i = INVALID_IDX;
1120
0
  }
1121
1122
0
  unlock_buffer_pool(cm->buffer_pool);
1123
301k
  return i;
1124
301k
}
Unexecuted instantiation: decodemv.c:get_free_fb
decoder.c:get_free_fb
Line
Count
Source
1092
250k
static INLINE int get_free_fb(AV1_COMMON *cm) {
1093
250k
  RefCntBuffer *const frame_bufs = cm->buffer_pool->frame_bufs;
1094
250k
  int i;
1095
1096
250k
  lock_buffer_pool(cm->buffer_pool);
1097
250k
  const int num_frame_bufs = cm->buffer_pool->num_frame_bufs;
1098
466k
  for (i = 0; i < num_frame_bufs; ++i)
1099
466k
    if (frame_bufs[i].ref_count == 0) break;
1100
1101
250k
  if (i != num_frame_bufs) {
1102
250k
    if (frame_bufs[i].buf.use_external_reference_buffers) {
1103
      // If this frame buffer's y_buffer, u_buffer, and v_buffer point to the
1104
      // external reference buffers. Restore the buffer pointers to point to the
1105
      // internally allocated memory.
1106
0
      YV12_BUFFER_CONFIG *ybf = &frame_bufs[i].buf;
1107
0
      ybf->y_buffer = ybf->store_buf_adr[0];
1108
0
      ybf->u_buffer = ybf->store_buf_adr[1];
1109
0
      ybf->v_buffer = ybf->store_buf_adr[2];
1110
0
      ybf->use_external_reference_buffers = 0;
1111
0
    }
1112
1113
250k
    frame_bufs[i].ref_count = 1;
1114
250k
  } else {
1115
    // We should never run out of free buffers. If this assertion fails, there
1116
    // is a reference leak.
1117
0
    assert(0 && "Ran out of free frame buffers. Likely a reference leak.");
1118
    // Reset i to be INVALID_IDX to indicate no free buffer found.
1119
0
    i = INVALID_IDX;
1120
0
  }
1121
1122
0
  unlock_buffer_pool(cm->buffer_pool);
1123
250k
  return i;
1124
250k
}
Unexecuted instantiation: decodetxb.c:get_free_fb
Unexecuted instantiation: detokenize.c:get_free_fb
Unexecuted instantiation: obu.c:get_free_fb
Unexecuted instantiation: alloccommon.c:get_free_fb
Unexecuted instantiation: av1_loopfilter.c:get_free_fb
Unexecuted instantiation: blockd.c:get_free_fb
Unexecuted instantiation: cdef.c:get_free_fb
Unexecuted instantiation: cdef_block.c:get_free_fb
Unexecuted instantiation: cfl.c:get_free_fb
Unexecuted instantiation: convolve.c:get_free_fb
Unexecuted instantiation: entropy.c:get_free_fb
Unexecuted instantiation: entropymode.c:get_free_fb
Unexecuted instantiation: entropymv.c:get_free_fb
Unexecuted instantiation: mvref_common.c:get_free_fb
Unexecuted instantiation: pred_common.c:get_free_fb
Unexecuted instantiation: quant_common.c:get_free_fb
Unexecuted instantiation: reconinter.c:get_free_fb
Unexecuted instantiation: reconintra.c:get_free_fb
Unexecuted instantiation: resize.c:get_free_fb
Unexecuted instantiation: restoration.c:get_free_fb
Unexecuted instantiation: scan.c:get_free_fb
Unexecuted instantiation: thread_common.c:get_free_fb
Unexecuted instantiation: tile_common.c:get_free_fb
Unexecuted instantiation: txb_common.c:get_free_fb
Unexecuted instantiation: cfl_sse2.c:get_free_fb
Unexecuted instantiation: cfl_ssse3.c:get_free_fb
Unexecuted instantiation: resize_ssse3.c:get_free_fb
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_free_fb
Unexecuted instantiation: filterintra_sse4.c:get_free_fb
Unexecuted instantiation: cfl_avx2.c:get_free_fb
1125
1126
250k
static INLINE RefCntBuffer *assign_cur_frame_new_fb(AV1_COMMON *const cm) {
1127
  // Release the previously-used frame-buffer
1128
250k
  if (cm->cur_frame != NULL) {
1129
0
    --cm->cur_frame->ref_count;
1130
0
    cm->cur_frame = NULL;
1131
0
  }
1132
1133
  // Assign a new framebuffer
1134
250k
  const int new_fb_idx = get_free_fb(cm);
1135
250k
  if (new_fb_idx == INVALID_IDX) return NULL;
1136
1137
250k
  cm->cur_frame = &cm->buffer_pool->frame_bufs[new_fb_idx];
1138
#if CONFIG_AV1_ENCODER && !CONFIG_REALTIME_ONLY
1139
  aom_invalidate_pyramid(cm->cur_frame->buf.y_pyramid);
1140
  av1_invalidate_corner_list(cm->cur_frame->buf.corners);
1141
#endif  // CONFIG_AV1_ENCODER && !CONFIG_REALTIME_ONLY
1142
250k
  av1_zero(cm->cur_frame->interp_filter_selected);
1143
250k
  return cm->cur_frame;
1144
250k
}
Unexecuted instantiation: av1_dx_iface.c:assign_cur_frame_new_fb
Unexecuted instantiation: decodeframe.c:assign_cur_frame_new_fb
Unexecuted instantiation: decodemv.c:assign_cur_frame_new_fb
decoder.c:assign_cur_frame_new_fb
Line
Count
Source
1126
250k
static INLINE RefCntBuffer *assign_cur_frame_new_fb(AV1_COMMON *const cm) {
1127
  // Release the previously-used frame-buffer
1128
250k
  if (cm->cur_frame != NULL) {
1129
0
    --cm->cur_frame->ref_count;
1130
0
    cm->cur_frame = NULL;
1131
0
  }
1132
1133
  // Assign a new framebuffer
1134
250k
  const int new_fb_idx = get_free_fb(cm);
1135
250k
  if (new_fb_idx == INVALID_IDX) return NULL;
1136
1137
250k
  cm->cur_frame = &cm->buffer_pool->frame_bufs[new_fb_idx];
1138
#if CONFIG_AV1_ENCODER && !CONFIG_REALTIME_ONLY
1139
  aom_invalidate_pyramid(cm->cur_frame->buf.y_pyramid);
1140
  av1_invalidate_corner_list(cm->cur_frame->buf.corners);
1141
#endif  // CONFIG_AV1_ENCODER && !CONFIG_REALTIME_ONLY
1142
250k
  av1_zero(cm->cur_frame->interp_filter_selected);
1143
250k
  return cm->cur_frame;
1144
250k
}
Unexecuted instantiation: decodetxb.c:assign_cur_frame_new_fb
Unexecuted instantiation: detokenize.c:assign_cur_frame_new_fb
Unexecuted instantiation: obu.c:assign_cur_frame_new_fb
Unexecuted instantiation: alloccommon.c:assign_cur_frame_new_fb
Unexecuted instantiation: av1_loopfilter.c:assign_cur_frame_new_fb
Unexecuted instantiation: blockd.c:assign_cur_frame_new_fb
Unexecuted instantiation: cdef.c:assign_cur_frame_new_fb
Unexecuted instantiation: cdef_block.c:assign_cur_frame_new_fb
Unexecuted instantiation: cfl.c:assign_cur_frame_new_fb
Unexecuted instantiation: convolve.c:assign_cur_frame_new_fb
Unexecuted instantiation: entropy.c:assign_cur_frame_new_fb
Unexecuted instantiation: entropymode.c:assign_cur_frame_new_fb
Unexecuted instantiation: entropymv.c:assign_cur_frame_new_fb
Unexecuted instantiation: mvref_common.c:assign_cur_frame_new_fb
Unexecuted instantiation: pred_common.c:assign_cur_frame_new_fb
Unexecuted instantiation: quant_common.c:assign_cur_frame_new_fb
Unexecuted instantiation: reconinter.c:assign_cur_frame_new_fb
Unexecuted instantiation: reconintra.c:assign_cur_frame_new_fb
Unexecuted instantiation: resize.c:assign_cur_frame_new_fb
Unexecuted instantiation: restoration.c:assign_cur_frame_new_fb
Unexecuted instantiation: scan.c:assign_cur_frame_new_fb
Unexecuted instantiation: thread_common.c:assign_cur_frame_new_fb
Unexecuted instantiation: tile_common.c:assign_cur_frame_new_fb
Unexecuted instantiation: txb_common.c:assign_cur_frame_new_fb
Unexecuted instantiation: cfl_sse2.c:assign_cur_frame_new_fb
Unexecuted instantiation: cfl_ssse3.c:assign_cur_frame_new_fb
Unexecuted instantiation: resize_ssse3.c:assign_cur_frame_new_fb
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:assign_cur_frame_new_fb
Unexecuted instantiation: filterintra_sse4.c:assign_cur_frame_new_fb
Unexecuted instantiation: cfl_avx2.c:assign_cur_frame_new_fb
1145
1146
// Modify 'lhs_ptr' to reference the buffer at 'rhs_ptr', and update the ref
1147
// counts accordingly.
1148
static INLINE void assign_frame_buffer_p(RefCntBuffer **lhs_ptr,
1149
1.39k
                                         RefCntBuffer *rhs_ptr) {
1150
1.39k
  RefCntBuffer *const old_ptr = *lhs_ptr;
1151
1.39k
  if (old_ptr != NULL) {
1152
1.39k
    assert(old_ptr->ref_count > 0);
1153
    // One less reference to the buffer at 'old_ptr', so decrease ref count.
1154
0
    --old_ptr->ref_count;
1155
1.39k
  }
1156
1157
0
  *lhs_ptr = rhs_ptr;
1158
  // One more reference to the buffer at 'rhs_ptr', so increase ref count.
1159
1.39k
  ++rhs_ptr->ref_count;
1160
1.39k
}
Unexecuted instantiation: av1_dx_iface.c:assign_frame_buffer_p
decodeframe.c:assign_frame_buffer_p
Line
Count
Source
1149
1.39k
                                         RefCntBuffer *rhs_ptr) {
1150
1.39k
  RefCntBuffer *const old_ptr = *lhs_ptr;
1151
1.39k
  if (old_ptr != NULL) {
1152
1.39k
    assert(old_ptr->ref_count > 0);
1153
    // One less reference to the buffer at 'old_ptr', so decrease ref count.
1154
0
    --old_ptr->ref_count;
1155
1.39k
  }
1156
1157
0
  *lhs_ptr = rhs_ptr;
1158
  // One more reference to the buffer at 'rhs_ptr', so increase ref count.
1159
1.39k
  ++rhs_ptr->ref_count;
1160
1.39k
}
Unexecuted instantiation: decodemv.c:assign_frame_buffer_p
Unexecuted instantiation: decoder.c:assign_frame_buffer_p
Unexecuted instantiation: decodetxb.c:assign_frame_buffer_p
Unexecuted instantiation: detokenize.c:assign_frame_buffer_p
Unexecuted instantiation: obu.c:assign_frame_buffer_p
Unexecuted instantiation: alloccommon.c:assign_frame_buffer_p
Unexecuted instantiation: av1_loopfilter.c:assign_frame_buffer_p
Unexecuted instantiation: blockd.c:assign_frame_buffer_p
Unexecuted instantiation: cdef.c:assign_frame_buffer_p
Unexecuted instantiation: cdef_block.c:assign_frame_buffer_p
Unexecuted instantiation: cfl.c:assign_frame_buffer_p
Unexecuted instantiation: convolve.c:assign_frame_buffer_p
Unexecuted instantiation: entropy.c:assign_frame_buffer_p
Unexecuted instantiation: entropymode.c:assign_frame_buffer_p
Unexecuted instantiation: entropymv.c:assign_frame_buffer_p
Unexecuted instantiation: mvref_common.c:assign_frame_buffer_p
Unexecuted instantiation: pred_common.c:assign_frame_buffer_p
Unexecuted instantiation: quant_common.c:assign_frame_buffer_p
Unexecuted instantiation: reconinter.c:assign_frame_buffer_p
Unexecuted instantiation: reconintra.c:assign_frame_buffer_p
Unexecuted instantiation: resize.c:assign_frame_buffer_p
Unexecuted instantiation: restoration.c:assign_frame_buffer_p
Unexecuted instantiation: scan.c:assign_frame_buffer_p
Unexecuted instantiation: thread_common.c:assign_frame_buffer_p
Unexecuted instantiation: tile_common.c:assign_frame_buffer_p
Unexecuted instantiation: txb_common.c:assign_frame_buffer_p
Unexecuted instantiation: cfl_sse2.c:assign_frame_buffer_p
Unexecuted instantiation: cfl_ssse3.c:assign_frame_buffer_p
Unexecuted instantiation: resize_ssse3.c:assign_frame_buffer_p
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:assign_frame_buffer_p
Unexecuted instantiation: filterintra_sse4.c:assign_frame_buffer_p
Unexecuted instantiation: cfl_avx2.c:assign_frame_buffer_p
1161
1162
26.0M
static INLINE int frame_is_intra_only(const AV1_COMMON *const cm) {
1163
26.0M
  return cm->current_frame.frame_type == KEY_FRAME ||
1164
26.0M
         cm->current_frame.frame_type == INTRA_ONLY_FRAME;
1165
26.0M
}
av1_dx_iface.c:frame_is_intra_only
Line
Count
Source
1162
42.2k
static INLINE int frame_is_intra_only(const AV1_COMMON *const cm) {
1163
42.2k
  return cm->current_frame.frame_type == KEY_FRAME ||
1164
42.2k
         cm->current_frame.frame_type == INTRA_ONLY_FRAME;
1165
42.2k
}
decodeframe.c:frame_is_intra_only
Line
Count
Source
1162
849k
static INLINE int frame_is_intra_only(const AV1_COMMON *const cm) {
1163
849k
  return cm->current_frame.frame_type == KEY_FRAME ||
1164
849k
         cm->current_frame.frame_type == INTRA_ONLY_FRAME;
1165
849k
}
decodemv.c:frame_is_intra_only
Line
Count
Source
1162
24.9M
static INLINE int frame_is_intra_only(const AV1_COMMON *const cm) {
1163
24.9M
  return cm->current_frame.frame_type == KEY_FRAME ||
1164
24.9M
         cm->current_frame.frame_type == INTRA_ONLY_FRAME;
1165
24.9M
}
Unexecuted instantiation: decoder.c:frame_is_intra_only
Unexecuted instantiation: decodetxb.c:frame_is_intra_only
Unexecuted instantiation: detokenize.c:frame_is_intra_only
Unexecuted instantiation: obu.c:frame_is_intra_only
Unexecuted instantiation: alloccommon.c:frame_is_intra_only
Unexecuted instantiation: av1_loopfilter.c:frame_is_intra_only
Unexecuted instantiation: blockd.c:frame_is_intra_only
Unexecuted instantiation: cdef.c:frame_is_intra_only
Unexecuted instantiation: cdef_block.c:frame_is_intra_only
Unexecuted instantiation: cfl.c:frame_is_intra_only
Unexecuted instantiation: convolve.c:frame_is_intra_only
Unexecuted instantiation: entropy.c:frame_is_intra_only
Unexecuted instantiation: entropymode.c:frame_is_intra_only
Unexecuted instantiation: entropymv.c:frame_is_intra_only
mvref_common.c:frame_is_intra_only
Line
Count
Source
1162
117k
static INLINE int frame_is_intra_only(const AV1_COMMON *const cm) {
1163
117k
  return cm->current_frame.frame_type == KEY_FRAME ||
1164
117k
         cm->current_frame.frame_type == INTRA_ONLY_FRAME;
1165
117k
}
Unexecuted instantiation: pred_common.c:frame_is_intra_only
Unexecuted instantiation: quant_common.c:frame_is_intra_only
Unexecuted instantiation: reconinter.c:frame_is_intra_only
Unexecuted instantiation: reconintra.c:frame_is_intra_only
Unexecuted instantiation: resize.c:frame_is_intra_only
Unexecuted instantiation: restoration.c:frame_is_intra_only
Unexecuted instantiation: scan.c:frame_is_intra_only
thread_common.c:frame_is_intra_only
Line
Count
Source
1162
83.8k
static INLINE int frame_is_intra_only(const AV1_COMMON *const cm) {
1163
83.8k
  return cm->current_frame.frame_type == KEY_FRAME ||
1164
83.8k
         cm->current_frame.frame_type == INTRA_ONLY_FRAME;
1165
83.8k
}
Unexecuted instantiation: tile_common.c:frame_is_intra_only
Unexecuted instantiation: txb_common.c:frame_is_intra_only
Unexecuted instantiation: cfl_sse2.c:frame_is_intra_only
Unexecuted instantiation: cfl_ssse3.c:frame_is_intra_only
Unexecuted instantiation: resize_ssse3.c:frame_is_intra_only
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:frame_is_intra_only
Unexecuted instantiation: filterintra_sse4.c:frame_is_intra_only
Unexecuted instantiation: cfl_avx2.c:frame_is_intra_only
1166
1167
404k
static INLINE int frame_is_sframe(const AV1_COMMON *cm) {
1168
404k
  return cm->current_frame.frame_type == S_FRAME;
1169
404k
}
Unexecuted instantiation: av1_dx_iface.c:frame_is_sframe
decodeframe.c:frame_is_sframe
Line
Count
Source
1167
404k
static INLINE int frame_is_sframe(const AV1_COMMON *cm) {
1168
404k
  return cm->current_frame.frame_type == S_FRAME;
1169
404k
}
Unexecuted instantiation: decodemv.c:frame_is_sframe
Unexecuted instantiation: decoder.c:frame_is_sframe
Unexecuted instantiation: decodetxb.c:frame_is_sframe
Unexecuted instantiation: detokenize.c:frame_is_sframe
Unexecuted instantiation: obu.c:frame_is_sframe
Unexecuted instantiation: alloccommon.c:frame_is_sframe
Unexecuted instantiation: av1_loopfilter.c:frame_is_sframe
Unexecuted instantiation: blockd.c:frame_is_sframe
Unexecuted instantiation: cdef.c:frame_is_sframe
Unexecuted instantiation: cdef_block.c:frame_is_sframe
Unexecuted instantiation: cfl.c:frame_is_sframe
Unexecuted instantiation: convolve.c:frame_is_sframe
Unexecuted instantiation: entropy.c:frame_is_sframe
Unexecuted instantiation: entropymode.c:frame_is_sframe
Unexecuted instantiation: entropymv.c:frame_is_sframe
Unexecuted instantiation: mvref_common.c:frame_is_sframe
Unexecuted instantiation: pred_common.c:frame_is_sframe
Unexecuted instantiation: quant_common.c:frame_is_sframe
Unexecuted instantiation: reconinter.c:frame_is_sframe
Unexecuted instantiation: reconintra.c:frame_is_sframe
Unexecuted instantiation: resize.c:frame_is_sframe
Unexecuted instantiation: restoration.c:frame_is_sframe
Unexecuted instantiation: scan.c:frame_is_sframe
Unexecuted instantiation: thread_common.c:frame_is_sframe
Unexecuted instantiation: tile_common.c:frame_is_sframe
Unexecuted instantiation: txb_common.c:frame_is_sframe
Unexecuted instantiation: cfl_sse2.c:frame_is_sframe
Unexecuted instantiation: cfl_ssse3.c:frame_is_sframe
Unexecuted instantiation: resize_ssse3.c:frame_is_sframe
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:frame_is_sframe
Unexecuted instantiation: filterintra_sse4.c:frame_is_sframe
Unexecuted instantiation: cfl_avx2.c:frame_is_sframe
1170
1171
// These functions take a reference frame label between LAST_FRAME and
1172
// EXTREF_FRAME inclusive.  Note that this is different to the indexing
1173
// previously used by the frame_refs[] array.
1174
static INLINE int get_ref_frame_map_idx(const AV1_COMMON *const cm,
1175
43.0M
                                        const MV_REFERENCE_FRAME ref_frame) {
1176
43.0M
  return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME)
1177
43.0M
             ? cm->remapped_ref_idx[ref_frame - LAST_FRAME]
1178
18.4E
             : INVALID_IDX;
1179
43.0M
}
Unexecuted instantiation: av1_dx_iface.c:get_ref_frame_map_idx
decodeframe.c:get_ref_frame_map_idx
Line
Count
Source
1175
21.8M
                                        const MV_REFERENCE_FRAME ref_frame) {
1176
21.8M
  return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME)
1177
21.8M
             ? cm->remapped_ref_idx[ref_frame - LAST_FRAME]
1178
18.4E
             : INVALID_IDX;
1179
21.8M
}
decodemv.c:get_ref_frame_map_idx
Line
Count
Source
1175
7.81M
                                        const MV_REFERENCE_FRAME ref_frame) {
1176
7.81M
  return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME)
1177
7.81M
             ? cm->remapped_ref_idx[ref_frame - LAST_FRAME]
1178
18.4E
             : INVALID_IDX;
1179
7.81M
}
Unexecuted instantiation: decoder.c:get_ref_frame_map_idx
Unexecuted instantiation: decodetxb.c:get_ref_frame_map_idx
Unexecuted instantiation: detokenize.c:get_ref_frame_map_idx
Unexecuted instantiation: obu.c:get_ref_frame_map_idx
Unexecuted instantiation: alloccommon.c:get_ref_frame_map_idx
Unexecuted instantiation: av1_loopfilter.c:get_ref_frame_map_idx
Unexecuted instantiation: blockd.c:get_ref_frame_map_idx
Unexecuted instantiation: cdef.c:get_ref_frame_map_idx
Unexecuted instantiation: cdef_block.c:get_ref_frame_map_idx
Unexecuted instantiation: cfl.c:get_ref_frame_map_idx
Unexecuted instantiation: convolve.c:get_ref_frame_map_idx
Unexecuted instantiation: entropy.c:get_ref_frame_map_idx
Unexecuted instantiation: entropymode.c:get_ref_frame_map_idx
Unexecuted instantiation: entropymv.c:get_ref_frame_map_idx
mvref_common.c:get_ref_frame_map_idx
Line
Count
Source
1175
7.60M
                                        const MV_REFERENCE_FRAME ref_frame) {
1176
7.60M
  return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME)
1177
7.60M
             ? cm->remapped_ref_idx[ref_frame - LAST_FRAME]
1178
7.60M
             : INVALID_IDX;
1179
7.60M
}
Unexecuted instantiation: pred_common.c:get_ref_frame_map_idx
Unexecuted instantiation: quant_common.c:get_ref_frame_map_idx
reconinter.c:get_ref_frame_map_idx
Line
Count
Source
1175
5.72M
                                        const MV_REFERENCE_FRAME ref_frame) {
1176
5.72M
  return (ref_frame >= LAST_FRAME && ref_frame <= EXTREF_FRAME)
1177
5.72M
             ? cm->remapped_ref_idx[ref_frame - LAST_FRAME]
1178
18.4E
             : INVALID_IDX;
1179
5.72M
}
Unexecuted instantiation: reconintra.c:get_ref_frame_map_idx
Unexecuted instantiation: resize.c:get_ref_frame_map_idx
Unexecuted instantiation: restoration.c:get_ref_frame_map_idx
Unexecuted instantiation: scan.c:get_ref_frame_map_idx
Unexecuted instantiation: thread_common.c:get_ref_frame_map_idx
Unexecuted instantiation: tile_common.c:get_ref_frame_map_idx
Unexecuted instantiation: txb_common.c:get_ref_frame_map_idx
Unexecuted instantiation: cfl_sse2.c:get_ref_frame_map_idx
Unexecuted instantiation: cfl_ssse3.c:get_ref_frame_map_idx
Unexecuted instantiation: resize_ssse3.c:get_ref_frame_map_idx
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_frame_map_idx
Unexecuted instantiation: filterintra_sse4.c:get_ref_frame_map_idx
Unexecuted instantiation: cfl_avx2.c:get_ref_frame_map_idx
1180
1181
static INLINE RefCntBuffer *get_ref_frame_buf(
1182
22.9M
    const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1183
22.9M
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1184
22.9M
  return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL;
1185
22.9M
}
Unexecuted instantiation: av1_dx_iface.c:get_ref_frame_buf
decodeframe.c:get_ref_frame_buf
Line
Count
Source
1182
11.1M
    const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1183
11.1M
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1184
11.1M
  return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL;
1185
11.1M
}
decodemv.c:get_ref_frame_buf
Line
Count
Source
1182
677k
    const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1183
677k
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1184
677k
  return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL;
1185
677k
}
Unexecuted instantiation: decoder.c:get_ref_frame_buf
Unexecuted instantiation: decodetxb.c:get_ref_frame_buf
Unexecuted instantiation: detokenize.c:get_ref_frame_buf
Unexecuted instantiation: obu.c:get_ref_frame_buf
Unexecuted instantiation: alloccommon.c:get_ref_frame_buf
Unexecuted instantiation: av1_loopfilter.c:get_ref_frame_buf
Unexecuted instantiation: blockd.c:get_ref_frame_buf
Unexecuted instantiation: cdef.c:get_ref_frame_buf
Unexecuted instantiation: cdef_block.c:get_ref_frame_buf
Unexecuted instantiation: cfl.c:get_ref_frame_buf
Unexecuted instantiation: convolve.c:get_ref_frame_buf
Unexecuted instantiation: entropy.c:get_ref_frame_buf
Unexecuted instantiation: entropymode.c:get_ref_frame_buf
Unexecuted instantiation: entropymv.c:get_ref_frame_buf
mvref_common.c:get_ref_frame_buf
Line
Count
Source
1182
7.60M
    const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1183
7.60M
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1184
7.60M
  return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL;
1185
7.60M
}
Unexecuted instantiation: pred_common.c:get_ref_frame_buf
Unexecuted instantiation: quant_common.c:get_ref_frame_buf
reconinter.c:get_ref_frame_buf
Line
Count
Source
1182
3.49M
    const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1183
3.49M
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1184
3.49M
  return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL;
1185
3.49M
}
Unexecuted instantiation: reconintra.c:get_ref_frame_buf
Unexecuted instantiation: resize.c:get_ref_frame_buf
Unexecuted instantiation: restoration.c:get_ref_frame_buf
Unexecuted instantiation: scan.c:get_ref_frame_buf
Unexecuted instantiation: thread_common.c:get_ref_frame_buf
Unexecuted instantiation: tile_common.c:get_ref_frame_buf
Unexecuted instantiation: txb_common.c:get_ref_frame_buf
Unexecuted instantiation: cfl_sse2.c:get_ref_frame_buf
Unexecuted instantiation: cfl_ssse3.c:get_ref_frame_buf
Unexecuted instantiation: resize_ssse3.c:get_ref_frame_buf
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_frame_buf
Unexecuted instantiation: filterintra_sse4.c:get_ref_frame_buf
Unexecuted instantiation: cfl_avx2.c:get_ref_frame_buf
1186
1187
// Both const and non-const versions of this function are provided so that it
1188
// can be used with a const AV1_COMMON if needed.
1189
static INLINE const struct scale_factors *get_ref_scale_factors_const(
1190
19.7M
    const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1191
19.7M
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1192
19.7M
  return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL;
1193
19.7M
}
Unexecuted instantiation: av1_dx_iface.c:get_ref_scale_factors_const
decodeframe.c:get_ref_scale_factors_const
Line
Count
Source
1190
10.3M
    const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1191
10.3M
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1192
10.3M
  return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL;
1193
10.3M
}
decodemv.c:get_ref_scale_factors_const
Line
Count
Source
1190
7.13M
    const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1191
7.13M
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1192
7.13M
  return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL;
1193
7.13M
}
Unexecuted instantiation: decoder.c:get_ref_scale_factors_const
Unexecuted instantiation: decodetxb.c:get_ref_scale_factors_const
Unexecuted instantiation: detokenize.c:get_ref_scale_factors_const
Unexecuted instantiation: obu.c:get_ref_scale_factors_const
Unexecuted instantiation: alloccommon.c:get_ref_scale_factors_const
Unexecuted instantiation: av1_loopfilter.c:get_ref_scale_factors_const
Unexecuted instantiation: blockd.c:get_ref_scale_factors_const
Unexecuted instantiation: cdef.c:get_ref_scale_factors_const
Unexecuted instantiation: cdef_block.c:get_ref_scale_factors_const
Unexecuted instantiation: cfl.c:get_ref_scale_factors_const
Unexecuted instantiation: convolve.c:get_ref_scale_factors_const
Unexecuted instantiation: entropy.c:get_ref_scale_factors_const
Unexecuted instantiation: entropymode.c:get_ref_scale_factors_const
Unexecuted instantiation: entropymv.c:get_ref_scale_factors_const
Unexecuted instantiation: mvref_common.c:get_ref_scale_factors_const
Unexecuted instantiation: pred_common.c:get_ref_scale_factors_const
Unexecuted instantiation: quant_common.c:get_ref_scale_factors_const
reconinter.c:get_ref_scale_factors_const
Line
Count
Source
1190
2.23M
    const AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1191
2.23M
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1192
2.23M
  return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL;
1193
2.23M
}
Unexecuted instantiation: reconintra.c:get_ref_scale_factors_const
Unexecuted instantiation: resize.c:get_ref_scale_factors_const
Unexecuted instantiation: restoration.c:get_ref_scale_factors_const
Unexecuted instantiation: scan.c:get_ref_scale_factors_const
Unexecuted instantiation: thread_common.c:get_ref_scale_factors_const
Unexecuted instantiation: tile_common.c:get_ref_scale_factors_const
Unexecuted instantiation: txb_common.c:get_ref_scale_factors_const
Unexecuted instantiation: cfl_sse2.c:get_ref_scale_factors_const
Unexecuted instantiation: cfl_ssse3.c:get_ref_scale_factors_const
Unexecuted instantiation: resize_ssse3.c:get_ref_scale_factors_const
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_scale_factors_const
Unexecuted instantiation: filterintra_sse4.c:get_ref_scale_factors_const
Unexecuted instantiation: cfl_avx2.c:get_ref_scale_factors_const
1194
1195
static INLINE struct scale_factors *get_ref_scale_factors(
1196
260k
    AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1197
260k
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1198
260k
  return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL;
1199
260k
}
Unexecuted instantiation: av1_dx_iface.c:get_ref_scale_factors
decodeframe.c:get_ref_scale_factors
Line
Count
Source
1196
260k
    AV1_COMMON *const cm, const MV_REFERENCE_FRAME ref_frame) {
1197
260k
  const int map_idx = get_ref_frame_map_idx(cm, ref_frame);
1198
260k
  return (map_idx != INVALID_IDX) ? &cm->ref_scale_factors[map_idx] : NULL;
1199
260k
}
Unexecuted instantiation: decodemv.c:get_ref_scale_factors
Unexecuted instantiation: decoder.c:get_ref_scale_factors
Unexecuted instantiation: decodetxb.c:get_ref_scale_factors
Unexecuted instantiation: detokenize.c:get_ref_scale_factors
Unexecuted instantiation: obu.c:get_ref_scale_factors
Unexecuted instantiation: alloccommon.c:get_ref_scale_factors
Unexecuted instantiation: av1_loopfilter.c:get_ref_scale_factors
Unexecuted instantiation: blockd.c:get_ref_scale_factors
Unexecuted instantiation: cdef.c:get_ref_scale_factors
Unexecuted instantiation: cdef_block.c:get_ref_scale_factors
Unexecuted instantiation: cfl.c:get_ref_scale_factors
Unexecuted instantiation: convolve.c:get_ref_scale_factors
Unexecuted instantiation: entropy.c:get_ref_scale_factors
Unexecuted instantiation: entropymode.c:get_ref_scale_factors
Unexecuted instantiation: entropymv.c:get_ref_scale_factors
Unexecuted instantiation: mvref_common.c:get_ref_scale_factors
Unexecuted instantiation: pred_common.c:get_ref_scale_factors
Unexecuted instantiation: quant_common.c:get_ref_scale_factors
Unexecuted instantiation: reconinter.c:get_ref_scale_factors
Unexecuted instantiation: reconintra.c:get_ref_scale_factors
Unexecuted instantiation: resize.c:get_ref_scale_factors
Unexecuted instantiation: restoration.c:get_ref_scale_factors
Unexecuted instantiation: scan.c:get_ref_scale_factors
Unexecuted instantiation: thread_common.c:get_ref_scale_factors
Unexecuted instantiation: tile_common.c:get_ref_scale_factors
Unexecuted instantiation: txb_common.c:get_ref_scale_factors
Unexecuted instantiation: cfl_sse2.c:get_ref_scale_factors
Unexecuted instantiation: cfl_ssse3.c:get_ref_scale_factors
Unexecuted instantiation: resize_ssse3.c:get_ref_scale_factors
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_ref_scale_factors
Unexecuted instantiation: filterintra_sse4.c:get_ref_scale_factors
Unexecuted instantiation: cfl_avx2.c:get_ref_scale_factors
1200
1201
static INLINE RefCntBuffer *get_primary_ref_frame_buf(
1202
177k
    const AV1_COMMON *const cm) {
1203
177k
  const int primary_ref_frame = cm->features.primary_ref_frame;
1204
177k
  if (primary_ref_frame == PRIMARY_REF_NONE) return NULL;
1205
127k
  const int map_idx = get_ref_frame_map_idx(cm, primary_ref_frame + 1);
1206
127k
  return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL;
1207
177k
}
Unexecuted instantiation: av1_dx_iface.c:get_primary_ref_frame_buf
decodeframe.c:get_primary_ref_frame_buf
Line
Count
Source
1202
177k
    const AV1_COMMON *const cm) {
1203
177k
  const int primary_ref_frame = cm->features.primary_ref_frame;
1204
177k
  if (primary_ref_frame == PRIMARY_REF_NONE) return NULL;
1205
127k
  const int map_idx = get_ref_frame_map_idx(cm, primary_ref_frame + 1);
1206
127k
  return (map_idx != INVALID_IDX) ? cm->ref_frame_map[map_idx] : NULL;
1207
177k
}
Unexecuted instantiation: decodemv.c:get_primary_ref_frame_buf
Unexecuted instantiation: decoder.c:get_primary_ref_frame_buf
Unexecuted instantiation: decodetxb.c:get_primary_ref_frame_buf
Unexecuted instantiation: detokenize.c:get_primary_ref_frame_buf
Unexecuted instantiation: obu.c:get_primary_ref_frame_buf
Unexecuted instantiation: alloccommon.c:get_primary_ref_frame_buf
Unexecuted instantiation: av1_loopfilter.c:get_primary_ref_frame_buf
Unexecuted instantiation: blockd.c:get_primary_ref_frame_buf
Unexecuted instantiation: cdef.c:get_primary_ref_frame_buf
Unexecuted instantiation: cdef_block.c:get_primary_ref_frame_buf
Unexecuted instantiation: cfl.c:get_primary_ref_frame_buf
Unexecuted instantiation: convolve.c:get_primary_ref_frame_buf
Unexecuted instantiation: entropy.c:get_primary_ref_frame_buf
Unexecuted instantiation: entropymode.c:get_primary_ref_frame_buf
Unexecuted instantiation: entropymv.c:get_primary_ref_frame_buf
Unexecuted instantiation: mvref_common.c:get_primary_ref_frame_buf
Unexecuted instantiation: pred_common.c:get_primary_ref_frame_buf
Unexecuted instantiation: quant_common.c:get_primary_ref_frame_buf
Unexecuted instantiation: reconinter.c:get_primary_ref_frame_buf
Unexecuted instantiation: reconintra.c:get_primary_ref_frame_buf
Unexecuted instantiation: resize.c:get_primary_ref_frame_buf
Unexecuted instantiation: restoration.c:get_primary_ref_frame_buf
Unexecuted instantiation: scan.c:get_primary_ref_frame_buf
Unexecuted instantiation: thread_common.c:get_primary_ref_frame_buf
Unexecuted instantiation: tile_common.c:get_primary_ref_frame_buf
Unexecuted instantiation: txb_common.c:get_primary_ref_frame_buf
Unexecuted instantiation: cfl_sse2.c:get_primary_ref_frame_buf
Unexecuted instantiation: cfl_ssse3.c:get_primary_ref_frame_buf
Unexecuted instantiation: resize_ssse3.c:get_primary_ref_frame_buf
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_primary_ref_frame_buf
Unexecuted instantiation: filterintra_sse4.c:get_primary_ref_frame_buf
Unexecuted instantiation: cfl_avx2.c:get_primary_ref_frame_buf
1208
1209
// Returns 1 if this frame might allow mvs from some reference frame.
1210
55.5k
static INLINE int frame_might_allow_ref_frame_mvs(const AV1_COMMON *cm) {
1211
55.5k
  return !cm->features.error_resilient_mode &&
1212
55.5k
         cm->seq_params->order_hint_info.enable_ref_frame_mvs &&
1213
55.5k
         cm->seq_params->order_hint_info.enable_order_hint &&
1214
55.5k
         !frame_is_intra_only(cm);
1215
55.5k
}
Unexecuted instantiation: av1_dx_iface.c:frame_might_allow_ref_frame_mvs
decodeframe.c:frame_might_allow_ref_frame_mvs
Line
Count
Source
1210
55.5k
static INLINE int frame_might_allow_ref_frame_mvs(const AV1_COMMON *cm) {
1211
55.5k
  return !cm->features.error_resilient_mode &&
1212
55.5k
         cm->seq_params->order_hint_info.enable_ref_frame_mvs &&
1213
55.5k
         cm->seq_params->order_hint_info.enable_order_hint &&
1214
55.5k
         !frame_is_intra_only(cm);
1215
55.5k
}
Unexecuted instantiation: decodemv.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: decoder.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: decodetxb.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: detokenize.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: obu.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: alloccommon.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: av1_loopfilter.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: blockd.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: cdef.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: cdef_block.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: cfl.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: convolve.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: entropy.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: entropymode.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: entropymv.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: mvref_common.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: pred_common.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: quant_common.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: reconinter.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: reconintra.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: resize.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: restoration.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: scan.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: thread_common.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: tile_common.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: txb_common.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: cfl_sse2.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: cfl_ssse3.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: resize_ssse3.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: filterintra_sse4.c:frame_might_allow_ref_frame_mvs
Unexecuted instantiation: cfl_avx2.c:frame_might_allow_ref_frame_mvs
1216
1217
// Returns 1 if this frame might use warped_motion
1218
149k
static INLINE int frame_might_allow_warped_motion(const AV1_COMMON *cm) {
1219
149k
  return !cm->features.error_resilient_mode && !frame_is_intra_only(cm) &&
1220
149k
         cm->seq_params->enable_warped_motion;
1221
149k
}
Unexecuted instantiation: av1_dx_iface.c:frame_might_allow_warped_motion
decodeframe.c:frame_might_allow_warped_motion
Line
Count
Source
1218
149k
static INLINE int frame_might_allow_warped_motion(const AV1_COMMON *cm) {
1219
149k
  return !cm->features.error_resilient_mode && !frame_is_intra_only(cm) &&
1220
149k
         cm->seq_params->enable_warped_motion;
1221
149k
}
Unexecuted instantiation: decodemv.c:frame_might_allow_warped_motion
Unexecuted instantiation: decoder.c:frame_might_allow_warped_motion
Unexecuted instantiation: decodetxb.c:frame_might_allow_warped_motion
Unexecuted instantiation: detokenize.c:frame_might_allow_warped_motion
Unexecuted instantiation: obu.c:frame_might_allow_warped_motion
Unexecuted instantiation: alloccommon.c:frame_might_allow_warped_motion
Unexecuted instantiation: av1_loopfilter.c:frame_might_allow_warped_motion
Unexecuted instantiation: blockd.c:frame_might_allow_warped_motion
Unexecuted instantiation: cdef.c:frame_might_allow_warped_motion
Unexecuted instantiation: cdef_block.c:frame_might_allow_warped_motion
Unexecuted instantiation: cfl.c:frame_might_allow_warped_motion
Unexecuted instantiation: convolve.c:frame_might_allow_warped_motion
Unexecuted instantiation: entropy.c:frame_might_allow_warped_motion
Unexecuted instantiation: entropymode.c:frame_might_allow_warped_motion
Unexecuted instantiation: entropymv.c:frame_might_allow_warped_motion
Unexecuted instantiation: mvref_common.c:frame_might_allow_warped_motion
Unexecuted instantiation: pred_common.c:frame_might_allow_warped_motion
Unexecuted instantiation: quant_common.c:frame_might_allow_warped_motion
Unexecuted instantiation: reconinter.c:frame_might_allow_warped_motion
Unexecuted instantiation: reconintra.c:frame_might_allow_warped_motion
Unexecuted instantiation: resize.c:frame_might_allow_warped_motion
Unexecuted instantiation: restoration.c:frame_might_allow_warped_motion
Unexecuted instantiation: scan.c:frame_might_allow_warped_motion
Unexecuted instantiation: thread_common.c:frame_might_allow_warped_motion
Unexecuted instantiation: tile_common.c:frame_might_allow_warped_motion
Unexecuted instantiation: txb_common.c:frame_might_allow_warped_motion
Unexecuted instantiation: cfl_sse2.c:frame_might_allow_warped_motion
Unexecuted instantiation: cfl_ssse3.c:frame_might_allow_warped_motion
Unexecuted instantiation: resize_ssse3.c:frame_might_allow_warped_motion
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:frame_might_allow_warped_motion
Unexecuted instantiation: filterintra_sse4.c:frame_might_allow_warped_motion
Unexecuted instantiation: cfl_avx2.c:frame_might_allow_warped_motion
1222
1223
177k
static INLINE void ensure_mv_buffer(RefCntBuffer *buf, AV1_COMMON *cm) {
1224
177k
  const int buf_rows = buf->mi_rows;
1225
177k
  const int buf_cols = buf->mi_cols;
1226
177k
  const CommonModeInfoParams *const mi_params = &cm->mi_params;
1227
1228
177k
  if (buf->mvs == NULL || buf_rows != mi_params->mi_rows ||
1229
177k
      buf_cols != mi_params->mi_cols) {
1230
91.8k
    aom_free(buf->mvs);
1231
91.8k
    buf->mi_rows = mi_params->mi_rows;
1232
91.8k
    buf->mi_cols = mi_params->mi_cols;
1233
91.8k
    CHECK_MEM_ERROR(cm, buf->mvs,
1234
91.8k
                    (MV_REF *)aom_calloc(((mi_params->mi_rows + 1) >> 1) *
1235
91.8k
                                             ((mi_params->mi_cols + 1) >> 1),
1236
91.8k
                                         sizeof(*buf->mvs)));
1237
91.8k
    aom_free(buf->seg_map);
1238
91.8k
    CHECK_MEM_ERROR(
1239
91.8k
        cm, buf->seg_map,
1240
91.8k
        (uint8_t *)aom_calloc(mi_params->mi_rows * mi_params->mi_cols,
1241
91.8k
                              sizeof(*buf->seg_map)));
1242
91.8k
  }
1243
1244
177k
  const int mem_size =
1245
177k
      ((mi_params->mi_rows + MAX_MIB_SIZE) >> 1) * (mi_params->mi_stride >> 1);
1246
1247
177k
  if (cm->tpl_mvs == NULL || cm->tpl_mvs_mem_size < mem_size) {
1248
17.3k
    aom_free(cm->tpl_mvs);
1249
17.3k
    CHECK_MEM_ERROR(cm, cm->tpl_mvs,
1250
17.3k
                    (TPL_MV_REF *)aom_calloc(mem_size, sizeof(*cm->tpl_mvs)));
1251
17.3k
    cm->tpl_mvs_mem_size = mem_size;
1252
17.3k
  }
1253
177k
}
Unexecuted instantiation: av1_dx_iface.c:ensure_mv_buffer
decodeframe.c:ensure_mv_buffer
Line
Count
Source
1223
177k
static INLINE void ensure_mv_buffer(RefCntBuffer *buf, AV1_COMMON *cm) {
1224
177k
  const int buf_rows = buf->mi_rows;
1225
177k
  const int buf_cols = buf->mi_cols;
1226
177k
  const CommonModeInfoParams *const mi_params = &cm->mi_params;
1227
1228
177k
  if (buf->mvs == NULL || buf_rows != mi_params->mi_rows ||
1229
177k
      buf_cols != mi_params->mi_cols) {
1230
91.8k
    aom_free(buf->mvs);
1231
91.8k
    buf->mi_rows = mi_params->mi_rows;
1232
91.8k
    buf->mi_cols = mi_params->mi_cols;
1233
91.8k
    CHECK_MEM_ERROR(cm, buf->mvs,
1234
91.8k
                    (MV_REF *)aom_calloc(((mi_params->mi_rows + 1) >> 1) *
1235
91.8k
                                             ((mi_params->mi_cols + 1) >> 1),
1236
91.8k
                                         sizeof(*buf->mvs)));
1237
91.8k
    aom_free(buf->seg_map);
1238
91.8k
    CHECK_MEM_ERROR(
1239
91.8k
        cm, buf->seg_map,
1240
91.8k
        (uint8_t *)aom_calloc(mi_params->mi_rows * mi_params->mi_cols,
1241
91.8k
                              sizeof(*buf->seg_map)));
1242
91.8k
  }
1243
1244
177k
  const int mem_size =
1245
177k
      ((mi_params->mi_rows + MAX_MIB_SIZE) >> 1) * (mi_params->mi_stride >> 1);
1246
1247
177k
  if (cm->tpl_mvs == NULL || cm->tpl_mvs_mem_size < mem_size) {
1248
17.3k
    aom_free(cm->tpl_mvs);
1249
17.3k
    CHECK_MEM_ERROR(cm, cm->tpl_mvs,
1250
17.3k
                    (TPL_MV_REF *)aom_calloc(mem_size, sizeof(*cm->tpl_mvs)));
1251
17.3k
    cm->tpl_mvs_mem_size = mem_size;
1252
17.3k
  }
1253
177k
}
Unexecuted instantiation: decodemv.c:ensure_mv_buffer
Unexecuted instantiation: decoder.c:ensure_mv_buffer
Unexecuted instantiation: decodetxb.c:ensure_mv_buffer
Unexecuted instantiation: detokenize.c:ensure_mv_buffer
Unexecuted instantiation: obu.c:ensure_mv_buffer
Unexecuted instantiation: alloccommon.c:ensure_mv_buffer
Unexecuted instantiation: av1_loopfilter.c:ensure_mv_buffer
Unexecuted instantiation: blockd.c:ensure_mv_buffer
Unexecuted instantiation: cdef.c:ensure_mv_buffer
Unexecuted instantiation: cdef_block.c:ensure_mv_buffer
Unexecuted instantiation: cfl.c:ensure_mv_buffer
Unexecuted instantiation: convolve.c:ensure_mv_buffer
Unexecuted instantiation: entropy.c:ensure_mv_buffer
Unexecuted instantiation: entropymode.c:ensure_mv_buffer
Unexecuted instantiation: entropymv.c:ensure_mv_buffer
Unexecuted instantiation: mvref_common.c:ensure_mv_buffer
Unexecuted instantiation: pred_common.c:ensure_mv_buffer
Unexecuted instantiation: quant_common.c:ensure_mv_buffer
Unexecuted instantiation: reconinter.c:ensure_mv_buffer
Unexecuted instantiation: reconintra.c:ensure_mv_buffer
Unexecuted instantiation: resize.c:ensure_mv_buffer
Unexecuted instantiation: restoration.c:ensure_mv_buffer
Unexecuted instantiation: scan.c:ensure_mv_buffer
Unexecuted instantiation: thread_common.c:ensure_mv_buffer
Unexecuted instantiation: tile_common.c:ensure_mv_buffer
Unexecuted instantiation: txb_common.c:ensure_mv_buffer
Unexecuted instantiation: cfl_sse2.c:ensure_mv_buffer
Unexecuted instantiation: cfl_ssse3.c:ensure_mv_buffer
Unexecuted instantiation: resize_ssse3.c:ensure_mv_buffer
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:ensure_mv_buffer
Unexecuted instantiation: filterintra_sse4.c:ensure_mv_buffer
Unexecuted instantiation: cfl_avx2.c:ensure_mv_buffer
1254
1255
void cfl_init(CFL_CTX *cfl, const SequenceHeader *seq_params);
1256
1257
175M
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
175M
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
175M
}
av1_dx_iface.c:av1_num_planes
Line
Count
Source
1257
55.0k
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
55.0k
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
55.0k
}
decodeframe.c:av1_num_planes
Line
Count
Source
1257
93.5M
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
93.5M
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
93.5M
}
decodemv.c:av1_num_planes
Line
Count
Source
1257
2.85M
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
2.85M
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
2.85M
}
decoder.c:av1_num_planes
Line
Count
Source
1257
71.3M
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
71.3M
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
71.3M
}
Unexecuted instantiation: decodetxb.c:av1_num_planes
Unexecuted instantiation: detokenize.c:av1_num_planes
Unexecuted instantiation: obu.c:av1_num_planes
alloccommon.c:av1_num_planes
Line
Count
Source
1257
109k
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
109k
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
109k
}
Unexecuted instantiation: av1_loopfilter.c:av1_num_planes
Unexecuted instantiation: blockd.c:av1_num_planes
cdef.c:av1_num_planes
Line
Count
Source
1257
639k
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
639k
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
639k
}
Unexecuted instantiation: cdef_block.c:av1_num_planes
Unexecuted instantiation: cfl.c:av1_num_planes
Unexecuted instantiation: convolve.c:av1_num_planes
Unexecuted instantiation: entropy.c:av1_num_planes
Unexecuted instantiation: entropymode.c:av1_num_planes
Unexecuted instantiation: entropymv.c:av1_num_planes
Unexecuted instantiation: mvref_common.c:av1_num_planes
Unexecuted instantiation: pred_common.c:av1_num_planes
Unexecuted instantiation: quant_common.c:av1_num_planes
reconinter.c:av1_num_planes
Line
Count
Source
1257
6.63M
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
6.63M
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
6.63M
}
Unexecuted instantiation: reconintra.c:av1_num_planes
resize.c:av1_num_planes
Line
Count
Source
1257
12.5k
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
12.5k
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
12.5k
}
restoration.c:av1_num_planes
Line
Count
Source
1257
30.3k
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
30.3k
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
30.3k
}
Unexecuted instantiation: scan.c:av1_num_planes
thread_common.c:av1_num_planes
Line
Count
Source
1257
428k
static INLINE int av1_num_planes(const AV1_COMMON *cm) {
1258
428k
  return cm->seq_params->monochrome ? 1 : MAX_MB_PLANE;
1259
428k
}
Unexecuted instantiation: tile_common.c:av1_num_planes
Unexecuted instantiation: txb_common.c:av1_num_planes
Unexecuted instantiation: cfl_sse2.c:av1_num_planes
Unexecuted instantiation: cfl_ssse3.c:av1_num_planes
Unexecuted instantiation: resize_ssse3.c:av1_num_planes
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_num_planes
Unexecuted instantiation: filterintra_sse4.c:av1_num_planes
Unexecuted instantiation: cfl_avx2.c:av1_num_planes
1260
1261
static INLINE void av1_init_above_context(CommonContexts *above_contexts,
1262
                                          int num_planes, int tile_row,
1263
140k
                                          MACROBLOCKD *xd) {
1264
545k
  for (int i = 0; i < num_planes; ++i) {
1265
404k
    xd->above_entropy_context[i] = above_contexts->entropy[i][tile_row];
1266
404k
  }
1267
140k
  xd->above_partition_context = above_contexts->partition[tile_row];
1268
140k
  xd->above_txfm_context = above_contexts->txfm[tile_row];
1269
140k
}
Unexecuted instantiation: av1_dx_iface.c:av1_init_above_context
decodeframe.c:av1_init_above_context
Line
Count
Source
1263
140k
                                          MACROBLOCKD *xd) {
1264
545k
  for (int i = 0; i < num_planes; ++i) {
1265
404k
    xd->above_entropy_context[i] = above_contexts->entropy[i][tile_row];
1266
404k
  }
1267
140k
  xd->above_partition_context = above_contexts->partition[tile_row];
1268
140k
  xd->above_txfm_context = above_contexts->txfm[tile_row];
1269
140k
}
Unexecuted instantiation: decodemv.c:av1_init_above_context
Unexecuted instantiation: decoder.c:av1_init_above_context
Unexecuted instantiation: decodetxb.c:av1_init_above_context
Unexecuted instantiation: detokenize.c:av1_init_above_context
Unexecuted instantiation: obu.c:av1_init_above_context
Unexecuted instantiation: alloccommon.c:av1_init_above_context
Unexecuted instantiation: av1_loopfilter.c:av1_init_above_context
Unexecuted instantiation: blockd.c:av1_init_above_context
Unexecuted instantiation: cdef.c:av1_init_above_context
Unexecuted instantiation: cdef_block.c:av1_init_above_context
Unexecuted instantiation: cfl.c:av1_init_above_context
Unexecuted instantiation: convolve.c:av1_init_above_context
Unexecuted instantiation: entropy.c:av1_init_above_context
Unexecuted instantiation: entropymode.c:av1_init_above_context
Unexecuted instantiation: entropymv.c:av1_init_above_context
Unexecuted instantiation: mvref_common.c:av1_init_above_context
Unexecuted instantiation: pred_common.c:av1_init_above_context
Unexecuted instantiation: quant_common.c:av1_init_above_context
Unexecuted instantiation: reconinter.c:av1_init_above_context
Unexecuted instantiation: reconintra.c:av1_init_above_context
Unexecuted instantiation: resize.c:av1_init_above_context
Unexecuted instantiation: restoration.c:av1_init_above_context
Unexecuted instantiation: scan.c:av1_init_above_context
Unexecuted instantiation: thread_common.c:av1_init_above_context
Unexecuted instantiation: tile_common.c:av1_init_above_context
Unexecuted instantiation: txb_common.c:av1_init_above_context
Unexecuted instantiation: cfl_sse2.c:av1_init_above_context
Unexecuted instantiation: cfl_ssse3.c:av1_init_above_context
Unexecuted instantiation: resize_ssse3.c:av1_init_above_context
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_init_above_context
Unexecuted instantiation: filterintra_sse4.c:av1_init_above_context
Unexecuted instantiation: cfl_avx2.c:av1_init_above_context
1270
1271
265k
static INLINE void av1_init_macroblockd(AV1_COMMON *cm, MACROBLOCKD *xd) {
1272
265k
  const int num_planes = av1_num_planes(cm);
1273
265k
  const CommonQuantParams *const quant_params = &cm->quant_params;
1274
1275
1.02M
  for (int i = 0; i < num_planes; ++i) {
1276
758k
    if (xd->plane[i].plane_type == PLANE_TYPE_Y) {
1277
265k
      memcpy(xd->plane[i].seg_dequant_QTX, quant_params->y_dequant_QTX,
1278
265k
             sizeof(quant_params->y_dequant_QTX));
1279
265k
      memcpy(xd->plane[i].seg_iqmatrix, quant_params->y_iqmatrix,
1280
265k
             sizeof(quant_params->y_iqmatrix));
1281
1282
492k
    } else {
1283
492k
      if (i == AOM_PLANE_U) {
1284
247k
        memcpy(xd->plane[i].seg_dequant_QTX, quant_params->u_dequant_QTX,
1285
247k
               sizeof(quant_params->u_dequant_QTX));
1286
247k
        memcpy(xd->plane[i].seg_iqmatrix, quant_params->u_iqmatrix,
1287
247k
               sizeof(quant_params->u_iqmatrix));
1288
247k
      } else {
1289
245k
        memcpy(xd->plane[i].seg_dequant_QTX, quant_params->v_dequant_QTX,
1290
245k
               sizeof(quant_params->v_dequant_QTX));
1291
245k
        memcpy(xd->plane[i].seg_iqmatrix, quant_params->v_iqmatrix,
1292
245k
               sizeof(quant_params->v_iqmatrix));
1293
245k
      }
1294
492k
    }
1295
758k
  }
1296
265k
  xd->mi_stride = cm->mi_params.mi_stride;
1297
265k
  xd->error_info = cm->error;
1298
265k
  cfl_init(&xd->cfl, cm->seq_params);
1299
265k
}
Unexecuted instantiation: av1_dx_iface.c:av1_init_macroblockd
decodeframe.c:av1_init_macroblockd
Line
Count
Source
1271
265k
static INLINE void av1_init_macroblockd(AV1_COMMON *cm, MACROBLOCKD *xd) {
1272
265k
  const int num_planes = av1_num_planes(cm);
1273
265k
  const CommonQuantParams *const quant_params = &cm->quant_params;
1274
1275
1.02M
  for (int i = 0; i < num_planes; ++i) {
1276
758k
    if (xd->plane[i].plane_type == PLANE_TYPE_Y) {
1277
265k
      memcpy(xd->plane[i].seg_dequant_QTX, quant_params->y_dequant_QTX,
1278
265k
             sizeof(quant_params->y_dequant_QTX));
1279
265k
      memcpy(xd->plane[i].seg_iqmatrix, quant_params->y_iqmatrix,
1280
265k
             sizeof(quant_params->y_iqmatrix));
1281
1282
492k
    } else {
1283
492k
      if (i == AOM_PLANE_U) {
1284
247k
        memcpy(xd->plane[i].seg_dequant_QTX, quant_params->u_dequant_QTX,
1285
247k
               sizeof(quant_params->u_dequant_QTX));
1286
247k
        memcpy(xd->plane[i].seg_iqmatrix, quant_params->u_iqmatrix,
1287
247k
               sizeof(quant_params->u_iqmatrix));
1288
247k
      } else {
1289
245k
        memcpy(xd->plane[i].seg_dequant_QTX, quant_params->v_dequant_QTX,
1290
245k
               sizeof(quant_params->v_dequant_QTX));
1291
245k
        memcpy(xd->plane[i].seg_iqmatrix, quant_params->v_iqmatrix,
1292
245k
               sizeof(quant_params->v_iqmatrix));
1293
245k
      }
1294
492k
    }
1295
758k
  }
1296
265k
  xd->mi_stride = cm->mi_params.mi_stride;
1297
265k
  xd->error_info = cm->error;
1298
265k
  cfl_init(&xd->cfl, cm->seq_params);
1299
265k
}
Unexecuted instantiation: decodemv.c:av1_init_macroblockd
Unexecuted instantiation: decoder.c:av1_init_macroblockd
Unexecuted instantiation: decodetxb.c:av1_init_macroblockd
Unexecuted instantiation: detokenize.c:av1_init_macroblockd
Unexecuted instantiation: obu.c:av1_init_macroblockd
Unexecuted instantiation: alloccommon.c:av1_init_macroblockd
Unexecuted instantiation: av1_loopfilter.c:av1_init_macroblockd
Unexecuted instantiation: blockd.c:av1_init_macroblockd
Unexecuted instantiation: cdef.c:av1_init_macroblockd
Unexecuted instantiation: cdef_block.c:av1_init_macroblockd
Unexecuted instantiation: cfl.c:av1_init_macroblockd
Unexecuted instantiation: convolve.c:av1_init_macroblockd
Unexecuted instantiation: entropy.c:av1_init_macroblockd
Unexecuted instantiation: entropymode.c:av1_init_macroblockd
Unexecuted instantiation: entropymv.c:av1_init_macroblockd
Unexecuted instantiation: mvref_common.c:av1_init_macroblockd
Unexecuted instantiation: pred_common.c:av1_init_macroblockd
Unexecuted instantiation: quant_common.c:av1_init_macroblockd
Unexecuted instantiation: reconinter.c:av1_init_macroblockd
Unexecuted instantiation: reconintra.c:av1_init_macroblockd
Unexecuted instantiation: resize.c:av1_init_macroblockd
Unexecuted instantiation: restoration.c:av1_init_macroblockd
Unexecuted instantiation: scan.c:av1_init_macroblockd
Unexecuted instantiation: thread_common.c:av1_init_macroblockd
Unexecuted instantiation: tile_common.c:av1_init_macroblockd
Unexecuted instantiation: txb_common.c:av1_init_macroblockd
Unexecuted instantiation: cfl_sse2.c:av1_init_macroblockd
Unexecuted instantiation: cfl_ssse3.c:av1_init_macroblockd
Unexecuted instantiation: resize_ssse3.c:av1_init_macroblockd
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_init_macroblockd
Unexecuted instantiation: filterintra_sse4.c:av1_init_macroblockd
Unexecuted instantiation: cfl_avx2.c:av1_init_macroblockd
1300
1301
static INLINE void set_entropy_context(MACROBLOCKD *xd, int mi_row, int mi_col,
1302
16.5M
                                       const int num_planes) {
1303
16.5M
  int i;
1304
16.5M
  int row_offset = mi_row;
1305
16.5M
  int col_offset = mi_col;
1306
65.9M
  for (i = 0; i < num_planes; ++i) {
1307
49.3M
    struct macroblockd_plane *const pd = &xd->plane[i];
1308
    // Offset the buffer pointer
1309
49.3M
    const BLOCK_SIZE bsize = xd->mi[0]->bsize;
1310
49.3M
    if (pd->subsampling_y && (mi_row & 0x01) && (mi_size_high[bsize] == 1))
1311
2.08M
      row_offset = mi_row - 1;
1312
49.3M
    if (pd->subsampling_x && (mi_col & 0x01) && (mi_size_wide[bsize] == 1))
1313
1.88M
      col_offset = mi_col - 1;
1314
49.3M
    int above_idx = col_offset;
1315
49.3M
    int left_idx = row_offset & MAX_MIB_MASK;
1316
49.3M
    pd->above_entropy_context =
1317
49.3M
        &xd->above_entropy_context[i][above_idx >> pd->subsampling_x];
1318
49.3M
    pd->left_entropy_context =
1319
49.3M
        &xd->left_entropy_context[i][left_idx >> pd->subsampling_y];
1320
49.3M
  }
1321
16.5M
}
Unexecuted instantiation: av1_dx_iface.c:set_entropy_context
decodeframe.c:set_entropy_context
Line
Count
Source
1302
16.5M
                                       const int num_planes) {
1303
16.5M
  int i;
1304
16.5M
  int row_offset = mi_row;
1305
16.5M
  int col_offset = mi_col;
1306
65.9M
  for (i = 0; i < num_planes; ++i) {
1307
49.3M
    struct macroblockd_plane *const pd = &xd->plane[i];
1308
    // Offset the buffer pointer
1309
49.3M
    const BLOCK_SIZE bsize = xd->mi[0]->bsize;
1310
49.3M
    if (pd->subsampling_y && (mi_row & 0x01) && (mi_size_high[bsize] == 1))
1311
2.08M
      row_offset = mi_row - 1;
1312
49.3M
    if (pd->subsampling_x && (mi_col & 0x01) && (mi_size_wide[bsize] == 1))
1313
1.88M
      col_offset = mi_col - 1;
1314
49.3M
    int above_idx = col_offset;
1315
49.3M
    int left_idx = row_offset & MAX_MIB_MASK;
1316
49.3M
    pd->above_entropy_context =
1317
49.3M
        &xd->above_entropy_context[i][above_idx >> pd->subsampling_x];
1318
49.3M
    pd->left_entropy_context =
1319
49.3M
        &xd->left_entropy_context[i][left_idx >> pd->subsampling_y];
1320
49.3M
  }
1321
16.5M
}
Unexecuted instantiation: decodemv.c:set_entropy_context
Unexecuted instantiation: decoder.c:set_entropy_context
Unexecuted instantiation: decodetxb.c:set_entropy_context
Unexecuted instantiation: detokenize.c:set_entropy_context
Unexecuted instantiation: obu.c:set_entropy_context
Unexecuted instantiation: alloccommon.c:set_entropy_context
Unexecuted instantiation: av1_loopfilter.c:set_entropy_context
Unexecuted instantiation: blockd.c:set_entropy_context
Unexecuted instantiation: cdef.c:set_entropy_context
Unexecuted instantiation: cdef_block.c:set_entropy_context
Unexecuted instantiation: cfl.c:set_entropy_context
Unexecuted instantiation: convolve.c:set_entropy_context
Unexecuted instantiation: entropy.c:set_entropy_context
Unexecuted instantiation: entropymode.c:set_entropy_context
Unexecuted instantiation: entropymv.c:set_entropy_context
Unexecuted instantiation: mvref_common.c:set_entropy_context
Unexecuted instantiation: pred_common.c:set_entropy_context
Unexecuted instantiation: quant_common.c:set_entropy_context
Unexecuted instantiation: reconinter.c:set_entropy_context
Unexecuted instantiation: reconintra.c:set_entropy_context
Unexecuted instantiation: resize.c:set_entropy_context
Unexecuted instantiation: restoration.c:set_entropy_context
Unexecuted instantiation: scan.c:set_entropy_context
Unexecuted instantiation: thread_common.c:set_entropy_context
Unexecuted instantiation: tile_common.c:set_entropy_context
Unexecuted instantiation: txb_common.c:set_entropy_context
Unexecuted instantiation: cfl_sse2.c:set_entropy_context
Unexecuted instantiation: cfl_ssse3.c:set_entropy_context
Unexecuted instantiation: resize_ssse3.c:set_entropy_context
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_entropy_context
Unexecuted instantiation: filterintra_sse4.c:set_entropy_context
Unexecuted instantiation: cfl_avx2.c:set_entropy_context
1322
1323
379k
static INLINE int calc_mi_size(int len) {
1324
  // len is in mi units. Align to a multiple of SBs.
1325
379k
  return ALIGN_POWER_OF_TWO(len, MAX_MIB_SIZE_LOG2);
1326
379k
}
Unexecuted instantiation: av1_dx_iface.c:calc_mi_size
Unexecuted instantiation: decodeframe.c:calc_mi_size
Unexecuted instantiation: decodemv.c:calc_mi_size
decoder.c:calc_mi_size
Line
Count
Source
1323
326k
static INLINE int calc_mi_size(int len) {
1324
  // len is in mi units. Align to a multiple of SBs.
1325
326k
  return ALIGN_POWER_OF_TWO(len, MAX_MIB_SIZE_LOG2);
1326
326k
}
Unexecuted instantiation: decodetxb.c:calc_mi_size
Unexecuted instantiation: detokenize.c:calc_mi_size
Unexecuted instantiation: obu.c:calc_mi_size
alloccommon.c:calc_mi_size
Line
Count
Source
1323
52.8k
static INLINE int calc_mi_size(int len) {
1324
  // len is in mi units. Align to a multiple of SBs.
1325
52.8k
  return ALIGN_POWER_OF_TWO(len, MAX_MIB_SIZE_LOG2);
1326
52.8k
}
Unexecuted instantiation: av1_loopfilter.c:calc_mi_size
Unexecuted instantiation: blockd.c:calc_mi_size
Unexecuted instantiation: cdef.c:calc_mi_size
Unexecuted instantiation: cdef_block.c:calc_mi_size
Unexecuted instantiation: cfl.c:calc_mi_size
Unexecuted instantiation: convolve.c:calc_mi_size
Unexecuted instantiation: entropy.c:calc_mi_size
Unexecuted instantiation: entropymode.c:calc_mi_size
Unexecuted instantiation: entropymv.c:calc_mi_size
Unexecuted instantiation: mvref_common.c:calc_mi_size
Unexecuted instantiation: pred_common.c:calc_mi_size
Unexecuted instantiation: quant_common.c:calc_mi_size
Unexecuted instantiation: reconinter.c:calc_mi_size
Unexecuted instantiation: reconintra.c:calc_mi_size
Unexecuted instantiation: resize.c:calc_mi_size
Unexecuted instantiation: restoration.c:calc_mi_size
Unexecuted instantiation: scan.c:calc_mi_size
Unexecuted instantiation: thread_common.c:calc_mi_size
Unexecuted instantiation: tile_common.c:calc_mi_size
Unexecuted instantiation: txb_common.c:calc_mi_size
Unexecuted instantiation: cfl_sse2.c:calc_mi_size
Unexecuted instantiation: cfl_ssse3.c:calc_mi_size
Unexecuted instantiation: resize_ssse3.c:calc_mi_size
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:calc_mi_size
Unexecuted instantiation: filterintra_sse4.c:calc_mi_size
Unexecuted instantiation: cfl_avx2.c:calc_mi_size
1327
1328
static INLINE void set_plane_n4(MACROBLOCKD *const xd, int bw, int bh,
1329
25.4M
                                const int num_planes) {
1330
25.4M
  int i;
1331
100M
  for (i = 0; i < num_planes; i++) {
1332
75.4M
    xd->plane[i].width = (bw * MI_SIZE) >> xd->plane[i].subsampling_x;
1333
75.4M
    xd->plane[i].height = (bh * MI_SIZE) >> xd->plane[i].subsampling_y;
1334
1335
75.4M
    xd->plane[i].width = AOMMAX(xd->plane[i].width, 4);
1336
75.4M
    xd->plane[i].height = AOMMAX(xd->plane[i].height, 4);
1337
75.4M
  }
1338
25.4M
}
Unexecuted instantiation: av1_dx_iface.c:set_plane_n4
decodeframe.c:set_plane_n4
Line
Count
Source
1329
25.4M
                                const int num_planes) {
1330
25.4M
  int i;
1331
100M
  for (i = 0; i < num_planes; i++) {
1332
75.4M
    xd->plane[i].width = (bw * MI_SIZE) >> xd->plane[i].subsampling_x;
1333
75.4M
    xd->plane[i].height = (bh * MI_SIZE) >> xd->plane[i].subsampling_y;
1334
1335
75.4M
    xd->plane[i].width = AOMMAX(xd->plane[i].width, 4);
1336
75.4M
    xd->plane[i].height = AOMMAX(xd->plane[i].height, 4);
1337
75.4M
  }
1338
25.4M
}
Unexecuted instantiation: decodemv.c:set_plane_n4
Unexecuted instantiation: decoder.c:set_plane_n4
Unexecuted instantiation: decodetxb.c:set_plane_n4
Unexecuted instantiation: detokenize.c:set_plane_n4
Unexecuted instantiation: obu.c:set_plane_n4
Unexecuted instantiation: alloccommon.c:set_plane_n4
Unexecuted instantiation: av1_loopfilter.c:set_plane_n4
Unexecuted instantiation: blockd.c:set_plane_n4
Unexecuted instantiation: cdef.c:set_plane_n4
Unexecuted instantiation: cdef_block.c:set_plane_n4
Unexecuted instantiation: cfl.c:set_plane_n4
Unexecuted instantiation: convolve.c:set_plane_n4
Unexecuted instantiation: entropy.c:set_plane_n4
Unexecuted instantiation: entropymode.c:set_plane_n4
Unexecuted instantiation: entropymv.c:set_plane_n4
Unexecuted instantiation: mvref_common.c:set_plane_n4
Unexecuted instantiation: pred_common.c:set_plane_n4
Unexecuted instantiation: quant_common.c:set_plane_n4
Unexecuted instantiation: reconinter.c:set_plane_n4
Unexecuted instantiation: reconintra.c:set_plane_n4
Unexecuted instantiation: resize.c:set_plane_n4
Unexecuted instantiation: restoration.c:set_plane_n4
Unexecuted instantiation: scan.c:set_plane_n4
Unexecuted instantiation: thread_common.c:set_plane_n4
Unexecuted instantiation: tile_common.c:set_plane_n4
Unexecuted instantiation: txb_common.c:set_plane_n4
Unexecuted instantiation: cfl_sse2.c:set_plane_n4
Unexecuted instantiation: cfl_ssse3.c:set_plane_n4
Unexecuted instantiation: resize_ssse3.c:set_plane_n4
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_plane_n4
Unexecuted instantiation: filterintra_sse4.c:set_plane_n4
Unexecuted instantiation: cfl_avx2.c:set_plane_n4
1339
1340
static INLINE void set_mi_row_col(MACROBLOCKD *xd, const TileInfo *const tile,
1341
                                  int mi_row, int bh, int mi_col, int bw,
1342
25.4M
                                  int mi_rows, int mi_cols) {
1343
25.4M
  xd->mb_to_top_edge = -GET_MV_SUBPEL(mi_row * MI_SIZE);
1344
25.4M
  xd->mb_to_bottom_edge = GET_MV_SUBPEL((mi_rows - bh - mi_row) * MI_SIZE);
1345
25.4M
  xd->mb_to_left_edge = -GET_MV_SUBPEL((mi_col * MI_SIZE));
1346
25.4M
  xd->mb_to_right_edge = GET_MV_SUBPEL((mi_cols - bw - mi_col) * MI_SIZE);
1347
1348
25.4M
  xd->mi_row = mi_row;
1349
25.4M
  xd->mi_col = mi_col;
1350
1351
  // Are edges available for intra prediction?
1352
25.4M
  xd->up_available = (mi_row > tile->mi_row_start);
1353
1354
25.4M
  const int ss_x = xd->plane[1].subsampling_x;
1355
25.4M
  const int ss_y = xd->plane[1].subsampling_y;
1356
1357
25.4M
  xd->left_available = (mi_col > tile->mi_col_start);
1358
25.4M
  xd->chroma_up_available = xd->up_available;
1359
25.4M
  xd->chroma_left_available = xd->left_available;
1360
25.4M
  if (ss_x && bw < mi_size_wide[BLOCK_8X8])
1361
3.38M
    xd->chroma_left_available = (mi_col - 1) > tile->mi_col_start;
1362
25.4M
  if (ss_y && bh < mi_size_high[BLOCK_8X8])
1363
3.71M
    xd->chroma_up_available = (mi_row - 1) > tile->mi_row_start;
1364
25.4M
  if (xd->up_available) {
1365
24.5M
    xd->above_mbmi = xd->mi[-xd->mi_stride];
1366
24.5M
  } else {
1367
878k
    xd->above_mbmi = NULL;
1368
878k
  }
1369
1370
25.4M
  if (xd->left_available) {
1371
24.7M
    xd->left_mbmi = xd->mi[-1];
1372
24.7M
  } else {
1373
646k
    xd->left_mbmi = NULL;
1374
646k
  }
1375
1376
25.4M
  const int chroma_ref = ((mi_row & 0x01) || !(bh & 0x01) || !ss_y) &&
1377
25.4M
                         ((mi_col & 0x01) || !(bw & 0x01) || !ss_x);
1378
25.4M
  xd->is_chroma_ref = chroma_ref;
1379
25.4M
  if (chroma_ref) {
1380
    // To help calculate the "above" and "left" chroma blocks, note that the
1381
    // current block may cover multiple luma blocks (e.g., if partitioned into
1382
    // 4x4 luma blocks).
1383
    // First, find the top-left-most luma block covered by this chroma block
1384
22.2M
    MB_MODE_INFO **base_mi =
1385
22.2M
        &xd->mi[-(mi_row & ss_y) * xd->mi_stride - (mi_col & ss_x)];
1386
1387
    // Then, we consider the luma region covered by the left or above 4x4 chroma
1388
    // prediction. We want to point to the chroma reference block in that
1389
    // region, which is the bottom-right-most mi unit.
1390
    // This leads to the following offsets:
1391
22.2M
    MB_MODE_INFO *chroma_above_mi =
1392
22.2M
        xd->chroma_up_available ? base_mi[-xd->mi_stride + ss_x] : NULL;
1393
22.2M
    xd->chroma_above_mbmi = chroma_above_mi;
1394
1395
22.2M
    MB_MODE_INFO *chroma_left_mi =
1396
22.2M
        xd->chroma_left_available ? base_mi[ss_y * xd->mi_stride - 1] : NULL;
1397
22.2M
    xd->chroma_left_mbmi = chroma_left_mi;
1398
22.2M
  }
1399
1400
25.4M
  xd->height = bh;
1401
25.4M
  xd->width = bw;
1402
1403
25.4M
  xd->is_last_vertical_rect = 0;
1404
25.4M
  if (xd->width < xd->height) {
1405
6.05M
    if (!((mi_col + xd->width) & (xd->height - 1))) {
1406
2.24M
      xd->is_last_vertical_rect = 1;
1407
2.24M
    }
1408
6.05M
  }
1409
1410
25.4M
  xd->is_first_horizontal_rect = 0;
1411
25.4M
  if (xd->width > xd->height)
1412
9.08M
    if (!(mi_row & (xd->width - 1))) xd->is_first_horizontal_rect = 1;
1413
25.4M
}
Unexecuted instantiation: av1_dx_iface.c:set_mi_row_col
decodeframe.c:set_mi_row_col
Line
Count
Source
1342
25.4M
                                  int mi_rows, int mi_cols) {
1343
25.4M
  xd->mb_to_top_edge = -GET_MV_SUBPEL(mi_row * MI_SIZE);
1344
25.4M
  xd->mb_to_bottom_edge = GET_MV_SUBPEL((mi_rows - bh - mi_row) * MI_SIZE);
1345
25.4M
  xd->mb_to_left_edge = -GET_MV_SUBPEL((mi_col * MI_SIZE));
1346
25.4M
  xd->mb_to_right_edge = GET_MV_SUBPEL((mi_cols - bw - mi_col) * MI_SIZE);
1347
1348
25.4M
  xd->mi_row = mi_row;
1349
25.4M
  xd->mi_col = mi_col;
1350
1351
  // Are edges available for intra prediction?
1352
25.4M
  xd->up_available = (mi_row > tile->mi_row_start);
1353
1354
25.4M
  const int ss_x = xd->plane[1].subsampling_x;
1355
25.4M
  const int ss_y = xd->plane[1].subsampling_y;
1356
1357
25.4M
  xd->left_available = (mi_col > tile->mi_col_start);
1358
25.4M
  xd->chroma_up_available = xd->up_available;
1359
25.4M
  xd->chroma_left_available = xd->left_available;
1360
25.4M
  if (ss_x && bw < mi_size_wide[BLOCK_8X8])
1361
3.38M
    xd->chroma_left_available = (mi_col - 1) > tile->mi_col_start;
1362
25.4M
  if (ss_y && bh < mi_size_high[BLOCK_8X8])
1363
3.71M
    xd->chroma_up_available = (mi_row - 1) > tile->mi_row_start;
1364
25.4M
  if (xd->up_available) {
1365
24.5M
    xd->above_mbmi = xd->mi[-xd->mi_stride];
1366
24.5M
  } else {
1367
878k
    xd->above_mbmi = NULL;
1368
878k
  }
1369
1370
25.4M
  if (xd->left_available) {
1371
24.7M
    xd->left_mbmi = xd->mi[-1];
1372
24.7M
  } else {
1373
646k
    xd->left_mbmi = NULL;
1374
646k
  }
1375
1376
25.4M
  const int chroma_ref = ((mi_row & 0x01) || !(bh & 0x01) || !ss_y) &&
1377
25.4M
                         ((mi_col & 0x01) || !(bw & 0x01) || !ss_x);
1378
25.4M
  xd->is_chroma_ref = chroma_ref;
1379
25.4M
  if (chroma_ref) {
1380
    // To help calculate the "above" and "left" chroma blocks, note that the
1381
    // current block may cover multiple luma blocks (e.g., if partitioned into
1382
    // 4x4 luma blocks).
1383
    // First, find the top-left-most luma block covered by this chroma block
1384
22.2M
    MB_MODE_INFO **base_mi =
1385
22.2M
        &xd->mi[-(mi_row & ss_y) * xd->mi_stride - (mi_col & ss_x)];
1386
1387
    // Then, we consider the luma region covered by the left or above 4x4 chroma
1388
    // prediction. We want to point to the chroma reference block in that
1389
    // region, which is the bottom-right-most mi unit.
1390
    // This leads to the following offsets:
1391
22.2M
    MB_MODE_INFO *chroma_above_mi =
1392
22.2M
        xd->chroma_up_available ? base_mi[-xd->mi_stride + ss_x] : NULL;
1393
22.2M
    xd->chroma_above_mbmi = chroma_above_mi;
1394
1395
22.2M
    MB_MODE_INFO *chroma_left_mi =
1396
22.2M
        xd->chroma_left_available ? base_mi[ss_y * xd->mi_stride - 1] : NULL;
1397
22.2M
    xd->chroma_left_mbmi = chroma_left_mi;
1398
22.2M
  }
1399
1400
25.4M
  xd->height = bh;
1401
25.4M
  xd->width = bw;
1402
1403
25.4M
  xd->is_last_vertical_rect = 0;
1404
25.4M
  if (xd->width < xd->height) {
1405
6.05M
    if (!((mi_col + xd->width) & (xd->height - 1))) {
1406
2.24M
      xd->is_last_vertical_rect = 1;
1407
2.24M
    }
1408
6.05M
  }
1409
1410
25.4M
  xd->is_first_horizontal_rect = 0;
1411
25.4M
  if (xd->width > xd->height)
1412
9.08M
    if (!(mi_row & (xd->width - 1))) xd->is_first_horizontal_rect = 1;
1413
25.4M
}
Unexecuted instantiation: decodemv.c:set_mi_row_col
Unexecuted instantiation: decoder.c:set_mi_row_col
Unexecuted instantiation: decodetxb.c:set_mi_row_col
Unexecuted instantiation: detokenize.c:set_mi_row_col
Unexecuted instantiation: obu.c:set_mi_row_col
Unexecuted instantiation: alloccommon.c:set_mi_row_col
Unexecuted instantiation: av1_loopfilter.c:set_mi_row_col
Unexecuted instantiation: blockd.c:set_mi_row_col
Unexecuted instantiation: cdef.c:set_mi_row_col
Unexecuted instantiation: cdef_block.c:set_mi_row_col
Unexecuted instantiation: cfl.c:set_mi_row_col
Unexecuted instantiation: convolve.c:set_mi_row_col
Unexecuted instantiation: entropy.c:set_mi_row_col
Unexecuted instantiation: entropymode.c:set_mi_row_col
Unexecuted instantiation: entropymv.c:set_mi_row_col
Unexecuted instantiation: mvref_common.c:set_mi_row_col
Unexecuted instantiation: pred_common.c:set_mi_row_col
Unexecuted instantiation: quant_common.c:set_mi_row_col
Unexecuted instantiation: reconinter.c:set_mi_row_col
Unexecuted instantiation: reconintra.c:set_mi_row_col
Unexecuted instantiation: resize.c:set_mi_row_col
Unexecuted instantiation: restoration.c:set_mi_row_col
Unexecuted instantiation: scan.c:set_mi_row_col
Unexecuted instantiation: thread_common.c:set_mi_row_col
Unexecuted instantiation: tile_common.c:set_mi_row_col
Unexecuted instantiation: txb_common.c:set_mi_row_col
Unexecuted instantiation: cfl_sse2.c:set_mi_row_col
Unexecuted instantiation: cfl_ssse3.c:set_mi_row_col
Unexecuted instantiation: resize_ssse3.c:set_mi_row_col
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_mi_row_col
Unexecuted instantiation: filterintra_sse4.c:set_mi_row_col
Unexecuted instantiation: cfl_avx2.c:set_mi_row_col
1414
1415
static INLINE aom_cdf_prob *get_y_mode_cdf(FRAME_CONTEXT *tile_ctx,
1416
                                           const MB_MODE_INFO *above_mi,
1417
8.36M
                                           const MB_MODE_INFO *left_mi) {
1418
8.36M
  const PREDICTION_MODE above = av1_above_block_mode(above_mi);
1419
8.36M
  const PREDICTION_MODE left = av1_left_block_mode(left_mi);
1420
8.36M
  const int above_ctx = intra_mode_context[above];
1421
8.36M
  const int left_ctx = intra_mode_context[left];
1422
8.36M
  return tile_ctx->kf_y_cdf[above_ctx][left_ctx];
1423
8.36M
}
Unexecuted instantiation: av1_dx_iface.c:get_y_mode_cdf
Unexecuted instantiation: decodeframe.c:get_y_mode_cdf
decodemv.c:get_y_mode_cdf
Line
Count
Source
1417
8.36M
                                           const MB_MODE_INFO *left_mi) {
1418
8.36M
  const PREDICTION_MODE above = av1_above_block_mode(above_mi);
1419
8.36M
  const PREDICTION_MODE left = av1_left_block_mode(left_mi);
1420
8.36M
  const int above_ctx = intra_mode_context[above];
1421
8.36M
  const int left_ctx = intra_mode_context[left];
1422
8.36M
  return tile_ctx->kf_y_cdf[above_ctx][left_ctx];
1423
8.36M
}
Unexecuted instantiation: decoder.c:get_y_mode_cdf
Unexecuted instantiation: decodetxb.c:get_y_mode_cdf
Unexecuted instantiation: detokenize.c:get_y_mode_cdf
Unexecuted instantiation: obu.c:get_y_mode_cdf
Unexecuted instantiation: alloccommon.c:get_y_mode_cdf
Unexecuted instantiation: av1_loopfilter.c:get_y_mode_cdf
Unexecuted instantiation: blockd.c:get_y_mode_cdf
Unexecuted instantiation: cdef.c:get_y_mode_cdf
Unexecuted instantiation: cdef_block.c:get_y_mode_cdf
Unexecuted instantiation: cfl.c:get_y_mode_cdf
Unexecuted instantiation: convolve.c:get_y_mode_cdf
Unexecuted instantiation: entropy.c:get_y_mode_cdf
Unexecuted instantiation: entropymode.c:get_y_mode_cdf
Unexecuted instantiation: entropymv.c:get_y_mode_cdf
Unexecuted instantiation: mvref_common.c:get_y_mode_cdf
Unexecuted instantiation: pred_common.c:get_y_mode_cdf
Unexecuted instantiation: quant_common.c:get_y_mode_cdf
Unexecuted instantiation: reconinter.c:get_y_mode_cdf
Unexecuted instantiation: reconintra.c:get_y_mode_cdf
Unexecuted instantiation: resize.c:get_y_mode_cdf
Unexecuted instantiation: restoration.c:get_y_mode_cdf
Unexecuted instantiation: scan.c:get_y_mode_cdf
Unexecuted instantiation: thread_common.c:get_y_mode_cdf
Unexecuted instantiation: tile_common.c:get_y_mode_cdf
Unexecuted instantiation: txb_common.c:get_y_mode_cdf
Unexecuted instantiation: cfl_sse2.c:get_y_mode_cdf
Unexecuted instantiation: cfl_ssse3.c:get_y_mode_cdf
Unexecuted instantiation: resize_ssse3.c:get_y_mode_cdf
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_y_mode_cdf
Unexecuted instantiation: filterintra_sse4.c:get_y_mode_cdf
Unexecuted instantiation: cfl_avx2.c:get_y_mode_cdf
1424
1425
static INLINE void update_partition_context(MACROBLOCKD *xd, int mi_row,
1426
                                            int mi_col, BLOCK_SIZE subsize,
1427
9.33M
                                            BLOCK_SIZE bsize) {
1428
9.33M
  PARTITION_CONTEXT *const above_ctx = xd->above_partition_context + mi_col;
1429
9.33M
  PARTITION_CONTEXT *const left_ctx =
1430
9.33M
      xd->left_partition_context + (mi_row & MAX_MIB_MASK);
1431
1432
9.33M
  const int bw = mi_size_wide[bsize];
1433
9.33M
  const int bh = mi_size_high[bsize];
1434
9.33M
  memset(above_ctx, partition_context_lookup[subsize].above, bw);
1435
9.33M
  memset(left_ctx, partition_context_lookup[subsize].left, bh);
1436
9.33M
}
Unexecuted instantiation: av1_dx_iface.c:update_partition_context
decodeframe.c:update_partition_context
Line
Count
Source
1427
9.33M
                                            BLOCK_SIZE bsize) {
1428
9.33M
  PARTITION_CONTEXT *const above_ctx = xd->above_partition_context + mi_col;
1429
9.33M
  PARTITION_CONTEXT *const left_ctx =
1430
9.33M
      xd->left_partition_context + (mi_row & MAX_MIB_MASK);
1431
1432
9.33M
  const int bw = mi_size_wide[bsize];
1433
9.33M
  const int bh = mi_size_high[bsize];
1434
9.33M
  memset(above_ctx, partition_context_lookup[subsize].above, bw);
1435
9.33M
  memset(left_ctx, partition_context_lookup[subsize].left, bh);
1436
9.33M
}
Unexecuted instantiation: decodemv.c:update_partition_context
Unexecuted instantiation: decoder.c:update_partition_context
Unexecuted instantiation: decodetxb.c:update_partition_context
Unexecuted instantiation: detokenize.c:update_partition_context
Unexecuted instantiation: obu.c:update_partition_context
Unexecuted instantiation: alloccommon.c:update_partition_context
Unexecuted instantiation: av1_loopfilter.c:update_partition_context
Unexecuted instantiation: blockd.c:update_partition_context
Unexecuted instantiation: cdef.c:update_partition_context
Unexecuted instantiation: cdef_block.c:update_partition_context
Unexecuted instantiation: cfl.c:update_partition_context
Unexecuted instantiation: convolve.c:update_partition_context
Unexecuted instantiation: entropy.c:update_partition_context
Unexecuted instantiation: entropymode.c:update_partition_context
Unexecuted instantiation: entropymv.c:update_partition_context
Unexecuted instantiation: mvref_common.c:update_partition_context
Unexecuted instantiation: pred_common.c:update_partition_context
Unexecuted instantiation: quant_common.c:update_partition_context
Unexecuted instantiation: reconinter.c:update_partition_context
Unexecuted instantiation: reconintra.c:update_partition_context
Unexecuted instantiation: resize.c:update_partition_context
Unexecuted instantiation: restoration.c:update_partition_context
Unexecuted instantiation: scan.c:update_partition_context
Unexecuted instantiation: thread_common.c:update_partition_context
Unexecuted instantiation: tile_common.c:update_partition_context
Unexecuted instantiation: txb_common.c:update_partition_context
Unexecuted instantiation: cfl_sse2.c:update_partition_context
Unexecuted instantiation: cfl_ssse3.c:update_partition_context
Unexecuted instantiation: resize_ssse3.c:update_partition_context
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:update_partition_context
Unexecuted instantiation: filterintra_sse4.c:update_partition_context
Unexecuted instantiation: cfl_avx2.c:update_partition_context
1437
1438
static INLINE int is_chroma_reference(int mi_row, int mi_col, BLOCK_SIZE bsize,
1439
0
                                      int subsampling_x, int subsampling_y) {
1440
0
  assert(bsize < BLOCK_SIZES_ALL);
1441
0
  const int bw = mi_size_wide[bsize];
1442
0
  const int bh = mi_size_high[bsize];
1443
0
  int ref_pos = ((mi_row & 0x01) || !(bh & 0x01) || !subsampling_y) &&
1444
0
                ((mi_col & 0x01) || !(bw & 0x01) || !subsampling_x);
1445
0
  return ref_pos;
1446
0
}
Unexecuted instantiation: av1_dx_iface.c:is_chroma_reference
Unexecuted instantiation: decodeframe.c:is_chroma_reference
Unexecuted instantiation: decodemv.c:is_chroma_reference
Unexecuted instantiation: decoder.c:is_chroma_reference
Unexecuted instantiation: decodetxb.c:is_chroma_reference
Unexecuted instantiation: detokenize.c:is_chroma_reference
Unexecuted instantiation: obu.c:is_chroma_reference
Unexecuted instantiation: alloccommon.c:is_chroma_reference
Unexecuted instantiation: av1_loopfilter.c:is_chroma_reference
Unexecuted instantiation: blockd.c:is_chroma_reference
Unexecuted instantiation: cdef.c:is_chroma_reference
Unexecuted instantiation: cdef_block.c:is_chroma_reference
Unexecuted instantiation: cfl.c:is_chroma_reference
Unexecuted instantiation: convolve.c:is_chroma_reference
Unexecuted instantiation: entropy.c:is_chroma_reference
Unexecuted instantiation: entropymode.c:is_chroma_reference
Unexecuted instantiation: entropymv.c:is_chroma_reference
Unexecuted instantiation: mvref_common.c:is_chroma_reference
Unexecuted instantiation: pred_common.c:is_chroma_reference
Unexecuted instantiation: quant_common.c:is_chroma_reference
Unexecuted instantiation: reconinter.c:is_chroma_reference
Unexecuted instantiation: reconintra.c:is_chroma_reference
Unexecuted instantiation: resize.c:is_chroma_reference
Unexecuted instantiation: restoration.c:is_chroma_reference
Unexecuted instantiation: scan.c:is_chroma_reference
Unexecuted instantiation: thread_common.c:is_chroma_reference
Unexecuted instantiation: tile_common.c:is_chroma_reference
Unexecuted instantiation: txb_common.c:is_chroma_reference
Unexecuted instantiation: cfl_sse2.c:is_chroma_reference
Unexecuted instantiation: cfl_ssse3.c:is_chroma_reference
Unexecuted instantiation: resize_ssse3.c:is_chroma_reference
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:is_chroma_reference
Unexecuted instantiation: filterintra_sse4.c:is_chroma_reference
Unexecuted instantiation: cfl_avx2.c:is_chroma_reference
1447
1448
static INLINE aom_cdf_prob cdf_element_prob(const aom_cdf_prob *cdf,
1449
1.53M
                                            size_t element) {
1450
1.53M
  assert(cdf != NULL);
1451
1.53M
  return (element > 0 ? cdf[element - 1] : CDF_PROB_TOP) - cdf[element];
1452
1.53M
}
Unexecuted instantiation: av1_dx_iface.c:cdf_element_prob
decodeframe.c:cdf_element_prob
Line
Count
Source
1449
1.53M
                                            size_t element) {
1450
1.53M
  assert(cdf != NULL);
1451
1.53M
  return (element > 0 ? cdf[element - 1] : CDF_PROB_TOP) - cdf[element];
1452
1.53M
}
Unexecuted instantiation: decodemv.c:cdf_element_prob
Unexecuted instantiation: decoder.c:cdf_element_prob
Unexecuted instantiation: decodetxb.c:cdf_element_prob
Unexecuted instantiation: detokenize.c:cdf_element_prob
Unexecuted instantiation: obu.c:cdf_element_prob
Unexecuted instantiation: alloccommon.c:cdf_element_prob
Unexecuted instantiation: av1_loopfilter.c:cdf_element_prob
Unexecuted instantiation: blockd.c:cdf_element_prob
Unexecuted instantiation: cdef.c:cdf_element_prob
Unexecuted instantiation: cdef_block.c:cdf_element_prob
Unexecuted instantiation: cfl.c:cdf_element_prob
Unexecuted instantiation: convolve.c:cdf_element_prob
Unexecuted instantiation: entropy.c:cdf_element_prob
Unexecuted instantiation: entropymode.c:cdf_element_prob
Unexecuted instantiation: entropymv.c:cdf_element_prob
Unexecuted instantiation: mvref_common.c:cdf_element_prob
Unexecuted instantiation: pred_common.c:cdf_element_prob
Unexecuted instantiation: quant_common.c:cdf_element_prob
Unexecuted instantiation: reconinter.c:cdf_element_prob
Unexecuted instantiation: reconintra.c:cdf_element_prob
Unexecuted instantiation: resize.c:cdf_element_prob
Unexecuted instantiation: restoration.c:cdf_element_prob
Unexecuted instantiation: scan.c:cdf_element_prob
Unexecuted instantiation: thread_common.c:cdf_element_prob
Unexecuted instantiation: tile_common.c:cdf_element_prob
Unexecuted instantiation: txb_common.c:cdf_element_prob
Unexecuted instantiation: cfl_sse2.c:cdf_element_prob
Unexecuted instantiation: cfl_ssse3.c:cdf_element_prob
Unexecuted instantiation: resize_ssse3.c:cdf_element_prob
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:cdf_element_prob
Unexecuted instantiation: filterintra_sse4.c:cdf_element_prob
Unexecuted instantiation: cfl_avx2.c:cdf_element_prob
1453
1454
static INLINE void partition_gather_horz_alike(aom_cdf_prob *out,
1455
                                               const aom_cdf_prob *const in,
1456
155k
                                               BLOCK_SIZE bsize) {
1457
155k
  (void)bsize;
1458
155k
  out[0] = CDF_PROB_TOP;
1459
155k
  out[0] -= cdf_element_prob(in, PARTITION_HORZ);
1460
155k
  out[0] -= cdf_element_prob(in, PARTITION_SPLIT);
1461
155k
  out[0] -= cdf_element_prob(in, PARTITION_HORZ_A);
1462
155k
  out[0] -= cdf_element_prob(in, PARTITION_HORZ_B);
1463
155k
  out[0] -= cdf_element_prob(in, PARTITION_VERT_A);
1464
155k
  if (bsize != BLOCK_128X128) out[0] -= cdf_element_prob(in, PARTITION_HORZ_4);
1465
155k
  out[0] = AOM_ICDF(out[0]);
1466
155k
  out[1] = AOM_ICDF(CDF_PROB_TOP);
1467
155k
}
Unexecuted instantiation: av1_dx_iface.c:partition_gather_horz_alike
decodeframe.c:partition_gather_horz_alike
Line
Count
Source
1456
155k
                                               BLOCK_SIZE bsize) {
1457
155k
  (void)bsize;
1458
155k
  out[0] = CDF_PROB_TOP;
1459
155k
  out[0] -= cdf_element_prob(in, PARTITION_HORZ);
1460
155k
  out[0] -= cdf_element_prob(in, PARTITION_SPLIT);
1461
155k
  out[0] -= cdf_element_prob(in, PARTITION_HORZ_A);
1462
155k
  out[0] -= cdf_element_prob(in, PARTITION_HORZ_B);
1463
155k
  out[0] -= cdf_element_prob(in, PARTITION_VERT_A);
1464
155k
  if (bsize != BLOCK_128X128) out[0] -= cdf_element_prob(in, PARTITION_HORZ_4);
1465
155k
  out[0] = AOM_ICDF(out[0]);
1466
155k
  out[1] = AOM_ICDF(CDF_PROB_TOP);
1467
155k
}
Unexecuted instantiation: decodemv.c:partition_gather_horz_alike
Unexecuted instantiation: decoder.c:partition_gather_horz_alike
Unexecuted instantiation: decodetxb.c:partition_gather_horz_alike
Unexecuted instantiation: detokenize.c:partition_gather_horz_alike
Unexecuted instantiation: obu.c:partition_gather_horz_alike
Unexecuted instantiation: alloccommon.c:partition_gather_horz_alike
Unexecuted instantiation: av1_loopfilter.c:partition_gather_horz_alike
Unexecuted instantiation: blockd.c:partition_gather_horz_alike
Unexecuted instantiation: cdef.c:partition_gather_horz_alike
Unexecuted instantiation: cdef_block.c:partition_gather_horz_alike
Unexecuted instantiation: cfl.c:partition_gather_horz_alike
Unexecuted instantiation: convolve.c:partition_gather_horz_alike
Unexecuted instantiation: entropy.c:partition_gather_horz_alike
Unexecuted instantiation: entropymode.c:partition_gather_horz_alike
Unexecuted instantiation: entropymv.c:partition_gather_horz_alike
Unexecuted instantiation: mvref_common.c:partition_gather_horz_alike
Unexecuted instantiation: pred_common.c:partition_gather_horz_alike
Unexecuted instantiation: quant_common.c:partition_gather_horz_alike
Unexecuted instantiation: reconinter.c:partition_gather_horz_alike
Unexecuted instantiation: reconintra.c:partition_gather_horz_alike
Unexecuted instantiation: resize.c:partition_gather_horz_alike
Unexecuted instantiation: restoration.c:partition_gather_horz_alike
Unexecuted instantiation: scan.c:partition_gather_horz_alike
Unexecuted instantiation: thread_common.c:partition_gather_horz_alike
Unexecuted instantiation: tile_common.c:partition_gather_horz_alike
Unexecuted instantiation: txb_common.c:partition_gather_horz_alike
Unexecuted instantiation: cfl_sse2.c:partition_gather_horz_alike
Unexecuted instantiation: cfl_ssse3.c:partition_gather_horz_alike
Unexecuted instantiation: resize_ssse3.c:partition_gather_horz_alike
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:partition_gather_horz_alike
Unexecuted instantiation: filterintra_sse4.c:partition_gather_horz_alike
Unexecuted instantiation: cfl_avx2.c:partition_gather_horz_alike
1468
1469
static INLINE void partition_gather_vert_alike(aom_cdf_prob *out,
1470
                                               const aom_cdf_prob *const in,
1471
111k
                                               BLOCK_SIZE bsize) {
1472
111k
  (void)bsize;
1473
111k
  out[0] = CDF_PROB_TOP;
1474
111k
  out[0] -= cdf_element_prob(in, PARTITION_VERT);
1475
111k
  out[0] -= cdf_element_prob(in, PARTITION_SPLIT);
1476
111k
  out[0] -= cdf_element_prob(in, PARTITION_HORZ_A);
1477
111k
  out[0] -= cdf_element_prob(in, PARTITION_VERT_A);
1478
111k
  out[0] -= cdf_element_prob(in, PARTITION_VERT_B);
1479
111k
  if (bsize != BLOCK_128X128) out[0] -= cdf_element_prob(in, PARTITION_VERT_4);
1480
111k
  out[0] = AOM_ICDF(out[0]);
1481
111k
  out[1] = AOM_ICDF(CDF_PROB_TOP);
1482
111k
}
Unexecuted instantiation: av1_dx_iface.c:partition_gather_vert_alike
decodeframe.c:partition_gather_vert_alike
Line
Count
Source
1471
111k
                                               BLOCK_SIZE bsize) {
1472
111k
  (void)bsize;
1473
111k
  out[0] = CDF_PROB_TOP;
1474
111k
  out[0] -= cdf_element_prob(in, PARTITION_VERT);
1475
111k
  out[0] -= cdf_element_prob(in, PARTITION_SPLIT);
1476
111k
  out[0] -= cdf_element_prob(in, PARTITION_HORZ_A);
1477
111k
  out[0] -= cdf_element_prob(in, PARTITION_VERT_A);
1478
111k
  out[0] -= cdf_element_prob(in, PARTITION_VERT_B);
1479
111k
  if (bsize != BLOCK_128X128) out[0] -= cdf_element_prob(in, PARTITION_VERT_4);
1480
111k
  out[0] = AOM_ICDF(out[0]);
1481
111k
  out[1] = AOM_ICDF(CDF_PROB_TOP);
1482
111k
}
Unexecuted instantiation: decodemv.c:partition_gather_vert_alike
Unexecuted instantiation: decoder.c:partition_gather_vert_alike
Unexecuted instantiation: decodetxb.c:partition_gather_vert_alike
Unexecuted instantiation: detokenize.c:partition_gather_vert_alike
Unexecuted instantiation: obu.c:partition_gather_vert_alike
Unexecuted instantiation: alloccommon.c:partition_gather_vert_alike
Unexecuted instantiation: av1_loopfilter.c:partition_gather_vert_alike
Unexecuted instantiation: blockd.c:partition_gather_vert_alike
Unexecuted instantiation: cdef.c:partition_gather_vert_alike
Unexecuted instantiation: cdef_block.c:partition_gather_vert_alike
Unexecuted instantiation: cfl.c:partition_gather_vert_alike
Unexecuted instantiation: convolve.c:partition_gather_vert_alike
Unexecuted instantiation: entropy.c:partition_gather_vert_alike
Unexecuted instantiation: entropymode.c:partition_gather_vert_alike
Unexecuted instantiation: entropymv.c:partition_gather_vert_alike
Unexecuted instantiation: mvref_common.c:partition_gather_vert_alike
Unexecuted instantiation: pred_common.c:partition_gather_vert_alike
Unexecuted instantiation: quant_common.c:partition_gather_vert_alike
Unexecuted instantiation: reconinter.c:partition_gather_vert_alike
Unexecuted instantiation: reconintra.c:partition_gather_vert_alike
Unexecuted instantiation: resize.c:partition_gather_vert_alike
Unexecuted instantiation: restoration.c:partition_gather_vert_alike
Unexecuted instantiation: scan.c:partition_gather_vert_alike
Unexecuted instantiation: thread_common.c:partition_gather_vert_alike
Unexecuted instantiation: tile_common.c:partition_gather_vert_alike
Unexecuted instantiation: txb_common.c:partition_gather_vert_alike
Unexecuted instantiation: cfl_sse2.c:partition_gather_vert_alike
Unexecuted instantiation: cfl_ssse3.c:partition_gather_vert_alike
Unexecuted instantiation: resize_ssse3.c:partition_gather_vert_alike
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:partition_gather_vert_alike
Unexecuted instantiation: filterintra_sse4.c:partition_gather_vert_alike
Unexecuted instantiation: cfl_avx2.c:partition_gather_vert_alike
1483
1484
static INLINE void update_ext_partition_context(MACROBLOCKD *xd, int mi_row,
1485
                                                int mi_col, BLOCK_SIZE subsize,
1486
                                                BLOCK_SIZE bsize,
1487
12.1M
                                                PARTITION_TYPE partition) {
1488
12.1M
  if (bsize >= BLOCK_8X8) {
1489
11.1M
    const int hbs = mi_size_wide[bsize] / 2;
1490
11.1M
    BLOCK_SIZE bsize2 = get_partition_subsize(bsize, PARTITION_SPLIT);
1491
11.1M
    switch (partition) {
1492
2.94M
      case PARTITION_SPLIT:
1493
2.94M
        if (bsize != BLOCK_8X8) break;
1494
238k
        AOM_FALLTHROUGH_INTENDED;
1495
4.18M
      case PARTITION_NONE:
1496
5.49M
      case PARTITION_HORZ:
1497
6.40M
      case PARTITION_VERT:
1498
7.07M
      case PARTITION_HORZ_4:
1499
7.60M
      case PARTITION_VERT_4:
1500
7.60M
        update_partition_context(xd, mi_row, mi_col, subsize, bsize);
1501
7.60M
        break;
1502
257k
      case PARTITION_HORZ_A:
1503
257k
        update_partition_context(xd, mi_row, mi_col, bsize2, subsize);
1504
257k
        update_partition_context(xd, mi_row + hbs, mi_col, subsize, subsize);
1505
257k
        break;
1506
262k
      case PARTITION_HORZ_B:
1507
262k
        update_partition_context(xd, mi_row, mi_col, subsize, subsize);
1508
262k
        update_partition_context(xd, mi_row + hbs, mi_col, bsize2, subsize);
1509
262k
        break;
1510
157k
      case PARTITION_VERT_A:
1511
157k
        update_partition_context(xd, mi_row, mi_col, bsize2, subsize);
1512
157k
        update_partition_context(xd, mi_row, mi_col + hbs, subsize, subsize);
1513
157k
        break;
1514
189k
      case PARTITION_VERT_B:
1515
189k
        update_partition_context(xd, mi_row, mi_col, subsize, subsize);
1516
189k
        update_partition_context(xd, mi_row, mi_col + hbs, bsize2, subsize);
1517
189k
        break;
1518
0
      default: assert(0 && "Invalid partition type");
1519
11.1M
    }
1520
11.1M
  }
1521
12.1M
}
Unexecuted instantiation: av1_dx_iface.c:update_ext_partition_context
decodeframe.c:update_ext_partition_context
Line
Count
Source
1487
12.1M
                                                PARTITION_TYPE partition) {
1488
12.1M
  if (bsize >= BLOCK_8X8) {
1489
11.1M
    const int hbs = mi_size_wide[bsize] / 2;
1490
11.1M
    BLOCK_SIZE bsize2 = get_partition_subsize(bsize, PARTITION_SPLIT);
1491
11.1M
    switch (partition) {
1492
2.94M
      case PARTITION_SPLIT:
1493
2.94M
        if (bsize != BLOCK_8X8) break;
1494
238k
        AOM_FALLTHROUGH_INTENDED;
1495
4.18M
      case PARTITION_NONE:
1496
5.49M
      case PARTITION_HORZ:
1497
6.40M
      case PARTITION_VERT:
1498
7.07M
      case PARTITION_HORZ_4:
1499
7.60M
      case PARTITION_VERT_4:
1500
7.60M
        update_partition_context(xd, mi_row, mi_col, subsize, bsize);
1501
7.60M
        break;
1502
257k
      case PARTITION_HORZ_A:
1503
257k
        update_partition_context(xd, mi_row, mi_col, bsize2, subsize);
1504
257k
        update_partition_context(xd, mi_row + hbs, mi_col, subsize, subsize);
1505
257k
        break;
1506
262k
      case PARTITION_HORZ_B:
1507
262k
        update_partition_context(xd, mi_row, mi_col, subsize, subsize);
1508
262k
        update_partition_context(xd, mi_row + hbs, mi_col, bsize2, subsize);
1509
262k
        break;
1510
157k
      case PARTITION_VERT_A:
1511
157k
        update_partition_context(xd, mi_row, mi_col, bsize2, subsize);
1512
157k
        update_partition_context(xd, mi_row, mi_col + hbs, subsize, subsize);
1513
157k
        break;
1514
189k
      case PARTITION_VERT_B:
1515
189k
        update_partition_context(xd, mi_row, mi_col, subsize, subsize);
1516
189k
        update_partition_context(xd, mi_row, mi_col + hbs, bsize2, subsize);
1517
189k
        break;
1518
0
      default: assert(0 && "Invalid partition type");
1519
11.1M
    }
1520
11.1M
  }
1521
12.1M
}
Unexecuted instantiation: decodemv.c:update_ext_partition_context
Unexecuted instantiation: decoder.c:update_ext_partition_context
Unexecuted instantiation: decodetxb.c:update_ext_partition_context
Unexecuted instantiation: detokenize.c:update_ext_partition_context
Unexecuted instantiation: obu.c:update_ext_partition_context
Unexecuted instantiation: alloccommon.c:update_ext_partition_context
Unexecuted instantiation: av1_loopfilter.c:update_ext_partition_context
Unexecuted instantiation: blockd.c:update_ext_partition_context
Unexecuted instantiation: cdef.c:update_ext_partition_context
Unexecuted instantiation: cdef_block.c:update_ext_partition_context
Unexecuted instantiation: cfl.c:update_ext_partition_context
Unexecuted instantiation: convolve.c:update_ext_partition_context
Unexecuted instantiation: entropy.c:update_ext_partition_context
Unexecuted instantiation: entropymode.c:update_ext_partition_context
Unexecuted instantiation: entropymv.c:update_ext_partition_context
Unexecuted instantiation: mvref_common.c:update_ext_partition_context
Unexecuted instantiation: pred_common.c:update_ext_partition_context
Unexecuted instantiation: quant_common.c:update_ext_partition_context
Unexecuted instantiation: reconinter.c:update_ext_partition_context
Unexecuted instantiation: reconintra.c:update_ext_partition_context
Unexecuted instantiation: resize.c:update_ext_partition_context
Unexecuted instantiation: restoration.c:update_ext_partition_context
Unexecuted instantiation: scan.c:update_ext_partition_context
Unexecuted instantiation: thread_common.c:update_ext_partition_context
Unexecuted instantiation: tile_common.c:update_ext_partition_context
Unexecuted instantiation: txb_common.c:update_ext_partition_context
Unexecuted instantiation: cfl_sse2.c:update_ext_partition_context
Unexecuted instantiation: cfl_ssse3.c:update_ext_partition_context
Unexecuted instantiation: resize_ssse3.c:update_ext_partition_context
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:update_ext_partition_context
Unexecuted instantiation: filterintra_sse4.c:update_ext_partition_context
Unexecuted instantiation: cfl_avx2.c:update_ext_partition_context
1522
1523
static INLINE int partition_plane_context(const MACROBLOCKD *xd, int mi_row,
1524
11.1M
                                          int mi_col, BLOCK_SIZE bsize) {
1525
11.1M
  const PARTITION_CONTEXT *above_ctx = xd->above_partition_context + mi_col;
1526
11.1M
  const PARTITION_CONTEXT *left_ctx =
1527
11.1M
      xd->left_partition_context + (mi_row & MAX_MIB_MASK);
1528
  // Minimum partition point is 8x8. Offset the bsl accordingly.
1529
11.1M
  const int bsl = mi_size_wide_log2[bsize] - mi_size_wide_log2[BLOCK_8X8];
1530
11.1M
  int above = (*above_ctx >> bsl) & 1, left = (*left_ctx >> bsl) & 1;
1531
1532
11.1M
  assert(mi_size_wide_log2[bsize] == mi_size_high_log2[bsize]);
1533
0
  assert(bsl >= 0);
1534
1535
11.1M
  return (left * 2 + above) + bsl * PARTITION_PLOFFSET;
1536
11.1M
}
Unexecuted instantiation: av1_dx_iface.c:partition_plane_context
decodeframe.c:partition_plane_context
Line
Count
Source
1524
11.1M
                                          int mi_col, BLOCK_SIZE bsize) {
1525
11.1M
  const PARTITION_CONTEXT *above_ctx = xd->above_partition_context + mi_col;
1526
11.1M
  const PARTITION_CONTEXT *left_ctx =
1527
11.1M
      xd->left_partition_context + (mi_row & MAX_MIB_MASK);
1528
  // Minimum partition point is 8x8. Offset the bsl accordingly.
1529
11.1M
  const int bsl = mi_size_wide_log2[bsize] - mi_size_wide_log2[BLOCK_8X8];
1530
11.1M
  int above = (*above_ctx >> bsl) & 1, left = (*left_ctx >> bsl) & 1;
1531
1532
11.1M
  assert(mi_size_wide_log2[bsize] == mi_size_high_log2[bsize]);
1533
0
  assert(bsl >= 0);
1534
1535
11.1M
  return (left * 2 + above) + bsl * PARTITION_PLOFFSET;
1536
11.1M
}
Unexecuted instantiation: decodemv.c:partition_plane_context
Unexecuted instantiation: decoder.c:partition_plane_context
Unexecuted instantiation: decodetxb.c:partition_plane_context
Unexecuted instantiation: detokenize.c:partition_plane_context
Unexecuted instantiation: obu.c:partition_plane_context
Unexecuted instantiation: alloccommon.c:partition_plane_context
Unexecuted instantiation: av1_loopfilter.c:partition_plane_context
Unexecuted instantiation: blockd.c:partition_plane_context
Unexecuted instantiation: cdef.c:partition_plane_context
Unexecuted instantiation: cdef_block.c:partition_plane_context
Unexecuted instantiation: cfl.c:partition_plane_context
Unexecuted instantiation: convolve.c:partition_plane_context
Unexecuted instantiation: entropy.c:partition_plane_context
Unexecuted instantiation: entropymode.c:partition_plane_context
Unexecuted instantiation: entropymv.c:partition_plane_context
Unexecuted instantiation: mvref_common.c:partition_plane_context
Unexecuted instantiation: pred_common.c:partition_plane_context
Unexecuted instantiation: quant_common.c:partition_plane_context
Unexecuted instantiation: reconinter.c:partition_plane_context
Unexecuted instantiation: reconintra.c:partition_plane_context
Unexecuted instantiation: resize.c:partition_plane_context
Unexecuted instantiation: restoration.c:partition_plane_context
Unexecuted instantiation: scan.c:partition_plane_context
Unexecuted instantiation: thread_common.c:partition_plane_context
Unexecuted instantiation: tile_common.c:partition_plane_context
Unexecuted instantiation: txb_common.c:partition_plane_context
Unexecuted instantiation: cfl_sse2.c:partition_plane_context
Unexecuted instantiation: cfl_ssse3.c:partition_plane_context
Unexecuted instantiation: resize_ssse3.c:partition_plane_context
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:partition_plane_context
Unexecuted instantiation: filterintra_sse4.c:partition_plane_context
Unexecuted instantiation: cfl_avx2.c:partition_plane_context
1537
1538
// Return the number of elements in the partition CDF when
1539
// partitioning the (square) block with luma block size of bsize.
1540
10.7M
static INLINE int partition_cdf_length(BLOCK_SIZE bsize) {
1541
10.7M
  if (bsize <= BLOCK_8X8)
1542
2.38M
    return PARTITION_TYPES;
1543
8.37M
  else if (bsize == BLOCK_128X128)
1544
405k
    return EXT_PARTITION_TYPES - 2;
1545
7.96M
  else
1546
7.96M
    return EXT_PARTITION_TYPES;
1547
10.7M
}
Unexecuted instantiation: av1_dx_iface.c:partition_cdf_length
decodeframe.c:partition_cdf_length
Line
Count
Source
1540
10.7M
static INLINE int partition_cdf_length(BLOCK_SIZE bsize) {
1541
10.7M
  if (bsize <= BLOCK_8X8)
1542
2.38M
    return PARTITION_TYPES;
1543
8.37M
  else if (bsize == BLOCK_128X128)
1544
405k
    return EXT_PARTITION_TYPES - 2;
1545
7.96M
  else
1546
7.96M
    return EXT_PARTITION_TYPES;
1547
10.7M
}
Unexecuted instantiation: decodemv.c:partition_cdf_length
Unexecuted instantiation: decoder.c:partition_cdf_length
Unexecuted instantiation: decodetxb.c:partition_cdf_length
Unexecuted instantiation: detokenize.c:partition_cdf_length
Unexecuted instantiation: obu.c:partition_cdf_length
Unexecuted instantiation: alloccommon.c:partition_cdf_length
Unexecuted instantiation: av1_loopfilter.c:partition_cdf_length
Unexecuted instantiation: blockd.c:partition_cdf_length
Unexecuted instantiation: cdef.c:partition_cdf_length
Unexecuted instantiation: cdef_block.c:partition_cdf_length
Unexecuted instantiation: cfl.c:partition_cdf_length
Unexecuted instantiation: convolve.c:partition_cdf_length
Unexecuted instantiation: entropy.c:partition_cdf_length
Unexecuted instantiation: entropymode.c:partition_cdf_length
Unexecuted instantiation: entropymv.c:partition_cdf_length
Unexecuted instantiation: mvref_common.c:partition_cdf_length
Unexecuted instantiation: pred_common.c:partition_cdf_length
Unexecuted instantiation: quant_common.c:partition_cdf_length
Unexecuted instantiation: reconinter.c:partition_cdf_length
Unexecuted instantiation: reconintra.c:partition_cdf_length
Unexecuted instantiation: resize.c:partition_cdf_length
Unexecuted instantiation: restoration.c:partition_cdf_length
Unexecuted instantiation: scan.c:partition_cdf_length
Unexecuted instantiation: thread_common.c:partition_cdf_length
Unexecuted instantiation: tile_common.c:partition_cdf_length
Unexecuted instantiation: txb_common.c:partition_cdf_length
Unexecuted instantiation: cfl_sse2.c:partition_cdf_length
Unexecuted instantiation: cfl_ssse3.c:partition_cdf_length
Unexecuted instantiation: resize_ssse3.c:partition_cdf_length
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:partition_cdf_length
Unexecuted instantiation: filterintra_sse4.c:partition_cdf_length
Unexecuted instantiation: cfl_avx2.c:partition_cdf_length
1548
1549
static INLINE int max_block_wide(const MACROBLOCKD *xd, BLOCK_SIZE bsize,
1550
43.6M
                                 int plane) {
1551
43.6M
  assert(bsize < BLOCK_SIZES_ALL);
1552
0
  int max_blocks_wide = block_size_wide[bsize];
1553
1554
43.6M
  if (xd->mb_to_right_edge < 0) {
1555
1.42M
    const struct macroblockd_plane *const pd = &xd->plane[plane];
1556
1.42M
    max_blocks_wide += xd->mb_to_right_edge >> (3 + pd->subsampling_x);
1557
1.42M
  }
1558
1559
  // Scale the width in the transform block unit.
1560
43.6M
  return max_blocks_wide >> MI_SIZE_LOG2;
1561
43.6M
}
Unexecuted instantiation: av1_dx_iface.c:max_block_wide
decodeframe.c:max_block_wide
Line
Count
Source
1550
41.3M
                                 int plane) {
1551
41.3M
  assert(bsize < BLOCK_SIZES_ALL);
1552
0
  int max_blocks_wide = block_size_wide[bsize];
1553
1554
41.3M
  if (xd->mb_to_right_edge < 0) {
1555
290k
    const struct macroblockd_plane *const pd = &xd->plane[plane];
1556
290k
    max_blocks_wide += xd->mb_to_right_edge >> (3 + pd->subsampling_x);
1557
290k
  }
1558
1559
  // Scale the width in the transform block unit.
1560
41.3M
  return max_blocks_wide >> MI_SIZE_LOG2;
1561
41.3M
}
Unexecuted instantiation: decodemv.c:max_block_wide
Unexecuted instantiation: decoder.c:max_block_wide
Unexecuted instantiation: decodetxb.c:max_block_wide
Unexecuted instantiation: detokenize.c:max_block_wide
Unexecuted instantiation: obu.c:max_block_wide
Unexecuted instantiation: alloccommon.c:max_block_wide
Unexecuted instantiation: av1_loopfilter.c:max_block_wide
blockd.c:max_block_wide
Line
Count
Source
1550
1.13M
                                 int plane) {
1551
1.13M
  assert(bsize < BLOCK_SIZES_ALL);
1552
0
  int max_blocks_wide = block_size_wide[bsize];
1553
1554
1.13M
  if (xd->mb_to_right_edge < 0) {
1555
1.13M
    const struct macroblockd_plane *const pd = &xd->plane[plane];
1556
1.13M
    max_blocks_wide += xd->mb_to_right_edge >> (3 + pd->subsampling_x);
1557
1.13M
  }
1558
1559
  // Scale the width in the transform block unit.
1560
1.13M
  return max_blocks_wide >> MI_SIZE_LOG2;
1561
1.13M
}
Unexecuted instantiation: cdef.c:max_block_wide
Unexecuted instantiation: cdef_block.c:max_block_wide
cfl.c:max_block_wide
Line
Count
Source
1550
1.17M
                                 int plane) {
1551
1.17M
  assert(bsize < BLOCK_SIZES_ALL);
1552
0
  int max_blocks_wide = block_size_wide[bsize];
1553
1554
1.17M
  if (xd->mb_to_right_edge < 0) {
1555
0
    const struct macroblockd_plane *const pd = &xd->plane[plane];
1556
0
    max_blocks_wide += xd->mb_to_right_edge >> (3 + pd->subsampling_x);
1557
0
  }
1558
1559
  // Scale the width in the transform block unit.
1560
1.17M
  return max_blocks_wide >> MI_SIZE_LOG2;
1561
1.17M
}
Unexecuted instantiation: convolve.c:max_block_wide
Unexecuted instantiation: entropy.c:max_block_wide
Unexecuted instantiation: entropymode.c:max_block_wide
Unexecuted instantiation: entropymv.c:max_block_wide
Unexecuted instantiation: mvref_common.c:max_block_wide
Unexecuted instantiation: pred_common.c:max_block_wide
Unexecuted instantiation: quant_common.c:max_block_wide
Unexecuted instantiation: reconinter.c:max_block_wide
Unexecuted instantiation: reconintra.c:max_block_wide
Unexecuted instantiation: resize.c:max_block_wide
Unexecuted instantiation: restoration.c:max_block_wide
Unexecuted instantiation: scan.c:max_block_wide
Unexecuted instantiation: thread_common.c:max_block_wide
Unexecuted instantiation: tile_common.c:max_block_wide
Unexecuted instantiation: txb_common.c:max_block_wide
Unexecuted instantiation: cfl_sse2.c:max_block_wide
Unexecuted instantiation: cfl_ssse3.c:max_block_wide
Unexecuted instantiation: resize_ssse3.c:max_block_wide
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:max_block_wide
Unexecuted instantiation: filterintra_sse4.c:max_block_wide
Unexecuted instantiation: cfl_avx2.c:max_block_wide
1562
1563
static INLINE int max_block_high(const MACROBLOCKD *xd, BLOCK_SIZE bsize,
1564
42.9M
                                 int plane) {
1565
42.9M
  int max_blocks_high = block_size_high[bsize];
1566
1567
42.9M
  if (xd->mb_to_bottom_edge < 0) {
1568
656k
    const struct macroblockd_plane *const pd = &xd->plane[plane];
1569
656k
    max_blocks_high += xd->mb_to_bottom_edge >> (3 + pd->subsampling_y);
1570
656k
  }
1571
1572
  // Scale the height in the transform block unit.
1573
42.9M
  return max_blocks_high >> MI_SIZE_LOG2;
1574
42.9M
}
Unexecuted instantiation: av1_dx_iface.c:max_block_high
decodeframe.c:max_block_high
Line
Count
Source
1564
41.3M
                                 int plane) {
1565
41.3M
  int max_blocks_high = block_size_high[bsize];
1566
1567
41.3M
  if (xd->mb_to_bottom_edge < 0) {
1568
249k
    const struct macroblockd_plane *const pd = &xd->plane[plane];
1569
249k
    max_blocks_high += xd->mb_to_bottom_edge >> (3 + pd->subsampling_y);
1570
249k
  }
1571
1572
  // Scale the height in the transform block unit.
1573
41.3M
  return max_blocks_high >> MI_SIZE_LOG2;
1574
41.3M
}
Unexecuted instantiation: decodemv.c:max_block_high
Unexecuted instantiation: decoder.c:max_block_high
Unexecuted instantiation: decodetxb.c:max_block_high
Unexecuted instantiation: detokenize.c:max_block_high
Unexecuted instantiation: obu.c:max_block_high
Unexecuted instantiation: alloccommon.c:max_block_high
Unexecuted instantiation: av1_loopfilter.c:max_block_high
blockd.c:max_block_high
Line
Count
Source
1564
407k
                                 int plane) {
1565
407k
  int max_blocks_high = block_size_high[bsize];
1566
1567
407k
  if (xd->mb_to_bottom_edge < 0) {
1568
407k
    const struct macroblockd_plane *const pd = &xd->plane[plane];
1569
407k
    max_blocks_high += xd->mb_to_bottom_edge >> (3 + pd->subsampling_y);
1570
407k
  }
1571
1572
  // Scale the height in the transform block unit.
1573
407k
  return max_blocks_high >> MI_SIZE_LOG2;
1574
407k
}
Unexecuted instantiation: cdef.c:max_block_high
Unexecuted instantiation: cdef_block.c:max_block_high
cfl.c:max_block_high
Line
Count
Source
1564
1.17M
                                 int plane) {
1565
1.17M
  int max_blocks_high = block_size_high[bsize];
1566
1567
1.17M
  if (xd->mb_to_bottom_edge < 0) {
1568
0
    const struct macroblockd_plane *const pd = &xd->plane[plane];
1569
0
    max_blocks_high += xd->mb_to_bottom_edge >> (3 + pd->subsampling_y);
1570
0
  }
1571
1572
  // Scale the height in the transform block unit.
1573
1.17M
  return max_blocks_high >> MI_SIZE_LOG2;
1574
1.17M
}
Unexecuted instantiation: convolve.c:max_block_high
Unexecuted instantiation: entropy.c:max_block_high
Unexecuted instantiation: entropymode.c:max_block_high
Unexecuted instantiation: entropymv.c:max_block_high
Unexecuted instantiation: mvref_common.c:max_block_high
Unexecuted instantiation: pred_common.c:max_block_high
Unexecuted instantiation: quant_common.c:max_block_high
Unexecuted instantiation: reconinter.c:max_block_high
Unexecuted instantiation: reconintra.c:max_block_high
Unexecuted instantiation: resize.c:max_block_high
Unexecuted instantiation: restoration.c:max_block_high
Unexecuted instantiation: scan.c:max_block_high
Unexecuted instantiation: thread_common.c:max_block_high
Unexecuted instantiation: tile_common.c:max_block_high
Unexecuted instantiation: txb_common.c:max_block_high
Unexecuted instantiation: cfl_sse2.c:max_block_high
Unexecuted instantiation: cfl_ssse3.c:max_block_high
Unexecuted instantiation: resize_ssse3.c:max_block_high
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:max_block_high
Unexecuted instantiation: filterintra_sse4.c:max_block_high
Unexecuted instantiation: cfl_avx2.c:max_block_high
1575
1576
static INLINE void av1_zero_above_context(AV1_COMMON *const cm,
1577
                                          const MACROBLOCKD *xd,
1578
                                          int mi_col_start, int mi_col_end,
1579
140k
                                          const int tile_row) {
1580
140k
  const SequenceHeader *const seq_params = cm->seq_params;
1581
140k
  const int num_planes = av1_num_planes(cm);
1582
140k
  const int width = mi_col_end - mi_col_start;
1583
140k
  const int aligned_width =
1584
140k
      ALIGN_POWER_OF_TWO(width, seq_params->mib_size_log2);
1585
140k
  const int offset_y = mi_col_start;
1586
140k
  const int width_y = aligned_width;
1587
140k
  const int offset_uv = offset_y >> seq_params->subsampling_x;
1588
140k
  const int width_uv = width_y >> seq_params->subsampling_x;
1589
140k
  CommonContexts *const above_contexts = &cm->above_contexts;
1590
1591
140k
  av1_zero_array(above_contexts->entropy[0][tile_row] + offset_y, width_y);
1592
140k
  if (num_planes > 1) {
1593
132k
    if (above_contexts->entropy[1][tile_row] &&
1594
132k
        above_contexts->entropy[2][tile_row]) {
1595
132k
      av1_zero_array(above_contexts->entropy[1][tile_row] + offset_uv,
1596
132k
                     width_uv);
1597
132k
      av1_zero_array(above_contexts->entropy[2][tile_row] + offset_uv,
1598
132k
                     width_uv);
1599
132k
    } else {
1600
0
      aom_internal_error(xd->error_info, AOM_CODEC_CORRUPT_FRAME,
1601
0
                         "Invalid value of planes");
1602
0
    }
1603
132k
  }
1604
1605
140k
  av1_zero_array(above_contexts->partition[tile_row] + mi_col_start,
1606
140k
                 aligned_width);
1607
1608
140k
  memset(above_contexts->txfm[tile_row] + mi_col_start,
1609
140k
         tx_size_wide[TX_SIZES_LARGEST], aligned_width * sizeof(TXFM_CONTEXT));
1610
140k
}
Unexecuted instantiation: av1_dx_iface.c:av1_zero_above_context
decodeframe.c:av1_zero_above_context
Line
Count
Source
1579
140k
                                          const int tile_row) {
1580
140k
  const SequenceHeader *const seq_params = cm->seq_params;
1581
140k
  const int num_planes = av1_num_planes(cm);
1582
140k
  const int width = mi_col_end - mi_col_start;
1583
140k
  const int aligned_width =
1584
140k
      ALIGN_POWER_OF_TWO(width, seq_params->mib_size_log2);
1585
140k
  const int offset_y = mi_col_start;
1586
140k
  const int width_y = aligned_width;
1587
140k
  const int offset_uv = offset_y >> seq_params->subsampling_x;
1588
140k
  const int width_uv = width_y >> seq_params->subsampling_x;
1589
140k
  CommonContexts *const above_contexts = &cm->above_contexts;
1590
1591
140k
  av1_zero_array(above_contexts->entropy[0][tile_row] + offset_y, width_y);
1592
140k
  if (num_planes > 1) {
1593
132k
    if (above_contexts->entropy[1][tile_row] &&
1594
132k
        above_contexts->entropy[2][tile_row]) {
1595
132k
      av1_zero_array(above_contexts->entropy[1][tile_row] + offset_uv,
1596
132k
                     width_uv);
1597
132k
      av1_zero_array(above_contexts->entropy[2][tile_row] + offset_uv,
1598
132k
                     width_uv);
1599
132k
    } else {
1600
0
      aom_internal_error(xd->error_info, AOM_CODEC_CORRUPT_FRAME,
1601
0
                         "Invalid value of planes");
1602
0
    }
1603
132k
  }
1604
1605
140k
  av1_zero_array(above_contexts->partition[tile_row] + mi_col_start,
1606
140k
                 aligned_width);
1607
1608
140k
  memset(above_contexts->txfm[tile_row] + mi_col_start,
1609
140k
         tx_size_wide[TX_SIZES_LARGEST], aligned_width * sizeof(TXFM_CONTEXT));
1610
140k
}
Unexecuted instantiation: decodemv.c:av1_zero_above_context
Unexecuted instantiation: decoder.c:av1_zero_above_context
Unexecuted instantiation: decodetxb.c:av1_zero_above_context
Unexecuted instantiation: detokenize.c:av1_zero_above_context
Unexecuted instantiation: obu.c:av1_zero_above_context
Unexecuted instantiation: alloccommon.c:av1_zero_above_context
Unexecuted instantiation: av1_loopfilter.c:av1_zero_above_context
Unexecuted instantiation: blockd.c:av1_zero_above_context
Unexecuted instantiation: cdef.c:av1_zero_above_context
Unexecuted instantiation: cdef_block.c:av1_zero_above_context
Unexecuted instantiation: cfl.c:av1_zero_above_context
Unexecuted instantiation: convolve.c:av1_zero_above_context
Unexecuted instantiation: entropy.c:av1_zero_above_context
Unexecuted instantiation: entropymode.c:av1_zero_above_context
Unexecuted instantiation: entropymv.c:av1_zero_above_context
Unexecuted instantiation: mvref_common.c:av1_zero_above_context
Unexecuted instantiation: pred_common.c:av1_zero_above_context
Unexecuted instantiation: quant_common.c:av1_zero_above_context
Unexecuted instantiation: reconinter.c:av1_zero_above_context
Unexecuted instantiation: reconintra.c:av1_zero_above_context
Unexecuted instantiation: resize.c:av1_zero_above_context
Unexecuted instantiation: restoration.c:av1_zero_above_context
Unexecuted instantiation: scan.c:av1_zero_above_context
Unexecuted instantiation: thread_common.c:av1_zero_above_context
Unexecuted instantiation: tile_common.c:av1_zero_above_context
Unexecuted instantiation: txb_common.c:av1_zero_above_context
Unexecuted instantiation: cfl_sse2.c:av1_zero_above_context
Unexecuted instantiation: cfl_ssse3.c:av1_zero_above_context
Unexecuted instantiation: resize_ssse3.c:av1_zero_above_context
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_zero_above_context
Unexecuted instantiation: filterintra_sse4.c:av1_zero_above_context
Unexecuted instantiation: cfl_avx2.c:av1_zero_above_context
1611
1612
258k
static INLINE void av1_zero_left_context(MACROBLOCKD *const xd) {
1613
258k
  av1_zero(xd->left_entropy_context);
1614
258k
  av1_zero(xd->left_partition_context);
1615
1616
258k
  memset(xd->left_txfm_context_buffer, tx_size_high[TX_SIZES_LARGEST],
1617
258k
         sizeof(xd->left_txfm_context_buffer));
1618
258k
}
Unexecuted instantiation: av1_dx_iface.c:av1_zero_left_context
decodeframe.c:av1_zero_left_context
Line
Count
Source
1612
258k
static INLINE void av1_zero_left_context(MACROBLOCKD *const xd) {
1613
258k
  av1_zero(xd->left_entropy_context);
1614
258k
  av1_zero(xd->left_partition_context);
1615
1616
258k
  memset(xd->left_txfm_context_buffer, tx_size_high[TX_SIZES_LARGEST],
1617
258k
         sizeof(xd->left_txfm_context_buffer));
1618
258k
}
Unexecuted instantiation: decodemv.c:av1_zero_left_context
Unexecuted instantiation: decoder.c:av1_zero_left_context
Unexecuted instantiation: decodetxb.c:av1_zero_left_context
Unexecuted instantiation: detokenize.c:av1_zero_left_context
Unexecuted instantiation: obu.c:av1_zero_left_context
Unexecuted instantiation: alloccommon.c:av1_zero_left_context
Unexecuted instantiation: av1_loopfilter.c:av1_zero_left_context
Unexecuted instantiation: blockd.c:av1_zero_left_context
Unexecuted instantiation: cdef.c:av1_zero_left_context
Unexecuted instantiation: cdef_block.c:av1_zero_left_context
Unexecuted instantiation: cfl.c:av1_zero_left_context
Unexecuted instantiation: convolve.c:av1_zero_left_context
Unexecuted instantiation: entropy.c:av1_zero_left_context
Unexecuted instantiation: entropymode.c:av1_zero_left_context
Unexecuted instantiation: entropymv.c:av1_zero_left_context
Unexecuted instantiation: mvref_common.c:av1_zero_left_context
Unexecuted instantiation: pred_common.c:av1_zero_left_context
Unexecuted instantiation: quant_common.c:av1_zero_left_context
Unexecuted instantiation: reconinter.c:av1_zero_left_context
Unexecuted instantiation: reconintra.c:av1_zero_left_context
Unexecuted instantiation: resize.c:av1_zero_left_context
Unexecuted instantiation: restoration.c:av1_zero_left_context
Unexecuted instantiation: scan.c:av1_zero_left_context
Unexecuted instantiation: thread_common.c:av1_zero_left_context
Unexecuted instantiation: tile_common.c:av1_zero_left_context
Unexecuted instantiation: txb_common.c:av1_zero_left_context
Unexecuted instantiation: cfl_sse2.c:av1_zero_left_context
Unexecuted instantiation: cfl_ssse3.c:av1_zero_left_context
Unexecuted instantiation: resize_ssse3.c:av1_zero_left_context
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:av1_zero_left_context
Unexecuted instantiation: filterintra_sse4.c:av1_zero_left_context
Unexecuted instantiation: cfl_avx2.c:av1_zero_left_context
1619
1620
31.5M
static INLINE void set_txfm_ctx(TXFM_CONTEXT *txfm_ctx, uint8_t txs, int len) {
1621
31.5M
  int i;
1622
176M
  for (i = 0; i < len; ++i) txfm_ctx[i] = txs;
1623
31.5M
}
Unexecuted instantiation: av1_dx_iface.c:set_txfm_ctx
decodeframe.c:set_txfm_ctx
Line
Count
Source
1620
31.5M
static INLINE void set_txfm_ctx(TXFM_CONTEXT *txfm_ctx, uint8_t txs, int len) {
1621
31.5M
  int i;
1622
176M
  for (i = 0; i < len; ++i) txfm_ctx[i] = txs;
1623
31.5M
}
Unexecuted instantiation: decodemv.c:set_txfm_ctx
Unexecuted instantiation: decoder.c:set_txfm_ctx
Unexecuted instantiation: decodetxb.c:set_txfm_ctx
Unexecuted instantiation: detokenize.c:set_txfm_ctx
Unexecuted instantiation: obu.c:set_txfm_ctx
Unexecuted instantiation: alloccommon.c:set_txfm_ctx
Unexecuted instantiation: av1_loopfilter.c:set_txfm_ctx
Unexecuted instantiation: blockd.c:set_txfm_ctx
Unexecuted instantiation: cdef.c:set_txfm_ctx
Unexecuted instantiation: cdef_block.c:set_txfm_ctx
Unexecuted instantiation: cfl.c:set_txfm_ctx
Unexecuted instantiation: convolve.c:set_txfm_ctx
Unexecuted instantiation: entropy.c:set_txfm_ctx
Unexecuted instantiation: entropymode.c:set_txfm_ctx
Unexecuted instantiation: entropymv.c:set_txfm_ctx
Unexecuted instantiation: mvref_common.c:set_txfm_ctx
Unexecuted instantiation: pred_common.c:set_txfm_ctx
Unexecuted instantiation: quant_common.c:set_txfm_ctx
Unexecuted instantiation: reconinter.c:set_txfm_ctx
Unexecuted instantiation: reconintra.c:set_txfm_ctx
Unexecuted instantiation: resize.c:set_txfm_ctx
Unexecuted instantiation: restoration.c:set_txfm_ctx
Unexecuted instantiation: scan.c:set_txfm_ctx
Unexecuted instantiation: thread_common.c:set_txfm_ctx
Unexecuted instantiation: tile_common.c:set_txfm_ctx
Unexecuted instantiation: txb_common.c:set_txfm_ctx
Unexecuted instantiation: cfl_sse2.c:set_txfm_ctx
Unexecuted instantiation: cfl_ssse3.c:set_txfm_ctx
Unexecuted instantiation: resize_ssse3.c:set_txfm_ctx
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_txfm_ctx
Unexecuted instantiation: filterintra_sse4.c:set_txfm_ctx
Unexecuted instantiation: cfl_avx2.c:set_txfm_ctx
1624
1625
static INLINE void set_txfm_ctxs(TX_SIZE tx_size, int n4_w, int n4_h, int skip,
1626
15.7M
                                 const MACROBLOCKD *xd) {
1627
15.7M
  uint8_t bw = tx_size_wide[tx_size];
1628
15.7M
  uint8_t bh = tx_size_high[tx_size];
1629
1630
15.7M
  if (skip) {
1631
2.65M
    bw = n4_w * MI_SIZE;
1632
2.65M
    bh = n4_h * MI_SIZE;
1633
2.65M
  }
1634
1635
15.7M
  set_txfm_ctx(xd->above_txfm_context, bw, n4_w);
1636
15.7M
  set_txfm_ctx(xd->left_txfm_context, bh, n4_h);
1637
15.7M
}
Unexecuted instantiation: av1_dx_iface.c:set_txfm_ctxs
decodeframe.c:set_txfm_ctxs
Line
Count
Source
1626
15.7M
                                 const MACROBLOCKD *xd) {
1627
15.7M
  uint8_t bw = tx_size_wide[tx_size];
1628
15.7M
  uint8_t bh = tx_size_high[tx_size];
1629
1630
15.7M
  if (skip) {
1631
2.65M
    bw = n4_w * MI_SIZE;
1632
2.65M
    bh = n4_h * MI_SIZE;
1633
2.65M
  }
1634
1635
15.7M
  set_txfm_ctx(xd->above_txfm_context, bw, n4_w);
1636
15.7M
  set_txfm_ctx(xd->left_txfm_context, bh, n4_h);
1637
15.7M
}
Unexecuted instantiation: decodemv.c:set_txfm_ctxs
Unexecuted instantiation: decoder.c:set_txfm_ctxs
Unexecuted instantiation: decodetxb.c:set_txfm_ctxs
Unexecuted instantiation: detokenize.c:set_txfm_ctxs
Unexecuted instantiation: obu.c:set_txfm_ctxs
Unexecuted instantiation: alloccommon.c:set_txfm_ctxs
Unexecuted instantiation: av1_loopfilter.c:set_txfm_ctxs
Unexecuted instantiation: blockd.c:set_txfm_ctxs
Unexecuted instantiation: cdef.c:set_txfm_ctxs
Unexecuted instantiation: cdef_block.c:set_txfm_ctxs
Unexecuted instantiation: cfl.c:set_txfm_ctxs
Unexecuted instantiation: convolve.c:set_txfm_ctxs
Unexecuted instantiation: entropy.c:set_txfm_ctxs
Unexecuted instantiation: entropymode.c:set_txfm_ctxs
Unexecuted instantiation: entropymv.c:set_txfm_ctxs
Unexecuted instantiation: mvref_common.c:set_txfm_ctxs
Unexecuted instantiation: pred_common.c:set_txfm_ctxs
Unexecuted instantiation: quant_common.c:set_txfm_ctxs
Unexecuted instantiation: reconinter.c:set_txfm_ctxs
Unexecuted instantiation: reconintra.c:set_txfm_ctxs
Unexecuted instantiation: resize.c:set_txfm_ctxs
Unexecuted instantiation: restoration.c:set_txfm_ctxs
Unexecuted instantiation: scan.c:set_txfm_ctxs
Unexecuted instantiation: thread_common.c:set_txfm_ctxs
Unexecuted instantiation: tile_common.c:set_txfm_ctxs
Unexecuted instantiation: txb_common.c:set_txfm_ctxs
Unexecuted instantiation: cfl_sse2.c:set_txfm_ctxs
Unexecuted instantiation: cfl_ssse3.c:set_txfm_ctxs
Unexecuted instantiation: resize_ssse3.c:set_txfm_ctxs
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_txfm_ctxs
Unexecuted instantiation: filterintra_sse4.c:set_txfm_ctxs
Unexecuted instantiation: cfl_avx2.c:set_txfm_ctxs
1638
1639
static INLINE int get_mi_grid_idx(const CommonModeInfoParams *const mi_params,
1640
17.4M
                                  int mi_row, int mi_col) {
1641
17.4M
  return mi_row * mi_params->mi_stride + mi_col;
1642
17.4M
}
Unexecuted instantiation: av1_dx_iface.c:get_mi_grid_idx
decodeframe.c:get_mi_grid_idx
Line
Count
Source
1640
16.5M
                                  int mi_row, int mi_col) {
1641
16.5M
  return mi_row * mi_params->mi_stride + mi_col;
1642
16.5M
}
decodemv.c:get_mi_grid_idx
Line
Count
Source
1640
892k
                                  int mi_row, int mi_col) {
1641
892k
  return mi_row * mi_params->mi_stride + mi_col;
1642
892k
}
Unexecuted instantiation: decoder.c:get_mi_grid_idx
Unexecuted instantiation: decodetxb.c:get_mi_grid_idx
Unexecuted instantiation: detokenize.c:get_mi_grid_idx
Unexecuted instantiation: obu.c:get_mi_grid_idx
Unexecuted instantiation: alloccommon.c:get_mi_grid_idx
Unexecuted instantiation: av1_loopfilter.c:get_mi_grid_idx
Unexecuted instantiation: blockd.c:get_mi_grid_idx
Unexecuted instantiation: cdef.c:get_mi_grid_idx
Unexecuted instantiation: cdef_block.c:get_mi_grid_idx
Unexecuted instantiation: cfl.c:get_mi_grid_idx
Unexecuted instantiation: convolve.c:get_mi_grid_idx
Unexecuted instantiation: entropy.c:get_mi_grid_idx
Unexecuted instantiation: entropymode.c:get_mi_grid_idx
Unexecuted instantiation: entropymv.c:get_mi_grid_idx
Unexecuted instantiation: mvref_common.c:get_mi_grid_idx
Unexecuted instantiation: pred_common.c:get_mi_grid_idx
Unexecuted instantiation: quant_common.c:get_mi_grid_idx
Unexecuted instantiation: reconinter.c:get_mi_grid_idx
Unexecuted instantiation: reconintra.c:get_mi_grid_idx
Unexecuted instantiation: resize.c:get_mi_grid_idx
Unexecuted instantiation: restoration.c:get_mi_grid_idx
Unexecuted instantiation: scan.c:get_mi_grid_idx
Unexecuted instantiation: thread_common.c:get_mi_grid_idx
Unexecuted instantiation: tile_common.c:get_mi_grid_idx
Unexecuted instantiation: txb_common.c:get_mi_grid_idx
Unexecuted instantiation: cfl_sse2.c:get_mi_grid_idx
Unexecuted instantiation: cfl_ssse3.c:get_mi_grid_idx
Unexecuted instantiation: resize_ssse3.c:get_mi_grid_idx
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_mi_grid_idx
Unexecuted instantiation: filterintra_sse4.c:get_mi_grid_idx
Unexecuted instantiation: cfl_avx2.c:get_mi_grid_idx
1643
1644
static INLINE int get_alloc_mi_idx(const CommonModeInfoParams *const mi_params,
1645
16.5M
                                   int mi_row, int mi_col) {
1646
16.5M
  const int mi_alloc_size_1d = mi_size_wide[mi_params->mi_alloc_bsize];
1647
16.5M
  const int mi_alloc_row = mi_row / mi_alloc_size_1d;
1648
16.5M
  const int mi_alloc_col = mi_col / mi_alloc_size_1d;
1649
1650
16.5M
  return mi_alloc_row * mi_params->mi_alloc_stride + mi_alloc_col;
1651
16.5M
}
Unexecuted instantiation: av1_dx_iface.c:get_alloc_mi_idx
decodeframe.c:get_alloc_mi_idx
Line
Count
Source
1645
16.5M
                                   int mi_row, int mi_col) {
1646
16.5M
  const int mi_alloc_size_1d = mi_size_wide[mi_params->mi_alloc_bsize];
1647
16.5M
  const int mi_alloc_row = mi_row / mi_alloc_size_1d;
1648
16.5M
  const int mi_alloc_col = mi_col / mi_alloc_size_1d;
1649
1650
16.5M
  return mi_alloc_row * mi_params->mi_alloc_stride + mi_alloc_col;
1651
16.5M
}
Unexecuted instantiation: decodemv.c:get_alloc_mi_idx
Unexecuted instantiation: decoder.c:get_alloc_mi_idx
Unexecuted instantiation: decodetxb.c:get_alloc_mi_idx
Unexecuted instantiation: detokenize.c:get_alloc_mi_idx
Unexecuted instantiation: obu.c:get_alloc_mi_idx
Unexecuted instantiation: alloccommon.c:get_alloc_mi_idx
Unexecuted instantiation: av1_loopfilter.c:get_alloc_mi_idx
Unexecuted instantiation: blockd.c:get_alloc_mi_idx
Unexecuted instantiation: cdef.c:get_alloc_mi_idx
Unexecuted instantiation: cdef_block.c:get_alloc_mi_idx
Unexecuted instantiation: cfl.c:get_alloc_mi_idx
Unexecuted instantiation: convolve.c:get_alloc_mi_idx
Unexecuted instantiation: entropy.c:get_alloc_mi_idx
Unexecuted instantiation: entropymode.c:get_alloc_mi_idx
Unexecuted instantiation: entropymv.c:get_alloc_mi_idx
Unexecuted instantiation: mvref_common.c:get_alloc_mi_idx
Unexecuted instantiation: pred_common.c:get_alloc_mi_idx
Unexecuted instantiation: quant_common.c:get_alloc_mi_idx
Unexecuted instantiation: reconinter.c:get_alloc_mi_idx
Unexecuted instantiation: reconintra.c:get_alloc_mi_idx
Unexecuted instantiation: resize.c:get_alloc_mi_idx
Unexecuted instantiation: restoration.c:get_alloc_mi_idx
Unexecuted instantiation: scan.c:get_alloc_mi_idx
Unexecuted instantiation: thread_common.c:get_alloc_mi_idx
Unexecuted instantiation: tile_common.c:get_alloc_mi_idx
Unexecuted instantiation: txb_common.c:get_alloc_mi_idx
Unexecuted instantiation: cfl_sse2.c:get_alloc_mi_idx
Unexecuted instantiation: cfl_ssse3.c:get_alloc_mi_idx
Unexecuted instantiation: resize_ssse3.c:get_alloc_mi_idx
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_alloc_mi_idx
Unexecuted instantiation: filterintra_sse4.c:get_alloc_mi_idx
Unexecuted instantiation: cfl_avx2.c:get_alloc_mi_idx
1652
1653
// For this partition block, set pointers in mi_params->mi_grid_base and xd->mi.
1654
static INLINE void set_mi_offsets(const CommonModeInfoParams *const mi_params,
1655
                                  MACROBLOCKD *const xd, int mi_row,
1656
16.5M
                                  int mi_col) {
1657
  // 'mi_grid_base' should point to appropriate memory in 'mi'.
1658
16.5M
  const int mi_grid_idx = get_mi_grid_idx(mi_params, mi_row, mi_col);
1659
16.5M
  const int mi_alloc_idx = get_alloc_mi_idx(mi_params, mi_row, mi_col);
1660
16.5M
  mi_params->mi_grid_base[mi_grid_idx] = &mi_params->mi_alloc[mi_alloc_idx];
1661
  // 'xd->mi' should point to an offset in 'mi_grid_base';
1662
16.5M
  xd->mi = mi_params->mi_grid_base + mi_grid_idx;
1663
  // 'xd->tx_type_map' should point to an offset in 'mi_params->tx_type_map'.
1664
16.5M
  xd->tx_type_map = mi_params->tx_type_map + mi_grid_idx;
1665
16.5M
  xd->tx_type_map_stride = mi_params->mi_stride;
1666
16.5M
}
Unexecuted instantiation: av1_dx_iface.c:set_mi_offsets
decodeframe.c:set_mi_offsets
Line
Count
Source
1656
16.5M
                                  int mi_col) {
1657
  // 'mi_grid_base' should point to appropriate memory in 'mi'.
1658
16.5M
  const int mi_grid_idx = get_mi_grid_idx(mi_params, mi_row, mi_col);
1659
16.5M
  const int mi_alloc_idx = get_alloc_mi_idx(mi_params, mi_row, mi_col);
1660
16.5M
  mi_params->mi_grid_base[mi_grid_idx] = &mi_params->mi_alloc[mi_alloc_idx];
1661
  // 'xd->mi' should point to an offset in 'mi_grid_base';
1662
16.5M
  xd->mi = mi_params->mi_grid_base + mi_grid_idx;
1663
  // 'xd->tx_type_map' should point to an offset in 'mi_params->tx_type_map'.
1664
16.5M
  xd->tx_type_map = mi_params->tx_type_map + mi_grid_idx;
1665
16.5M
  xd->tx_type_map_stride = mi_params->mi_stride;
1666
16.5M
}
Unexecuted instantiation: decodemv.c:set_mi_offsets
Unexecuted instantiation: decoder.c:set_mi_offsets
Unexecuted instantiation: decodetxb.c:set_mi_offsets
Unexecuted instantiation: detokenize.c:set_mi_offsets
Unexecuted instantiation: obu.c:set_mi_offsets
Unexecuted instantiation: alloccommon.c:set_mi_offsets
Unexecuted instantiation: av1_loopfilter.c:set_mi_offsets
Unexecuted instantiation: blockd.c:set_mi_offsets
Unexecuted instantiation: cdef.c:set_mi_offsets
Unexecuted instantiation: cdef_block.c:set_mi_offsets
Unexecuted instantiation: cfl.c:set_mi_offsets
Unexecuted instantiation: convolve.c:set_mi_offsets
Unexecuted instantiation: entropy.c:set_mi_offsets
Unexecuted instantiation: entropymode.c:set_mi_offsets
Unexecuted instantiation: entropymv.c:set_mi_offsets
Unexecuted instantiation: mvref_common.c:set_mi_offsets
Unexecuted instantiation: pred_common.c:set_mi_offsets
Unexecuted instantiation: quant_common.c:set_mi_offsets
Unexecuted instantiation: reconinter.c:set_mi_offsets
Unexecuted instantiation: reconintra.c:set_mi_offsets
Unexecuted instantiation: resize.c:set_mi_offsets
Unexecuted instantiation: restoration.c:set_mi_offsets
Unexecuted instantiation: scan.c:set_mi_offsets
Unexecuted instantiation: thread_common.c:set_mi_offsets
Unexecuted instantiation: tile_common.c:set_mi_offsets
Unexecuted instantiation: txb_common.c:set_mi_offsets
Unexecuted instantiation: cfl_sse2.c:set_mi_offsets
Unexecuted instantiation: cfl_ssse3.c:set_mi_offsets
Unexecuted instantiation: resize_ssse3.c:set_mi_offsets
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_mi_offsets
Unexecuted instantiation: filterintra_sse4.c:set_mi_offsets
Unexecuted instantiation: cfl_avx2.c:set_mi_offsets
1667
1668
static INLINE void txfm_partition_update(TXFM_CONTEXT *above_ctx,
1669
                                         TXFM_CONTEXT *left_ctx,
1670
1.21M
                                         TX_SIZE tx_size, TX_SIZE txb_size) {
1671
1.21M
  BLOCK_SIZE bsize = txsize_to_bsize[txb_size];
1672
1.21M
  int bh = mi_size_high[bsize];
1673
1.21M
  int bw = mi_size_wide[bsize];
1674
1.21M
  uint8_t txw = tx_size_wide[tx_size];
1675
1.21M
  uint8_t txh = tx_size_high[tx_size];
1676
1.21M
  int i;
1677
5.33M
  for (i = 0; i < bh; ++i) left_ctx[i] = txh;
1678
5.57M
  for (i = 0; i < bw; ++i) above_ctx[i] = txw;
1679
1.21M
}
Unexecuted instantiation: av1_dx_iface.c:txfm_partition_update
decodeframe.c:txfm_partition_update
Line
Count
Source
1670
1.21M
                                         TX_SIZE tx_size, TX_SIZE txb_size) {
1671
1.21M
  BLOCK_SIZE bsize = txsize_to_bsize[txb_size];
1672
1.21M
  int bh = mi_size_high[bsize];
1673
1.21M
  int bw = mi_size_wide[bsize];
1674
1.21M
  uint8_t txw = tx_size_wide[tx_size];
1675
1.21M
  uint8_t txh = tx_size_high[tx_size];
1676
1.21M
  int i;
1677
5.33M
  for (i = 0; i < bh; ++i) left_ctx[i] = txh;
1678
5.57M
  for (i = 0; i < bw; ++i) above_ctx[i] = txw;
1679
1.21M
}
Unexecuted instantiation: decodemv.c:txfm_partition_update
Unexecuted instantiation: decoder.c:txfm_partition_update
Unexecuted instantiation: decodetxb.c:txfm_partition_update
Unexecuted instantiation: detokenize.c:txfm_partition_update
Unexecuted instantiation: obu.c:txfm_partition_update
Unexecuted instantiation: alloccommon.c:txfm_partition_update
Unexecuted instantiation: av1_loopfilter.c:txfm_partition_update
Unexecuted instantiation: blockd.c:txfm_partition_update
Unexecuted instantiation: cdef.c:txfm_partition_update
Unexecuted instantiation: cdef_block.c:txfm_partition_update
Unexecuted instantiation: cfl.c:txfm_partition_update
Unexecuted instantiation: convolve.c:txfm_partition_update
Unexecuted instantiation: entropy.c:txfm_partition_update
Unexecuted instantiation: entropymode.c:txfm_partition_update
Unexecuted instantiation: entropymv.c:txfm_partition_update
Unexecuted instantiation: mvref_common.c:txfm_partition_update
Unexecuted instantiation: pred_common.c:txfm_partition_update
Unexecuted instantiation: quant_common.c:txfm_partition_update
Unexecuted instantiation: reconinter.c:txfm_partition_update
Unexecuted instantiation: reconintra.c:txfm_partition_update
Unexecuted instantiation: resize.c:txfm_partition_update
Unexecuted instantiation: restoration.c:txfm_partition_update
Unexecuted instantiation: scan.c:txfm_partition_update
Unexecuted instantiation: thread_common.c:txfm_partition_update
Unexecuted instantiation: tile_common.c:txfm_partition_update
Unexecuted instantiation: txb_common.c:txfm_partition_update
Unexecuted instantiation: cfl_sse2.c:txfm_partition_update
Unexecuted instantiation: cfl_ssse3.c:txfm_partition_update
Unexecuted instantiation: resize_ssse3.c:txfm_partition_update
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:txfm_partition_update
Unexecuted instantiation: filterintra_sse4.c:txfm_partition_update
Unexecuted instantiation: cfl_avx2.c:txfm_partition_update
1680
1681
1.59M
static INLINE TX_SIZE get_sqr_tx_size(int tx_dim) {
1682
1.59M
  switch (tx_dim) {
1683
54.6k
    case 128:
1684
111k
    case 64: return TX_64X64; break;
1685
324k
    case 32: return TX_32X32; break;
1686
505k
    case 16: return TX_16X16; break;
1687
293k
    case 8: return TX_8X8; break;
1688
364k
    default: return TX_4X4;
1689
1.59M
  }
1690
1.59M
}
Unexecuted instantiation: av1_dx_iface.c:get_sqr_tx_size
decodeframe.c:get_sqr_tx_size
Line
Count
Source
1681
1.23M
static INLINE TX_SIZE get_sqr_tx_size(int tx_dim) {
1682
1.23M
  switch (tx_dim) {
1683
54.6k
    case 128:
1684
111k
    case 64: return TX_64X64; break;
1685
324k
    case 32: return TX_32X32; break;
1686
505k
    case 16: return TX_16X16; break;
1687
293k
    case 8: return TX_8X8; break;
1688
0
    default: return TX_4X4;
1689
1.23M
  }
1690
1.23M
}
Unexecuted instantiation: decodemv.c:get_sqr_tx_size
Unexecuted instantiation: decoder.c:get_sqr_tx_size
Unexecuted instantiation: decodetxb.c:get_sqr_tx_size
Unexecuted instantiation: detokenize.c:get_sqr_tx_size
Unexecuted instantiation: obu.c:get_sqr_tx_size
Unexecuted instantiation: alloccommon.c:get_sqr_tx_size
Unexecuted instantiation: av1_loopfilter.c:get_sqr_tx_size
Unexecuted instantiation: blockd.c:get_sqr_tx_size
Unexecuted instantiation: cdef.c:get_sqr_tx_size
Unexecuted instantiation: cdef_block.c:get_sqr_tx_size
cfl.c:get_sqr_tx_size
Line
Count
Source
1681
364k
static INLINE TX_SIZE get_sqr_tx_size(int tx_dim) {
1682
364k
  switch (tx_dim) {
1683
0
    case 128:
1684
0
    case 64: return TX_64X64; break;
1685
0
    case 32: return TX_32X32; break;
1686
0
    case 16: return TX_16X16; break;
1687
0
    case 8: return TX_8X8; break;
1688
364k
    default: return TX_4X4;
1689
364k
  }
1690
364k
}
Unexecuted instantiation: convolve.c:get_sqr_tx_size
Unexecuted instantiation: entropy.c:get_sqr_tx_size
Unexecuted instantiation: entropymode.c:get_sqr_tx_size
Unexecuted instantiation: entropymv.c:get_sqr_tx_size
Unexecuted instantiation: mvref_common.c:get_sqr_tx_size
Unexecuted instantiation: pred_common.c:get_sqr_tx_size
Unexecuted instantiation: quant_common.c:get_sqr_tx_size
Unexecuted instantiation: reconinter.c:get_sqr_tx_size
Unexecuted instantiation: reconintra.c:get_sqr_tx_size
Unexecuted instantiation: resize.c:get_sqr_tx_size
Unexecuted instantiation: restoration.c:get_sqr_tx_size
Unexecuted instantiation: scan.c:get_sqr_tx_size
Unexecuted instantiation: thread_common.c:get_sqr_tx_size
Unexecuted instantiation: tile_common.c:get_sqr_tx_size
Unexecuted instantiation: txb_common.c:get_sqr_tx_size
Unexecuted instantiation: cfl_sse2.c:get_sqr_tx_size
Unexecuted instantiation: cfl_ssse3.c:get_sqr_tx_size
Unexecuted instantiation: resize_ssse3.c:get_sqr_tx_size
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_sqr_tx_size
Unexecuted instantiation: filterintra_sse4.c:get_sqr_tx_size
Unexecuted instantiation: cfl_avx2.c:get_sqr_tx_size
1691
1692
1.17M
static INLINE TX_SIZE get_tx_size(int width, int height) {
1693
1.17M
  if (width == height) {
1694
364k
    return get_sqr_tx_size(width);
1695
364k
  }
1696
812k
  if (width < height) {
1697
366k
    if (width + width == height) {
1698
191k
      switch (width) {
1699
191k
        case 4: return TX_4X8; break;
1700
0
        case 8: return TX_8X16; break;
1701
0
        case 16: return TX_16X32; break;
1702
0
        case 32: return TX_32X64; break;
1703
191k
      }
1704
191k
    } else {
1705
175k
      switch (width) {
1706
175k
        case 4: return TX_4X16; break;
1707
0
        case 8: return TX_8X32; break;
1708
0
        case 16: return TX_16X64; break;
1709
175k
      }
1710
175k
    }
1711
445k
  } else {
1712
445k
    if (height + height == width) {
1713
225k
      switch (height) {
1714
225k
        case 4: return TX_8X4; break;
1715
0
        case 8: return TX_16X8; break;
1716
0
        case 16: return TX_32X16; break;
1717
0
        case 32: return TX_64X32; break;
1718
225k
      }
1719
225k
    } else {
1720
220k
      switch (height) {
1721
220k
        case 4: return TX_16X4; break;
1722
0
        case 8: return TX_32X8; break;
1723
0
        case 16: return TX_64X16; break;
1724
220k
      }
1725
220k
    }
1726
445k
  }
1727
0
  assert(0);
1728
0
  return TX_4X4;
1729
812k
}
Unexecuted instantiation: av1_dx_iface.c:get_tx_size
Unexecuted instantiation: decodeframe.c:get_tx_size
Unexecuted instantiation: decodemv.c:get_tx_size
Unexecuted instantiation: decoder.c:get_tx_size
Unexecuted instantiation: decodetxb.c:get_tx_size
Unexecuted instantiation: detokenize.c:get_tx_size
Unexecuted instantiation: obu.c:get_tx_size
Unexecuted instantiation: alloccommon.c:get_tx_size
Unexecuted instantiation: av1_loopfilter.c:get_tx_size
Unexecuted instantiation: blockd.c:get_tx_size
Unexecuted instantiation: cdef.c:get_tx_size
Unexecuted instantiation: cdef_block.c:get_tx_size
cfl.c:get_tx_size
Line
Count
Source
1692
1.17M
static INLINE TX_SIZE get_tx_size(int width, int height) {
1693
1.17M
  if (width == height) {
1694
364k
    return get_sqr_tx_size(width);
1695
364k
  }
1696
812k
  if (width < height) {
1697
366k
    if (width + width == height) {
1698
191k
      switch (width) {
1699
191k
        case 4: return TX_4X8; break;
1700
0
        case 8: return TX_8X16; break;
1701
0
        case 16: return TX_16X32; break;
1702
0
        case 32: return TX_32X64; break;
1703
191k
      }
1704
191k
    } else {
1705
175k
      switch (width) {
1706
175k
        case 4: return TX_4X16; break;
1707
0
        case 8: return TX_8X32; break;
1708
0
        case 16: return TX_16X64; break;
1709
175k
      }
1710
175k
    }
1711
445k
  } else {
1712
445k
    if (height + height == width) {
1713
225k
      switch (height) {
1714
225k
        case 4: return TX_8X4; break;
1715
0
        case 8: return TX_16X8; break;
1716
0
        case 16: return TX_32X16; break;
1717
0
        case 32: return TX_64X32; break;
1718
225k
      }
1719
225k
    } else {
1720
220k
      switch (height) {
1721
220k
        case 4: return TX_16X4; break;
1722
0
        case 8: return TX_32X8; break;
1723
0
        case 16: return TX_64X16; break;
1724
220k
      }
1725
220k
    }
1726
445k
  }
1727
0
  assert(0);
1728
0
  return TX_4X4;
1729
812k
}
Unexecuted instantiation: convolve.c:get_tx_size
Unexecuted instantiation: entropy.c:get_tx_size
Unexecuted instantiation: entropymode.c:get_tx_size
Unexecuted instantiation: entropymv.c:get_tx_size
Unexecuted instantiation: mvref_common.c:get_tx_size
Unexecuted instantiation: pred_common.c:get_tx_size
Unexecuted instantiation: quant_common.c:get_tx_size
Unexecuted instantiation: reconinter.c:get_tx_size
Unexecuted instantiation: reconintra.c:get_tx_size
Unexecuted instantiation: resize.c:get_tx_size
Unexecuted instantiation: restoration.c:get_tx_size
Unexecuted instantiation: scan.c:get_tx_size
Unexecuted instantiation: thread_common.c:get_tx_size
Unexecuted instantiation: tile_common.c:get_tx_size
Unexecuted instantiation: txb_common.c:get_tx_size
Unexecuted instantiation: cfl_sse2.c:get_tx_size
Unexecuted instantiation: cfl_ssse3.c:get_tx_size
Unexecuted instantiation: resize_ssse3.c:get_tx_size
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_tx_size
Unexecuted instantiation: filterintra_sse4.c:get_tx_size
Unexecuted instantiation: cfl_avx2.c:get_tx_size
1730
1731
static INLINE int txfm_partition_context(const TXFM_CONTEXT *const above_ctx,
1732
                                         const TXFM_CONTEXT *const left_ctx,
1733
1.23M
                                         BLOCK_SIZE bsize, TX_SIZE tx_size) {
1734
1.23M
  const uint8_t txw = tx_size_wide[tx_size];
1735
1.23M
  const uint8_t txh = tx_size_high[tx_size];
1736
1.23M
  const int above = *above_ctx < txw;
1737
1.23M
  const int left = *left_ctx < txh;
1738
1.23M
  int category = TXFM_PARTITION_CONTEXTS;
1739
1740
  // dummy return, not used by others.
1741
1.23M
  if (tx_size <= TX_4X4) return 0;
1742
1743
1.23M
  TX_SIZE max_tx_size =
1744
1.23M
      get_sqr_tx_size(AOMMAX(block_size_wide[bsize], block_size_high[bsize]));
1745
1746
1.23M
  if (max_tx_size >= TX_8X8) {
1747
1.23M
    category =
1748
1.23M
        (txsize_sqr_up_map[tx_size] != max_tx_size && max_tx_size > TX_8X8) +
1749
1.23M
        (TX_SIZES - 1 - max_tx_size) * 2;
1750
1.23M
  }
1751
1.23M
  assert(category != TXFM_PARTITION_CONTEXTS);
1752
0
  return category * 3 + above + left;
1753
1.23M
}
Unexecuted instantiation: av1_dx_iface.c:txfm_partition_context
decodeframe.c:txfm_partition_context
Line
Count
Source
1733
1.23M
                                         BLOCK_SIZE bsize, TX_SIZE tx_size) {
1734
1.23M
  const uint8_t txw = tx_size_wide[tx_size];
1735
1.23M
  const uint8_t txh = tx_size_high[tx_size];
1736
1.23M
  const int above = *above_ctx < txw;
1737
1.23M
  const int left = *left_ctx < txh;
1738
1.23M
  int category = TXFM_PARTITION_CONTEXTS;
1739
1740
  // dummy return, not used by others.
1741
1.23M
  if (tx_size <= TX_4X4) return 0;
1742
1743
1.23M
  TX_SIZE max_tx_size =
1744
1.23M
      get_sqr_tx_size(AOMMAX(block_size_wide[bsize], block_size_high[bsize]));
1745
1746
1.23M
  if (max_tx_size >= TX_8X8) {
1747
1.23M
    category =
1748
1.23M
        (txsize_sqr_up_map[tx_size] != max_tx_size && max_tx_size > TX_8X8) +
1749
1.23M
        (TX_SIZES - 1 - max_tx_size) * 2;
1750
1.23M
  }
1751
1.23M
  assert(category != TXFM_PARTITION_CONTEXTS);
1752
0
  return category * 3 + above + left;
1753
1.23M
}
Unexecuted instantiation: decodemv.c:txfm_partition_context
Unexecuted instantiation: decoder.c:txfm_partition_context
Unexecuted instantiation: decodetxb.c:txfm_partition_context
Unexecuted instantiation: detokenize.c:txfm_partition_context
Unexecuted instantiation: obu.c:txfm_partition_context
Unexecuted instantiation: alloccommon.c:txfm_partition_context
Unexecuted instantiation: av1_loopfilter.c:txfm_partition_context
Unexecuted instantiation: blockd.c:txfm_partition_context
Unexecuted instantiation: cdef.c:txfm_partition_context
Unexecuted instantiation: cdef_block.c:txfm_partition_context
Unexecuted instantiation: cfl.c:txfm_partition_context
Unexecuted instantiation: convolve.c:txfm_partition_context
Unexecuted instantiation: entropy.c:txfm_partition_context
Unexecuted instantiation: entropymode.c:txfm_partition_context
Unexecuted instantiation: entropymv.c:txfm_partition_context
Unexecuted instantiation: mvref_common.c:txfm_partition_context
Unexecuted instantiation: pred_common.c:txfm_partition_context
Unexecuted instantiation: quant_common.c:txfm_partition_context
Unexecuted instantiation: reconinter.c:txfm_partition_context
Unexecuted instantiation: reconintra.c:txfm_partition_context
Unexecuted instantiation: resize.c:txfm_partition_context
Unexecuted instantiation: restoration.c:txfm_partition_context
Unexecuted instantiation: scan.c:txfm_partition_context
Unexecuted instantiation: thread_common.c:txfm_partition_context
Unexecuted instantiation: tile_common.c:txfm_partition_context
Unexecuted instantiation: txb_common.c:txfm_partition_context
Unexecuted instantiation: cfl_sse2.c:txfm_partition_context
Unexecuted instantiation: cfl_ssse3.c:txfm_partition_context
Unexecuted instantiation: resize_ssse3.c:txfm_partition_context
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:txfm_partition_context
Unexecuted instantiation: filterintra_sse4.c:txfm_partition_context
Unexecuted instantiation: cfl_avx2.c:txfm_partition_context
1754
1755
// Compute the next partition in the direction of the sb_type stored in the mi
1756
// array, starting with bsize.
1757
static INLINE PARTITION_TYPE get_partition(const AV1_COMMON *const cm,
1758
                                           int mi_row, int mi_col,
1759
6.94M
                                           BLOCK_SIZE bsize) {
1760
6.94M
  const CommonModeInfoParams *const mi_params = &cm->mi_params;
1761
6.94M
  if (mi_row >= mi_params->mi_rows || mi_col >= mi_params->mi_cols)
1762
0
    return PARTITION_INVALID;
1763
1764
6.94M
  const int offset = mi_row * mi_params->mi_stride + mi_col;
1765
6.94M
  MB_MODE_INFO **mi = mi_params->mi_grid_base + offset;
1766
6.94M
  const BLOCK_SIZE subsize = mi[0]->bsize;
1767
1768
6.94M
  assert(bsize < BLOCK_SIZES_ALL);
1769
1770
6.94M
  if (subsize == bsize) return PARTITION_NONE;
1771
1772
4.06M
  const int bhigh = mi_size_high[bsize];
1773
4.06M
  const int bwide = mi_size_wide[bsize];
1774
4.06M
  const int sshigh = mi_size_high[subsize];
1775
4.06M
  const int sswide = mi_size_wide[subsize];
1776
1777
4.06M
  if (bsize > BLOCK_8X8 && mi_row + bwide / 2 < mi_params->mi_rows &&
1778
4.06M
      mi_col + bhigh / 2 < mi_params->mi_cols) {
1779
    // In this case, the block might be using an extended partition
1780
    // type.
1781
3.17M
    const MB_MODE_INFO *const mbmi_right = mi[bwide / 2];
1782
3.17M
    const MB_MODE_INFO *const mbmi_below = mi[bhigh / 2 * mi_params->mi_stride];
1783
1784
3.17M
    if (sswide == bwide) {
1785
      // Smaller height but same width. Is PARTITION_HORZ_4, PARTITION_HORZ or
1786
      // PARTITION_HORZ_B. To distinguish the latter two, check if the lower
1787
      // half was split.
1788
1.00M
      if (sshigh * 4 == bhigh) return PARTITION_HORZ_4;
1789
579k
      assert(sshigh * 2 == bhigh);
1790
1791
579k
      if (mbmi_below->bsize == subsize)
1792
407k
        return PARTITION_HORZ;
1793
172k
      else
1794
172k
        return PARTITION_HORZ_B;
1795
2.17M
    } else if (sshigh == bhigh) {
1796
      // Smaller width but same height. Is PARTITION_VERT_4, PARTITION_VERT or
1797
      // PARTITION_VERT_B. To distinguish the latter two, check if the right
1798
      // half was split.
1799
502k
      if (sswide * 4 == bwide) return PARTITION_VERT_4;
1800
332k
      assert(sswide * 2 == bhigh);
1801
1802
332k
      if (mbmi_right->bsize == subsize)
1803
227k
        return PARTITION_VERT;
1804
105k
      else
1805
105k
        return PARTITION_VERT_B;
1806
1.66M
    } else {
1807
      // Smaller width and smaller height. Might be PARTITION_SPLIT or could be
1808
      // PARTITION_HORZ_A or PARTITION_VERT_A. If subsize isn't halved in both
1809
      // dimensions, we immediately know this is a split (which will recurse to
1810
      // get to subsize). Otherwise look down and to the right. With
1811
      // PARTITION_VERT_A, the right block will have height bhigh; with
1812
      // PARTITION_HORZ_A, the lower block with have width bwide. Otherwise
1813
      // it's PARTITION_SPLIT.
1814
1.66M
      if (sswide * 2 != bwide || sshigh * 2 != bhigh) return PARTITION_SPLIT;
1815
1816
805k
      if (mi_size_wide[mbmi_below->bsize] == bwide) return PARTITION_HORZ_A;
1817
650k
      if (mi_size_high[mbmi_right->bsize] == bhigh) return PARTITION_VERT_A;
1818
1819
565k
      return PARTITION_SPLIT;
1820
650k
    }
1821
3.17M
  }
1822
890k
  const int vert_split = sswide < bwide;
1823
890k
  const int horz_split = sshigh < bhigh;
1824
890k
  const int split_idx = (vert_split << 1) | horz_split;
1825
890k
  assert(split_idx != 0);
1826
1827
0
  static const PARTITION_TYPE base_partitions[4] = {
1828
890k
    PARTITION_INVALID, PARTITION_HORZ, PARTITION_VERT, PARTITION_SPLIT
1829
890k
  };
1830
1831
890k
  return base_partitions[split_idx];
1832
4.06M
}
Unexecuted instantiation: av1_dx_iface.c:get_partition
decodeframe.c:get_partition
Line
Count
Source
1759
6.94M
                                           BLOCK_SIZE bsize) {
1760
6.94M
  const CommonModeInfoParams *const mi_params = &cm->mi_params;
1761
6.94M
  if (mi_row >= mi_params->mi_rows || mi_col >= mi_params->mi_cols)
1762
0
    return PARTITION_INVALID;
1763
1764
6.94M
  const int offset = mi_row * mi_params->mi_stride + mi_col;
1765
6.94M
  MB_MODE_INFO **mi = mi_params->mi_grid_base + offset;
1766
6.94M
  const BLOCK_SIZE subsize = mi[0]->bsize;
1767
1768
6.94M
  assert(bsize < BLOCK_SIZES_ALL);
1769
1770
6.94M
  if (subsize == bsize) return PARTITION_NONE;
1771
1772
4.06M
  const int bhigh = mi_size_high[bsize];
1773
4.06M
  const int bwide = mi_size_wide[bsize];
1774
4.06M
  const int sshigh = mi_size_high[subsize];
1775
4.06M
  const int sswide = mi_size_wide[subsize];
1776
1777
4.06M
  if (bsize > BLOCK_8X8 && mi_row + bwide / 2 < mi_params->mi_rows &&
1778
4.06M
      mi_col + bhigh / 2 < mi_params->mi_cols) {
1779
    // In this case, the block might be using an extended partition
1780
    // type.
1781
3.17M
    const MB_MODE_INFO *const mbmi_right = mi[bwide / 2];
1782
3.17M
    const MB_MODE_INFO *const mbmi_below = mi[bhigh / 2 * mi_params->mi_stride];
1783
1784
3.17M
    if (sswide == bwide) {
1785
      // Smaller height but same width. Is PARTITION_HORZ_4, PARTITION_HORZ or
1786
      // PARTITION_HORZ_B. To distinguish the latter two, check if the lower
1787
      // half was split.
1788
1.00M
      if (sshigh * 4 == bhigh) return PARTITION_HORZ_4;
1789
579k
      assert(sshigh * 2 == bhigh);
1790
1791
579k
      if (mbmi_below->bsize == subsize)
1792
407k
        return PARTITION_HORZ;
1793
172k
      else
1794
172k
        return PARTITION_HORZ_B;
1795
2.17M
    } else if (sshigh == bhigh) {
1796
      // Smaller width but same height. Is PARTITION_VERT_4, PARTITION_VERT or
1797
      // PARTITION_VERT_B. To distinguish the latter two, check if the right
1798
      // half was split.
1799
502k
      if (sswide * 4 == bwide) return PARTITION_VERT_4;
1800
332k
      assert(sswide * 2 == bhigh);
1801
1802
332k
      if (mbmi_right->bsize == subsize)
1803
227k
        return PARTITION_VERT;
1804
105k
      else
1805
105k
        return PARTITION_VERT_B;
1806
1.66M
    } else {
1807
      // Smaller width and smaller height. Might be PARTITION_SPLIT or could be
1808
      // PARTITION_HORZ_A or PARTITION_VERT_A. If subsize isn't halved in both
1809
      // dimensions, we immediately know this is a split (which will recurse to
1810
      // get to subsize). Otherwise look down and to the right. With
1811
      // PARTITION_VERT_A, the right block will have height bhigh; with
1812
      // PARTITION_HORZ_A, the lower block with have width bwide. Otherwise
1813
      // it's PARTITION_SPLIT.
1814
1.66M
      if (sswide * 2 != bwide || sshigh * 2 != bhigh) return PARTITION_SPLIT;
1815
1816
805k
      if (mi_size_wide[mbmi_below->bsize] == bwide) return PARTITION_HORZ_A;
1817
650k
      if (mi_size_high[mbmi_right->bsize] == bhigh) return PARTITION_VERT_A;
1818
1819
565k
      return PARTITION_SPLIT;
1820
650k
    }
1821
3.17M
  }
1822
890k
  const int vert_split = sswide < bwide;
1823
890k
  const int horz_split = sshigh < bhigh;
1824
890k
  const int split_idx = (vert_split << 1) | horz_split;
1825
890k
  assert(split_idx != 0);
1826
1827
0
  static const PARTITION_TYPE base_partitions[4] = {
1828
890k
    PARTITION_INVALID, PARTITION_HORZ, PARTITION_VERT, PARTITION_SPLIT
1829
890k
  };
1830
1831
890k
  return base_partitions[split_idx];
1832
4.06M
}
Unexecuted instantiation: decodemv.c:get_partition
Unexecuted instantiation: decoder.c:get_partition
Unexecuted instantiation: decodetxb.c:get_partition
Unexecuted instantiation: detokenize.c:get_partition
Unexecuted instantiation: obu.c:get_partition
Unexecuted instantiation: alloccommon.c:get_partition
Unexecuted instantiation: av1_loopfilter.c:get_partition
Unexecuted instantiation: blockd.c:get_partition
Unexecuted instantiation: cdef.c:get_partition
Unexecuted instantiation: cdef_block.c:get_partition
Unexecuted instantiation: cfl.c:get_partition
Unexecuted instantiation: convolve.c:get_partition
Unexecuted instantiation: entropy.c:get_partition
Unexecuted instantiation: entropymode.c:get_partition
Unexecuted instantiation: entropymv.c:get_partition
Unexecuted instantiation: mvref_common.c:get_partition
Unexecuted instantiation: pred_common.c:get_partition
Unexecuted instantiation: quant_common.c:get_partition
Unexecuted instantiation: reconinter.c:get_partition
Unexecuted instantiation: reconintra.c:get_partition
Unexecuted instantiation: resize.c:get_partition
Unexecuted instantiation: restoration.c:get_partition
Unexecuted instantiation: scan.c:get_partition
Unexecuted instantiation: thread_common.c:get_partition
Unexecuted instantiation: tile_common.c:get_partition
Unexecuted instantiation: txb_common.c:get_partition
Unexecuted instantiation: cfl_sse2.c:get_partition
Unexecuted instantiation: cfl_ssse3.c:get_partition
Unexecuted instantiation: resize_ssse3.c:get_partition
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:get_partition
Unexecuted instantiation: filterintra_sse4.c:get_partition
Unexecuted instantiation: cfl_avx2.c:get_partition
1833
1834
static INLINE void set_sb_size(SequenceHeader *const seq_params,
1835
62.2k
                               BLOCK_SIZE sb_size) {
1836
62.2k
  seq_params->sb_size = sb_size;
1837
62.2k
  seq_params->mib_size = mi_size_wide[seq_params->sb_size];
1838
62.2k
  seq_params->mib_size_log2 = mi_size_wide_log2[seq_params->sb_size];
1839
62.2k
}
Unexecuted instantiation: av1_dx_iface.c:set_sb_size
decodeframe.c:set_sb_size
Line
Count
Source
1835
62.2k
                               BLOCK_SIZE sb_size) {
1836
62.2k
  seq_params->sb_size = sb_size;
1837
62.2k
  seq_params->mib_size = mi_size_wide[seq_params->sb_size];
1838
62.2k
  seq_params->mib_size_log2 = mi_size_wide_log2[seq_params->sb_size];
1839
62.2k
}
Unexecuted instantiation: decodemv.c:set_sb_size
Unexecuted instantiation: decoder.c:set_sb_size
Unexecuted instantiation: decodetxb.c:set_sb_size
Unexecuted instantiation: detokenize.c:set_sb_size
Unexecuted instantiation: obu.c:set_sb_size
Unexecuted instantiation: alloccommon.c:set_sb_size
Unexecuted instantiation: av1_loopfilter.c:set_sb_size
Unexecuted instantiation: blockd.c:set_sb_size
Unexecuted instantiation: cdef.c:set_sb_size
Unexecuted instantiation: cdef_block.c:set_sb_size
Unexecuted instantiation: cfl.c:set_sb_size
Unexecuted instantiation: convolve.c:set_sb_size
Unexecuted instantiation: entropy.c:set_sb_size
Unexecuted instantiation: entropymode.c:set_sb_size
Unexecuted instantiation: entropymv.c:set_sb_size
Unexecuted instantiation: mvref_common.c:set_sb_size
Unexecuted instantiation: pred_common.c:set_sb_size
Unexecuted instantiation: quant_common.c:set_sb_size
Unexecuted instantiation: reconinter.c:set_sb_size
Unexecuted instantiation: reconintra.c:set_sb_size
Unexecuted instantiation: resize.c:set_sb_size
Unexecuted instantiation: restoration.c:set_sb_size
Unexecuted instantiation: scan.c:set_sb_size
Unexecuted instantiation: thread_common.c:set_sb_size
Unexecuted instantiation: tile_common.c:set_sb_size
Unexecuted instantiation: txb_common.c:set_sb_size
Unexecuted instantiation: cfl_sse2.c:set_sb_size
Unexecuted instantiation: cfl_ssse3.c:set_sb_size
Unexecuted instantiation: resize_ssse3.c:set_sb_size
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:set_sb_size
Unexecuted instantiation: filterintra_sse4.c:set_sb_size
Unexecuted instantiation: cfl_avx2.c:set_sb_size
1840
1841
// Returns true if the frame is fully lossless at the coded resolution.
1842
// Note: If super-resolution is used, such a frame will still NOT be lossless at
1843
// the upscaled resolution.
1844
static INLINE int is_coded_lossless(const AV1_COMMON *cm,
1845
153k
                                    const MACROBLOCKD *xd) {
1846
153k
  int coded_lossless = 1;
1847
153k
  if (cm->seg.enabled) {
1848
30.5k
    for (int i = 0; i < MAX_SEGMENTS; ++i) {
1849
29.7k
      if (!xd->lossless[i]) {
1850
19.1k
        coded_lossless = 0;
1851
19.1k
        break;
1852
19.1k
      }
1853
29.7k
    }
1854
133k
  } else {
1855
133k
    coded_lossless = xd->lossless[0];
1856
133k
  }
1857
153k
  return coded_lossless;
1858
153k
}
Unexecuted instantiation: av1_dx_iface.c:is_coded_lossless
decodeframe.c:is_coded_lossless
Line
Count
Source
1845
153k
                                    const MACROBLOCKD *xd) {
1846
153k
  int coded_lossless = 1;
1847
153k
  if (cm->seg.enabled) {
1848
30.5k
    for (int i = 0; i < MAX_SEGMENTS; ++i) {
1849
29.7k
      if (!xd->lossless[i]) {
1850
19.1k
        coded_lossless = 0;
1851
19.1k
        break;
1852
19.1k
      }
1853
29.7k
    }
1854
133k
  } else {
1855
133k
    coded_lossless = xd->lossless[0];
1856
133k
  }
1857
153k
  return coded_lossless;
1858
153k
}
Unexecuted instantiation: decodemv.c:is_coded_lossless
Unexecuted instantiation: decoder.c:is_coded_lossless
Unexecuted instantiation: decodetxb.c:is_coded_lossless
Unexecuted instantiation: detokenize.c:is_coded_lossless
Unexecuted instantiation: obu.c:is_coded_lossless
Unexecuted instantiation: alloccommon.c:is_coded_lossless
Unexecuted instantiation: av1_loopfilter.c:is_coded_lossless
Unexecuted instantiation: blockd.c:is_coded_lossless
Unexecuted instantiation: cdef.c:is_coded_lossless
Unexecuted instantiation: cdef_block.c:is_coded_lossless
Unexecuted instantiation: cfl.c:is_coded_lossless
Unexecuted instantiation: convolve.c:is_coded_lossless
Unexecuted instantiation: entropy.c:is_coded_lossless
Unexecuted instantiation: entropymode.c:is_coded_lossless
Unexecuted instantiation: entropymv.c:is_coded_lossless
Unexecuted instantiation: mvref_common.c:is_coded_lossless
Unexecuted instantiation: pred_common.c:is_coded_lossless
Unexecuted instantiation: quant_common.c:is_coded_lossless
Unexecuted instantiation: reconinter.c:is_coded_lossless
Unexecuted instantiation: reconintra.c:is_coded_lossless
Unexecuted instantiation: resize.c:is_coded_lossless
Unexecuted instantiation: restoration.c:is_coded_lossless
Unexecuted instantiation: scan.c:is_coded_lossless
Unexecuted instantiation: thread_common.c:is_coded_lossless
Unexecuted instantiation: tile_common.c:is_coded_lossless
Unexecuted instantiation: txb_common.c:is_coded_lossless
Unexecuted instantiation: cfl_sse2.c:is_coded_lossless
Unexecuted instantiation: cfl_ssse3.c:is_coded_lossless
Unexecuted instantiation: resize_ssse3.c:is_coded_lossless
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:is_coded_lossless
Unexecuted instantiation: filterintra_sse4.c:is_coded_lossless
Unexecuted instantiation: cfl_avx2.c:is_coded_lossless
1859
1860
69.4k
static INLINE int is_valid_seq_level_idx(AV1_LEVEL seq_level_idx) {
1861
69.4k
  return seq_level_idx == SEQ_LEVEL_MAX ||
1862
69.4k
         (seq_level_idx < SEQ_LEVELS &&
1863
          // The following levels are currently undefined.
1864
67.6k
          seq_level_idx != SEQ_LEVEL_2_2 && seq_level_idx != SEQ_LEVEL_2_3 &&
1865
67.6k
          seq_level_idx != SEQ_LEVEL_3_2 && seq_level_idx != SEQ_LEVEL_3_3 &&
1866
67.6k
          seq_level_idx != SEQ_LEVEL_4_2 && seq_level_idx != SEQ_LEVEL_4_3
1867
67.6k
#if !CONFIG_CWG_C013
1868
67.6k
          && seq_level_idx != SEQ_LEVEL_7_0 && seq_level_idx != SEQ_LEVEL_7_1 &&
1869
67.6k
          seq_level_idx != SEQ_LEVEL_7_2 && seq_level_idx != SEQ_LEVEL_7_3 &&
1870
67.6k
          seq_level_idx != SEQ_LEVEL_8_0 && seq_level_idx != SEQ_LEVEL_8_1 &&
1871
67.6k
          seq_level_idx != SEQ_LEVEL_8_2 && seq_level_idx != SEQ_LEVEL_8_3
1872
67.6k
#endif
1873
67.6k
         );
1874
69.4k
}
Unexecuted instantiation: av1_dx_iface.c:is_valid_seq_level_idx
Unexecuted instantiation: decodeframe.c:is_valid_seq_level_idx
Unexecuted instantiation: decodemv.c:is_valid_seq_level_idx
Unexecuted instantiation: decoder.c:is_valid_seq_level_idx
Unexecuted instantiation: decodetxb.c:is_valid_seq_level_idx
Unexecuted instantiation: detokenize.c:is_valid_seq_level_idx
obu.c:is_valid_seq_level_idx
Line
Count
Source
1860
69.4k
static INLINE int is_valid_seq_level_idx(AV1_LEVEL seq_level_idx) {
1861
69.4k
  return seq_level_idx == SEQ_LEVEL_MAX ||
1862
69.4k
         (seq_level_idx < SEQ_LEVELS &&
1863
          // The following levels are currently undefined.
1864
67.6k
          seq_level_idx != SEQ_LEVEL_2_2 && seq_level_idx != SEQ_LEVEL_2_3 &&
1865
67.6k
          seq_level_idx != SEQ_LEVEL_3_2 && seq_level_idx != SEQ_LEVEL_3_3 &&
1866
67.6k
          seq_level_idx != SEQ_LEVEL_4_2 && seq_level_idx != SEQ_LEVEL_4_3
1867
67.6k
#if !CONFIG_CWG_C013
1868
67.6k
          && seq_level_idx != SEQ_LEVEL_7_0 && seq_level_idx != SEQ_LEVEL_7_1 &&
1869
67.6k
          seq_level_idx != SEQ_LEVEL_7_2 && seq_level_idx != SEQ_LEVEL_7_3 &&
1870
67.6k
          seq_level_idx != SEQ_LEVEL_8_0 && seq_level_idx != SEQ_LEVEL_8_1 &&
1871
67.6k
          seq_level_idx != SEQ_LEVEL_8_2 && seq_level_idx != SEQ_LEVEL_8_3
1872
67.6k
#endif
1873
67.6k
         );
1874
69.4k
}
Unexecuted instantiation: alloccommon.c:is_valid_seq_level_idx
Unexecuted instantiation: av1_loopfilter.c:is_valid_seq_level_idx
Unexecuted instantiation: blockd.c:is_valid_seq_level_idx
Unexecuted instantiation: cdef.c:is_valid_seq_level_idx
Unexecuted instantiation: cdef_block.c:is_valid_seq_level_idx
Unexecuted instantiation: cfl.c:is_valid_seq_level_idx
Unexecuted instantiation: convolve.c:is_valid_seq_level_idx
Unexecuted instantiation: entropy.c:is_valid_seq_level_idx
Unexecuted instantiation: entropymode.c:is_valid_seq_level_idx
Unexecuted instantiation: entropymv.c:is_valid_seq_level_idx
Unexecuted instantiation: mvref_common.c:is_valid_seq_level_idx
Unexecuted instantiation: pred_common.c:is_valid_seq_level_idx
Unexecuted instantiation: quant_common.c:is_valid_seq_level_idx
Unexecuted instantiation: reconinter.c:is_valid_seq_level_idx
Unexecuted instantiation: reconintra.c:is_valid_seq_level_idx
Unexecuted instantiation: resize.c:is_valid_seq_level_idx
Unexecuted instantiation: restoration.c:is_valid_seq_level_idx
Unexecuted instantiation: scan.c:is_valid_seq_level_idx
Unexecuted instantiation: thread_common.c:is_valid_seq_level_idx
Unexecuted instantiation: tile_common.c:is_valid_seq_level_idx
Unexecuted instantiation: txb_common.c:is_valid_seq_level_idx
Unexecuted instantiation: cfl_sse2.c:is_valid_seq_level_idx
Unexecuted instantiation: cfl_ssse3.c:is_valid_seq_level_idx
Unexecuted instantiation: resize_ssse3.c:is_valid_seq_level_idx
Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:is_valid_seq_level_idx
Unexecuted instantiation: filterintra_sse4.c:is_valid_seq_level_idx
Unexecuted instantiation: cfl_avx2.c:is_valid_seq_level_idx
1875
1876
/*!\endcond */
1877
1878
#ifdef __cplusplus
1879
}  // extern "C"
1880
#endif
1881
1882
#endif  // AOM_AV1_COMMON_AV1_COMMON_INT_H_