summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_pickmode.c
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2014-06-19 11:47:55 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-06-19 11:47:55 -0700
commitb202e475e936e9b529975aa0dc72f6170699543b (patch)
treea66cd87bd4cb3771353ac77dc70ecd873ff89f22 /vp9/encoder/vp9_pickmode.c
parent26955b2b6a3e36c8d96e2d4d359d5575be36aa7e (diff)
parent7c45dc98a8c80030c7f2994ab749d779b55b3047 (diff)
downloadlibvpx-b202e475e936e9b529975aa0dc72f6170699543b.tar
libvpx-b202e475e936e9b529975aa0dc72f6170699543b.tar.gz
libvpx-b202e475e936e9b529975aa0dc72f6170699543b.tar.bz2
libvpx-b202e475e936e9b529975aa0dc72f6170699543b.zip
Merge "Separate rate-distortion modeling for DC and AC coefficients"
Diffstat (limited to 'vp9/encoder/vp9_pickmode.c')
-rw-r--r--vp9/encoder/vp9_pickmode.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c
index 9f39b8dd8..b7972b77a 100644
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -172,15 +172,15 @@ static void model_rd_for_sb_y(VP9_COMP *cpi, BLOCK_SIZE bsize,
else
x->skip_txfm = 0;
- // 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],
- ac_quant >> 3, &rate, &dist);
- *out_rate_sum = rate;
+ vp9_model_rd_from_var_lapndz(sse - var, 1 << num_pels_log2_lookup[bsize],
+ dc_quant >> 3, &rate, &dist);
+ *out_rate_sum = rate >> 1;
*out_dist_sum = dist << 3;
+
+ vp9_model_rd_from_var_lapndz(var, 1 << num_pels_log2_lookup[bsize],
+ ac_quant >> 3, &rate, &dist);
+ *out_rate_sum += rate;
+ *out_dist_sum += dist << 4;
}
// TODO(jingning) placeholder for inter-frame non-RD mode decision.