summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_rdopt.c
diff options
context:
space:
mode:
authorJim Bankoski <jimbankoski@google.com>2014-02-14 09:08:52 -0800
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-02-14 09:08:52 -0800
commit5750f78d6107f924ca4c808c95d7a6d31f59892d (patch)
tree00678bc1231c8589467e22b1a65fca25e8f7705f /vp9/encoder/vp9_rdopt.c
parente727bcf7ceaa96c96bacd4a36b2a4ee684fb07b7 (diff)
parent9e190dfbfe5a5d4662370f6580ff08de3c0a8d01 (diff)
downloadlibvpx-5750f78d6107f924ca4c808c95d7a6d31f59892d.tar
libvpx-5750f78d6107f924ca4c808c95d7a6d31f59892d.tar.gz
libvpx-5750f78d6107f924ca4c808c95d7a6d31f59892d.tar.bz2
libvpx-5750f78d6107f924ca4c808c95d7a6d31f59892d.zip
Merge "fast approximate model_rd_from_var_lapndz"
Diffstat (limited to 'vp9/encoder/vp9_rdopt.c')
-rw-r--r--vp9/encoder/vp9_rdopt.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index f0a861d60..d617f783d 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -444,8 +444,21 @@ static void model_rd_for_sb(VP9_COMP *cpi, BLOCK_SIZE bsize,
if (i == 0)
x->pred_sse[ref] = sse;
- if (cpi->sf.use_pick_mode) {
- dist_sum += (int)sse;
+
+ // Fast approximate the modelling function.
+ if (cpi->oxcf.cpu_used < -4) {
+ int rate;
+ int64_t dist;
+ int64_t square_error = sse;
+ int quantizer = (pd->dequant[1] >> 3);
+
+ if ( quantizer < 120)
+ rate = (square_error * (280-quantizer) )>> 8;
+ else
+ rate = 0;
+ dist = (square_error * quantizer) >> 8;
+ rate_sum += rate;
+ dist_sum += dist;
} else {
int rate;
int64_t dist;