Makes all mode token tables const
authorAttila Nagy <attilanagy@google.com>
Thu, 19 Apr 2012 12:14:28 +0000 (15:14 +0300)
committerAttila Nagy <attilanagy@google.com>
Thu, 19 Apr 2012 12:46:02 +0000 (15:46 +0300)
Mode token tabels precalculated in entropymode.c.
Removes vp8_initialize_common()as all common global data
is precalculated const now.

Change-Id: I9b2ccc883e4f618069e1bc180dad3a823394eb73

vp8/common/alloccommon.c
vp8/common/entropymode.c
vp8/common/entropymode.h
vp8/common/onyxc_int.h
vp8/decoder/onyxd_if.c
vp8/encoder/onyx_if.c

index 0820584..d58e49c 100644 (file)
@@ -220,8 +220,3 @@ void vp8_remove_common(VP8_COMMON *oci)
 {
     vp8_de_alloc_frame_buffers(oci);
 }
-
-void vp8_initialize_common()
-{
-    vp8_entropy_mode_init();
-}
index a723ec0..89a6e19 100644 (file)
@@ -59,7 +59,7 @@ const vp8_prob vp8_sub_mv_ref_prob2 [SUBMVREF_COUNT][VP8_SUBMVREFS-1] =
 
 
 
-vp8_mbsplit vp8_mbsplits [VP8_NUMMBSPLITS] =
+const vp8_mbsplit vp8_mbsplits [VP8_NUMMBSPLITS] =
 {
     {
         0,  0,  0,  0,
@@ -84,7 +84,7 @@ vp8_mbsplit vp8_mbsplits [VP8_NUMMBSPLITS] =
         4,  5,  6,  7,
         8,  9,  10, 11,
         12, 13, 14, 15,
-    },
+    }
 };
 
 const int vp8_mbsplit_count [VP8_NUMMBSPLITS] = { 2, 2, 4, 16};
@@ -155,17 +155,6 @@ const vp8_tree_index vp8_sub_mv_ref_tree[6] =
     -ZERO4X4, -NEW4X4
 };
 
-
-struct vp8_token_struct vp8_bmode_encodings   [VP8_BINTRAMODES];
-struct vp8_token_struct vp8_ymode_encodings   [VP8_YMODES];
-struct vp8_token_struct vp8_kf_ymode_encodings [VP8_YMODES];
-struct vp8_token_struct vp8_uv_mode_encodings  [VP8_UV_MODES];
-struct vp8_token_struct vp8_mbsplit_encodings [VP8_NUMMBSPLITS];
-
-struct vp8_token_struct vp8_mv_ref_encoding_array    [VP8_MVREFS];
-struct vp8_token_struct vp8_sub_mv_ref_encoding_array [VP8_SUBMVREFS];
-
-
 const vp8_tree_index vp8_small_mvtree [14] =
 {
     2, 8,
@@ -177,7 +166,101 @@ const vp8_tree_index vp8_small_mvtree [14] =
     -6, -7
 };
 
