Commit 2df83d5c authored by Yaowu Xu's avatar Yaowu Xu Committed by Gerrit Code Review
Browse files

Merge "Remove av1_use_hp_mv()" into nextgenv2

parents c66f264d 6317c88f
......@@ -149,13 +149,6 @@ MV_CLASS_TYPE av1_get_mv_class(int z, int *offset) {
return c;
}
// TODO(jingning): This idle function is intentionally left as is for
// experimental purpose.
int av1_use_mv_hp(const MV *ref) {
(void)ref;
return 1;
}
static void inc_mv_component(int v, nmv_component_counts *comp_counts, int incr,
int usehp) {
int s, z, c, o, d, e, f;
......
......@@ -27,7 +27,6 @@ struct AV1Common;
void av1_init_mv_probs(struct AV1Common *cm);
void av1_adapt_mv_probs(struct AV1Common *cm, int usehp);
int av1_use_mv_hp(const MV *ref);
#define MV_UPDATE_PROB 252
......
......@@ -341,8 +341,7 @@ static INLINE int is_inside(const TileInfo *const tile, int mi_col, int mi_row,
}
static INLINE void lower_mv_precision(MV *mv, int allow_hp) {
const int use_hp = allow_hp && av1_use_mv_hp(mv);
if (!use_hp) {
if (!allow_hp) {
if (mv->row & 1) mv->row += (mv->row > 0 ? -1 : 1);
if (mv->col & 1) mv->col += (mv->col > 0 ? -1 : 1);
}
......
......@@ -839,7 +839,6 @@ static INLINE void read_mv(aom_reader *r, MV *mv, const MV *ref,
const nmv_context *ctx, nmv_context_counts *counts,
int allow_hp) {
MV_JOINT_TYPE joint_type;
const int use_hp = allow_hp && av1_use_mv_hp(ref);
MV diff = { 0, 0 };
joint_type =
#if CONFIG_DAALA_EC || CONFIG_RANS
......@@ -849,12 +848,12 @@ static INLINE void read_mv(aom_reader *r, MV *mv, const MV *ref,
#endif
if (mv_joint_vertical(joint_type))
diff.row = read_mv_component(r, &ctx->comps[0], use_hp);
diff.row = read_mv_component(r, &ctx->comps[0], allow_hp);
if (mv_joint_horizontal(joint_type))
diff.col = read_mv_component(r, &ctx->comps[1], use_hp);
diff.col = read_mv_component(r, &ctx->comps[1], allow_hp);
av1_inc_mv(&diff, counts, use_hp);
av1_inc_mv(&diff, counts, allow_hp);
mv->row = ref->row + diff.row;
mv->col = ref->col + diff.col;
......
......@@ -261,7 +261,6 @@ void av1_encode_mv(AV1_COMP *cpi, aom_writer *w, const MV *mv, const MV *ref,
const nmv_context *mvctx, int usehp) {
const MV diff = { mv->row - ref->row, mv->col - ref->col };
const MV_JOINT_TYPE j = av1_get_mv_joint(&diff);
usehp = usehp && av1_use_mv_hp(ref);
#if CONFIG_REF_MV
(void)is_compound;
#endif
......@@ -318,7 +317,7 @@ static void inc_mvs(const MB_MODE_INFO *mbmi, const MB_MODE_INFO_EXT *mbmi_ext,
nmv_context_counts *counts = &nmv_counts[nmv_ctx];
(void)pred_mvs;
#endif
av1_inc_mv(&diff, counts, av1_use_mv_hp(ref));
av1_inc_mv(&diff, counts, 1);
}
} else if (mode == NEAREST_NEWMV || mode == NEAR_NEWMV) {
const MV *ref = &mbmi_ext->ref_mvs[mbmi->ref_frame[1]][0].as_mv;
......@@ -331,7 +330,7 @@ static void inc_mvs(const MB_MODE_INFO *mbmi, const MB_MODE_INFO_EXT *mbmi_ext,
mbmi_ext->ref_mv_stack[rf_type], 1, mbmi->ref_mv_idx);
nmv_context_counts *counts = &nmv_counts[nmv_ctx];
#endif
av1_inc_mv(&diff, counts, av1_use_mv_hp(ref));
av1_inc_mv(&diff, counts, 1);
} else if (mode == NEW_NEARESTMV || mode == NEW_NEARMV) {
const MV *ref = &mbmi_ext->ref_mvs[mbmi->ref_frame[0]][0].as_mv;
const MV diff = { mvs[0].as_mv.row - ref->row,
......@@ -343,7 +342,7 @@ static void inc_mvs(const MB_MODE_INFO *mbmi, const MB_MODE_INFO_EXT *mbmi_ext,
mbmi_ext->ref_mv_stack[rf_type], 0, mbmi->ref_mv_idx);
nmv_context_counts *counts = &nmv_counts[nmv_ctx];
#endif
av1_inc_mv(&diff, counts, av1_use_mv_hp(ref));
av1_inc_mv(&diff, counts, 1);
}
}
......@@ -372,7 +371,7 @@ static void inc_mvs_sub8x8(const MODE_INFO *mi, int block, const int_mv mvs[2],
mbmi_ext->ref_mv_stack[rf_type], i, mbmi->ref_mv_idx);
nmv_context_counts *counts = &nmv_counts[nmv_ctx];
#endif
av1_inc_mv(&diff, counts, av1_use_mv_hp(ref));
av1_inc_mv(&diff, counts, 1);
}
} else if (mode == NEAREST_NEWMV || mode == NEAR_NEWMV) {
const MV *ref = &mi->bmi[block].ref_mv[1].as_mv;
......@@ -385,7 +384,7 @@ static void inc_mvs_sub8x8(const MODE_INFO *mi, int block, const int_mv mvs[2],
mbmi_ext->ref_mv_stack[rf_type], 1, mbmi->ref_mv_idx);
nmv_context_counts *counts = &nmv_counts[nmv_ctx];
#endif
av1_inc_mv(&diff, counts, av1_use_mv_hp(ref));
av1_inc_mv(&diff, counts, 1);
} else if (mode == NEW_NEARESTMV || mode == NEW_NEARMV) {
const MV *ref = &mi->bmi[block].ref_mv[0].as_mv;
const MV diff = { mvs[0].as_mv.row - ref->row,
......@@ -397,7 +396,7 @@ static void inc_mvs_sub8x8(const MODE_INFO *mi, int block, const int_mv mvs[2],
mbmi_ext->ref_mv_stack[rf_type], 0, mbmi->ref_mv_idx);
nmv_context_counts *counts = &nmv_counts[nmv_ctx];
#endif
av1_inc_mv(&diff, counts, av1_use_mv_hp(ref));
av1_inc_mv(&diff, counts, 1);
}
}
#else
......@@ -425,7 +424,7 @@ static void inc_mvs(const MB_MODE_INFO *mbmi, const MB_MODE_INFO_EXT *mbmi_ext,
#endif
const MV diff = { mvs[i].as_mv.row - ref->row,
mvs[i].as_mv.col - ref->col };
av1_inc_mv(&diff, counts, av1_use_mv_hp(ref));
av1_inc_mv(&diff, counts, 1);
}
}
#endif // CONFIG_EXT_INTER
......
......@@ -424,7 +424,7 @@ int av1_find_best_sub_pixel_tree_pruned_evenmore(
tr = br;
tc = bc;
if (allow_hp && av1_use_mv_hp(ref_mv) && forced_stop == 0) {
if (allow_hp && forced_stop == 0) {
hstep >>= 1;
FIRST_LEVEL_CHECKS;
if (eighthiters > 1) {
......@@ -484,7 +484,7 @@ int av1_find_best_sub_pixel_tree_pruned_more(
}
}
if (allow_hp && av1_use_mv_hp(ref_mv) && forced_stop == 0) {
if (allow_hp && forced_stop == 0) {
tr = br;
tc = bc;
hstep >>= 1;
......@@ -572,7 +572,7 @@ int av1_find_best_sub_pixel_tree_pruned(
tc = bc;
}
if (allow_hp && av1_use_mv_hp(ref_mv) && forced_stop == 0) {
if (allow_hp && forced_stop == 0) {
hstep >>= 1;
FIRST_LEVEL_CHECKS;
if (eighthiters > 1) {
......@@ -687,7 +687,7 @@ int av1_find_best_sub_pixel_tree(MACROBLOCK *x, const MV *ref_mv, int allow_hp,
unsigned int cost_array[5];
int kr, kc;
if (!(allow_hp && av1_use_mv_hp(ref_mv)))
if (!allow_hp)
if (round == 3) round = 2;
bestmv->row *= 8;
......@@ -2446,7 +2446,7 @@ int av1_find_best_masked_sub_pixel_tree(
tc = bc;
}
if (allow_hp && av1_use_mv_hp(ref_mv) && forced_stop == 0) {
if (allow_hp && forced_stop == 0) {
hstep >>= 1;
FIRST_LEVEL_CHECKS;
if (eighthiters > 1) {
......@@ -2581,7 +2581,7 @@ int av1_find_best_masked_sub_pixel_tree_up(
y_stride = pd->pre[is_second].stride;
offset = bestmv->row * y_stride + bestmv->col;
if (!(allow_hp && av1_use_mv_hp(ref_mv)))
if (!allow_hp)
if (round == 3) round = 2;
bestmv->row *= 8;
......@@ -3083,7 +3083,7 @@ int av1_find_best_obmc_sub_pixel_tree_up(
y_stride = pd->pre[is_second].stride;
offset = bestmv->row * y_stride + bestmv->col;
if (!(allow_hp && av1_use_mv_hp(ref_mv)))
if (!allow_hp)
if (round == 3) round = 2;
bestmv->row *= 8;
......
......@@ -4220,8 +4220,7 @@ static int set_and_cost_bmi_mvs(const AV1_COMP *const cpi, MACROBLOCK *x,
#endif // CONFIG_EXT_INTER
this_mv[0].as_int = seg_mvs[mbmi->ref_frame[0]].as_int;
#if CONFIG_EXT_INTER
if (!cpi->common.allow_high_precision_mv ||
!av1_use_mv_hp(&best_ref_mv[0]->as_mv))
if (!cpi->common.allow_high_precision_mv)
lower_mv_precision(&this_mv[0].as_mv, 0);
#endif // CONFIG_EXT_INTER
......@@ -4280,11 +4279,9 @@ static int set_and_cost_bmi_mvs(const AV1_COMP *const cpi, MACROBLOCK *x,
this_mv[0].as_int = compound_seg_newmvs[0].as_int;
this_mv[1].as_int = compound_seg_newmvs[1].as_int;
}
if (!cpi->common.allow_high_precision_mv ||
!av1_use_mv_hp(&best_ref_mv[0]->as_mv))
if (!cpi->common.allow_high_precision_mv)
lower_mv_precision(&this_mv[0].as_mv, 0);
if (!cpi->common.allow_high_precision_mv ||
!av1_use_mv_hp(&best_ref_mv[1]->as_mv))
if (!cpi->common.allow_high_precision_mv)
lower_mv_precision(&this_mv[1].as_mv, 0);
thismvcost += av1_mv_bit_cost(&this_mv[0].as_mv, &best_ref_mv[0]->as_mv,
mvjcost, mvcost, MV_COST_WEIGHT_SUB);
......@@ -4294,8 +4291,7 @@ static int set_and_cost_bmi_mvs(const AV1_COMP *const cpi, MACROBLOCK *x,
case NEW_NEARMV:
case NEW_NEARESTMV:
this_mv[0].as_int = seg_mvs[mbmi->ref_frame[0]].as_int;
if (!cpi->common.allow_high_precision_mv ||
!av1_use_mv_hp(&best_ref_mv[0]->as_mv))
if (!cpi->common.allow_high_precision_mv)
lower_mv_precision(&this_mv[0].as_mv, 0);
thismvcost += av1_mv_bit_cost(&this_mv[0].as_mv, &best_ref_mv[0]->as_mv,
mvjcost, mvcost, MV_COST_WEIGHT_SUB);
......@@ -4305,8 +4301,7 @@ static int set_and_cost_bmi_mvs(const AV1_COMP *const cpi, MACROBLOCK *x,
case NEAREST_NEWMV:
this_mv[0].as_int = frame_mv[mode][mbmi->ref_frame[0]].as_int;
this_mv[1].as_int = seg_mvs[mbmi->ref_frame[1]].as_int;
if (!cpi->common.allow_high_precision_mv ||
!av1_use_mv_hp(&best_ref_mv[1]->as_mv))
if (!cpi->common.allow_high_precision_mv)
lower_mv_precision(&this_mv[1].as_mv, 0);
thismvcost += av1_mv_bit_cost(&this_mv[1].as_mv, &best_ref_mv[1]->as_mv,
mvjcost, mvcost, MV_COST_WEIGHT_SUB);
......@@ -5147,8 +5142,7 @@ static int64_t rd_pick_best_sub8x8_mode(
if (!has_second_rf &&
#if CONFIG_EXT_INTER
have_newmv_in_inter_mode(this_mode) &&
(seg_mvs[index][mv_idx][mbmi->ref_frame[0]].as_int == INVALID_MV ||
av1_use_mv_hp(&bsi->ref_mv[0]->as_mv) == 0)
(seg_mvs[index][mv_idx][mbmi->ref_frame[0]].as_int == INVALID_MV)
#else
this_mode == NEWMV &&
(seg_mvs[index][mbmi->ref_frame[0]].as_int == INVALID_MV ||
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment