Use correct bit cost while static-thresh is on
authorYunqing Wang <yunqingwang@google.com>
Fri, 30 Aug 2013 22:19:49 +0000 (15:19 -0700)
committerYunqing Wang <yunqingwang@google.com>
Fri, 30 Aug 2013 22:25:13 +0000 (15:25 -0700)
While static-thresh is on, we only need to transmit skip
flag if skip = 1. The cost of skip bit is added to the
total rate cost.

Change-Id: I64e73e482bc297eba22907026298a15fa8cc3920

vp9/encoder/vp9_rdopt.c

index 39b6544..647265b 100644 (file)
@@ -2916,8 +2916,8 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
                 (sse_v - var_v < thresh_dc || sse_v == var_v)) {
               x->skip = 1;
 
-              *rate2 = 500;
-              *rate_uv = 0;
+              // The cost of skip bit needs to be added.
+              *rate2 += vp9_cost_bit(vp9_get_pred_prob_mbskip(cm, xd), 1);
 
               // Scaling factor for SSE from spatial domain to frequency domain
               // is 16. Adjust distortion accordingly.