-struct vp8_token_struct vp8_small_mvencodings [8];
+/* Function used to generate the token tables below */
+/*
+void vp8_entropy_mode_init()
+{
+    vp8_tokens_from_tree(vp8_bmode_encodings,   vp8_bmode_tree);
+    vp8_tokens_from_tree(vp8_ymode_encodings,   vp8_ymode_tree);
+    vp8_tokens_from_tree(vp8_kf_ymode_encodings, vp8_kf_ymode_tree);
+    vp8_tokens_from_tree(vp8_uv_mode_encodings,  vp8_uv_mode_tree);
+    vp8_tokens_from_tree(vp8_mbsplit_encodings, vp8_mbsplit_tree);
+
+    vp8_tokens_from_tree_offset(vp8_mv_ref_encoding_array,
+                                vp8_mv_ref_tree, NEARESTMV);
+    vp8_tokens_from_tree_offset(vp8_sub_mv_ref_encoding_array,
+                                vp8_sub_mv_ref_tree, LEFT4X4);
+
+    vp8_tokens_from_tree(vp8_small_mvencodings, vp8_small_mvtree);
+}
+*/
+
+const struct vp8_token_struct vp8_bmode_encodings[VP8_BINTRAMODES] =
+{
+    {0, 1},
+    {2, 2},
+    {6, 3},
+    {28, 5},
+    {30, 5},
+    {58, 6},
+    {59, 6},
+    {62, 6},
+    {126, 7},
+    {127, 7}
+};
+
+const struct vp8_token_struct vp8_ymode_encodings[VP8_YMODES] =
+{
+    {0, 1},
+    {4, 3},
+    {5, 3},
+    {6, 3},
+    {7, 3}
+};
+
+const struct vp8_token_struct vp8_kf_ymode_encodings[VP8_YMODES] =
+{
+    {4, 3},
+    {5, 3},
+    {6, 3},
+    {7, 3},
+    {0, 1}
+};
+
+const struct vp8_token_struct vp8_uv_mode_encodings[VP8_UV_MODES] =
+{
+    {0, 1},
+    {2, 2},
+    {6, 3},
+    {7, 3}
+};
+
+const struct vp8_token_struct vp8_mbsplit_encodings[VP8_NUMMBSPLITS] =
+{
+    {6, 3},
+    {7, 3},
+    {2, 2},
+    {0, 1}
+};
+
+const struct vp8_token_struct vp8_mv_ref_encoding_array[VP8_MVREFS] =
+{
+    {2, 2},
+    {6, 3},
+    {0, 1},
+    {14, 4},
+    {15, 4}
+};
+
+const struct vp8_token_struct vp8_sub_mv_ref_encoding_array[VP8_SUBMVREFS] =
+{
+    {0, 1},
+    {2, 2},
+    {6, 3},
+    {7, 3}
+};
+
+const struct vp8_token_struct vp8_small_mvencodings[8] =
+{
+    {0, 3},
+    {1, 3},
+    {2, 3},
+    {3, 3},
+    {4, 3},
+    {5, 3},
+    {6, 3},
+    {7, 3}
+};
 
 void vp8_init_mbmode_probs(VP8_COMMON *x)
 {
@@ -246,20 +329,3 @@ void vp8_kf_default_bmode_probs(vp8_prob p [VP8_BINTRAMODES] [VP8_BINTRAMODES] [
     }
     while (++i < VP8_BINTRAMODES);
 }
-
-
-void vp8_entropy_mode_init()
-{
-    vp8_tokens_from_tree(vp8_bmode_encodings,   vp8_bmode_tree);
-    vp8_tokens_from_tree(vp8_ymode_encodings,   vp8_ymode_tree);
-    vp8_tokens_from_tree(vp8_kf_ymode_encodings, vp8_kf_ymode_tree);
-    vp8_tokens_from_tree(vp8_uv_mode_encodings,  vp8_uv_mode_tree);
-    vp8_tokens_from_tree(vp8_mbsplit_encodings, vp8_mbsplit_tree);
-
-    vp8_tokens_from_tree_offset(vp8_mv_ref_encoding_array,
-                                vp8_mv_ref_tree, NEARESTMV);
-    vp8_tokens_from_tree_offset(vp8_sub_mv_ref_encoding_array,
-                                vp8_sub_mv_ref_tree, LEFT4X4);
-
-    vp8_tokens_from_tree(vp8_small_mvencodings, vp8_small_mvtree);
-}
index f4b48ff..70200cb 100644 (file)
@@ -52,22 +52,20 @@ extern const vp8_tree_index  vp8_mbsplit_tree[];
 extern const vp8_tree_index  vp8_mv_ref_tree[];
 extern const vp8_tree_index  vp8_sub_mv_ref_tree[];
 
-extern struct vp8_token_struct vp8_bmode_encodings   [VP8_BINTRAMODES];
-extern struct vp8_token_struct vp8_ymode_encodings   [VP8_YMODES];
-extern struct vp8_token_struct vp8_kf_ymode_encodings [VP8_YMODES];
-extern struct vp8_token_struct vp8_uv_mode_encodings  [VP8_UV_MODES];
-extern struct vp8_token_struct vp8_mbsplit_encodings  [VP8_NUMMBSPLITS];
+extern const struct vp8_token_struct vp8_bmode_encodings[VP8_BINTRAMODES];
+extern const struct vp8_token_struct vp8_ymode_encodings[VP8_YMODES];
+extern const struct vp8_token_struct vp8_kf_ymode_encodings[VP8_YMODES];
+extern const struct vp8_token_struct vp8_uv_mode_encodings[VP8_UV_MODES];
+extern const struct vp8_token_struct vp8_mbsplit_encodings[VP8_NUMMBSPLITS];
 
 /* Inter mode values do not start at zero */
 
-extern struct vp8_token_struct vp8_mv_ref_encoding_array    [VP8_MVREFS];
-extern struct vp8_token_struct vp8_sub_mv_ref_encoding_array [VP8_SUBMVREFS];
+extern const struct vp8_token_struct vp8_mv_ref_encoding_array[VP8_MVREFS];
+extern const struct vp8_token_struct vp8_sub_mv_ref_encoding_array[VP8_SUBMVREFS];
 
 extern const vp8_tree_index vp8_small_mvtree[];
 
-extern struct vp8_token_struct vp8_small_mvencodings [8];
-
-void vp8_entropy_mode_init(void);
+extern const struct vp8_token_struct vp8_small_mvencodings[8];
 
 void vp8_init_mbmode_probs(VP8_COMMON *x);
 
index 7743ed5..c3215c0 100644 (file)
 #include "header.h"
 /*#endif*/
 
-/* Create/destroy static data structures. */
-
-void vp8_initialize_common(void);
-
 #define MINQ 0
 #define MAXQ 127
 #define QINDEX_RANGE (MAXQ + 1)
index 353290d..9499357 100644 (file)
@@ -49,7 +49,6 @@ void vp8dx_initialize()
 
     if (!init_done)
     {
-        vp8_initialize_common();
         vp8_scale_machine_specific_config();
         init_done = 1;
     }
index ac80fab..7e56f8e 100644 (file)
@@ -218,7 +218,6 @@ void vp8_initialize()
     if (!init_done)
     {
         vp8_scale_machine_specific_config();
-        vp8_initialize_common();
 
         init_done = 1;
     }