Commit 9ef3347b authored by Dmitry Kovalev's avatar Dmitry Kovalev Committed by Gerrit Code Review
Browse files

Merge "Cleaning up vp9_pick_inter_mode()."

Showing with 17 additions and 38 deletions
...@@ -318,48 +318,27 @@ int64_t vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, ...@@ -318,48 +318,27 @@ int64_t vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
pred_filter_search && pred_filter_search &&
((mbmi->mv[0].as_mv.row & 0x07) != 0 || ((mbmi->mv[0].as_mv.row & 0x07) != 0 ||
(mbmi->mv[0].as_mv.col & 0x07) != 0)) { (mbmi->mv[0].as_mv.col & 0x07) != 0)) {
int64_t tmp_rdcost1 = INT64_MAX;
int64_t tmp_rdcost2 = INT64_MAX;
int64_t tmp_rdcost3 = INT64_MAX;
int pf_rate[3]; int pf_rate[3];
int64_t pf_dist[3]; int64_t pf_dist[3];
int64_t best_cost = INT64_MAX;
mbmi->interp_filter = EIGHTTAP; INTERP_FILTER best_filter = SWITCHABLE, filter;
vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize);
model_rd_for_sb_y(cpi, bsize, x, xd, &pf_rate[EIGHTTAP], for (filter = EIGHTTAP; filter <= EIGHTTAP_SHARP; ++filter) {
&pf_dist[EIGHTTAP]); int64_t cost;
tmp_rdcost1 = RDCOST(x->rdmult, x->rddiv, mbmi->interp_filter = filter;
vp9_get_switchable_rate(cpi) + pf_rate[EIGHTTAP], vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize);
pf_dist[EIGHTTAP]); model_rd_for_sb_y(cpi, bsize, x, xd, &pf_rate[filter],
&pf_dist[filter]);
mbmi->interp_filter = EIGHTTAP_SHARP; cost = RDCOST(x->rdmult, x->rddiv,
vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize); vp9_get_switchable_rate(cpi) + pf_rate[filter],
model_rd_for_sb_y(cpi, bsize, x, xd, &pf_rate[EIGHTTAP_SHARP], pf_dist[filter]);
&pf_dist[EIGHTTAP_SHARP]); if (cost < best_cost) {
tmp_rdcost2 = RDCOST(x->rdmult, x->rddiv, vp9_get_switchable_rate(cpi) + best_filter = filter;
pf_rate[EIGHTTAP_SHARP], best_cost = cost;
pf_dist[EIGHTTAP_SHARP]); }
mbmi->interp_filter = EIGHTTAP_SMOOTH;
vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize);
model_rd_for_sb_y(cpi, bsize, x, xd, &pf_rate[EIGHTTAP_SMOOTH],
&pf_dist[EIGHTTAP_SMOOTH]);
tmp_rdcost3 = RDCOST(x->rdmult, x->rddiv, vp9_get_switchable_rate(cpi) +
pf_rate[EIGHTTAP_SMOOTH],
pf_dist[EIGHTTAP_SMOOTH]);
if (tmp_rdcost2 < tmp_rdcost1) {
if (tmp_rdcost2 < tmp_rdcost3)
mbmi->interp_filter = EIGHTTAP_SHARP;
else
mbmi->interp_filter = EIGHTTAP_SMOOTH;
} else {
if (tmp_rdcost1 < tmp_rdcost3)
mbmi->interp_filter = EIGHTTAP;
else
mbmi->interp_filter = EIGHTTAP_SMOOTH;
} }
mbmi->interp_filter = best_filter;
rate = pf_rate[mbmi->interp_filter]; rate = pf_rate[mbmi->interp_filter];
dist = pf_dist[mbmi->interp_filter]; dist = pf_dist[mbmi->interp_filter];
} else { } else {
......
Supports Markdown
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