From: Jingning Han Date: Tue, 7 Apr 2015 19:39:54 +0000 (-0700) Subject: Compute prediction filter type cost only when needed X-Git-Tag: v1.5.0~775^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=25206e7b7fd9e342ed2af0aeb404ec0aecc3040c;p=libvpx Compute prediction filter type cost only when needed Skip redundant prediction filter type cost in filter search loop, if the rate value will be reset in Hadamard transform based rate distortion estimate. Change-Id: Ie5221f4bc8da9461c449df367251aeeac52c6e5d --- diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index d754fd2b1..aab346edd 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -1336,9 +1336,6 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, 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; } if (!this_early_term) { @@ -1364,6 +1361,8 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, this_rdc.rate += vp9_get_switchable_rate(cpi, xd); } } else { + this_rdc.rate += cm->interp_filter == SWITCHABLE ? + vp9_get_switchable_rate(cpi, xd) : 0; this_rdc.rate += vp9_cost_bit(vp9_get_skip_prob(cm, xd), 1); }