shithub: libvpx

Download patch

ref: 9581bf46dc76c2c38844c35c5cee50f1136fb519
parent: a2b4a560b444f5c868a0aa4317d37f6f30a683cc
parent: d94d2b75eaf607e9d8d8f19204b2c375e2da2b00
author: John Koleszar <jkoleszar@google.com>
date: Wed Oct 10 04:49:50 EDT 2012

Merge "write_kfmodes: use update_skip_probs()" into experimental

--- a/vp8/encoder/bitstream.c
+++ b/vp8/encoder/bitstream.c
@@ -1339,6 +1339,7 @@
   }
 }
 
+
 static void write_kfmodes(VP8_COMP *cpi) {
   vp8_writer *const bc = & cpi->bc;
   VP8_COMMON *const c = & cpi->common;
@@ -1348,30 +1349,13 @@
   int i;
   int row, col;
   int mb_row, mb_col;
-  int prob_skip_false[3] = {0, 0, 0};
   int row_delta[4] = { 0, +1,  0, -1};
   int col_delta[4] = { +1, -1, +1, +1};
 
-  // printf("write_kfmodes\n");
   if (c->mb_no_coeff_skip) {
-    // Divide by 0 check. 0 case possible with segment features
-    int k;
-    for (k = 0; k < MBSKIP_CONTEXTS; ++k) {
-      if ((cpi->skip_false_count[k] + cpi->skip_true_count[k])) {
-        prob_skip_false[k] = cpi->skip_false_count[k] * 256 /
-                             (cpi->skip_false_count[k] + cpi->skip_true_count[k]);
-
-        if (prob_skip_false[k] <= 1)
-          prob_skip_false[k] = 1;
-
-        if (prob_skip_false[k] > 255)
-          prob_skip_false[k] = 255;
-      } else
-        prob_skip_false[k] = 255;
-
-      c->mbskip_pred_probs[k] = prob_skip_false[k];
-      vp8_write_literal(bc, prob_skip_false[k], 8);
-    }
+    update_skip_probs(cpi);
+    for (i = 0; i < MBSKIP_CONTEXTS; ++i)
+      vp8_write_literal(bc, c->mbskip_pred_probs[i], 8);
   }
 
   if (!c->kf_ymode_probs_update) {
--