ref: 6f49e8a186abbd5b1ec88ce481404e603396ccfd
parent: 2231d1063c679302cea6a05df533dfe98cb90c07
parent: bcce658d3159be8435a557f26985e4d3f7b54b40
author: Jingning Han <jingning@google.com>
date: Wed Feb 3 15:40:10 EST 2016
Merge "Use precise rate cost estimate for skip block mode"
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -3355,15 +3355,19 @@
}
if (!disable_skip) {
+ vpx_prob skip_prob = vp9_get_skip_prob(cm, xd);
if (skippable) {
// Back out the coefficient coding costs
rate2 -= (rate_y + rate_uv);
// Cost the skip mb case
- rate2 += vp9_cost_bit(vp9_get_skip_prob(cm, xd), 1);
+ rate2 += vp9_cost_bit(skip_prob, 1);
} else if (ref_frame != INTRA_FRAME && !xd->lossless) {
- if (RDCOST(x->rdmult, x->rddiv, rate_y + rate_uv, distortion2) <
- RDCOST(x->rdmult, x->rddiv, 0, total_sse)) {
+ if (RDCOST(x->rdmult, x->rddiv,
+ rate_y + rate_uv + vp9_cost_bit(skip_prob, 0),
+ distortion2) <
+ RDCOST(x->rdmult, x->rddiv,
+ vp9_cost_bit(skip_prob, 1), total_sse)) {
// Add in the cost of the no skip flag.
rate2 += vp9_cost_bit(vp9_get_skip_prob(cm, xd), 0);
} else {