shithub: libvpx

Download patch

ref: dd4b4164121037f08a32065a3c1961865edb8462
parent: 90e563d91f4984b26e1d8d3db4f59a3198f2fecb
parent: ab20c98e845371f40c479001e45a25c8af255baa
author: Aℓex Converse <aconverse@google.com>
date: Fri Jul 31 17:19:11 EDT 2015

Merge "Compute skippable inside the block_rd_txfm loop."

--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -74,6 +74,7 @@
   int exit_early;
   int use_fast_coef_costing;
   const scan_order *so;
+  uint8_t skippable;
 };
 
 #define LAST_NEW_MV_INDEX 6
@@ -544,6 +545,8 @@
     args->exit_early = 1;
     return;
   }
+
+  args->skippable &= !x->plane[plane].eobs[block];
 }
 
 static void txfm_rd_in_plane(MACROBLOCK *x,
@@ -559,6 +562,7 @@
   args.x = x;
   args.best_rd = ref_best_rd;
   args.use_fast_coef_costing = use_fast_coef_casting;
+  args.skippable = 1;
 
   if (plane == 0)
     xd->mi[0]->mbmi.tx_size = tx_size;
@@ -578,7 +582,7 @@
     *distortion = args.this_dist;
     *rate       = args.this_rate;
     *sse        = args.this_sse;
-    *skippable  = vp9_is_skippable_in_plane(x, bsize, plane);
+    *skippable  = args.skippable;
   }
 }