summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2014-05-07 17:36:00 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-05-07 17:36:00 -0700
commit7af0e984b8b83344e013bb24df18322823197eb2 (patch)
tree23ae7a522159492db63d96200c6ac65e1284737b /vp9
parent5a657908140f58fe9d5672cd6acd1666c71490fb (diff)
parent74f98e6f45dcd63bc1f43cad970ee080d90e65ba (diff)
downloadlibvpx-7af0e984b8b83344e013bb24df18322823197eb2.tar
libvpx-7af0e984b8b83344e013bb24df18322823197eb2.tar.gz
libvpx-7af0e984b8b83344e013bb24df18322823197eb2.tar.bz2
libvpx-7af0e984b8b83344e013bb24df18322823197eb2.zip
Merge "Tune rate-distortion modeling to account for frame light change"
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_pickmode.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c
index e750a53b6..ad77cd0fe 100644
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -164,7 +164,13 @@ static void model_rd_for_sb_y(VP9_COMP *cpi, BLOCK_SIZE bsize,
int var = cpi->fn_ptr[bsize].vf(p->src.buf, p->src.stride,
pd->dst.buf, pd->dst.stride, &sse);
- vp9_model_rd_from_var_lapndz(sse + var, 1 << num_pels_log2_lookup[bsize],
+ // TODO(jingning) This is a temporary solution to account for frames with
+ // light changes. Need to customize the rate-distortion modeling for non-RD
+ // mode decision.
+ if ((sse >> 3) > var)
+ sse = var;
+
+ vp9_model_rd_from_var_lapndz(var + sse, 1 << num_pels_log2_lookup[bsize],
pd->dequant[1] >> 3, &rate, &dist);
*out_rate_sum = rate;
*out_dist_sum = dist << 3;