shithub: libvpx

Download patch

ref: 9e190dfbfe5a5d4662370f6580ff08de3c0a8d01
parent: fffb3be7658ad3c79f79bc69470454aa69f82b73
author: Jim Bankoski <jimbankoski@google.com>
date: Wed Feb 12 09:16:55 EST 2014

fast approximate model_rd_from_var_lapndz

Change-Id: Ieceaa16312941992d4a57455e336d625dfe4e094

--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -444,8 +444,21 @@
 
     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;
--