shithub: libvpx

Download patch

ref: 03c0af87478b15b0dd2cb3c069a795c7f29a6cc4
parent: 7ee44eef13012a3163052dcd56b3197835cee2c8
author: Scott LaVarnway <slavarnway@google.com>
date: Fri Nov 2 14:03:03 EDT 2012

Moved skip_true_count to macroblock struct

Change-Id: Ie9a26be7c9baa54a0e43a63ed6c77f2746477a9c

--- a/vp8/encoder/bitstream.c
+++ b/vp8/encoder/bitstream.c
@@ -539,7 +539,7 @@
     {
         int total_mbs = pc->mb_rows * pc->mb_cols;
 
-        prob_skip_false = (total_mbs - cpi->skip_true_count ) * 256 / total_mbs;
+        prob_skip_false = (total_mbs - cpi->mb.skip_true_count ) * 256 / total_mbs;
 
         if (prob_skip_false <= 1)
             prob_skip_false = 1;
@@ -730,7 +730,7 @@
     {
         int total_mbs = c->mb_rows * c->mb_cols;
 
-        prob_skip_false = (total_mbs - cpi->skip_true_count ) * 256 / total_mbs;
+        prob_skip_false = (total_mbs - cpi->mb.skip_true_count ) * 256 / total_mbs;
 
         if (prob_skip_false <= 1)
             prob_skip_false = 1;
--- a/vp8/encoder/block.h
+++ b/vp8/encoder/block.h
@@ -127,6 +127,7 @@
     unsigned char need_to_clamp_best_mvs;
 #endif
 
+    int skip_true_count;
     unsigned int coef_counts [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS];
 
 
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -751,7 +751,7 @@
 
     cpi->prediction_error = 0;
     cpi->intra_error = 0;
-    cpi->skip_true_count = 0;
+    cpi->mb.skip_true_count = 0;
     cpi->tok_count = 0;
 
 #if 0
@@ -869,6 +869,8 @@
             {
                 totalrate += cpi->mb_row_ei[i].totalrate;
 
+                cpi->mb.skip_true_count += cpi->mb_row_ei[i].mb.skip_true_count;
+
                 /* add up counts for each thread */
                 sum_coef_counts(x, &cpi->mb_row_ei[i].mb);
             }
@@ -1356,7 +1358,7 @@
 
         if (cpi->common.mb_no_coeff_skip)
         {
-            cpi->skip_true_count ++;
+            x->skip_true_count ++;
             vp8_fix_contexts(xd);
         }
         else
--- a/vp8/encoder/ethreading.c
+++ b/vp8/encoder/ethreading.c
@@ -473,6 +473,7 @@
             mbd->fullpixel_mask = 0xfffffff8;
 
         vp8_zero(mb->coef_counts);
+        mb->skip_true_count = 0;
     }
 }
 
--- a/vp8/encoder/onyx_int.h
+++ b/vp8/encoder/onyx_int.h
@@ -518,7 +518,6 @@
     int lf_zeromv_pct;
     int gf_bad_count;
     int gf_update_recommended;
-    int skip_true_count;
 
     unsigned char *segmentation_map;
     signed char segment_feature_data[MB_LVL_MAX][MAX_MB_SEGMENTS];
--- a/vp8/encoder/tokenize.c
+++ b/vp8/encoder/tokenize.c
@@ -396,7 +396,7 @@
         else
         {
             vp8_fix_contexts(xd);
-            cpi->skip_true_count++;
+            x->skip_true_count++;
         }
 
         return;
--