#include "av1/common/reconinter.h"
#include "av1/encoder/encodemv.h"
#include "av1/encoder/encoder.h"
#include "av1/encoder/interp_search.h"
#include "av1/encoder/mcomp.h"
#include "av1/encoder/motion_search_facade.h"
#include "av1/encoder/partition_strategy.h"
#include "av1/encoder/reconinter_enc.h"
#include "av1/encoder/tpl_model.h"
#include "av1/encoder/tx_search.h"
#define RIGHT_SHIFT_MV(x) …
cand_mv_t;
static int compare_weight(const void *a, const void *b) { … }
static int use_fine_search_interval(const AV1_COMP *const cpi) { … }
static inline void get_mv_candidate_from_tpl(const AV1_COMP *const cpi,
const MACROBLOCK *x,
BLOCK_SIZE bsize, int ref,
cand_mv_t *cand, int *cand_count,
int *total_cand_weight) { … }
void av1_single_motion_search(const AV1_COMP *const cpi, MACROBLOCK *x,
BLOCK_SIZE bsize, int ref_idx, int *rate_mv,
int search_range, inter_mode_info *mode_info,
int_mv *best_mv,
struct HandleInterModeArgs *const args) { … }
int av1_joint_motion_search(const AV1_COMP *cpi, MACROBLOCK *x,
BLOCK_SIZE bsize, int_mv *cur_mv,
const uint8_t *mask, int mask_stride, int *rate_mv,
int allow_second_mv, int joint_me_num_refine_iter) { … }
int av1_compound_single_motion_search(const AV1_COMP *cpi, MACROBLOCK *x,
BLOCK_SIZE bsize, MV *this_mv,
const uint8_t *second_pred,
const uint8_t *mask, int mask_stride,
int *rate_mv, int ref_idx) { … }
static inline void build_second_inter_pred(const AV1_COMP *cpi, MACROBLOCK *x,
BLOCK_SIZE bsize, const MV *other_mv,
int ref_idx, uint8_t *second_pred) { … }
static int compound_single_motion_search_interinter(
const AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, int_mv *cur_mv,
const uint8_t *mask, int mask_stride, int *rate_mv, int ref_idx) { … }
static inline void do_masked_motion_search_indexed(
const AV1_COMP *const cpi, MACROBLOCK *x, const int_mv *const cur_mv,
const INTERINTER_COMPOUND_DATA *const comp_data, BLOCK_SIZE bsize,
int_mv *tmp_mv, int *rate_mv, int which) { … }
int av1_interinter_compound_motion_search(const AV1_COMP *const cpi,
MACROBLOCK *x,
const int_mv *const cur_mv,
const BLOCK_SIZE bsize,
const PREDICTION_MODE this_mode) { … }
int_mv av1_simple_motion_search_sse_var(AV1_COMP *const cpi, MACROBLOCK *x,
int mi_row, int mi_col,
BLOCK_SIZE bsize, int ref,
FULLPEL_MV start_mv, int num_planes,
int use_subpixel, unsigned int *sse,
unsigned int *var) { … }