diff vp8.c @ 12288:6bdbab1d9ed4 libavcodec

save some copies by moving some fields out of proba[2]
author skal
date Tue, 27 Jul 2010 22:21:49 +0000
parents b805a2660a00
children bc679bd1c66d
line wrap: on
line diff
--- a/vp8.c	Tue Jul 27 21:45:43 2010 +0000
+++ b/vp8.c	Tue Jul 27 22:21:49 2010 +0000
@@ -123,6 +123,10 @@
     int segment;             ///< segment of the current macroblock
 
     int mbskip_enabled;
+    uint8_t mbskip_proba;
+    uint8_t intra_proba;
+    uint8_t last_proba;
+    uint8_t golden_proba;
     int sign_bias[4]; ///< one state [0, 1] per ref frame type
     int ref_count[3];
 
@@ -188,10 +192,6 @@
      */
     struct {
         uint8_t segmentid[3];
-        uint8_t mbskip;
-        uint8_t intra;
-        uint8_t last;
-        uint8_t golden;
         uint8_t pred16x16[4];
         uint8_t pred8x8c[3];
         uint8_t token[4][8][3][NUM_DCT_TOKENS-1];
@@ -499,12 +499,12 @@
                         s->prob->token[i][j][k][l] = vp8_rac_get_uint(c, 8);
 
     if ((s->mbskip_enabled = vp8_rac_get(c)))
-        s->prob->mbskip = vp8_rac_get_uint(c, 8);
+        s->mbskip_proba = vp8_rac_get_uint(c, 8);
 
     if (!s->keyframe) {
-        s->prob->intra  = vp8_rac_get_uint(c, 8);
-        s->prob->last   = vp8_rac_get_uint(c, 8);
-        s->prob->golden = vp8_rac_get_uint(c, 8);
+        s->intra_proba  = vp8_rac_get_uint(c, 8);
+        s->last_proba   = vp8_rac_get_uint(c, 8);
+        s->golden_proba = vp8_rac_get_uint(c, 8);
 
         if (vp8_rac_get(c))
             for (i = 0; i < 4; i++)
@@ -725,7 +725,7 @@
         *segment = vp8_rac_get_tree(c, vp8_segmentid_tree, s->prob->segmentid);
     s->segment = *segment;
 
-    mb->skip = s->mbskip_enabled ? vp56_rac_get_prob(c, s->prob->mbskip) : 0;
+    mb->skip = s->mbskip_enabled ? vp56_rac_get_prob(c, s->mbskip_proba) : 0;
 
     if (s->keyframe) {
         mb->mode = vp8_rac_get_tree(c, vp8_pred16x16_tree_intra, vp8_pred16x16_prob_intra);
@@ -737,14 +737,14 @@
 
         s->chroma_pred_mode = vp8_rac_get_tree(c, vp8_pred8x8c_tree, vp8_pred8x8c_prob_intra);
         mb->ref_frame = VP56_FRAME_CURRENT;
-    } else if (vp56_rac_get_prob_branchy(c, s->prob->intra)) {
+    } else if (vp56_rac_get_prob_branchy(c, s->intra_proba)) {
         VP56mv near[2], best;
         uint8_t cnt[4] = { 0 };
         uint8_t p[4];
 
         // inter MB, 16.2
-        if (vp56_rac_get_prob_branchy(c, s->prob->last))
-            mb->ref_frame = vp56_rac_get_prob(c, s->prob->golden) ?
+        if (vp56_rac_get_prob_branchy(c, s->last_proba))
+            mb->ref_frame = vp56_rac_get_prob(c, s->golden_proba) ?
                 VP56_FRAME_GOLDEN2 /* altref */ : VP56_FRAME_GOLDEN;
         else
             mb->ref_frame = VP56_FRAME_PREVIOUS;