Remove av1_set_mv_cost
av1_set_mv_cost is not needed since ref_mv_idx and ref are not longer
used as context to mv's cdf.
Change-Id: Icd147daed67222ac98abed7a8eea345832239a20
diff --git a/av1/encoder/block.h b/av1/encoder/block.h
index aa6bb18..af5294c 100644
--- a/av1/encoder/block.h
+++ b/av1/encoder/block.h
@@ -262,12 +262,10 @@
unsigned int pred_sse[REF_FRAMES];
int pred_mv_sad[REF_FRAMES];
- int *nmvjointcost;
int nmv_vec_cost[MV_JOINTS];
int *nmvcost[2];
int *nmvcost_hp[2];
int **mv_cost_stack;
- int **mvcost;
int32_t *wsrc_buf;
int32_t *mask_buf;
diff --git a/av1/encoder/mcomp.c b/av1/encoder/mcomp.c
index 619c0be..d30616a 100644
--- a/av1/encoder/mcomp.c
+++ b/av1/encoder/mcomp.c
@@ -112,7 +112,7 @@
int sad_per_bit) {
const MV diff = { (mv->row - ref->row) * 8, (mv->col - ref->col) * 8 };
return ROUND_POWER_OF_TWO(
- (unsigned)mv_cost(&diff, x->nmvjointcost, x->mvcost) * sad_per_bit,
+ (unsigned)mv_cost(&diff, x->nmv_vec_cost, x->mv_cost_stack) * sad_per_bit,
AV1_PROB_COST_SHIFT);
}
@@ -901,7 +901,7 @@
av1_build_inter_predictors_sby(cm, xd, mi_row, mi_col, NULL, bsize);
mse = vfp->vf(dst, dst_stride, src, src_stride, &sse);
- mse += mv_err_cost(this_mv, &ref_mv.as_mv, x->nmvjointcost, x->mvcost,
+ mse += mv_err_cost(this_mv, &ref_mv.as_mv, x->nmv_vec_cost, x->mv_cost_stack,
x->errorperbit);
return mse;
}
@@ -1041,8 +1041,8 @@
cost_list[i + 1] = fn_ptr->vf(what->buf, what->stride,
get_buf_from_mv(in_what, &neighbor_mv),
in_what->stride, &sse) +
- mv_err_cost(&neighbor_mv, &fcenter_mv, x->nmvjointcost,
- x->mvcost, x->errorperbit);
+ mv_err_cost(&neighbor_mv, &fcenter_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, x->errorperbit);
}
} else {
for (i = 0; i < 4; i++) {
@@ -1054,8 +1054,8 @@
fn_ptr->vf(what->buf, what->stride,
get_buf_from_mv(in_what, &neighbor_mv), in_what->stride,
&sse) +
- mv_err_cost(&neighbor_mv, &fcenter_mv, x->nmvjointcost, x->mvcost,
- x->errorperbit);
+ mv_err_cost(&neighbor_mv, &fcenter_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, x->errorperbit);
}
}
}
@@ -1377,8 +1377,8 @@
return vfp->vf(what->buf, what->stride, get_buf_from_mv(in_what, best_mv),
in_what->stride, &unused) +
- (use_mvcost ? mv_err_cost(&mv, center_mv, x->nmvjointcost, x->mvcost,
- x->errorperbit)
+ (use_mvcost ? mv_err_cost(&mv, center_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, x->errorperbit)
: 0);
}
@@ -1393,8 +1393,8 @@
return vfp->svaf(get_buf_from_mv(in_what, best_mv), in_what->stride, 0, 0,
what->buf, what->stride, &unused, second_pred) +
- (use_mvcost ? mv_err_cost(&mv, center_mv, x->nmvjointcost, x->mvcost,
- x->errorperbit)
+ (use_mvcost ? mv_err_cost(&mv, center_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, x->errorperbit)
: 0);
}
@@ -1412,8 +1412,8 @@
return vfp->msvf(what->buf, what->stride, 0, 0,
get_buf_from_mv(in_what, best_mv), in_what->stride,
second_pred, mask, mask_stride, invert_mask, &unused) +
- (use_mvcost ? mv_err_cost(&mv, center_mv, x->nmvjointcost, x->mvcost,
- x->errorperbit)
+ (use_mvcost ? mv_err_cost(&mv, center_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, x->errorperbit)
: 0);
}
@@ -2536,8 +2536,8 @@
return vfp->ovf(get_buf_from_mv(in_what, best_mv), in_what->stride, wsrc,
mask, &unused) +
- (use_mvcost ? mv_err_cost(&mv, center_mv, x->nmvjointcost, x->mvcost,
- x->errorperbit)
+ (use_mvcost ? mv_err_cost(&mv, center_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, x->errorperbit)
: 0);
}
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c
index fa90580..f273f2e 100644
--- a/av1/encoder/rd.c
+++ b/av1/encoder/rd.c
@@ -468,13 +468,6 @@
}
}
-void av1_set_mvcost(MACROBLOCK *x, int ref, int ref_mv_idx) {
- (void)ref;
- (void)ref_mv_idx;
- x->mvcost = x->mv_cost_stack;
- x->nmvjointcost = x->nmv_vec_cost;
-}
-
void av1_fill_coeff_costs(MACROBLOCK *x, FRAME_CONTEXT *fc,
const int num_planes) {
const int nplanes = AOMMIN(num_planes, PLANE_TYPES);
@@ -575,9 +568,6 @@
av1_initialize_cost_tables(cm, x);
- x->mvcost = x->mv_cost_stack;
- x->nmvjointcost = x->nmv_vec_cost;
-
if (frame_is_intra_only(cm) && cm->allow_screen_content_tools &&
cpi->oxcf.pass != 1) {
int *dvcost[2] = { &cpi->dv_cost[0][MV_MAX], &cpi->dv_cost[1][MV_MAX] };
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 09c218b..4347f09 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -6685,8 +6685,6 @@
uint8_t *second_pred = get_buf_by_bd(xd, second_pred16);
(void)ref_mv_sub8x8;
- const int have_newmv = have_nearmv_in_inter_mode(mbmi->mode);
- const int ref_mv_idx = mbmi->ref_mv_idx + (have_newmv ? 1 : 0);
MV *const best_mv = &x->best_mv.as_mv;
const int search_range = SEARCH_RANGE_8P;
const int sadpb = x->sadperbit16;
@@ -6765,8 +6763,6 @@
best_mv->col >>= 3;
best_mv->row >>= 3;
- av1_set_mvcost(x, id, ref_mv_idx);
-
// Small-range full-pixel motion search.
bestsme = av1_refining_search_8p_c(x, sadpb, search_range,
&cpi->fn_ptr[bsize], mask, mask_stride,
@@ -6811,7 +6807,7 @@
x, cm, mi_row, mi_col, &ref_mv[id].as_mv,
cpi->common.allow_high_precision_mv, x->errorperbit,
&cpi->fn_ptr[bsize], 0, cpi->sf.mv.subpel_iters_per_step, NULL,
- x->nmvjointcost, x->mvcost, &dis, &sse, second_pred, mask,
+ x->nmv_vec_cost, x->mv_cost_stack, &dis, &sse, second_pred, mask,
mask_stride, id, pw, ph, cpi->sf.use_accurate_subpel_search, 1);
}
@@ -6828,10 +6824,10 @@
*rate_mv = 0;
for (ref = 0; ref < 2; ++ref) {
- av1_set_mvcost(x, ref, ref_mv_idx);
const int_mv curr_ref_mv = av1_get_ref_mv(x, ref);
- *rate_mv += av1_mv_bit_cost(&cur_mv[ref].as_mv, &curr_ref_mv.as_mv,
- x->nmvjointcost, x->mvcost, MV_COST_WEIGHT);
+ *rate_mv +=
+ av1_mv_bit_cost(&cur_mv[ref].as_mv, &curr_ref_mv.as_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, MV_COST_WEIGHT);
}
}
@@ -7068,10 +7064,6 @@
num_planes);
}
- av1_set_mvcost(
- x, ref_idx,
- mbmi->ref_mv_idx + (have_nearmv_in_inter_mode(mbmi->mode) ? 1 : 0));
-
// Work out the size of the first step in the mv step search.
// 0 here is maximum length first step. 1 is AOMMAX >> 1 etc.
if (cpi->sf.mv.auto_mv_step_size && cm->show_frame) {
@@ -7181,8 +7173,8 @@
x, cm, mi_row, mi_col, &ref_mv, cm->allow_high_precision_mv,
x->errorperbit, &cpi->fn_ptr[bsize], cpi->sf.mv.subpel_force_stop,
cpi->sf.mv.subpel_iters_per_step, cond_cost_list(cpi, cost_list),
- x->nmvjointcost, x->mvcost, &dis, &x->pred_sse[ref], NULL, NULL,
- 0, 0, pw, ph, cpi->sf.use_accurate_subpel_search, 1);
+ x->nmv_vec_cost, x->mv_cost_stack, &dis, &x->pred_sse[ref], NULL,
+ NULL, 0, 0, pw, ph, cpi->sf.use_accurate_subpel_search, 1);
if (try_second) {
const int minc =
@@ -7206,9 +7198,9 @@
x->errorperbit, &cpi->fn_ptr[bsize],
cpi->sf.mv.subpel_force_stop,
cpi->sf.mv.subpel_iters_per_step,
- cond_cost_list(cpi, cost_list), x->nmvjointcost, x->mvcost,
- &dis, &x->pred_sse[ref], NULL, NULL, 0, 0, pw, ph,
- cpi->sf.use_accurate_subpel_search, 0);
+ cond_cost_list(cpi, cost_list), x->nmv_vec_cost,
+ x->mv_cost_stack, &dis, &x->pred_sse[ref], NULL, NULL, 0, 0,
+ pw, ph, cpi->sf.use_accurate_subpel_search, 0);
if (this_var < best_mv_var) best_mv = x->best_mv.as_mv;
x->best_mv.as_mv = best_mv;
}
@@ -7218,8 +7210,8 @@
x, cm, mi_row, mi_col, &ref_mv, cm->allow_high_precision_mv,
x->errorperbit, &cpi->fn_ptr[bsize], cpi->sf.mv.subpel_force_stop,
cpi->sf.mv.subpel_iters_per_step, cond_cost_list(cpi, cost_list),
- x->nmvjointcost, x->mvcost, &dis, &x->pred_sse[ref], NULL, NULL,
- 0, 0, 0, 0, 0, 1);
+ x->nmv_vec_cost, x->mv_cost_stack, &dis, &x->pred_sse[ref], NULL,
+ NULL, 0, 0, 0, 0, 0, 1);
}
break;
case OBMC_CAUSAL:
@@ -7227,14 +7219,14 @@
x, cm, mi_row, mi_col, &x->best_mv.as_mv, &ref_mv,
cm->allow_high_precision_mv, x->errorperbit, &cpi->fn_ptr[bsize],
cpi->sf.mv.subpel_force_stop, cpi->sf.mv.subpel_iters_per_step,
- x->nmvjointcost, x->mvcost, &dis, &x->pred_sse[ref], 0,
+ x->nmv_vec_cost, x->mv_cost_stack, &dis, &x->pred_sse[ref], 0,
cpi->sf.use_accurate_subpel_search);
break;
default: assert(0 && "Invalid motion mode!\n");
}
}
- *rate_mv = av1_mv_bit_cost(&x->best_mv.as_mv, &ref_mv, x->nmvjointcost,
- x->mvcost, MV_COST_WEIGHT);
+ *rate_mv = av1_mv_bit_cost(&x->best_mv.as_mv, &ref_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, MV_COST_WEIGHT);
if (cpi->sf.adaptive_motion_search && mbmi->motion_mode == SIMPLE_TRANSLATION)
x->pred_mv[ref] = x->best_mv.as_mv;
@@ -7354,10 +7346,6 @@
best_mv->col >>= 3;
best_mv->row >>= 3;
- av1_set_mvcost(
- x, ref_idx,
- mbmi->ref_mv_idx + (have_nearmv_in_inter_mode(mbmi->mode) ? 1 : 0));
-
// Small-range full-pixel motion search.
bestsme = av1_refining_search_8p_c(x, sadpb, search_range,
&cpi->fn_ptr[bsize], mask, mask_stride,
@@ -7394,8 +7382,8 @@
x, cm, mi_row, mi_col, &ref_mv.as_mv,
cpi->common.allow_high_precision_mv, x->errorperbit,
&cpi->fn_ptr[bsize], 0, cpi->sf.mv.subpel_iters_per_step, NULL,
- x->nmvjointcost, x->mvcost, &dis, &sse, second_pred, mask, mask_stride,
- ref_idx, pw, ph, cpi->sf.use_accurate_subpel_search, 1);
+ x->nmv_vec_cost, x->mv_cost_stack, &dis, &sse, second_pred, mask,
+ mask_stride, ref_idx, pw, ph, cpi->sf.use_accurate_subpel_search, 1);
}
// Restore the pointer to the first unscaled prediction buffer.
@@ -7405,11 +7393,8 @@
*rate_mv = 0;
- av1_set_mvcost(
- x, ref_idx,
- mbmi->ref_mv_idx + (have_nearmv_in_inter_mode(mbmi->mode) ? 1 : 0));
- *rate_mv += av1_mv_bit_cost(this_mv, &ref_mv.as_mv, x->nmvjointcost,
- x->mvcost, MV_COST_WEIGHT);
+ *rate_mv += av1_mv_bit_cost(this_mv, &ref_mv.as_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, MV_COST_WEIGHT);
}
// Wrapper for compound_single_motion_search, for the common case
@@ -8072,10 +8057,9 @@
*rate_mv = 0;
for (i = 0; i < 2; ++i) {
const int_mv ref_mv = av1_get_ref_mv(x, i);
- av1_set_mvcost(x, i, mbmi->ref_mv_idx);
*rate_mv +=
- av1_mv_bit_cost(&cur_mv[i].as_mv, &ref_mv.as_mv, x->nmvjointcost,
- x->mvcost, MV_COST_WEIGHT);
+ av1_mv_bit_cost(&cur_mv[i].as_mv, &ref_mv.as_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, MV_COST_WEIGHT);
}
}
} else if (this_mode == NEAREST_NEWMV || this_mode == NEAR_NEWMV) {
@@ -8084,11 +8068,10 @@
compound_single_motion_search_interinter(
cpi, x, bsize, cur_mv, mi_row, mi_col, NULL, 0, rate_mv, 0, 1);
} else {
- av1_set_mvcost(x, 1,
- mbmi->ref_mv_idx + (this_mode == NEAR_NEWMV ? 1 : 0));
const int_mv ref_mv = av1_get_ref_mv(x, 1);
- *rate_mv = av1_mv_bit_cost(&cur_mv[1].as_mv, &ref_mv.as_mv,
- x->nmvjointcost, x->mvcost, MV_COST_WEIGHT);
+ *rate_mv =
+ av1_mv_bit_cost(&cur_mv[1].as_mv, &ref_mv.as_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, MV_COST_WEIGHT);
}
} else {
assert(this_mode == NEW_NEARESTMV || this_mode == NEW_NEARMV);
@@ -8098,10 +8081,9 @@
cpi, x, bsize, cur_mv, mi_row, mi_col, NULL, 0, rate_mv, 0, 0);
} else {
const int_mv ref_mv = av1_get_ref_mv(x, 0);
- av1_set_mvcost(x, 0,
- mbmi->ref_mv_idx + (this_mode == NEW_NEARMV ? 1 : 0));
- *rate_mv = av1_mv_bit_cost(&cur_mv[0].as_mv, &ref_mv.as_mv,
- x->nmvjointcost, x->mvcost, MV_COST_WEIGHT);
+ *rate_mv =
+ av1_mv_bit_cost(&cur_mv[0].as_mv, &ref_mv.as_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, MV_COST_WEIGHT);
}
}
} else {
@@ -9022,9 +9004,9 @@
if (mv0.as_int != mbmi->mv[0].as_int) {
const int ref = refs[0];
const int_mv ref_mv = av1_get_ref_mv(x, 0);
- tmp_rate_mv =
- av1_mv_bit_cost(&mbmi->mv[0].as_mv, &ref_mv.as_mv,
- x->nmvjointcost, x->mvcost, MV_COST_WEIGHT);
+ tmp_rate_mv = av1_mv_bit_cost(&mbmi->mv[0].as_mv, &ref_mv.as_mv,
+ x->nmv_vec_cost, x->mv_cost_stack,
+ MV_COST_WEIGHT);
if (cpi->sf.adaptive_motion_search)
x->pred_mv[ref] = mbmi->mv[0].as_mv;
@@ -9742,9 +9724,9 @@
const int compare_cost =
mode_info[i].rate_mv + mode_info[i].drl_cost;
const int_mv ref_mv = av1_get_ref_mv(x, 0);
- this_rate_mv = av1_mv_bit_cost(&mode_info[i].mv.as_mv,
- &ref_mv.as_mv, x->nmvjointcost,
- x->mvcost, MV_COST_WEIGHT);
+ this_rate_mv = av1_mv_bit_cost(
+ &mode_info[i].mv.as_mv, &ref_mv.as_mv, x->nmv_vec_cost,
+ x->mv_cost_stack, MV_COST_WEIGHT);
const int this_cost = this_rate_mv + drl_cost;
if (compare_cost < this_cost) {
diff --git a/av1/encoder/temporal_filter.c b/av1/encoder/temporal_filter.c
index 6fa88b7..2769b52 100644
--- a/av1/encoder/temporal_filter.c
+++ b/av1/encoder/temporal_filter.c
@@ -236,9 +236,6 @@
av1_set_mv_search_range(&x->mv_limits, &best_ref_mv1);
- x->mvcost = x->mv_cost_stack;
- x->nmvjointcost = x->nmv_vec_cost;
-
av1_full_pixel_search(cpi, x, BLOCK_16X16, &best_ref_mv1_full, step_param,
NSTEP, 1, sadpb, cond_cost_list(cpi, cost_list),
&best_ref_mv1, 0, 0, x_pos, y_pos, 0);