ref: 73422d3b2d7d9c2f08d491de708662740b6b3e6d
parent: 0e3f494b217bde5e1d47107cdfbb044e4d801cec
author: Alex Converse <[email protected]>
date: Thu Jul 30 11:33:47 EDT 2015
Short circuit rate_block in block_rd_txfm. Don't run rate_block (cost_coeffs) if distortion alone is enough to surpass best_rd. This decreases 2nd pass runtime on HD at speed 2 by about 2%. There is zero effect on output if tx_cache is removed. Change-Id: Ia3b1cc77bfbe6ee988c395fde06c0eb92940b784
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -551,6 +551,12 @@
#endif // CONFIG_VP9_HIGHBITDEPTH
}
+ rd = RDCOST(x->rdmult, x->rddiv, 0, dist);
+ if (args->this_rd + rd > args->best_rd) {
+ args->exit_early = 1;
+ return;
+ }
+
rate = rate_block(plane, block, plane_bsize, tx_size, args);
rd1 = RDCOST(x->rdmult, x->rddiv, rate, dist);
rd2 = RDCOST(x->rdmult, x->rddiv, 0, sse);