summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2015-02-11 14:42:44 -0800
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2015-02-11 14:42:44 -0800
commitc9725813db4413ed4f4d8fcf11c4234ed9c8fe2e (patch)
treee2c67e5f0d6873890c82f10c5c4a1cd33115d9f8 /vp9/encoder
parent532cb435f835c3f355547d95913997c64994ea87 (diff)
parent41b7f76db14ecdfaea333e7b38eb76f657f4a81a (diff)
downloadlibvpx-c9725813db4413ed4f4d8fcf11c4234ed9c8fe2e.tar
libvpx-c9725813db4413ed4f4d8fcf11c4234ed9c8fe2e.tar.gz
libvpx-c9725813db4413ed4f4d8fcf11c4234ed9c8fe2e.tar.bz2
libvpx-c9725813db4413ed4f4d8fcf11c4234ed9c8fe2e.zip
Merge "Account for inter prediction filter rate cost in rtc mode selection"
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_pickmode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c
index d24e4c7e6..cc1b2ed1d 100644
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -810,9 +810,8 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize);
model_rd_for_sb_y(cpi, bsize, x, xd, &pf_rate[filter],
&pf_dist[filter], &pf_var[filter], &pf_sse[filter]);
- cost = RDCOST(x->rdmult, x->rddiv,
- vp9_get_switchable_rate(cpi, xd) + pf_rate[filter],
- pf_dist[filter]);
+ pf_rate[filter] += vp9_get_switchable_rate(cpi, xd);
+ cost = RDCOST(x->rdmult, x->rddiv, pf_rate[filter], pf_dist[filter]);
pf_tx_size[filter] = mbmi->tx_size;
if (cost < best_cost) {
best_filter = filter;
@@ -849,6 +848,8 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize);
model_rd_for_sb_y(cpi, bsize, x, xd, &this_rdc.rate, &this_rdc.dist,
&var_y, &sse_y);
+ this_rdc.rate += cm->interp_filter == SWITCHABLE ?
+ vp9_get_switchable_rate(cpi, xd) : 0;
}
// chroma component rate-distortion cost modeling