Coverage Report

Created: 2025-06-22 08:04

/src/aom/av1/encoder/mcomp.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_ENCODER_MCOMP_H_
13
#define AOM_AV1_ENCODER_MCOMP_H_
14
15
#include "av1/common/mv.h"
16
#include "av1/encoder/block.h"
17
#include "av1/encoder/rd.h"
18
19
#include "aom_dsp/variance.h"
20
21
#ifdef __cplusplus
22
extern "C" {
23
#endif
24
25
struct AV1_COMP;
26
struct SPEED_FEATURES;
27
28
// =============================================================================
29
//  Cost functions
30
// =============================================================================
31
32
enum {
33
  MV_COST_ENTROPY,    // Use the entropy rate of the mv as the cost
34
  MV_COST_L1_LOWRES,  // Use the l1 norm of the mv as the cost (<480p)
35
  MV_COST_L1_MIDRES,  // Use the l1 norm of the mv as the cost (>=480p)
36
  MV_COST_L1_HDRES,   // Use the l1 norm of the mv as the cost (>=720p)
37
  MV_COST_NONE        // Use 0 as as cost irrespective of the current mv
38
} UENUM1BYTE(MV_COST_TYPE);
39
40
typedef struct {
41
  // The reference mv used to compute the mv cost
42
  const MV *ref_mv;
43
  FULLPEL_MV full_ref_mv;
44
  MV_COST_TYPE mv_cost_type;
45
  const int *mvjcost;
46
  const int *mvcost[2];
47
  int error_per_bit;
48
  // A multiplier used to convert rate to sad cost
49
  int sad_per_bit;
50
} MV_COST_PARAMS;
51
52
int av1_mv_bit_cost(const MV *mv, const MV *ref_mv, const int *mvjcost,
53
                    int *const mvcost[2], int weight);
54
55
int av1_get_mvpred_sse(const MV_COST_PARAMS *mv_cost_params,
56
                       const FULLPEL_MV best_mv,
57
                       const aom_variance_fn_ptr_t *vfp,
58
                       const struct buf_2d *src, const struct buf_2d *pre);
59
60
// =============================================================================
61
//  Motion Search
62
// =============================================================================
63
typedef struct {
64
  // The reference buffer
65
  const struct buf_2d *ref;
66
67
  // The source and predictors/mask used by translational search
68
  const struct buf_2d *src;
69
  const uint8_t *second_pred;
70
  const uint8_t *mask;
71
  int mask_stride;
72
  int inv_mask;
73
74
  // The weighted source and mask used by OBMC
75
  const int32_t *wsrc;
76
  const int32_t *obmc_mask;
77
} MSBuffers;
78
79
static inline void av1_set_ms_compound_refs(MSBuffers *ms_buffers,
80
                                            const uint8_t *second_pred,
81
                                            const uint8_t *mask,
82
0
                                            int mask_stride, int invert_mask) {
83
0
  ms_buffers->second_pred = second_pred;
84
0
  ms_buffers->mask = mask;
85
0
  ms_buffers->mask_stride = mask_stride;
86
0
  ms_buffers->inv_mask = invert_mask;
87
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_set_ms_compound_refs
Unexecuted instantiation: allintra_vis.c:av1_set_ms_compound_refs
Unexecuted instantiation: av1_quantize.c:av1_set_ms_compound_refs
Unexecuted instantiation: bitstream.c:av1_set_ms_compound_refs
Unexecuted instantiation: context_tree.c:av1_set_ms_compound_refs
Unexecuted instantiation: encodeframe.c:av1_set_ms_compound_refs
Unexecuted instantiation: encodeframe_utils.c:av1_set_ms_compound_refs
Unexecuted instantiation: encodemb.c:av1_set_ms_compound_refs
Unexecuted instantiation: encodemv.c:av1_set_ms_compound_refs
Unexecuted instantiation: encoder.c:av1_set_ms_compound_refs
Unexecuted instantiation: encoder_utils.c:av1_set_ms_compound_refs
Unexecuted instantiation: encodetxb.c:av1_set_ms_compound_refs
Unexecuted instantiation: ethread.c:av1_set_ms_compound_refs
Unexecuted instantiation: firstpass.c:av1_set_ms_compound_refs
Unexecuted instantiation: global_motion_facade.c:av1_set_ms_compound_refs
Unexecuted instantiation: level.c:av1_set_ms_compound_refs
Unexecuted instantiation: lookahead.c:av1_set_ms_compound_refs
Unexecuted instantiation: mcomp.c:av1_set_ms_compound_refs
Unexecuted instantiation: mv_prec.c:av1_set_ms_compound_refs
Unexecuted instantiation: palette.c:av1_set_ms_compound_refs
Unexecuted instantiation: partition_search.c:av1_set_ms_compound_refs
Unexecuted instantiation: partition_strategy.c:av1_set_ms_compound_refs
Unexecuted instantiation: pass2_strategy.c:av1_set_ms_compound_refs
Unexecuted instantiation: pickcdef.c:av1_set_ms_compound_refs
Unexecuted instantiation: picklpf.c:av1_set_ms_compound_refs
Unexecuted instantiation: pickrst.c:av1_set_ms_compound_refs
Unexecuted instantiation: ratectrl.c:av1_set_ms_compound_refs
Unexecuted instantiation: rd.c:av1_set_ms_compound_refs
Unexecuted instantiation: rdopt.c:av1_set_ms_compound_refs
Unexecuted instantiation: nonrd_pickmode.c:av1_set_ms_compound_refs
Unexecuted instantiation: nonrd_opt.c:av1_set_ms_compound_refs
Unexecuted instantiation: segmentation.c:av1_set_ms_compound_refs
Unexecuted instantiation: speed_features.c:av1_set_ms_compound_refs
Unexecuted instantiation: superres_scale.c:av1_set_ms_compound_refs
Unexecuted instantiation: svc_layercontext.c:av1_set_ms_compound_refs
Unexecuted instantiation: temporal_filter.c:av1_set_ms_compound_refs
Unexecuted instantiation: tokenize.c:av1_set_ms_compound_refs
Unexecuted instantiation: tpl_model.c:av1_set_ms_compound_refs
Unexecuted instantiation: tx_search.c:av1_set_ms_compound_refs
Unexecuted instantiation: txb_rdopt.c:av1_set_ms_compound_refs
Unexecuted instantiation: intra_mode_search.c:av1_set_ms_compound_refs
Unexecuted instantiation: var_based_part.c:av1_set_ms_compound_refs
Unexecuted instantiation: av1_noise_estimate.c:av1_set_ms_compound_refs
Unexecuted instantiation: aq_complexity.c:av1_set_ms_compound_refs
Unexecuted instantiation: aq_cyclicrefresh.c:av1_set_ms_compound_refs
Unexecuted instantiation: aq_variance.c:av1_set_ms_compound_refs
Unexecuted instantiation: compound_type.c:av1_set_ms_compound_refs
Unexecuted instantiation: encode_strategy.c:av1_set_ms_compound_refs
Unexecuted instantiation: global_motion.c:av1_set_ms_compound_refs
Unexecuted instantiation: gop_structure.c:av1_set_ms_compound_refs
Unexecuted instantiation: interp_search.c:av1_set_ms_compound_refs
Unexecuted instantiation: motion_search_facade.c:av1_set_ms_compound_refs
88
89
// =============================================================================
90
//  Fullpixel Motion Search
91
// =============================================================================
92
// This struct holds fullpixel motion search parameters that should be constant
93
// during the search
94
typedef struct {
95
  BLOCK_SIZE bsize;
96
  // A function pointer to the simd function for fast computation
97
  const aom_variance_fn_ptr_t *vfp;
98
99
  MSBuffers ms_buffers;
100
101
  // WARNING: search_method should be regarded as a private variable and should
102
  // not be modified directly so it is in sync with search_sites. To modify it,
103
  // use av1_set_mv_search_method.
104
  SEARCH_METHODS search_method;
105
  const search_site_config *search_sites;
106
  FullMvLimits mv_limits;
107
108
  int run_mesh_search;    // Sets mesh search unless it got pruned by
109
                          // prune_mesh_search.
110
  int prune_mesh_search;  // Disables mesh search if the best_mv after a normal
111
                          // search if close to the start_mv.
112
  int mesh_search_mv_diff_threshold;  // mv diff threshold to enable
113
                                      // prune_mesh_search
114
  int force_mesh_thresh;  // Forces mesh search if the residue variance is
115
                          // higher than the threshold.
116
  const struct MESH_PATTERN *mesh_patterns[2];
117
118
  // Use maximum search interval of 4 if true. This helps motion search to find
119
  // the best motion vector for screen content types.
120
  int fine_search_interval;
121
122
  int is_intra_mode;
123
124
  int fast_obmc_search;
125
126
  // For calculating mv cost
127
  MV_COST_PARAMS mv_cost_params;
128
129
  // Stores the function used to compute the sad. This can be different from the
130
  // sdf in vfp (e.g. downsampled sad and not sad) to allow speed up.
131
  aom_sad_fn_t sdf;
132
  aom_sad_multi_d_fn_t sdx4df;
133
  aom_sad_multi_d_fn_t sdx3df;
134
} FULLPEL_MOTION_SEARCH_PARAMS;
135
136
typedef struct {
137
  int err_cost;
138
  unsigned int distortion;
139
  unsigned int sse;
140
} FULLPEL_MV_STATS;
141
142
void av1_init_obmc_buffer(OBMCBuffer *obmc_buffer);
143
144
void av1_make_default_fullpel_ms_params(
145
    FULLPEL_MOTION_SEARCH_PARAMS *ms_params, const struct AV1_COMP *cpi,
146
    MACROBLOCK *x, BLOCK_SIZE bsize, const MV *ref_mv, FULLPEL_MV start_mv,
147
    const search_site_config search_sites[NUM_DISTINCT_SEARCH_METHODS],
148
    SEARCH_METHODS search_method, int fine_search_interval);
149
150
/*! Sets the \ref FULLPEL_MOTION_SEARCH_PARAMS to intra mode. */
151
void av1_set_ms_to_intra_mode(FULLPEL_MOTION_SEARCH_PARAMS *ms_params,
152
                              const IntraBCMVCosts *dv_costs);
153
154
// Sets up configs for firstpass motion search.
155
void av1_init_motion_fpf(search_site_config *cfg, int stride);
156
157
/*! Function pointer to search site config initialization of different search
158
 * method functions. */
159
typedef void (*av1_init_search_site_config)(search_site_config *cfg, int stride,
160
                                            int level);
161
162
/*! Array of function pointers used to set the motion search config. */
163
extern const av1_init_search_site_config
164
    av1_init_motion_compensation[NUM_DISTINCT_SEARCH_METHODS];
165
166
// Array to inform which all search methods are having
167
// same candidates and different in number of search steps.
168
static const SEARCH_METHODS search_method_lookup[NUM_SEARCH_METHODS] = {
169
  DIAMOND,          // DIAMOND
170
  NSTEP,            // NSTEP
171
  NSTEP_8PT,        // NSTEP_8PT
172
  CLAMPED_DIAMOND,  // CLAMPED_DIAMOND
173
  HEX,              // HEX
174
  BIGDIA,           // BIGDIA
175
  SQUARE,           // SQUARE
176
  HEX,              // FAST_HEX
177
  BIGDIA,           // FAST_DIAMOND
178
  BIGDIA,           // FAST_BIGDIA
179
  BIGDIA            // VFAST_DIAMOND
180
};
181
182
// Reinitialize the search site config.
183
static inline void av1_refresh_search_site_config(
184
    search_site_config *ss_cfg_buf, SEARCH_METHODS search_method,
185
0
    const int ref_stride) {
186
0
  const int level =
187
0
      search_method == NSTEP_8PT || search_method == CLAMPED_DIAMOND;
188
0
  search_method = search_method_lookup[search_method];
189
0
  av1_init_motion_compensation[search_method](&ss_cfg_buf[search_method],
190
0
                                              ref_stride, level);
191
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_refresh_search_site_config
Unexecuted instantiation: allintra_vis.c:av1_refresh_search_site_config
Unexecuted instantiation: av1_quantize.c:av1_refresh_search_site_config
Unexecuted instantiation: bitstream.c:av1_refresh_search_site_config
Unexecuted instantiation: context_tree.c:av1_refresh_search_site_config
Unexecuted instantiation: encodeframe.c:av1_refresh_search_site_config
Unexecuted instantiation: encodeframe_utils.c:av1_refresh_search_site_config
Unexecuted instantiation: encodemb.c:av1_refresh_search_site_config
Unexecuted instantiation: encodemv.c:av1_refresh_search_site_config
Unexecuted instantiation: encoder.c:av1_refresh_search_site_config
Unexecuted instantiation: encoder_utils.c:av1_refresh_search_site_config
Unexecuted instantiation: encodetxb.c:av1_refresh_search_site_config
Unexecuted instantiation: ethread.c:av1_refresh_search_site_config
Unexecuted instantiation: firstpass.c:av1_refresh_search_site_config
Unexecuted instantiation: global_motion_facade.c:av1_refresh_search_site_config
Unexecuted instantiation: level.c:av1_refresh_search_site_config
Unexecuted instantiation: lookahead.c:av1_refresh_search_site_config
Unexecuted instantiation: mcomp.c:av1_refresh_search_site_config
Unexecuted instantiation: mv_prec.c:av1_refresh_search_site_config
Unexecuted instantiation: palette.c:av1_refresh_search_site_config
Unexecuted instantiation: partition_search.c:av1_refresh_search_site_config
Unexecuted instantiation: partition_strategy.c:av1_refresh_search_site_config
Unexecuted instantiation: pass2_strategy.c:av1_refresh_search_site_config
Unexecuted instantiation: pickcdef.c:av1_refresh_search_site_config
Unexecuted instantiation: picklpf.c:av1_refresh_search_site_config
Unexecuted instantiation: pickrst.c:av1_refresh_search_site_config
Unexecuted instantiation: ratectrl.c:av1_refresh_search_site_config
Unexecuted instantiation: rd.c:av1_refresh_search_site_config
Unexecuted instantiation: rdopt.c:av1_refresh_search_site_config
Unexecuted instantiation: nonrd_pickmode.c:av1_refresh_search_site_config
Unexecuted instantiation: nonrd_opt.c:av1_refresh_search_site_config
Unexecuted instantiation: segmentation.c:av1_refresh_search_site_config
Unexecuted instantiation: speed_features.c:av1_refresh_search_site_config
Unexecuted instantiation: superres_scale.c:av1_refresh_search_site_config
Unexecuted instantiation: svc_layercontext.c:av1_refresh_search_site_config
Unexecuted instantiation: temporal_filter.c:av1_refresh_search_site_config
Unexecuted instantiation: tokenize.c:av1_refresh_search_site_config
Unexecuted instantiation: tpl_model.c:av1_refresh_search_site_config
Unexecuted instantiation: tx_search.c:av1_refresh_search_site_config
Unexecuted instantiation: txb_rdopt.c:av1_refresh_search_site_config
Unexecuted instantiation: intra_mode_search.c:av1_refresh_search_site_config
Unexecuted instantiation: var_based_part.c:av1_refresh_search_site_config
Unexecuted instantiation: av1_noise_estimate.c:av1_refresh_search_site_config
Unexecuted instantiation: aq_complexity.c:av1_refresh_search_site_config
Unexecuted instantiation: aq_cyclicrefresh.c:av1_refresh_search_site_config
Unexecuted instantiation: aq_variance.c:av1_refresh_search_site_config
Unexecuted instantiation: compound_type.c:av1_refresh_search_site_config
Unexecuted instantiation: encode_strategy.c:av1_refresh_search_site_config
Unexecuted instantiation: global_motion.c:av1_refresh_search_site_config
Unexecuted instantiation: gop_structure.c:av1_refresh_search_site_config
Unexecuted instantiation: interp_search.c:av1_refresh_search_site_config
Unexecuted instantiation: motion_search_facade.c:av1_refresh_search_site_config
192
193
// Mv beyond the range do not produce new/different prediction block.
194
static inline void av1_set_mv_search_method(
195
    FULLPEL_MOTION_SEARCH_PARAMS *ms_params,
196
    const search_site_config search_sites[NUM_DISTINCT_SEARCH_METHODS],
197
0
    SEARCH_METHODS search_method) {
198
0
  ms_params->search_method = search_method;
199
0
  ms_params->search_sites =
200
0
      &search_sites[search_method_lookup[ms_params->search_method]];
201
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_set_mv_search_method
Unexecuted instantiation: allintra_vis.c:av1_set_mv_search_method
Unexecuted instantiation: av1_quantize.c:av1_set_mv_search_method
Unexecuted instantiation: bitstream.c:av1_set_mv_search_method
Unexecuted instantiation: context_tree.c:av1_set_mv_search_method
Unexecuted instantiation: encodeframe.c:av1_set_mv_search_method
Unexecuted instantiation: encodeframe_utils.c:av1_set_mv_search_method
Unexecuted instantiation: encodemb.c:av1_set_mv_search_method
Unexecuted instantiation: encodemv.c:av1_set_mv_search_method
Unexecuted instantiation: encoder.c:av1_set_mv_search_method
Unexecuted instantiation: encoder_utils.c:av1_set_mv_search_method
Unexecuted instantiation: encodetxb.c:av1_set_mv_search_method
Unexecuted instantiation: ethread.c:av1_set_mv_search_method
Unexecuted instantiation: firstpass.c:av1_set_mv_search_method
Unexecuted instantiation: global_motion_facade.c:av1_set_mv_search_method
Unexecuted instantiation: level.c:av1_set_mv_search_method
Unexecuted instantiation: lookahead.c:av1_set_mv_search_method
Unexecuted instantiation: mcomp.c:av1_set_mv_search_method
Unexecuted instantiation: mv_prec.c:av1_set_mv_search_method
Unexecuted instantiation: palette.c:av1_set_mv_search_method
Unexecuted instantiation: partition_search.c:av1_set_mv_search_method
Unexecuted instantiation: partition_strategy.c:av1_set_mv_search_method
Unexecuted instantiation: pass2_strategy.c:av1_set_mv_search_method
Unexecuted instantiation: pickcdef.c:av1_set_mv_search_method
Unexecuted instantiation: picklpf.c:av1_set_mv_search_method
Unexecuted instantiation: pickrst.c:av1_set_mv_search_method
Unexecuted instantiation: ratectrl.c:av1_set_mv_search_method
Unexecuted instantiation: rd.c:av1_set_mv_search_method
Unexecuted instantiation: rdopt.c:av1_set_mv_search_method
Unexecuted instantiation: nonrd_pickmode.c:av1_set_mv_search_method
Unexecuted instantiation: nonrd_opt.c:av1_set_mv_search_method
Unexecuted instantiation: segmentation.c:av1_set_mv_search_method
Unexecuted instantiation: speed_features.c:av1_set_mv_search_method
Unexecuted instantiation: superres_scale.c:av1_set_mv_search_method
Unexecuted instantiation: svc_layercontext.c:av1_set_mv_search_method
Unexecuted instantiation: temporal_filter.c:av1_set_mv_search_method
Unexecuted instantiation: tokenize.c:av1_set_mv_search_method
Unexecuted instantiation: tpl_model.c:av1_set_mv_search_method
Unexecuted instantiation: tx_search.c:av1_set_mv_search_method
Unexecuted instantiation: txb_rdopt.c:av1_set_mv_search_method
Unexecuted instantiation: intra_mode_search.c:av1_set_mv_search_method
Unexecuted instantiation: var_based_part.c:av1_set_mv_search_method
Unexecuted instantiation: av1_noise_estimate.c:av1_set_mv_search_method
Unexecuted instantiation: aq_complexity.c:av1_set_mv_search_method
Unexecuted instantiation: aq_cyclicrefresh.c:av1_set_mv_search_method
Unexecuted instantiation: aq_variance.c:av1_set_mv_search_method
Unexecuted instantiation: compound_type.c:av1_set_mv_search_method
Unexecuted instantiation: encode_strategy.c:av1_set_mv_search_method
Unexecuted instantiation: global_motion.c:av1_set_mv_search_method
Unexecuted instantiation: gop_structure.c:av1_set_mv_search_method
Unexecuted instantiation: interp_search.c:av1_set_mv_search_method
Unexecuted instantiation: motion_search_facade.c:av1_set_mv_search_method
202
203
// Set up limit values for MV components.
204
// Mv beyond the range do not produce new/different prediction block.
205
static inline void av1_set_mv_row_limits(
206
    const CommonModeInfoParams *const mi_params, FullMvLimits *mv_limits,
207
0
    int mi_row, int mi_height, int border) {
208
0
  const int min1 = -(mi_row * MI_SIZE + border - 2 * AOM_INTERP_EXTEND);
209
0
  const int min2 = -(((mi_row + mi_height) * MI_SIZE) + 2 * AOM_INTERP_EXTEND);
210
0
  mv_limits->row_min = AOMMAX(min1, min2);
211
0
  const int max1 = (mi_params->mi_rows - mi_row - mi_height) * MI_SIZE +
212
0
                   border - 2 * AOM_INTERP_EXTEND;
213
0
  const int max2 =
214
0
      (mi_params->mi_rows - mi_row) * MI_SIZE + 2 * AOM_INTERP_EXTEND;
215
0
  mv_limits->row_max = AOMMIN(max1, max2);
216
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_set_mv_row_limits
Unexecuted instantiation: allintra_vis.c:av1_set_mv_row_limits
Unexecuted instantiation: av1_quantize.c:av1_set_mv_row_limits
Unexecuted instantiation: bitstream.c:av1_set_mv_row_limits
Unexecuted instantiation: context_tree.c:av1_set_mv_row_limits
Unexecuted instantiation: encodeframe.c:av1_set_mv_row_limits
Unexecuted instantiation: encodeframe_utils.c:av1_set_mv_row_limits
Unexecuted instantiation: encodemb.c:av1_set_mv_row_limits
Unexecuted instantiation: encodemv.c:av1_set_mv_row_limits
Unexecuted instantiation: encoder.c:av1_set_mv_row_limits
Unexecuted instantiation: encoder_utils.c:av1_set_mv_row_limits
Unexecuted instantiation: encodetxb.c:av1_set_mv_row_limits
Unexecuted instantiation: ethread.c:av1_set_mv_row_limits
Unexecuted instantiation: firstpass.c:av1_set_mv_row_limits
Unexecuted instantiation: global_motion_facade.c:av1_set_mv_row_limits
Unexecuted instantiation: level.c:av1_set_mv_row_limits
Unexecuted instantiation: lookahead.c:av1_set_mv_row_limits
Unexecuted instantiation: mcomp.c:av1_set_mv_row_limits
Unexecuted instantiation: mv_prec.c:av1_set_mv_row_limits
Unexecuted instantiation: palette.c:av1_set_mv_row_limits
Unexecuted instantiation: partition_search.c:av1_set_mv_row_limits
Unexecuted instantiation: partition_strategy.c:av1_set_mv_row_limits
Unexecuted instantiation: pass2_strategy.c:av1_set_mv_row_limits
Unexecuted instantiation: pickcdef.c:av1_set_mv_row_limits
Unexecuted instantiation: picklpf.c:av1_set_mv_row_limits
Unexecuted instantiation: pickrst.c:av1_set_mv_row_limits
Unexecuted instantiation: ratectrl.c:av1_set_mv_row_limits
Unexecuted instantiation: rd.c:av1_set_mv_row_limits
Unexecuted instantiation: rdopt.c:av1_set_mv_row_limits
Unexecuted instantiation: nonrd_pickmode.c:av1_set_mv_row_limits
Unexecuted instantiation: nonrd_opt.c:av1_set_mv_row_limits
Unexecuted instantiation: segmentation.c:av1_set_mv_row_limits
Unexecuted instantiation: speed_features.c:av1_set_mv_row_limits
Unexecuted instantiation: superres_scale.c:av1_set_mv_row_limits
Unexecuted instantiation: svc_layercontext.c:av1_set_mv_row_limits
Unexecuted instantiation: temporal_filter.c:av1_set_mv_row_limits
Unexecuted instantiation: tokenize.c:av1_set_mv_row_limits
Unexecuted instantiation: tpl_model.c:av1_set_mv_row_limits
Unexecuted instantiation: tx_search.c:av1_set_mv_row_limits
Unexecuted instantiation: txb_rdopt.c:av1_set_mv_row_limits
Unexecuted instantiation: intra_mode_search.c:av1_set_mv_row_limits
Unexecuted instantiation: var_based_part.c:av1_set_mv_row_limits
Unexecuted instantiation: av1_noise_estimate.c:av1_set_mv_row_limits
Unexecuted instantiation: aq_complexity.c:av1_set_mv_row_limits
Unexecuted instantiation: aq_cyclicrefresh.c:av1_set_mv_row_limits
Unexecuted instantiation: aq_variance.c:av1_set_mv_row_limits
Unexecuted instantiation: compound_type.c:av1_set_mv_row_limits
Unexecuted instantiation: encode_strategy.c:av1_set_mv_row_limits
Unexecuted instantiation: global_motion.c:av1_set_mv_row_limits
Unexecuted instantiation: gop_structure.c:av1_set_mv_row_limits
Unexecuted instantiation: interp_search.c:av1_set_mv_row_limits
Unexecuted instantiation: motion_search_facade.c:av1_set_mv_row_limits
217
218
static inline void av1_set_mv_col_limits(
219
    const CommonModeInfoParams *const mi_params, FullMvLimits *mv_limits,
220
0
    int mi_col, int mi_width, int border) {
221
0
  const int min1 = -(mi_col * MI_SIZE + border - 2 * AOM_INTERP_EXTEND);
222
0
  const int min2 = -(((mi_col + mi_width) * MI_SIZE) + 2 * AOM_INTERP_EXTEND);
223
0
  mv_limits->col_min = AOMMAX(min1, min2);
224
0
  const int max1 = (mi_params->mi_cols - mi_col - mi_width) * MI_SIZE + border -
225
0
                   2 * AOM_INTERP_EXTEND;
226
0
  const int max2 =
227
0
      (mi_params->mi_cols - mi_col) * MI_SIZE + 2 * AOM_INTERP_EXTEND;
228
0
  mv_limits->col_max = AOMMIN(max1, max2);
229
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_set_mv_col_limits
Unexecuted instantiation: allintra_vis.c:av1_set_mv_col_limits
Unexecuted instantiation: av1_quantize.c:av1_set_mv_col_limits
Unexecuted instantiation: bitstream.c:av1_set_mv_col_limits
Unexecuted instantiation: context_tree.c:av1_set_mv_col_limits
Unexecuted instantiation: encodeframe.c:av1_set_mv_col_limits
Unexecuted instantiation: encodeframe_utils.c:av1_set_mv_col_limits
Unexecuted instantiation: encodemb.c:av1_set_mv_col_limits
Unexecuted instantiation: encodemv.c:av1_set_mv_col_limits
Unexecuted instantiation: encoder.c:av1_set_mv_col_limits
Unexecuted instantiation: encoder_utils.c:av1_set_mv_col_limits
Unexecuted instantiation: encodetxb.c:av1_set_mv_col_limits
Unexecuted instantiation: ethread.c:av1_set_mv_col_limits
Unexecuted instantiation: firstpass.c:av1_set_mv_col_limits
Unexecuted instantiation: global_motion_facade.c:av1_set_mv_col_limits
Unexecuted instantiation: level.c:av1_set_mv_col_limits
Unexecuted instantiation: lookahead.c:av1_set_mv_col_limits
Unexecuted instantiation: mcomp.c:av1_set_mv_col_limits
Unexecuted instantiation: mv_prec.c:av1_set_mv_col_limits
Unexecuted instantiation: palette.c:av1_set_mv_col_limits
Unexecuted instantiation: partition_search.c:av1_set_mv_col_limits
Unexecuted instantiation: partition_strategy.c:av1_set_mv_col_limits
Unexecuted instantiation: pass2_strategy.c:av1_set_mv_col_limits
Unexecuted instantiation: pickcdef.c:av1_set_mv_col_limits
Unexecuted instantiation: picklpf.c:av1_set_mv_col_limits
Unexecuted instantiation: pickrst.c:av1_set_mv_col_limits
Unexecuted instantiation: ratectrl.c:av1_set_mv_col_limits
Unexecuted instantiation: rd.c:av1_set_mv_col_limits
Unexecuted instantiation: rdopt.c:av1_set_mv_col_limits
Unexecuted instantiation: nonrd_pickmode.c:av1_set_mv_col_limits
Unexecuted instantiation: nonrd_opt.c:av1_set_mv_col_limits
Unexecuted instantiation: segmentation.c:av1_set_mv_col_limits
Unexecuted instantiation: speed_features.c:av1_set_mv_col_limits
Unexecuted instantiation: superres_scale.c:av1_set_mv_col_limits
Unexecuted instantiation: svc_layercontext.c:av1_set_mv_col_limits
Unexecuted instantiation: temporal_filter.c:av1_set_mv_col_limits
Unexecuted instantiation: tokenize.c:av1_set_mv_col_limits
Unexecuted instantiation: tpl_model.c:av1_set_mv_col_limits
Unexecuted instantiation: tx_search.c:av1_set_mv_col_limits
Unexecuted instantiation: txb_rdopt.c:av1_set_mv_col_limits
Unexecuted instantiation: intra_mode_search.c:av1_set_mv_col_limits
Unexecuted instantiation: var_based_part.c:av1_set_mv_col_limits
Unexecuted instantiation: av1_noise_estimate.c:av1_set_mv_col_limits
Unexecuted instantiation: aq_complexity.c:av1_set_mv_col_limits
Unexecuted instantiation: aq_cyclicrefresh.c:av1_set_mv_col_limits
Unexecuted instantiation: aq_variance.c:av1_set_mv_col_limits
Unexecuted instantiation: compound_type.c:av1_set_mv_col_limits
Unexecuted instantiation: encode_strategy.c:av1_set_mv_col_limits
Unexecuted instantiation: global_motion.c:av1_set_mv_col_limits
Unexecuted instantiation: gop_structure.c:av1_set_mv_col_limits
Unexecuted instantiation: interp_search.c:av1_set_mv_col_limits
Unexecuted instantiation: motion_search_facade.c:av1_set_mv_col_limits
230
231
static inline void av1_set_mv_limits(
232
    const CommonModeInfoParams *const mi_params, FullMvLimits *mv_limits,
233
0
    int mi_row, int mi_col, int mi_height, int mi_width, int border) {
234
0
  av1_set_mv_row_limits(mi_params, mv_limits, mi_row, mi_height, border);
235
0
  av1_set_mv_col_limits(mi_params, mv_limits, mi_col, mi_width, border);
236
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_set_mv_limits
Unexecuted instantiation: allintra_vis.c:av1_set_mv_limits
Unexecuted instantiation: av1_quantize.c:av1_set_mv_limits
Unexecuted instantiation: bitstream.c:av1_set_mv_limits
Unexecuted instantiation: context_tree.c:av1_set_mv_limits
Unexecuted instantiation: encodeframe.c:av1_set_mv_limits
Unexecuted instantiation: encodeframe_utils.c:av1_set_mv_limits
Unexecuted instantiation: encodemb.c:av1_set_mv_limits
Unexecuted instantiation: encodemv.c:av1_set_mv_limits
Unexecuted instantiation: encoder.c:av1_set_mv_limits
Unexecuted instantiation: encoder_utils.c:av1_set_mv_limits
Unexecuted instantiation: encodetxb.c:av1_set_mv_limits
Unexecuted instantiation: ethread.c:av1_set_mv_limits
Unexecuted instantiation: firstpass.c:av1_set_mv_limits
Unexecuted instantiation: global_motion_facade.c:av1_set_mv_limits
Unexecuted instantiation: level.c:av1_set_mv_limits
Unexecuted instantiation: lookahead.c:av1_set_mv_limits
Unexecuted instantiation: mcomp.c:av1_set_mv_limits
Unexecuted instantiation: mv_prec.c:av1_set_mv_limits
Unexecuted instantiation: palette.c:av1_set_mv_limits
Unexecuted instantiation: partition_search.c:av1_set_mv_limits
Unexecuted instantiation: partition_strategy.c:av1_set_mv_limits
Unexecuted instantiation: pass2_strategy.c:av1_set_mv_limits
Unexecuted instantiation: pickcdef.c:av1_set_mv_limits
Unexecuted instantiation: picklpf.c:av1_set_mv_limits
Unexecuted instantiation: pickrst.c:av1_set_mv_limits
Unexecuted instantiation: ratectrl.c:av1_set_mv_limits
Unexecuted instantiation: rd.c:av1_set_mv_limits
Unexecuted instantiation: rdopt.c:av1_set_mv_limits
Unexecuted instantiation: nonrd_pickmode.c:av1_set_mv_limits
Unexecuted instantiation: nonrd_opt.c:av1_set_mv_limits
Unexecuted instantiation: segmentation.c:av1_set_mv_limits
Unexecuted instantiation: speed_features.c:av1_set_mv_limits
Unexecuted instantiation: superres_scale.c:av1_set_mv_limits
Unexecuted instantiation: svc_layercontext.c:av1_set_mv_limits
Unexecuted instantiation: temporal_filter.c:av1_set_mv_limits
Unexecuted instantiation: tokenize.c:av1_set_mv_limits
Unexecuted instantiation: tpl_model.c:av1_set_mv_limits
Unexecuted instantiation: tx_search.c:av1_set_mv_limits
Unexecuted instantiation: txb_rdopt.c:av1_set_mv_limits
Unexecuted instantiation: intra_mode_search.c:av1_set_mv_limits
Unexecuted instantiation: var_based_part.c:av1_set_mv_limits
Unexecuted instantiation: av1_noise_estimate.c:av1_set_mv_limits
Unexecuted instantiation: aq_complexity.c:av1_set_mv_limits
Unexecuted instantiation: aq_cyclicrefresh.c:av1_set_mv_limits
Unexecuted instantiation: aq_variance.c:av1_set_mv_limits
Unexecuted instantiation: compound_type.c:av1_set_mv_limits
Unexecuted instantiation: encode_strategy.c:av1_set_mv_limits
Unexecuted instantiation: global_motion.c:av1_set_mv_limits
Unexecuted instantiation: gop_structure.c:av1_set_mv_limits
Unexecuted instantiation: interp_search.c:av1_set_mv_limits
Unexecuted instantiation: motion_search_facade.c:av1_set_mv_limits
237
238
void av1_set_mv_search_range(FullMvLimits *mv_limits, const MV *mv);
239
240
int av1_init_search_range(int size);
241
242
int av1_vector_match(const int16_t *ref, const int16_t *src, int bwl,
243
                     int search_size, int full_search, int *sad);
244
245
unsigned int av1_int_pro_motion_estimation(
246
    const struct AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, int mi_row,
247
    int mi_col, const MV *ref_mv, unsigned int *y_sad_zero,
248
    int me_search_size_col, int me_search_size_row);
249
250
int av1_refining_search_8p_c(const FULLPEL_MOTION_SEARCH_PARAMS *ms_params,
251
                             const FULLPEL_MV start_mv, FULLPEL_MV *best_mv);
252
253
int av1_full_pixel_search(const FULLPEL_MV start_mv,
254
                          const FULLPEL_MOTION_SEARCH_PARAMS *ms_params,
255
                          const int step_param, int *cost_list,
256
                          FULLPEL_MV *best_mv, FULLPEL_MV_STATS *best_mv_stats,
257
                          FULLPEL_MV *second_best_mv);
258
259
int av1_intrabc_hash_search(const struct AV1_COMP *cpi, const MACROBLOCKD *xd,
260
                            const FULLPEL_MOTION_SEARCH_PARAMS *ms_params,
261
                            IntraBCHashInfo *intrabc_hash_info,
262
                            FULLPEL_MV *best_mv);
263
264
int av1_obmc_full_pixel_search(const FULLPEL_MV start_mv,
265
                               const FULLPEL_MOTION_SEARCH_PARAMS *ms_params,
266
                               const int step_param, FULLPEL_MV *best_mv);
267
268
static inline int av1_is_fullmv_in_range(const FullMvLimits *mv_limits,
269
0
                                         FULLPEL_MV mv) {
270
0
  return (mv.col >= mv_limits->col_min) && (mv.col <= mv_limits->col_max) &&
271
0
         (mv.row >= mv_limits->row_min) && (mv.row <= mv_limits->row_max);
272
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_is_fullmv_in_range
Unexecuted instantiation: allintra_vis.c:av1_is_fullmv_in_range
Unexecuted instantiation: av1_quantize.c:av1_is_fullmv_in_range
Unexecuted instantiation: bitstream.c:av1_is_fullmv_in_range
Unexecuted instantiation: context_tree.c:av1_is_fullmv_in_range
Unexecuted instantiation: encodeframe.c:av1_is_fullmv_in_range
Unexecuted instantiation: encodeframe_utils.c:av1_is_fullmv_in_range
Unexecuted instantiation: encodemb.c:av1_is_fullmv_in_range
Unexecuted instantiation: encodemv.c:av1_is_fullmv_in_range
Unexecuted instantiation: encoder.c:av1_is_fullmv_in_range
Unexecuted instantiation: encoder_utils.c:av1_is_fullmv_in_range
Unexecuted instantiation: encodetxb.c:av1_is_fullmv_in_range
Unexecuted instantiation: ethread.c:av1_is_fullmv_in_range
Unexecuted instantiation: firstpass.c:av1_is_fullmv_in_range
Unexecuted instantiation: global_motion_facade.c:av1_is_fullmv_in_range
Unexecuted instantiation: level.c:av1_is_fullmv_in_range
Unexecuted instantiation: lookahead.c:av1_is_fullmv_in_range
Unexecuted instantiation: mcomp.c:av1_is_fullmv_in_range
Unexecuted instantiation: mv_prec.c:av1_is_fullmv_in_range
Unexecuted instantiation: palette.c:av1_is_fullmv_in_range
Unexecuted instantiation: partition_search.c:av1_is_fullmv_in_range
Unexecuted instantiation: partition_strategy.c:av1_is_fullmv_in_range
Unexecuted instantiation: pass2_strategy.c:av1_is_fullmv_in_range
Unexecuted instantiation: pickcdef.c:av1_is_fullmv_in_range
Unexecuted instantiation: picklpf.c:av1_is_fullmv_in_range
Unexecuted instantiation: pickrst.c:av1_is_fullmv_in_range
Unexecuted instantiation: ratectrl.c:av1_is_fullmv_in_range
Unexecuted instantiation: rd.c:av1_is_fullmv_in_range
Unexecuted instantiation: rdopt.c:av1_is_fullmv_in_range
Unexecuted instantiation: nonrd_pickmode.c:av1_is_fullmv_in_range
Unexecuted instantiation: nonrd_opt.c:av1_is_fullmv_in_range
Unexecuted instantiation: segmentation.c:av1_is_fullmv_in_range
Unexecuted instantiation: speed_features.c:av1_is_fullmv_in_range
Unexecuted instantiation: superres_scale.c:av1_is_fullmv_in_range
Unexecuted instantiation: svc_layercontext.c:av1_is_fullmv_in_range
Unexecuted instantiation: temporal_filter.c:av1_is_fullmv_in_range
Unexecuted instantiation: tokenize.c:av1_is_fullmv_in_range
Unexecuted instantiation: tpl_model.c:av1_is_fullmv_in_range
Unexecuted instantiation: tx_search.c:av1_is_fullmv_in_range
Unexecuted instantiation: txb_rdopt.c:av1_is_fullmv_in_range
Unexecuted instantiation: intra_mode_search.c:av1_is_fullmv_in_range
Unexecuted instantiation: var_based_part.c:av1_is_fullmv_in_range
Unexecuted instantiation: av1_noise_estimate.c:av1_is_fullmv_in_range
Unexecuted instantiation: aq_complexity.c:av1_is_fullmv_in_range
Unexecuted instantiation: aq_cyclicrefresh.c:av1_is_fullmv_in_range
Unexecuted instantiation: aq_variance.c:av1_is_fullmv_in_range
Unexecuted instantiation: compound_type.c:av1_is_fullmv_in_range
Unexecuted instantiation: encode_strategy.c:av1_is_fullmv_in_range
Unexecuted instantiation: global_motion.c:av1_is_fullmv_in_range
Unexecuted instantiation: gop_structure.c:av1_is_fullmv_in_range
Unexecuted instantiation: interp_search.c:av1_is_fullmv_in_range
Unexecuted instantiation: motion_search_facade.c:av1_is_fullmv_in_range
273
// =============================================================================
274
//  Subpixel Motion Search
275
// =============================================================================
276
enum {
277
  EIGHTH_PEL,
278
  QUARTER_PEL,
279
  HALF_PEL,
280
  FULL_PEL
281
} UENUM1BYTE(SUBPEL_FORCE_STOP);
282
283
typedef struct {
284
  const aom_variance_fn_ptr_t *vfp;
285
  SUBPEL_SEARCH_TYPE subpel_search_type;
286
  // Source and reference buffers
287
  MSBuffers ms_buffers;
288
  int w, h;
289
} SUBPEL_SEARCH_VAR_PARAMS;
290
291
// This struct holds subpixel motion search parameters that should be constant
292
// during the search
293
typedef struct {
294
  // High level motion search settings
295
  int allow_hp;
296
  const int *cost_list;
297
  SUBPEL_FORCE_STOP forced_stop;
298
  int iters_per_step;
299
  SubpelMvLimits mv_limits;
300
301
  // For calculating mv cost
302
  MV_COST_PARAMS mv_cost_params;
303
304
  // Distortion calculation params
305
  SUBPEL_SEARCH_VAR_PARAMS var_params;
306
} SUBPEL_MOTION_SEARCH_PARAMS;
307
308
void av1_make_default_subpel_ms_params(SUBPEL_MOTION_SEARCH_PARAMS *ms_params,
309
                                       const struct AV1_COMP *cpi,
310
                                       const MACROBLOCK *x, BLOCK_SIZE bsize,
311
                                       const MV *ref_mv, const int *cost_list);
312
313
typedef int(fractional_mv_step_fp)(MACROBLOCKD *xd, const AV1_COMMON *const cm,
314
                                   const SUBPEL_MOTION_SEARCH_PARAMS *ms_params,
315
                                   MV start_mv,
316
                                   const FULLPEL_MV_STATS *start_mv_stats,
317
                                   MV *bestmv, int *distortion,
318
                                   unsigned int *sse1,
319
                                   int_mv *last_mv_search_list);
320
321
extern fractional_mv_step_fp av1_find_best_sub_pixel_tree;
322
extern fractional_mv_step_fp av1_find_best_sub_pixel_tree_pruned;
323
extern fractional_mv_step_fp av1_find_best_sub_pixel_tree_pruned_more;
324
extern fractional_mv_step_fp av1_return_max_sub_pixel_mv;
325
extern fractional_mv_step_fp av1_return_min_sub_pixel_mv;
326
extern fractional_mv_step_fp av1_find_best_obmc_sub_pixel_tree_up;
327
328
unsigned int av1_refine_warped_mv(MACROBLOCKD *xd, const AV1_COMMON *const cm,
329
                                  const SUBPEL_MOTION_SEARCH_PARAMS *ms_params,
330
                                  BLOCK_SIZE bsize, const int *pts0,
331
                                  const int *pts_inref0, int total_samples,
332
                                  WARP_SEARCH_METHOD search_method,
333
                                  int num_iterations);
334
335
0
static inline void av1_set_fractional_mv(int_mv *fractional_best_mv) {
336
0
  for (int z = 0; z < 3; z++) {
337
0
    fractional_best_mv[z].as_int = INVALID_MV;
338
0
  }
339
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_set_fractional_mv
Unexecuted instantiation: allintra_vis.c:av1_set_fractional_mv
Unexecuted instantiation: av1_quantize.c:av1_set_fractional_mv
Unexecuted instantiation: bitstream.c:av1_set_fractional_mv
Unexecuted instantiation: context_tree.c:av1_set_fractional_mv
Unexecuted instantiation: encodeframe.c:av1_set_fractional_mv
Unexecuted instantiation: encodeframe_utils.c:av1_set_fractional_mv
Unexecuted instantiation: encodemb.c:av1_set_fractional_mv
Unexecuted instantiation: encodemv.c:av1_set_fractional_mv
Unexecuted instantiation: encoder.c:av1_set_fractional_mv
Unexecuted instantiation: encoder_utils.c:av1_set_fractional_mv
Unexecuted instantiation: encodetxb.c:av1_set_fractional_mv
Unexecuted instantiation: ethread.c:av1_set_fractional_mv
Unexecuted instantiation: firstpass.c:av1_set_fractional_mv
Unexecuted instantiation: global_motion_facade.c:av1_set_fractional_mv
Unexecuted instantiation: level.c:av1_set_fractional_mv
Unexecuted instantiation: lookahead.c:av1_set_fractional_mv
Unexecuted instantiation: mcomp.c:av1_set_fractional_mv
Unexecuted instantiation: mv_prec.c:av1_set_fractional_mv
Unexecuted instantiation: palette.c:av1_set_fractional_mv
Unexecuted instantiation: partition_search.c:av1_set_fractional_mv
Unexecuted instantiation: partition_strategy.c:av1_set_fractional_mv
Unexecuted instantiation: pass2_strategy.c:av1_set_fractional_mv
Unexecuted instantiation: pickcdef.c:av1_set_fractional_mv
Unexecuted instantiation: picklpf.c:av1_set_fractional_mv
Unexecuted instantiation: pickrst.c:av1_set_fractional_mv
Unexecuted instantiation: ratectrl.c:av1_set_fractional_mv
Unexecuted instantiation: rd.c:av1_set_fractional_mv
Unexecuted instantiation: rdopt.c:av1_set_fractional_mv
Unexecuted instantiation: nonrd_pickmode.c:av1_set_fractional_mv
Unexecuted instantiation: nonrd_opt.c:av1_set_fractional_mv
Unexecuted instantiation: segmentation.c:av1_set_fractional_mv
Unexecuted instantiation: speed_features.c:av1_set_fractional_mv
Unexecuted instantiation: superres_scale.c:av1_set_fractional_mv
Unexecuted instantiation: svc_layercontext.c:av1_set_fractional_mv
Unexecuted instantiation: temporal_filter.c:av1_set_fractional_mv
Unexecuted instantiation: tokenize.c:av1_set_fractional_mv
Unexecuted instantiation: tpl_model.c:av1_set_fractional_mv
Unexecuted instantiation: tx_search.c:av1_set_fractional_mv
Unexecuted instantiation: txb_rdopt.c:av1_set_fractional_mv
Unexecuted instantiation: intra_mode_search.c:av1_set_fractional_mv
Unexecuted instantiation: var_based_part.c:av1_set_fractional_mv
Unexecuted instantiation: av1_noise_estimate.c:av1_set_fractional_mv
Unexecuted instantiation: aq_complexity.c:av1_set_fractional_mv
Unexecuted instantiation: aq_cyclicrefresh.c:av1_set_fractional_mv
Unexecuted instantiation: aq_variance.c:av1_set_fractional_mv
Unexecuted instantiation: compound_type.c:av1_set_fractional_mv
Unexecuted instantiation: encode_strategy.c:av1_set_fractional_mv
Unexecuted instantiation: global_motion.c:av1_set_fractional_mv
Unexecuted instantiation: gop_structure.c:av1_set_fractional_mv
Unexecuted instantiation: interp_search.c:av1_set_fractional_mv
Unexecuted instantiation: motion_search_facade.c:av1_set_fractional_mv
340
341
static inline void av1_set_subpel_mv_search_range(SubpelMvLimits *subpel_limits,
342
                                                  const FullMvLimits *mv_limits,
343
0
                                                  const MV *ref_mv) {
344
0
  const int max_mv = GET_MV_SUBPEL(MAX_FULL_PEL_VAL);
345
0
  int minc = AOMMAX(GET_MV_SUBPEL(mv_limits->col_min), ref_mv->col - max_mv);
346
0
  int maxc = AOMMIN(GET_MV_SUBPEL(mv_limits->col_max), ref_mv->col + max_mv);
347
0
  int minr = AOMMAX(GET_MV_SUBPEL(mv_limits->row_min), ref_mv->row - max_mv);
348
0
  int maxr = AOMMIN(GET_MV_SUBPEL(mv_limits->row_max), ref_mv->row + max_mv);
349
350
0
  maxc = AOMMAX(minc, maxc);
351
0
  maxr = AOMMAX(minr, maxr);
352
353
0
  subpel_limits->col_min = AOMMAX(MV_LOW + 1, minc);
354
0
  subpel_limits->col_max = AOMMIN(MV_UPP - 1, maxc);
355
0
  subpel_limits->row_min = AOMMAX(MV_LOW + 1, minr);
356
0
  subpel_limits->row_max = AOMMIN(MV_UPP - 1, maxr);
357
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: allintra_vis.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: av1_quantize.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: bitstream.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: context_tree.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: encodeframe.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: encodeframe_utils.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: encodemb.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: encodemv.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: encoder.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: encoder_utils.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: encodetxb.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: ethread.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: firstpass.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: global_motion_facade.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: level.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: lookahead.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: mcomp.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: mv_prec.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: palette.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: partition_search.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: partition_strategy.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: pass2_strategy.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: pickcdef.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: picklpf.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: pickrst.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: ratectrl.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: rd.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: rdopt.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: nonrd_pickmode.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: nonrd_opt.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: segmentation.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: speed_features.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: superres_scale.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: svc_layercontext.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: temporal_filter.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: tokenize.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: tpl_model.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: tx_search.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: txb_rdopt.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: intra_mode_search.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: var_based_part.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: av1_noise_estimate.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: aq_complexity.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: aq_cyclicrefresh.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: aq_variance.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: compound_type.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: encode_strategy.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: global_motion.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: gop_structure.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: interp_search.c:av1_set_subpel_mv_search_range
Unexecuted instantiation: motion_search_facade.c:av1_set_subpel_mv_search_range
358
359
static inline int av1_is_subpelmv_in_range(const SubpelMvLimits *mv_limits,
360
0
                                           MV mv) {
361
0
  return (mv.col >= mv_limits->col_min) && (mv.col <= mv_limits->col_max) &&
362
0
         (mv.row >= mv_limits->row_min) && (mv.row <= mv_limits->row_max);
363
0
}
Unexecuted instantiation: av1_cx_iface.c:av1_is_subpelmv_in_range
Unexecuted instantiation: allintra_vis.c:av1_is_subpelmv_in_range
Unexecuted instantiation: av1_quantize.c:av1_is_subpelmv_in_range
Unexecuted instantiation: bitstream.c:av1_is_subpelmv_in_range
Unexecuted instantiation: context_tree.c:av1_is_subpelmv_in_range
Unexecuted instantiation: encodeframe.c:av1_is_subpelmv_in_range
Unexecuted instantiation: encodeframe_utils.c:av1_is_subpelmv_in_range
Unexecuted instantiation: encodemb.c:av1_is_subpelmv_in_range
Unexecuted instantiation: encodemv.c:av1_is_subpelmv_in_range
Unexecuted instantiation: encoder.c:av1_is_subpelmv_in_range
Unexecuted instantiation: encoder_utils.c:av1_is_subpelmv_in_range
Unexecuted instantiation: encodetxb.c:av1_is_subpelmv_in_range
Unexecuted instantiation: ethread.c:av1_is_subpelmv_in_range
Unexecuted instantiation: firstpass.c:av1_is_subpelmv_in_range
Unexecuted instantiation: global_motion_facade.c:av1_is_subpelmv_in_range
Unexecuted instantiation: level.c:av1_is_subpelmv_in_range
Unexecuted instantiation: lookahead.c:av1_is_subpelmv_in_range
Unexecuted instantiation: mcomp.c:av1_is_subpelmv_in_range
Unexecuted instantiation: mv_prec.c:av1_is_subpelmv_in_range
Unexecuted instantiation: palette.c:av1_is_subpelmv_in_range
Unexecuted instantiation: partition_search.c:av1_is_subpelmv_in_range
Unexecuted instantiation: partition_strategy.c:av1_is_subpelmv_in_range
Unexecuted instantiation: pass2_strategy.c:av1_is_subpelmv_in_range
Unexecuted instantiation: pickcdef.c:av1_is_subpelmv_in_range
Unexecuted instantiation: picklpf.c:av1_is_subpelmv_in_range
Unexecuted instantiation: pickrst.c:av1_is_subpelmv_in_range
Unexecuted instantiation: ratectrl.c:av1_is_subpelmv_in_range
Unexecuted instantiation: rd.c:av1_is_subpelmv_in_range
Unexecuted instantiation: rdopt.c:av1_is_subpelmv_in_range
Unexecuted instantiation: nonrd_pickmode.c:av1_is_subpelmv_in_range
Unexecuted instantiation: nonrd_opt.c:av1_is_subpelmv_in_range
Unexecuted instantiation: segmentation.c:av1_is_subpelmv_in_range
Unexecuted instantiation: speed_features.c:av1_is_subpelmv_in_range
Unexecuted instantiation: superres_scale.c:av1_is_subpelmv_in_range
Unexecuted instantiation: svc_layercontext.c:av1_is_subpelmv_in_range
Unexecuted instantiation: temporal_filter.c:av1_is_subpelmv_in_range
Unexecuted instantiation: tokenize.c:av1_is_subpelmv_in_range
Unexecuted instantiation: tpl_model.c:av1_is_subpelmv_in_range
Unexecuted instantiation: tx_search.c:av1_is_subpelmv_in_range
Unexecuted instantiation: txb_rdopt.c:av1_is_subpelmv_in_range
Unexecuted instantiation: intra_mode_search.c:av1_is_subpelmv_in_range
Unexecuted instantiation: var_based_part.c:av1_is_subpelmv_in_range
Unexecuted instantiation: av1_noise_estimate.c:av1_is_subpelmv_in_range
Unexecuted instantiation: aq_complexity.c:av1_is_subpelmv_in_range
Unexecuted instantiation: aq_cyclicrefresh.c:av1_is_subpelmv_in_range
Unexecuted instantiation: aq_variance.c:av1_is_subpelmv_in_range
Unexecuted instantiation: compound_type.c:av1_is_subpelmv_in_range
Unexecuted instantiation: encode_strategy.c:av1_is_subpelmv_in_range
Unexecuted instantiation: global_motion.c:av1_is_subpelmv_in_range
Unexecuted instantiation: gop_structure.c:av1_is_subpelmv_in_range
Unexecuted instantiation: interp_search.c:av1_is_subpelmv_in_range
Unexecuted instantiation: motion_search_facade.c:av1_is_subpelmv_in_range
364
365
0
static inline int get_offset_from_fullmv(const FULLPEL_MV *mv, int stride) {
366
0
  return mv->row * stride + mv->col;
367
0
}
Unexecuted instantiation: av1_cx_iface.c:get_offset_from_fullmv
Unexecuted instantiation: allintra_vis.c:get_offset_from_fullmv
Unexecuted instantiation: av1_quantize.c:get_offset_from_fullmv
Unexecuted instantiation: bitstream.c:get_offset_from_fullmv
Unexecuted instantiation: context_tree.c:get_offset_from_fullmv
Unexecuted instantiation: encodeframe.c:get_offset_from_fullmv
Unexecuted instantiation: encodeframe_utils.c:get_offset_from_fullmv
Unexecuted instantiation: encodemb.c:get_offset_from_fullmv
Unexecuted instantiation: encodemv.c:get_offset_from_fullmv
Unexecuted instantiation: encoder.c:get_offset_from_fullmv
Unexecuted instantiation: encoder_utils.c:get_offset_from_fullmv
Unexecuted instantiation: encodetxb.c:get_offset_from_fullmv
Unexecuted instantiation: ethread.c:get_offset_from_fullmv
Unexecuted instantiation: firstpass.c:get_offset_from_fullmv
Unexecuted instantiation: global_motion_facade.c:get_offset_from_fullmv
Unexecuted instantiation: level.c:get_offset_from_fullmv
Unexecuted instantiation: lookahead.c:get_offset_from_fullmv
Unexecuted instantiation: mcomp.c:get_offset_from_fullmv
Unexecuted instantiation: mv_prec.c:get_offset_from_fullmv
Unexecuted instantiation: palette.c:get_offset_from_fullmv
Unexecuted instantiation: partition_search.c:get_offset_from_fullmv
Unexecuted instantiation: partition_strategy.c:get_offset_from_fullmv
Unexecuted instantiation: pass2_strategy.c:get_offset_from_fullmv
Unexecuted instantiation: pickcdef.c:get_offset_from_fullmv
Unexecuted instantiation: picklpf.c:get_offset_from_fullmv
Unexecuted instantiation: pickrst.c:get_offset_from_fullmv
Unexecuted instantiation: ratectrl.c:get_offset_from_fullmv
Unexecuted instantiation: rd.c:get_offset_from_fullmv
Unexecuted instantiation: rdopt.c:get_offset_from_fullmv
Unexecuted instantiation: nonrd_pickmode.c:get_offset_from_fullmv
Unexecuted instantiation: nonrd_opt.c:get_offset_from_fullmv
Unexecuted instantiation: segmentation.c:get_offset_from_fullmv
Unexecuted instantiation: speed_features.c:get_offset_from_fullmv
Unexecuted instantiation: superres_scale.c:get_offset_from_fullmv
Unexecuted instantiation: svc_layercontext.c:get_offset_from_fullmv
Unexecuted instantiation: temporal_filter.c:get_offset_from_fullmv
Unexecuted instantiation: tokenize.c:get_offset_from_fullmv
Unexecuted instantiation: tpl_model.c:get_offset_from_fullmv
Unexecuted instantiation: tx_search.c:get_offset_from_fullmv
Unexecuted instantiation: txb_rdopt.c:get_offset_from_fullmv
Unexecuted instantiation: intra_mode_search.c:get_offset_from_fullmv
Unexecuted instantiation: var_based_part.c:get_offset_from_fullmv
Unexecuted instantiation: av1_noise_estimate.c:get_offset_from_fullmv
Unexecuted instantiation: aq_complexity.c:get_offset_from_fullmv
Unexecuted instantiation: aq_cyclicrefresh.c:get_offset_from_fullmv
Unexecuted instantiation: aq_variance.c:get_offset_from_fullmv
Unexecuted instantiation: compound_type.c:get_offset_from_fullmv
Unexecuted instantiation: encode_strategy.c:get_offset_from_fullmv
Unexecuted instantiation: global_motion.c:get_offset_from_fullmv
Unexecuted instantiation: gop_structure.c:get_offset_from_fullmv
Unexecuted instantiation: interp_search.c:get_offset_from_fullmv
Unexecuted instantiation: motion_search_facade.c:get_offset_from_fullmv
368
369
static inline const uint8_t *get_buf_from_fullmv(const struct buf_2d *buf,
370
0
                                                 const FULLPEL_MV *mv) {
371
0
  return &buf->buf[get_offset_from_fullmv(mv, buf->stride)];
372
0
}
Unexecuted instantiation: av1_cx_iface.c:get_buf_from_fullmv
Unexecuted instantiation: allintra_vis.c:get_buf_from_fullmv
Unexecuted instantiation: av1_quantize.c:get_buf_from_fullmv
Unexecuted instantiation: bitstream.c:get_buf_from_fullmv
Unexecuted instantiation: context_tree.c:get_buf_from_fullmv
Unexecuted instantiation: encodeframe.c:get_buf_from_fullmv
Unexecuted instantiation: encodeframe_utils.c:get_buf_from_fullmv
Unexecuted instantiation: encodemb.c:get_buf_from_fullmv
Unexecuted instantiation: encodemv.c:get_buf_from_fullmv
Unexecuted instantiation: encoder.c:get_buf_from_fullmv
Unexecuted instantiation: encoder_utils.c:get_buf_from_fullmv
Unexecuted instantiation: encodetxb.c:get_buf_from_fullmv
Unexecuted instantiation: ethread.c:get_buf_from_fullmv
Unexecuted instantiation: firstpass.c:get_buf_from_fullmv
Unexecuted instantiation: global_motion_facade.c:get_buf_from_fullmv
Unexecuted instantiation: level.c:get_buf_from_fullmv
Unexecuted instantiation: lookahead.c:get_buf_from_fullmv
Unexecuted instantiation: mcomp.c:get_buf_from_fullmv
Unexecuted instantiation: mv_prec.c:get_buf_from_fullmv
Unexecuted instantiation: palette.c:get_buf_from_fullmv
Unexecuted instantiation: partition_search.c:get_buf_from_fullmv
Unexecuted instantiation: partition_strategy.c:get_buf_from_fullmv
Unexecuted instantiation: pass2_strategy.c:get_buf_from_fullmv
Unexecuted instantiation: pickcdef.c:get_buf_from_fullmv
Unexecuted instantiation: picklpf.c:get_buf_from_fullmv
Unexecuted instantiation: pickrst.c:get_buf_from_fullmv
Unexecuted instantiation: ratectrl.c:get_buf_from_fullmv
Unexecuted instantiation: rd.c:get_buf_from_fullmv
Unexecuted instantiation: rdopt.c:get_buf_from_fullmv
Unexecuted instantiation: nonrd_pickmode.c:get_buf_from_fullmv
Unexecuted instantiation: nonrd_opt.c:get_buf_from_fullmv
Unexecuted instantiation: segmentation.c:get_buf_from_fullmv
Unexecuted instantiation: speed_features.c:get_buf_from_fullmv
Unexecuted instantiation: superres_scale.c:get_buf_from_fullmv
Unexecuted instantiation: svc_layercontext.c:get_buf_from_fullmv
Unexecuted instantiation: temporal_filter.c:get_buf_from_fullmv
Unexecuted instantiation: tokenize.c:get_buf_from_fullmv
Unexecuted instantiation: tpl_model.c:get_buf_from_fullmv
Unexecuted instantiation: tx_search.c:get_buf_from_fullmv
Unexecuted instantiation: txb_rdopt.c:get_buf_from_fullmv
Unexecuted instantiation: intra_mode_search.c:get_buf_from_fullmv
Unexecuted instantiation: var_based_part.c:get_buf_from_fullmv
Unexecuted instantiation: av1_noise_estimate.c:get_buf_from_fullmv
Unexecuted instantiation: aq_complexity.c:get_buf_from_fullmv
Unexecuted instantiation: aq_cyclicrefresh.c:get_buf_from_fullmv
Unexecuted instantiation: aq_variance.c:get_buf_from_fullmv
Unexecuted instantiation: compound_type.c:get_buf_from_fullmv
Unexecuted instantiation: encode_strategy.c:get_buf_from_fullmv
Unexecuted instantiation: global_motion.c:get_buf_from_fullmv
Unexecuted instantiation: gop_structure.c:get_buf_from_fullmv
Unexecuted instantiation: interp_search.c:get_buf_from_fullmv
Unexecuted instantiation: motion_search_facade.c:get_buf_from_fullmv
373
374
#ifdef __cplusplus
375
}  // extern "C"
376
#endif
377
378
#endif  // AOM_AV1_ENCODER_MCOMP_H_