ref: ab20c98e845371f40c479001e45a25c8af255baa
parent: c62228f273c546d5f1d999b745425ea95b7063d4
author: Alex Converse <[email protected]>
date: Thu Jul 30 13:39:23 EDT 2015
Compute skippable inside the block_rd_txfm loop. Change-Id: Iaa43aeeb7a2074495e00cdb83bb551c3f13d3ed2
--- 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;
}
}