]> granicus.if.org Git - libvpx/commitdiff
Reintroduce modelling for some speeds
authorJim Bankoski <jimbankoski@google.com>
Tue, 28 Jan 2014 21:51:06 +0000 (13:51 -0800)
committerJim Bankoski <jimbankoski@google.com>
Tue, 28 Jan 2014 21:51:06 +0000 (13:51 -0800)
Change-Id: Ia8fa3961eec34545465018281dc022bc6f73869a

vp9/encoder/vp9_rdopt.c

index ebe5f80f23991ccb91334de8a1dad262d3068a08..8d1057cc2552bb747008438a0e537a6bb6d156ba 100644 (file)
@@ -419,12 +419,22 @@ static void model_rd_for_sb(VP9_COMP *cpi, BLOCK_SIZE bsize,
     struct macroblock_plane *const p = &x->plane[i];
     struct macroblockd_plane *const pd = &xd->plane[i];
     const BLOCK_SIZE bs = get_plane_block_size(bsize, pd);
+
     (void) cpi->fn_ptr[bs].vf(p->src.buf, p->src.stride,
                               pd->dst.buf, pd->dst.stride, &sse);
+
     if (i == 0)
       x->pred_sse[ref] = sse;
-
-    dist_sum += (int)sse;
+    if (cpi->compressor_speed > 2) {
+      dist_sum += (int)sse;
+    } else {
+      int rate;
+      int64_t dist;
+      model_rd_from_var_lapndz(sse, 1 << num_pels_log2_lookup[bs],
+                               pd->dequant[1] >> 3, &rate, &dist);
+      rate_sum += rate;
+      dist_sum += (int)dist;
+    }
   }
 
   *out_rate_sum = rate_sum;