Merge "Cleaned code further for newmvref-sub8x8 and compound-modes" into nextgen
This commit is contained in:
commit
756a18663c
@ -128,6 +128,19 @@ static INLINE int is_inter_compound_mode(PREDICTION_MODE mode) {
|
||||
}
|
||||
#endif
|
||||
|
||||
static INLINE int have_newmv_in_inter_mode(PREDICTION_MODE mode) {
|
||||
#if CONFIG_COMPOUND_MODES
|
||||
return (mode == NEWMV ||
|
||||
mode == NEW_NEWMV ||
|
||||
mode == NEAREST_NEWMV ||
|
||||
mode == NEW_NEARESTMV ||
|
||||
mode == NEAR_NEWMV ||
|
||||
mode == NEW_NEARMV);
|
||||
#else
|
||||
return (mode == NEWMV);
|
||||
#endif // CONFIG_COMPOUND_MODES
|
||||
}
|
||||
|
||||
#define INTRA_MODES (TM_PRED + 1)
|
||||
|
||||
#define INTER_MODES (1 + NEWMV - NEARESTMV)
|
||||
|
@ -273,33 +273,39 @@ void vp9_update_mv_count(VP9_COMMON *cm, const MACROBLOCKD *xd) {
|
||||
#else
|
||||
if (mi->bmi[i].as_mode == NEWMV)
|
||||
#endif
|
||||
inc_mvs(mbmi, mi->bmi[i].as_mv,
|
||||
#if CONFIG_NEWMVREF_SUB8X8
|
||||
inc_mvs(mbmi, mi->bmi[i].as_mv,
|
||||
mi->bmi[i].ref_mv,
|
||||
#else
|
||||
ref_mv,
|
||||
#endif // CONFIG_NEWMVREF_SUB8X8
|
||||
&cm->counts.mv);
|
||||
#else
|
||||
inc_mvs(mbmi, mi->bmi[i].as_mv,
|
||||
ref_mv,
|
||||
&cm->counts.mv);
|
||||
#endif // CONFIG_NEWMVREF_SUB8X8
|
||||
#if CONFIG_COMPOUND_MODES
|
||||
else if (mi->bmi[i].as_mode == NEAREST_NEWMV ||
|
||||
mi->bmi[i].as_mode == NEAR_NEWMV)
|
||||
inc_compound_single_mv(1, mi->bmi[i].as_mv,
|
||||
#if CONFIG_NEWMVREF_SUB8X8
|
||||
inc_compound_single_mv(1, mi->bmi[i].as_mv,
|
||||
mi->bmi[i].ref_mv,
|
||||
#else
|
||||
ref_mv,
|
||||
#endif // CONFIG_NEWMVREF_SUB8X8
|
||||
&cm->counts.mv);
|
||||
#else
|
||||
inc_compound_single_mv(1, mi->bmi[i].as_mv,
|
||||
ref_mv,
|
||||
&cm->counts.mv);
|
||||
#endif // CONFIG_NEWMVREF_SUB8X8
|
||||
else if (mi->bmi[i].as_mode == NEW_NEARESTMV ||
|
||||
mi->bmi[i].as_mode == NEW_NEARMV)
|
||||
inc_compound_single_mv(0, mi->bmi[i].as_mv,
|
||||
#if CONFIG_NEWMVREF_SUB8X8
|
||||
inc_compound_single_mv(0, mi->bmi[i].as_mv,
|
||||
mi->bmi[i].ref_mv,
|
||||
#else
|
||||
ref_mv,
|
||||
#endif // CONFIG_NEWMVREF_SUB8X8
|
||||
&cm->counts.mv);
|
||||
#endif
|
||||
#else
|
||||
inc_compound_single_mv(0, mi->bmi[i].as_mv,
|
||||
ref_mv,
|
||||
&cm->counts.mv);
|
||||
#endif // CONFIG_NEWMVREF_SUB8X8
|
||||
#endif // CONFIG_COMPOUND_MODES
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -2696,11 +2696,11 @@ static int64_t rd_pick_best_sub8x8_mode(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
// TODO(zoeliu): Further optimization work may be done for:
|
||||
// NEW_NEARESTMV, NEW_NEARMV, NEAREST_NEWMV, and NEAR_NEWMV, as the mv
|
||||
// ref may have changed in the compound mode as opposed to single ref.
|
||||
if (has_second_rf
|
||||
if (has_second_rf &&
|
||||
#if CONFIG_COMPOUND_MODES
|
||||
&& this_mode == NEW_NEWMV
|
||||
this_mode == NEW_NEWMV
|
||||
#else
|
||||
&& this_mode == NEWMV
|
||||
this_mode == NEWMV
|
||||
#endif // CONFIG_COMPOUND_MODES
|
||||
#if !CONFIG_NEWMVREF_SUB8X8
|
||||
&& mbmi->interp_filter == EIGHTTAP
|
||||
@ -2782,15 +2782,7 @@ static int64_t rd_pick_best_sub8x8_mode(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
for (ref = 0; ref < 1 + has_second_rf; ++ref) {
|
||||
subpelmv |= mv_has_subpel(&mode_mv[this_mode][ref].as_mv);
|
||||
#if CONFIG_NEWMVREF_SUB8X8
|
||||
if (this_mode == NEWMV
|
||||
#if CONFIG_COMPOUND_MODES
|
||||
|| this_mode == NEW_NEWMV ||
|
||||
this_mode == NEAREST_NEWMV ||
|
||||
this_mode == NEW_NEARESTMV ||
|
||||
this_mode == NEAR_NEWMV ||
|
||||
this_mode == NEW_NEARMV
|
||||
#endif // CONFIG_COMPOUND_MODES
|
||||
)
|
||||
if (have_newmv_in_prediction(this_mode))
|
||||
have_ref &= (
|
||||
(mode_mv[this_mode][ref].as_int ==
|
||||
ref_bsi->rdstat[i][mode_idx].mvs[ref].as_int) &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user