Expanding the coefficient encoding contexts
authorDeb Mukherjee <debargha@google.com>
Wed, 21 Mar 2012 22:22:21 +0000 (15:22 -0700)
committerDeb Mukherjee <debargha@google.com>
Fri, 4 May 2012 14:11:38 +0000 (07:11 -0700)
This patch expands the set of prev contexts used for video coding
from 3 to 4.

There is a small improvement of the order of 0.08% for derf and
0.15% on the HD set. The tests were rerun after the various merges
last week. There are two columns in each test - the first are the
results with the mbskip change, and the second with expanded contexts
added on top of that.

Derf:
http://www.corp.google.com/~debargha/vp8_results/explibvpx_newentropy_expcontext.html

HD:
http://www.corp.google.com/~debargha/vp8_results/explibvpx_hd_newentropy_expcontext.html

Rebased.

Broke up 80 char lines.

Change-Id: I82d2e72d054e530cbf5ce9aa0e6d85c582965675

12 files changed:
configure
vp8/common/blockd.h
vp8/common/coefupdateprobs.h
vp8/common/default_coef_probs.h
vp8/common/defaultcoefcounts.h
vp8/common/entropy.c
vp8/common/entropy.h
vp8/decoder/decodframe.c
vp8/decoder/detokenize.c
vp8/encoder/bitstream.c
vp8/encoder/rdopt.c
vp8/encoder/tokenize.c

index 0fc23b1..3951fa3 100755 (executable)
--- a/configure
+++ b/configure
@@ -226,6 +226,7 @@ EXPERIMENT_LIST="
     newentropy
     newupdate
     superblocks
+    expanded_coef_context
 "
 CONFIG_LIST="
     external_build
index ba4c981..7915714 100644 (file)
@@ -72,7 +72,6 @@ extern const unsigned char vp8_block2above[25];
 extern const unsigned char vp8_block2left_8x8[25];
 extern const unsigned char vp8_block2above_8x8[25];
 
-
 #define VP8_COMBINEENTROPYCONTEXTS( Dest, A, B) \
     Dest = ((A)!=0) + ((B)!=0);
 
index 05e4563..714dd46 100644 (file)
@@ -18,41 +18,65 @@ const vp8_prob vp8_coef_update_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTE
         {
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
             {234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
             {239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
             {251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
             {251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255, },
             {250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
     },
@@ -60,41 +84,65 @@ const vp8_prob vp8_coef_update_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTE
         {
             {217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255, },
+#endif
             {234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255, },
         },
         {
             {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
             {249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
             {252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
             {253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
             {250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
     },
@@ -102,41 +150,65 @@ const vp8_prob vp8_coef_update_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTE
         {
             {186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255, },
             {234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255, },
+#endif
             {251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255, },
         },
         {
             {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
             {236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, },
+#endif
             {251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
             {254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
     },
@@ -144,41 +216,65 @@ const vp8_prob vp8_coef_update_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTE
         {
             {248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
             {246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255, },
+#endif
             {252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
             {248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
             {245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
             {252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
             {250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
         {
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         },
     },
@@ -192,41 +288,65 @@ const vp8_prob vp8_coef_update_probs_8x8 [BLOCK_TYPES]
       {
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 229, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         {219, 234, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {239, 204, 229, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {239, 204, 229, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 209, 229, 255, 255, 255, 255, 255, 255, 255, 255, },
         {239, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 204, 229, 255, 255, 255, 255, 255, 255, 255, 255, },
         {229, 209, 234, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 193, 209, 255, 255, 255, 255, 255, 255, 255, 255, },
         {229, 198, 239, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 204, 204, 255, 255, 255, 255, 255, 255, 255, 255, },
         {219, 198, 229, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 198, 204, 255, 255, 255, 255, 255, 255, 255, 255, },
         {209, 193, 234, 249, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 249, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 249, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 214, 214, 255, 255, 255, 255, 255, 255, 255, 255, },
         {173, 193, 234, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
     },
@@ -234,41 +354,65 @@ const vp8_prob vp8_coef_update_probs_8x8 [BLOCK_TYPES]
       {
         {255, 255, 234, 255, 255, 255, 255, 255, 255, 255, 255, },
         {224, 224, 219, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {229, 239, 234, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {229, 239, 234, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 234, 224, 255, 255, 255, 255, 255, 255, 255, 255, },
         {224, 234, 234, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 255, 229, 255, 255, 255, 255, 255, 255, 255, 255, },
         {229, 255, 234, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 255, 229, 255, 255, 255, 255, 255, 255, 255, 255, },
         {224, 255, 239, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
     },
@@ -276,41 +420,65 @@ const vp8_prob vp8_coef_update_probs_8x8 [BLOCK_TYPES]
       {
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         {224, 219, 234, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {234, 183, 214, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {234, 183, 214, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 193, 229, 255, 249, 255, 255, 255, 255, 255, 255, },
         {229, 214, 234, 249, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 249, 255, 255, 249, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 249, 255, 255, 249, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 198, 229, 255, 255, 255, 255, 255, 255, 255, 255, },
         {229, 219, 249, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 249, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 249, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 193, 224, 255, 255, 255, 255, 255, 255, 255, 255, },
         {229, 204, 234, 249, 249, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 249, 249, 255, 244, 249, 255, 255, 255, 255, 255, },
+#endif
         {255, 249, 249, 255, 244, 249, 255, 255, 255, 255, 255, },
       },
       {
         {255, 178, 224, 255, 249, 255, 255, 255, 255, 255, 255, },
         {234, 224, 234, 249, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 183, 229, 255, 249, 255, 255, 255, 255, 255, 255, },
         {234, 219, 234, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 249, 249, 255, 249, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 249, 249, 255, 249, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 193, 224, 249, 255, 244, 255, 255, 255, 255, 255, },
         {219, 224, 229, 255, 255, 249, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 255, 249, 249, 255, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 255, 249, 249, 255, 255, 255, 255, 255, 255, },
       },
       {
         {255, 193, 229, 255, 255, 255, 255, 255, 255, 255, 255, },
         {224, 224, 239, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {249, 244, 249, 255, 255, 255, 255, 255, 255, 255, 255, },
+#endif
         {249, 244, 249, 255, 255, 255, 255, 255, 255, 255, 255, },
       },
     },
@@ -318,41 +486,65 @@ const vp8_prob vp8_coef_update_probs_8x8 [BLOCK_TYPES]
       {
         {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
         {249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 239, 234, 244, 239, 244, 249, 255, 255, 255, 255, },
+#endif
         {255, 239, 234, 244, 239, 244, 249, 255, 255, 255, 255, },
       },
       {
         {255, 249, 239, 239, 244, 255, 255, 255, 255, 255, 255, },
         {255, 249, 244, 255, 249, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 239, 255, 255, 249, 255, 255, 255, 255, 255, },
+#endif
         {255, 255, 239, 255, 255, 249, 255, 255, 255, 255, 255, },
       },
       {
         {255, 244, 239, 239, 244, 255, 255, 255, 255, 255, 255, },
         {255, 234, 239, 234, 249, 255, 255, 255, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 255, 229, 239, 234, 249, 244, 255, 255, 255, 255, },
+#endif
         {255, 255, 229, 239, 234, 249, 244, 255, 255, 255, 255, },
       },
       {
         {255, 239, 229, 239, 234, 234, 255, 255, 255, 255, 255, },
         {255, 239, 234, 229, 244, 239, 255, 234, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 229, 209, 229, 239, 234, 244, 229, 255, 249, 255, },
+#endif
         {255, 229, 209, 229, 239, 234, 244, 229, 255, 249, 255, },
       },
       {
         {255, 239, 234, 229, 244, 249, 255, 249, 255, 255, 255, },
         {255, 234, 229, 244, 234, 249, 255, 249, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 229, 239, 229, 249, 255, 255, 244, 255, 255, 255, },
+#endif
         {255, 229, 239, 229, 249, 255, 255, 244, 255, 255, 255, },
       },
       {
         {255, 239, 234, 239, 234, 239, 255, 249, 255, 255, 255, },
         {255, 229, 234, 239, 239, 239, 255, 244, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 229, 234, 239, 239, 244, 255, 255, 255, 255, 255, },
+#endif
         {255, 229, 234, 239, 239, 244, 255, 255, 255, 255, 255, },
       },
       {
         {255, 219, 224, 229, 229, 234, 239, 224, 255, 255, 255, },
         {255, 229, 229, 224, 234, 229, 239, 239, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {255, 229, 224, 239, 234, 239, 224, 224, 255, 249, 255, },
+#endif
         {255, 229, 224, 239, 234, 239, 224, 224, 255, 249, 255, },
       },
       {
         {255, 234, 229, 244, 229, 229, 255, 214, 255, 255, 255, },
         {255, 239, 234, 239, 214, 239, 255, 209, 255, 255, 255, },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        {249, 239, 219, 209, 219, 224, 239, 204, 255, 255, 255, },
+#endif
         {249, 239, 219, 209, 219, 224, 239, 204, 255, 255, 255, },
       },
     },
index 0d19563..3a9262e 100755 (executable)
@@ -21,168 +21,328 @@ static const vp8_prob default_coef_probs [BLOCK_TYPES]
         { /* Coeff Band ( 0 )*/
             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
+            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
+#else
             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }
+#endif
         },
         { /* Coeff Band ( 1 )*/
             { 253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128 },
             { 189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128 },
-            { 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128 },
+            { 90, 116, 227, 252, 214, 209, 255, 255, 128, 128, 128 },
+#else
+            { 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 2 )*/
             {   1,  98, 248, 255, 236, 226, 255, 255, 128, 128, 128 },
             { 181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128 },
-            {  78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128 },
+            {  64, 128, 202, 247, 198, 180, 255, 219, 128, 128, 128 },
+#else
+            {  78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 3 )*/
             {   1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128 },
             { 184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128 },
-            {  77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128 },
+            {  64, 100, 216, 255, 236, 230, 128, 128, 128, 128, 128 },
+#else
+            {  77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 4 )*/
             {   1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128 },
             { 170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128 },
-            {  37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128 },
+            {  28, 110, 196, 243, 228, 255, 255, 255, 128, 128, 128 },
+#else
+            {  37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 5 )*/
             {   1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128 },
             { 207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128 },
-            { 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128 },
+            { 90, 90, 231, 255, 211, 171, 128, 128, 128, 128, 128 },
+#else
+            { 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 6 )*/
             {   1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128 },
             { 177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128 },
-            {  80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128 },
+            {  64, 120, 211, 255, 194, 224, 128, 128, 128, 128, 128 },
+#else
+            {  80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 7 )*/
             {   1,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
             { 246,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
-            { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
+            { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
+#else
+            { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
+#endif
         }
     },
     { /* Block Type ( 1 ) */
         { /* Coeff Band ( 0 )*/
             { 198,  35, 237, 223, 193, 187, 162, 160, 145, 155,  62 },
             { 131,  45, 198, 221, 172, 176, 220, 157, 252, 221,   1 },
-            {  68,  47, 146, 208, 149, 167, 221, 162, 255, 223, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  68,  47, 146, 208, 149, 167, 221, 162, 255, 223, 128 },
+            {  48,  32, 146, 208, 149, 167, 221, 162, 255, 223, 128 },
+#else
+            {  68,  47, 146, 208, 149, 167, 221, 162, 255, 223, 128 },
+#endif
         },
         { /* Coeff Band ( 1 )*/
             {   1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128 },
             { 184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128 },
-            {  81,  99, 181, 242, 176, 190, 249, 202, 255, 255, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  81,  99, 181, 242, 176, 190, 249, 202, 255, 255, 128 },
+            {  66,  90, 181, 242, 176, 190, 249, 202, 255, 255, 128 },
+#else
+            {  81,  99, 181, 242, 176, 190, 249, 202, 255, 255, 128 },
+#endif
         },
         { /* Coeff Band ( 2 )*/
             {   1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128 },
             {  99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128 },
-            {  23,  91, 163, 242, 170, 187, 247, 210, 255, 255, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  23,  91, 163, 242, 170, 187, 247, 210, 255, 255, 128 },
+            {  18,  80, 163, 242, 170, 187, 247, 210, 255, 255, 128 },
+#else
+            {  23,  91, 163, 242, 170, 187, 247, 210, 255, 255, 128 },
+#endif
         },
         { /* Coeff Band ( 3 )*/
             {   1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128 },
             { 109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128 },
-            {  44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128 },
+            {  36, 120, 201, 253, 205, 192, 255, 255, 128, 128, 128 },
+#else
+            {  44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 4 )*/
             {   1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128 },
             {  94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128 },
-            {  22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128 },
+            {  18, 90, 174, 245, 186, 161, 255, 199, 128, 128, 128 },
+#else
+            {  22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 5 )*/
             {   1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128 },
             { 124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128 },
-            {  35,  77, 181, 251, 193, 211, 255, 205, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  35,  77, 181, 251, 193, 211, 255, 205, 128, 128, 128 },
+            {  28,  70, 181, 251, 193, 211, 255, 205, 128, 128, 128 },
+#else
+            {  35,  77, 181, 251, 193, 211, 255, 205, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 6 )*/
             {   1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128 },
             { 121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128 },
-            {  45,  99, 188, 251, 195, 217, 255, 224, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  45,  99, 188, 251, 195, 217, 255, 224, 128, 128, 128 },
+            {  40,  90, 188, 251, 195, 217, 255, 224, 128, 128, 128 },
+#else
+            {  45,  99, 188, 251, 195, 217, 255, 224, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 7 )*/
             {   1,   1, 251, 255, 213, 255, 128, 128, 128, 128, 128 },
             { 203,   1, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
-            { 137,   1, 177, 255, 224, 255, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 137,   1, 177, 255, 224, 255, 128, 128, 128, 128, 128 },
+            { 137,   1, 177, 255, 224, 255, 128, 128, 128, 128, 128 },
+#else
+            { 137,   1, 177, 255, 224, 255, 128, 128, 128, 128, 128 },
+#endif
         }
     },
     { /* Block Type ( 2 ) */
         { /* Coeff Band ( 0 )*/
             { 253,   9, 248, 251, 207, 208, 255, 192, 128, 128, 128 },
             { 175,  13, 224, 243, 193, 185, 249, 198, 255, 255, 128 },
-            {  73,  17, 171, 221, 161, 179, 236, 167, 255, 234, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  73,  17, 171, 221, 161, 179, 236, 167, 255, 234, 128 },
+            {  64,  17, 171, 221, 161, 179, 236, 167, 255, 234, 128 },
+#else
+            {  73,  17, 171, 221, 161, 179, 236, 167, 255, 234, 128 },
+#endif
         },
         { /* Coeff Band ( 1 )*/
             {   1,  95, 247, 253, 212, 183, 255, 255, 128, 128, 128 },
             { 239,  90, 244, 250, 211, 209, 255, 255, 128, 128, 128 },
-            { 155,  77, 195, 248, 188, 195, 255, 255, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 155,  77, 195, 248, 188, 195, 255, 255, 128, 128, 128 },
+            { 140,  70, 195, 248, 188, 195, 255, 255, 128, 128, 128 },
+#else
+            { 155,  77, 195, 248, 188, 195, 255, 255, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 2 )*/
             {   1,  24, 239, 251, 218, 219, 255, 205, 128, 128, 128 },
             { 201,  51, 219, 255, 196, 186, 128, 128, 128, 128, 128 },
-            {  69,  46, 190, 239, 201, 218, 255, 228, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  69,  46, 190, 239, 201, 218, 255, 228, 128, 128, 128 },
+            {  60,  40, 190, 239, 201, 218, 255, 228, 128, 128, 128 },
+#else
+            {  69,  46, 190, 239, 201, 218, 255, 228, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 3 )*/
             {   1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128 },
             { 223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128 },
-            { 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
+            { 132, 118, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
+#else
+            { 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 4 )*/
             {   1,  16, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
             { 190,  36, 230, 255, 236, 255, 128, 128, 128, 128, 128 },
-            { 149,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 149,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+            { 149,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+#else
+            { 149,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 5 )*/
             {   1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
             { 247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
-            { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+            { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+#else
+            { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 6 )*/
             {   1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128 },
             { 213,  62, 250, 255, 255, 128, 128, 128, 128, 128, 128 },
-            {  55,  93, 255, 128, 128, 128, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  55,  93, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+            {  48,  85, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+#else
+            {  55,  93, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 7 )*/
             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
-            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
+            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
+#else
+            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
+#endif
         }
     },
     { /* Block Type ( 3 ) */
         { /* Coeff Band ( 0 )*/
             { 202,  24, 213, 235, 186, 191, 220, 160, 240, 175, 255 },
             { 126,  38, 182, 232, 169, 184, 228, 174, 255, 187, 128 },
-            {  61,  46, 138, 219, 151, 178, 240, 170, 255, 216, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  63,  48, 138, 219, 151, 178, 240, 170, 255, 216, 128 },
+            {  54,  40, 138, 219, 151, 178, 240, 170, 255, 216, 128 },
+#else
+            {  61,  46, 138, 219, 151, 178, 240, 170, 255, 216, 128 },
+#endif
         },
         { /* Coeff Band ( 1 )*/
             {   1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128 },
             { 166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128 },
-            {  39,  77, 162, 232, 172, 180, 245, 178, 255, 255, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  44,  84, 162, 232, 172, 180, 245, 178, 255, 255, 128 },
+            {  32,  70, 162, 232, 172, 180, 245, 178, 255, 255, 128 },
+#else
+            {  39,  77, 162, 232, 172, 180, 245, 178, 255, 255, 128 },
+#endif
         },
         { /* Coeff Band ( 2 )*/
             {   1,  52, 220, 246, 198, 199, 249, 220, 255, 255, 128 },
             { 124,  74, 191, 243, 183, 193, 250, 221, 255, 255, 128 },
-            {  24,  71, 130, 219, 154, 170, 243, 182, 255, 255, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  24,  71, 130, 219, 154, 170, 243, 182, 255, 255, 128 },
+            {  24,  71, 130, 219, 154, 170, 243, 182, 255, 255, 128 },
+#else
+            {  24,  71, 130, 219, 154, 170, 243, 182, 255, 255, 128 },
+#endif
         },
         { /* Coeff Band ( 3 )*/
             {   1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128 },
             { 149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128 },
-            {  28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128 },
+            {  26, 104, 170, 242, 183, 194, 254, 223, 255, 255, 128 },
+#else
+            {  28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128 },
+#endif
         },
         { /* Coeff Band ( 4 )*/
             {   1,  81, 230, 252, 204, 203, 255, 192, 128, 128, 128 },
             { 123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128 },
-            {  20,  95, 153, 243, 164, 173, 255, 203, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  20,  95, 153, 243, 164, 173, 255, 203, 128, 128, 128 },
+            {  20,  95, 153, 243, 164, 173, 255, 203, 128, 128, 128 },
+#else
+            {  20,  95, 153, 243, 164, 173, 255, 203, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 5 )*/
             {   1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128 },
             { 168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128 },
-            {  47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 },
+            {  47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 },
+#else
+            {  47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 6 )*/
             {   1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128 },
             { 141,  84, 213, 252, 201, 202, 255, 219, 128, 128, 128 },
-            {  42,  80, 160, 240, 162, 185, 255, 205, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            {  42,  80, 160, 240, 162, 185, 255, 205, 128, 128, 128 },
+            {  42,  80, 160, 240, 162, 185, 255, 205, 128, 128, 128 },
+#else
+            {  42,  80, 160, 240, 162, 185, 255, 205, 128, 128, 128 },
+#endif
         },
         { /* Coeff Band ( 7 )*/
             {   1,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
             { 244,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
-            { 238,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 }
+#if CONFIG_EXPANDED_COEF_CONTEXT
+            { 238,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+            { 238,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+#else
+            { 238,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
+#endif
         }
     }
 };
index d84361b..da41e40 100644 (file)
@@ -20,168 +20,264 @@ static const unsigned int vp8_default_coef_counts_8x8[BLOCK_TYPES]
       { /* Coeff Band 0 */
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+#endif
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
       },
       { /* Coeff Band 1 */
         { 21041, 13314, 3420, 592, 117, 0, 0, 0, 0, 0, 0, 11783},
         { 48236, 6918, 586, 153, 0, 0, 0, 0, 0, 0, 0, 23137},
-        { 676112, 106685, 24701, 6003, 1426, 429, 165, 0, 0, 0, 0, 28910}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 676112, 106685, 24701, 6003, 1426, 429, 165, 0, 0, 0, 0, 28910},
+#endif
+        { 676112, 106685, 24701, 6003, 1426, 429, 165, 0, 0, 0, 0, 28910},
       },
       { /* Coeff Band 2 */
         { 660107, 75227, 8451, 1345, 259, 0, 0, 0, 0, 0, 0, 0},
         { 79164, 36835, 6865, 1185, 246, 47, 0, 0, 0, 0, 0, 2575},
-        { 19469, 14330, 3070, 579, 94, 6, 0, 0, 0, 0, 0, 44}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 19469, 14330, 3070, 579, 94, 6, 0, 0, 0, 0, 0, 44},
+#endif
+        { 19469, 14330, 3070, 579, 94, 6, 0, 0, 0, 0, 0, 44},
       },
       { /* Coeff Band 3 */
         { 1978004, 235343, 28485, 3242, 271, 0, 0, 0, 0, 0, 0, 0},
         { 228684, 106736, 21431, 2842, 272, 46, 0, 0, 0, 0, 0, 9266},
-        { 32470, 27496, 6852, 1386, 45, 93, 0, 0, 0, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 32470, 27496, 6852, 1386, 45, 93, 0, 0, 0, 0, 0, 0},
+#endif
+        { 32470, 27496, 6852, 1386, 45, 93, 0, 0, 0, 0, 0, 0},
       },
       { /* Coeff Band 4 */
         { 1911212, 224613, 49653, 13748, 2541, 568, 48, 0, 0, 0, 0, 0},
         { 196670, 103472, 44473, 11490, 2432, 977, 72, 0, 0, 0, 0, 9447},
-        { 37876, 40417, 19142, 6069, 1799, 727, 51, 0, 0, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 37876, 40417, 19142, 6069, 1799, 727, 51, 0, 0, 0, 0, 0},
+#endif
+        { 37876, 40417, 19142, 6069, 1799, 727, 51, 0, 0, 0, 0, 0},
       },
       { /* Coeff Band 5 */
         { 3813399, 437714, 64387, 11312, 695, 219, 0, 0, 0, 0, 0, 0},
         { 438288, 215917, 61905, 10194, 674, 107, 0, 0, 0, 0, 0, 17808},
-        { 99139, 93643, 30054, 5758, 802, 171, 0, 0, 0, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 99139, 93643, 30054, 5758, 802, 171, 0, 0, 0, 0, 0, 0},
+#endif
+        { 99139, 93643, 30054, 5758, 802, 171, 0, 0, 0, 0, 0, 0},
       },
       { /* Coeff Band 6 */
         { 12259383, 1625505, 234927, 46306, 8417, 1456, 151, 0, 0, 0, 0, 0},
         { 1518161, 734287, 204240, 44228, 9462, 2240, 65, 0, 0, 0, 0, 107630},
-        { 292470, 258894, 94925, 25864, 6662, 2055, 170, 0, 0, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 292470, 258894, 94925, 25864, 6662, 2055, 170, 0, 0, 0, 0, 0},
+#endif
+        { 292470, 258894, 94925, 25864, 6662, 2055, 170, 0, 0, 0, 0, 0},
       },
       { /* Coeff Band 7 */
         { 9791308, 2118949, 169439, 16735, 1122, 0, 0, 0, 0, 0, 0, 0},
         { 1500281, 752410, 123259, 13065, 1168, 47, 0, 0, 0, 0, 0, 707182},
-        { 193067, 142638, 31018, 4719, 516, 138, 0, 0, 0, 0, 0, 12439}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 193067, 142638, 31018, 4719, 516, 138, 0, 0, 0, 0, 0, 12439},
+#endif
+        { 193067, 142638, 31018, 4719, 516, 138, 0, 0, 0, 0, 0, 12439},
       }
     },
     { /* block Type 1 */
       { /* Coeff Band 0 */
         { 16925, 10553, 852, 16, 63, 87, 47, 0, 0, 0, 0, 31232},
         { 39777, 26839, 6822, 1908, 678, 456, 227, 168, 35, 0, 0, 46825},
-        { 17300, 16666, 4168, 1209, 492, 154, 118, 207, 0, 0, 0, 19608}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 17300, 16666, 4168, 1209, 492, 154, 118, 207, 0, 0, 0, 19608},
+#endif
+        { 17300, 16666, 4168, 1209, 492, 154, 118, 207, 0, 0, 0, 19608},
       },
       { /* Coeff Band 1 */
         { 35882, 31722, 4625, 1270, 266, 237, 0, 0, 0, 0, 0, 0},
         { 15426, 13894, 4482, 1305, 281, 43, 0, 0, 0, 0, 0, 18627},
-        { 3900, 6552, 3472, 1723, 746, 366, 115, 35, 0, 0, 0, 798}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 3900, 6552, 3472, 1723, 746, 366, 115, 35, 0, 0, 0, 798},
+#endif
+        { 3900, 6552, 3472, 1723, 746, 366, 115, 35, 0, 0, 0, 798},
       },
       { /* Coeff Band 2 */
         { 21998, 29132, 3353, 679, 46, 0, 0, 0, 0, 0, 0, 0},
         { 9098, 15767, 3794, 792, 268, 47, 0, 0, 0, 0, 0, 22402},
-        { 4007, 8472, 2844, 687, 217, 0, 0, 0, 0, 0, 0, 2739}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 4007, 8472, 2844, 687, 217, 0, 0, 0, 0, 0, 0, 2739},
+#endif
+        { 4007, 8472, 2844, 687, 217, 0, 0, 0, 0, 0, 0, 2739},
       },
       { /* Coeff Band 3 */
         { 0, 31414, 2911, 682, 96, 0, 0, 0, 0, 0, 0, 0},
         { 0, 16515, 4425, 938, 124, 0, 0, 0, 0, 0, 0, 31369},
-        { 0, 4833, 2787, 1213, 150, 0, 0, 0, 0, 0, 0, 3744}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 0, 4833, 2787, 1213, 150, 0, 0, 0, 0, 0, 0, 3744},
+#endif
+        { 0, 4833, 2787, 1213, 150, 0, 0, 0, 0, 0, 0, 3744},
       },
       { /* Coeff Band 4 */
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+#endif
+        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
       },
       { /* Coeff Band 5 */
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+#endif
+        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
       },
       { /* Coeff Band 6 */
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52762},
-        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13326}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13326},
+#endif
+        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13326},
       },
       { /* Coeff Band 7 */
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
         { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+#endif
+        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
       }
     },
     { /* block Type 2 */
       { /* Coeff Band 0 */
         { 4444, 1614, 120, 48, 0, 48, 0, 0, 0, 0, 0, 278},
         { 192436, 103730, 24494, 9845, 4122, 1193, 102, 0, 0, 0, 0, 2577},
-        { 3473446, 2308716, 815510, 370374, 167797, 92152, 12073, 86, 0, 0, 0, 6801}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 3473446, 2308716, 815510, 370374, 167797, 92152, 12073, 86, 0, 0, 0, 6801},
+#endif
+        { 3473446, 2308716, 815510, 370374, 167797, 92152, 12073, 86, 0, 0, 0, 6801},
       },
       { /* Coeff Band 1 */
         { 2150616, 1136388, 250011, 86888, 31434, 13746, 1243, 0, 0, 0, 0, 0},
         { 1179945, 799802, 266012, 106787, 40809, 16486, 1546, 0, 0, 0, 0, 2673},
-        { 465128, 504130, 286989, 146259, 62380, 30192, 2866, 20, 0, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 465128, 504130, 286989, 146259, 62380, 30192, 2866, 20, 0, 0, 0, 0},
+#endif
+        { 465128, 504130, 286989, 146259, 62380, 30192, 2866, 20, 0, 0, 0, 0},
       },
       { /* Coeff Band 2 */
         { 2157762, 1177519, 282665, 108499, 43389, 23224, 2597, 34, 0, 0, 0, 0},
         { 1135685, 813705, 278079, 123255, 53935, 29492, 3152, 39, 0, 0, 0, 2978},
-        { 391894, 428037, 264216, 144306, 69326, 40281, 5541, 29, 0, 0, 0, 38}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 391894, 428037, 264216, 144306, 69326, 40281, 5541, 29, 0, 0, 0, 38},
+#endif
+        { 391894, 428037, 264216, 144306, 69326, 40281, 5541, 29, 0, 0, 0, 38},
       },
       { /* Coeff Band 3 */
         { 6669109, 3468471, 782161, 288484, 115500, 51083, 4943, 41, 0, 0, 0, 0},
         { 3454493, 2361636, 809524, 337663, 141343, 65036, 6361, 0, 0, 0, 0, 8730},
-        { 1231825, 1359522, 824686, 420784, 185517, 98731, 10973, 72, 0, 0, 0, 20}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 1231825, 1359522, 824686, 420784, 185517, 98731, 10973, 72, 0, 0, 0, 20},
+#endif
+        { 1231825, 1359522, 824686, 420784, 185517, 98731, 10973, 72, 0, 0, 0, 20},
       },
       { /* Coeff Band 4 */
         { 7606203, 3452846, 659856, 191703, 49335, 14336, 450, 0, 0, 0, 0, 0},
         { 3806506, 2379332, 691697, 224938, 61966, 18324, 766, 0, 0, 0, 0, 8193},
-        { 1270110, 1283728, 628775, 243378, 72617, 24897, 1087, 0, 0, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 1270110, 1283728, 628775, 243378, 72617, 24897, 1087, 0, 0, 0, 0, 0},
+#endif
+        { 1270110, 1283728, 628775, 243378, 72617, 24897, 1087, 0, 0, 0, 0, 0},
       },
       { /* Coeff Band 5 */
         { 15314169, 7436809, 1579928, 515790, 167453, 58305, 3502, 19, 0, 0, 0, 0},
         { 7021286, 4667922, 1545706, 574463, 191793, 68748, 4048, 1, 0, 0, 0, 17222},
-        { 2011989, 2145878, 1185336, 534879, 195719, 79103, 5343, 4, 0, 0, 0, 37}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 2011989, 2145878, 1185336, 534879, 195719, 79103, 5343, 4, 0, 0, 0, 37},
+#endif
+        { 2011989, 2145878, 1185336, 534879, 195719, 79103, 5343, 4, 0, 0, 0, 37},
       },
       { /* Coeff Band 6 */
         { 63458382, 25384462, 4208045, 1091050, 299011, 95242, 5238, 33, 0, 0, 0, 0},
         { 25638401, 14694085, 3945978, 1195420, 344813, 117355, 6703, 0, 0, 0, 0, 216811},
-        { 5988177, 5824044, 2754413, 1077350, 370739, 139710, 9693, 38, 0, 0, 0, 1835}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 5988177, 5824044, 2754413, 1077350, 370739, 139710, 9693, 38, 0, 0, 0, 1835},
+#endif
+        { 5988177, 5824044, 2754413, 1077350, 370739, 139710, 9693, 38, 0, 0, 0, 1835},
       },
       { /* Coeff Band 7 */
         { 74998348, 29342158, 2955001, 452912, 69631, 9516, 37, 0, 0, 0, 0, 0},
         { 24762356, 13281085, 2409883, 436787, 68948, 10658, 36, 0, 0, 0, 0, 6614989},
-        { 3882867, 3224489, 1052289, 252890, 46967, 8548, 154, 0, 0, 0, 0, 194354}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 3882867, 3224489, 1052289, 252890, 46967, 8548, 154, 0, 0, 0, 0, 194354},
+#endif
+        { 3882867, 3224489, 1052289, 252890, 46967, 8548, 154, 0, 0, 0, 0, 194354},
       }
     },
     { /* block Type 3 */
       { /* Coeff Band 0 */
         { 10583, 12059, 3155, 1041, 248, 175, 24, 2, 0, 0, 0, 5717},
         { 42461, 41782, 13553, 4966, 1352, 855, 89, 0, 0, 0, 0, 15000},
-        { 4691125, 5045589, 2673566, 1089317, 378161, 160268, 18252, 813, 69, 13, 0, 49}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 4691125, 5045589, 2673566, 1089317, 378161, 160268, 18252, 813, 69, 13, 0, 49},
+#endif
+        { 4691125, 5045589, 2673566, 1089317, 378161, 160268, 18252, 813, 69, 13, 0, 49},
       },
       { /* Coeff Band 1 */
         { 1535203, 1685686, 924565, 390329, 141709, 60523, 5983, 171, 0, 0, 0, 0},
         { 1594021, 1793276, 1016078, 441332, 164159, 70843, 8098, 311, 0, 0, 0, 11312},
-        { 1225223, 1430184, 888492, 460713, 203286, 115149, 22061, 804, 7, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 1225223, 1430184, 888492, 460713, 203286, 115149, 22061, 804, 7, 0, 0, 0},
+#endif
+        { 1225223, 1430184, 888492, 460713, 203286, 115149, 22061, 804, 7, 0, 0, 0},
       },
       { /* Coeff Band 2 */
         { 1522386, 1590366, 799910, 303691, 96625, 37608, 3637, 180, 33, 11, 0, 0},
         { 1682184, 1793869, 913649, 353520, 113674, 46309, 4736, 221, 18, 3, 0, 963},
-        { 1574580, 1740474, 954392, 417994, 151400, 67091, 8000, 536, 73, 10, 0, 63}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 1574580, 1740474, 954392, 417994, 151400, 67091, 8000, 536, 73, 10, 0, 63},
+#endif
+        { 1574580, 1740474, 954392, 417994, 151400, 67091, 8000, 536, 73, 10, 0, 63},
       },
       { /* Coeff Band 3 */
         { 4963672, 5197790, 2585383, 982161, 313333, 118498, 16014, 536, 62, 0, 0, 0},
         { 5223913, 5569803, 2845858, 1107384, 364949, 147841, 18296, 658, 11, 11, 0, 1866},
-        { 4042207, 4548894, 2608767, 1154993, 446290, 221295, 41054, 2438, 124, 20, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 4042207, 4548894, 2608767, 1154993, 446290, 221295, 41054, 2438, 124, 20, 0, 0},
+#endif
+        { 4042207, 4548894, 2608767, 1154993, 446290, 221295, 41054, 2438, 124, 20, 0, 0},
       },
       { /* Coeff Band 4 */
         { 3857216, 4431325, 2670447, 1330169, 553301, 286825, 46763, 1917, 0, 0, 0, 0},
         { 4226215, 4963701, 3046198, 1523923, 644670, 355519, 58792, 2525, 0, 0, 0, 1298},
-        { 3831873, 4580350, 3018580, 1660048, 797298, 502983, 123906, 7172, 16, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 3831873, 4580350, 3018580, 1660048, 797298, 502983, 123906, 7172, 16, 0, 0, 0},
+#endif
+        { 3831873, 4580350, 3018580, 1660048, 797298, 502983, 123906, 7172, 16, 0, 0, 0},
       },
       { /* Coeff Band 5 */
         { 8524543, 9285149, 4979435, 2039330, 683458, 266032, 22628, 270, 0, 0, 0, 0},
         { 9432163, 10428088, 5715661, 2385738, 838389, 326264, 29981, 361, 0, 0, 0, 884},
-        { 9039066, 10368964, 6136765, 2862030, 1098269, 511668, 63105, 945, 14, 0, 0, 0}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 9039066, 10368964, 6136765, 2862030, 1098269, 511668, 63105, 945, 14, 0, 0, 0},
+#endif
+        { 9039066, 10368964, 6136765, 2862030, 1098269, 511668, 63105, 945, 14, 0, 0, 0},
       },
       { /* Coeff Band 6 */
         { 33222872, 34748297, 17701695, 7214933, 2602336, 1191859, 187873, 12667, 390, 3, 0, 0},
         { 34765051, 37140719, 19525578, 8268934, 3085012, 1473864, 246743, 15258, 736, 3, 0, 8403},
-        { 28591289, 32252393, 19037068, 9213729, 4020653, 2372354, 586420, 67428, 3920, 92, 7, 3}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 28591289, 32252393, 19037068, 9213729, 4020653, 2372354, 586420, 67428, 3920, 92, 7, 3},
+#endif
+        { 28591289, 32252393, 19037068, 9213729, 4020653, 2372354, 586420, 67428, 3920, 92, 7, 3},
       },
       { /* Coeff Band 7 */
         { 68604786, 60777665, 19712887, 5656955, 1520443, 507166, 51829, 2466, 10, 0, 0, 0},
         { 55447403, 51682540, 19008774, 5928582, 1706884, 595531, 65998, 3661, 101, 0, 0, 8468343},
-        { 28321970, 29149398, 13565882, 5258675, 1868588, 898041, 192023, 21497, 672, 17, 0, 1884921}
+#if CONFIG_EXPANDED_COEF_CONTEXT
+        { 28321970, 29149398, 13565882, 5258675, 1868588, 898041, 192023, 21497, 672, 17, 0, 1884921},
+#endif
+        { 28321970, 29149398, 13565882, 5258675, 1868588, 898041, 192023, 21497, 672, 17, 0, 1884921},
       }
     }
   };
index f0fd324..8c0ebf1 100644 (file)
@@ -51,7 +51,11 @@ DECLARE_ALIGNED(16, cuchar, vp8_coef_bands[16]) =
 { 0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7};
 
 DECLARE_ALIGNED(16, cuchar, vp8_prev_token_class[MAX_ENTROPY_TOKENS]) =
+#if CONFIG_EXPANDED_COEF_CONTEXT
+{ 0, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0};
+#else
 { 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0};
+#endif
 
 DECLARE_ALIGNED(16, const int, vp8_default_zig_zag1d[16]) =
 {
index ea5186f..113332f 100644 (file)
@@ -82,12 +82,18 @@ extern DECLARE_ALIGNED(64, const unsigned char, vp8_coef_bands_8x8[64]);
    distinct bands). */
 
 /*# define DC_TOKEN_CONTEXTS        3*/ /* 00, 0!0, !0!0 */
-#define PREV_COEF_CONTEXTS          3
+#if CONFIG_EXPANDED_COEF_CONTEXT
+#define PREV_COEF_CONTEXTS       4
+#else
+#define PREV_COEF_CONTEXTS       3
+#endif
+
 #if CONFIG_NEWUPDATE
-#define SUBEXP_PARAM                1  /* Subexponential code parameter */
-#define COEFUPDATETYPE              2  /* coef update type to use (1/2/3) */
+#define SUBEXP_PARAM             1  /* Subexponential code parameter */
+#define COEFUPDATETYPE           2  /* coef update type to use (1/2/3) */
 #endif
 
+
 extern DECLARE_ALIGNED(16, const unsigned char, vp8_prev_token_class[MAX_ENTROPY_TOKENS]);
 
 extern const vp8_prob vp8_coef_update_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
index 7cc917d..3535380 100644 (file)
@@ -803,6 +803,12 @@ static void read_coef_probs3(VP8D_COMP *pbi)
                 for (j = !i; j < COEF_BANDS; j++)
                     for (k = 0; k < PREV_COEF_CONTEXTS; k++)
                     {
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                        if (k >= 3 && ((i == 0 && j == 1) ||
+                                       (i > 0 && j == 0)))
+                            continue;
+#endif
+                        {
                         vp8_prob *const p = pc->fc.coef_probs [i][j][k] + l;
                         int u = vp8_read(bc, vp8_coef_update_probs [i][j][k][l]);
                         if (u)
@@ -810,6 +816,7 @@ static void read_coef_probs3(VP8D_COMP *pbi)
                             int delp = vp8_decode_term_subexp(bc, SUBEXP_PARAM, 255);
                             *p = (vp8_prob)inv_remap_prob(delp, *p);
                         }
+                        }
                     }
             }
         }
@@ -824,6 +831,12 @@ static void read_coef_probs3(VP8D_COMP *pbi)
                     for (j = !i; j < COEF_BANDS; j++)
                         for (k = 0; k < PREV_COEF_CONTEXTS; k++)
                         {
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                            if (k >= 3 && ((i == 0 && j == 1) ||
+                                           (i > 0 && j == 0)))
+                                continue;
+#endif
+                            {
                             vp8_prob *const p = pc->fc.coef_probs_8x8 [i][j][k] + l;
                             int u = vp8_read(bc, vp8_coef_update_probs_8x8 [i][j][k][l]);
                             if (u)
@@ -831,6 +844,7 @@ static void read_coef_probs3(VP8D_COMP *pbi)
                                 int delp = vp8_decode_term_subexp(bc, SUBEXP_PARAM, 255);
                                 *p = (vp8_prob)inv_remap_prob(delp, *p);
                             }
+                            }
                         }
                 }
             }
@@ -852,6 +866,12 @@ static void read_coef_probs2(VP8D_COMP *pbi)
                 for (j = !i; j < COEF_BANDS; j++)
                     for (k = 0; k < PREV_COEF_CONTEXTS; k++)
                     {
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                        if (k >= 3 && ((i == 0 && j == 1) ||
+                                       (i > 0 && j == 0)))
+                            continue;
+#endif
+                        {
                         vp8_prob *const p = pc->fc.coef_probs [i][j][k] + l;
                         int u = vp8_read(bc, vp8_coef_update_probs [i][j][k][l]);
                         if (u)
@@ -859,6 +879,7 @@ static void read_coef_probs2(VP8D_COMP *pbi)
                             int delp = vp8_decode_term_subexp(bc, SUBEXP_PARAM, 255);
                             *p = (vp8_prob)inv_remap_prob(delp, *p);
                         }
+                        }
                     }
         }
     }
@@ -872,6 +893,12 @@ static void read_coef_probs2(VP8D_COMP *pbi)
                     for (j = !i; j < COEF_BANDS; j++)
                         for (k = 0; k < PREV_COEF_CONTEXTS; k++)
                         {
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                            if (k >= 3 && ((i == 0 && j == 1) ||
+                                           (i > 0 && j == 0)))
+                                continue;
+#endif
+                            {
                             vp8_prob *const p = pc->fc.coef_probs_8x8 [i][j][k] + l;
 
                             int u = vp8_read(bc, vp8_coef_update_probs_8x8 [i][j][k][l]);
@@ -880,6 +907,7 @@ static void read_coef_probs2(VP8D_COMP *pbi)
                                 int delp = vp8_decode_term_subexp(bc, SUBEXP_PARAM, 255);
                                 *p = (vp8_prob)inv_remap_prob(delp, *p);
                             }
+                            }
                         }
             }
         }
@@ -904,6 +932,12 @@ static void read_coef_probs(VP8D_COMP *pbi)
             for (j = 0; j < COEF_BANDS; j++)
 #endif
                 for (k = 0; k < PREV_COEF_CONTEXTS; k++)
+                {
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >= 3 && ((i == 0 && j == 1) ||
+                                   (i > 0 && j == 0)))
+                        continue;
+#endif
                     for (l = 0; l < ENTROPY_NODES; l++)
                     {
                         vp8_prob *const p = pc->fc.coef_probs [i][j][k] + l;
@@ -920,6 +954,7 @@ static void read_coef_probs(VP8D_COMP *pbi)
 #endif
                         }
                     }
+                }
         }
     }
 
@@ -933,6 +968,12 @@ static void read_coef_probs(VP8D_COMP *pbi)
             for (j = 0; j < COEF_BANDS; j++)
 #endif
                 for (k = 0; k < PREV_COEF_CONTEXTS; k++)
+                {
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >= 3 && ((i == 0 && j == 1) ||
+                                   (i > 0 && j == 0)))
+                        continue;
+#endif
                     for (l = 0; l < ENTROPY_NODES; l++)
                     {
 
@@ -948,6 +989,7 @@ static void read_coef_probs(VP8D_COMP *pbi)
 #endif
                         }
                     }
+                }
     }
 }
 
@@ -1390,7 +1432,6 @@ int vp8_decode_frame(VP8D_COMP *pbi)
     read_coef_probs(pbi);
 #endif
 
-
     vpx_memcpy(&xd->pre, &pc->yv12_fb[pc->lst_fb_idx], sizeof(YV12_BUFFER_CONFIG));
     vpx_memcpy(&xd->dst, &pc->yv12_fb[pc->new_fb_idx], sizeof(YV12_BUFFER_CONFIG));
 
index 106e096..966c0f1 100644 (file)
 #define BOOL_DATA UINT8
 
 #define OCB_X PREV_COEF_CONTEXTS * ENTROPY_NODES
+
+#if CONFIG_EXPANDED_COEF_CONTEXT
+DECLARE_ALIGNED(16, static const unsigned short, coef_bands_x[16]) =
+#else
 DECLARE_ALIGNED(16, static const unsigned char, coef_bands_x[16]) =
+#endif
 {
     0 * OCB_X, 1 * OCB_X, 2 * OCB_X, 3 * OCB_X,
     6 * OCB_X, 4 * OCB_X, 5 * OCB_X, 6 * OCB_X,
     6 * OCB_X, 6 * OCB_X, 6 * OCB_X, 6 * OCB_X,
     6 * OCB_X, 7 * OCB_X, 7 * OCB_X, 7 * OCB_X
 };
-DECLARE_ALIGNED(64, static const unsigned char, coef_bands_x_8x8[64]) = {
+#if CONFIG_EXPANDED_COEF_CONTEXT
+DECLARE_ALIGNED(16, static const unsigned short, coef_bands_x_8x8[64]) =
+#else
+DECLARE_ALIGNED(64, static const unsigned char, coef_bands_x_8x8[64]) =
+#endif
+{
   0 * OCB_X, 1 * OCB_X, 2 * OCB_X, 3 * OCB_X, 5 * OCB_X, 4 * OCB_X, 4 * OCB_X, 5 * OCB_X,
   5 * OCB_X, 3 * OCB_X, 6 * OCB_X, 3 * OCB_X, 5 * OCB_X, 4 * OCB_X, 6 * OCB_X, 6 * OCB_X,
   6 * OCB_X, 5 * OCB_X, 5 * OCB_X, 6 * OCB_X, 6 * OCB_X, 6 * OCB_X, 6 * OCB_X, 6 * OCB_X,
@@ -208,9 +218,17 @@ DECLARE_ALIGNED(16, extern const unsigned char, vp8_norm[256]);
         NORMALIZE \
     }
 
+//#define PREV_CONTEXT_INC(val) (2+((val)>2))
+//#define PREV_CONTEXT_INC(val) (vp8_prev_token_class[(val)])
+#if CONFIG_EXPANDED_COEF_CONTEXT
+#define PREV_CONTEXT_INC(val) (vp8_prev_token_class[(val)>10?10:(val)])
+#else
+#define PREV_CONTEXT_INC(val) (2)
+#endif
+
 #define DECODE_SIGN_WRITE_COEFF_AND_CHECK_EXIT(val) \
     DECODE_AND_APPLYSIGN(val) \
-    Prob = coef_probs + (ENTROPY_NODES*2); \
+    Prob = coef_probs + (ENTROPY_NODES*PREV_CONTEXT_INC(val)); \
     if(c < 15){\
         qcoeff_ptr [ scan[c] ] = (INT16) v; \
         ++c; \
@@ -221,7 +239,7 @@ DECLARE_ALIGNED(16, extern const unsigned char, vp8_norm[256]);
 
 #define DECODE_SIGN_WRITE_COEFF_AND_CHECK_EXIT_8x8_2(val) \
     DECODE_AND_APPLYSIGN(val) \
-    Prob = coef_probs + (ENTROPY_NODES*2); \
+    Prob = coef_probs + (ENTROPY_NODES*PREV_CONTEXT_INC(val)); \
     if(c < 3){\
         qcoeff_ptr [ scan[c] ] = (INT16) v; \
         ++c; \
@@ -230,7 +248,7 @@ DECLARE_ALIGNED(16, extern const unsigned char, vp8_norm[256]);
     goto BLOCK_FINISHED_8x8;
 #define DECODE_SIGN_WRITE_COEFF_AND_CHECK_EXIT_8x8(val) \
     DECODE_AND_APPLYSIGN(val) \
-    Prob = coef_probs + (ENTROPY_NODES*2); \
+    Prob = coef_probs + (ENTROPY_NODES*PREV_CONTEXT_INC(val)); \
     if(c < 63){\
         qcoeff_ptr [ scan[c] ] = (INT16) v; \
         ++c; \
index 7155e1a..a2bce4e 100644 (file)
@@ -1424,6 +1424,10 @@ static int default_coef_context_savings(VP8_COMP *cpi)
                 //unsigned int branch_ct   [ENTROPY_NODES] [2];
 
                 int t = 0;      /* token/prob index */
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
 
                 vp8_tree_probs_from_distribution(
                     MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
@@ -1473,6 +1477,10 @@ void build_coeff_contexts(VP8_COMP *cpi)
             do
             {
                 int t;
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                    continue;
+#endif
                 vp8_tree_probs_from_distribution(
                     MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
                     cpi->frame_coef_probs [i][j][k],
@@ -1512,6 +1520,10 @@ void build_coeff_contexts(VP8_COMP *cpi)
                     //vp8_prob new_p           [ENTROPY_NODES];
                     //unsigned int branch_ct   [ENTROPY_NODES] [2];
                     int t = 0;      /* token/prob index */
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
                     vp8_tree_probs_from_distribution(
                         MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
                         cpi->frame_coef_probs_8x8 [i][j][k],
@@ -1569,6 +1581,10 @@ static void update_coef_probs3(VP8_COMP *cpi)
                     const vp8_prob upd = vp8_coef_update_probs [i][j][k][t];
                     int s;
                     int u = 0;
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
 
 #if defined(SEARCH_NEWP)
                     s = prob_update_savings_search(
@@ -1605,6 +1621,10 @@ static void update_coef_probs3(VP8_COMP *cpi)
                     int s;
                     int u = 0;
 
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
 #if defined(SEARCH_NEWP)
                     s = prob_update_savings_search(
                         cpi->frame_branch_ct [i][j][k][t], *Pold, &newp, upd);
@@ -1650,6 +1670,10 @@ static void update_coef_probs3(VP8_COMP *cpi)
                     int s;
                     int u = 0;
 
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
 #if defined(SEARCH_NEWP)
                     s = prob_update_savings_search(
                             cpi->frame_branch_ct_8x8 [i][j][k][t],
@@ -1688,6 +1712,10 @@ static void update_coef_probs3(VP8_COMP *cpi)
                     int s;
                     int u = 0;
 
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
 #if defined(SEARCH_NEWP)
                     s = prob_update_savings_search(
                         cpi->frame_branch_ct_8x8 [i][j][k][t],
@@ -1742,6 +1770,10 @@ static void update_coef_probs2(VP8_COMP *cpi)
             {
                 for (k = 0; k < PREV_COEF_CONTEXTS; ++k)
                 {
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
                     vp8_prob newp = cpi->frame_coef_probs [i][j][k][t];
                     vp8_prob *Pold = cpi->common.fc.coef_probs [i][j][k] + t;
                     const vp8_prob upd = vp8_coef_update_probs [i][j][k][t];
@@ -1785,7 +1817,10 @@ static void update_coef_probs2(VP8_COMP *cpi)
                     const vp8_prob upd = vp8_coef_update_probs [i][j][k][t];
                     int s;
                     int u = 0;
-
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
 #if defined(SEARCH_NEWP)
                     s = prob_update_savings_search(
                         cpi->frame_branch_ct [i][j][k][t], *Pold, &newp, upd);
@@ -1829,7 +1864,10 @@ static void update_coef_probs2(VP8_COMP *cpi)
                     const vp8_prob upd = vp8_coef_update_probs_8x8 [i][j][k][t];
                     int s;
                     int u = 0;
-
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
 #if defined(SEARCH_NEWP)
                     s = prob_update_savings_search(
                             cpi->frame_branch_ct_8x8 [i][j][k][t],
@@ -1870,7 +1908,10 @@ static void update_coef_probs2(VP8_COMP *cpi)
                     const vp8_prob upd = vp8_coef_update_probs_8x8 [i][j][k][t];
                     int s;
                     int u = 0;
-
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
 #if defined(SEARCH_NEWP)
                         s = prob_update_savings_search(
                             cpi->frame_branch_ct_8x8 [i][j][k][t],
@@ -1939,7 +1980,10 @@ static void update_coef_probs(VP8_COMP *cpi)
                     const vp8_prob upd = vp8_coef_update_probs [i][j][k][t];
                     int s = prev_coef_savings[t];
                     int u = 0;
-
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                    if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                        continue;
+#endif
 #if CONFIG_NEWUPDATE && defined(SEARCH_NEWP)
                     s = prob_update_savings_search(
                             cpi->frame_branch_ct [i][j][k][t],
@@ -2007,6 +2051,10 @@ static void update_coef_probs(VP8_COMP *cpi)
                         const vp8_prob upd = vp8_coef_update_probs [i][j][k][t];
                         int s = prev_coef_savings[t];
                         int u = 0;
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                        if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                            continue;
+#endif
 
 #if CONFIG_NEWUPDATE && defined(SEARCH_NEWP)
                         s = prob_update_savings_search(
@@ -2088,6 +2136,10 @@ static void update_coef_probs(VP8_COMP *cpi)
                         vp8_prob *Pold = cpi->common.fc.coef_probs_8x8 [i][j][k] + t;
                         const vp8_prob oldp = *Pold;
                         const vp8_prob upd = vp8_coef_update_probs_8x8 [i][j][k][t];
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                        if (k >=3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
+                            continue;
+#endif
 #if CONFIG_NEWUPDATE && defined(SEARCH_NEWP)
                         const int s = prob_update_savings_search(ct, oldp, &newp, upd);
                         const int u = s > 0 && newp != oldp ? 1 : 0;
@@ -2165,6 +2217,11 @@ static void update_coef_probs(VP8_COMP *cpi)
 #else
                             const int s = prob_update_savings(ct, oldp, newp, upd);
                             const int u = s > 0 ? 1 : 0;
+#if CONFIG_EXPANDED_COEF_CONTEXT
+                            if (k >=3 && ((i == 0 && j == 1) ||
+                                          (i > 0 && j == 0)))
+                                continue;
+#endif
 #endif
                             vp8_write(w, u, upd);
 #ifdef ENTROPY_STATS
index 922235e..017a985 100644 (file)
@@ -229,7 +229,6 @@ static void fill_token_costs(
         for (j = 0; j < COEF_BANDS; j++)
             for (k = 0; k < PREV_COEF_CONTEXTS; k++)
             {
-
                 if(k == 0 && ((j > 0 && i > 0) || (j > 1 && i == 0)))
                     vp8_cost_tokens_skip((int *)(c [i][j][k]), p [i][j][k], vp8_coef_tree);
                 else
@@ -371,12 +370,12 @@ void vp8_initialize_rd_consts(VP8_COMP *cpi, int QIndex)
 
     fill_token_costs(
         cpi->mb.token_costs,
-        (const vp8_prob( *)[8][3][11]) cpi->common.fc.coef_probs
+        (const vp8_prob( *)[8][PREV_COEF_CONTEXTS][11]) cpi->common.fc.coef_probs
     );
 
     fill_token_costs(
         cpi->mb.token_costs_8x8,
-        (const vp8_prob( *)[8][3][11]) cpi->common.fc.coef_probs_8x8
+        (const vp8_prob( *)[8][PREV_COEF_CONTEXTS][11]) cpi->common.fc.coef_probs_8x8
     );
     /*rough estimate for costing*/
     cpi->common.kf_ymode_probs_index = cpi->common.base_qindex>>4;
index 6d65d5e..e9935b0 100644 (file)
@@ -629,9 +629,7 @@ void print_context_counters()
 
     fprintf(f, "\n/* *** GENERATED FILE: DO NOT EDIT *** */\n\n");
 
-    fprintf(f, "int Contexts[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS];\n\n");
-
-    fprintf(f, "const int default_contexts[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS] = {");
+    fprintf(f, "static const unsigned int\nvp8_default_coef_counts[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS] = {");
 
 # define Comma( X) (X? ",":"")
 
@@ -678,10 +676,11 @@ void print_context_counters()
         fprintf(f, "\n  }");
     }
     while (++type < BLOCK_TYPES);
+    fprintf(f, "\n};\n");
 
-    fprintf(f, "int Contexts_8x8[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS];\n\n");
-
-    fprintf(f, "const int default_contexts_8x8[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS] = {");
+    fprintf(f, "static const unsigned int\nvp8_default_coef_counts_8x8"
+            "[BLOCK_TYPES] [COEF_BANDS]"
+            "[PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS] = {");
 
     type = 0;
 
@@ -705,7 +704,7 @@ void print_context_counters()
 
                 do
                 {
-                    const INT64 x = context_counters [type] [band] [pt] [t];
+                    const INT64 x = context_counters_8x8 [type] [band] [pt] [t];
                     const int y = (int) x;
 
                     assert(x == (INT64) y);  /* no overflow handling yet */
@@ -728,6 +727,113 @@ void print_context_counters()
     while (++type < BLOCK_TYPES);
 
     fprintf(f, "\n};\n");
+
+    fprintf(f, "static const vp8_prob\n"
+            "vp8_default_coef_probs[BLOCK_TYPES] [COEF_BANDS] \n"
+            "[PREV_COEF_CONTEXTS] [ENTROPY_NODES] = {");
+    type = 0;
+
+    do
+    {
+        fprintf(f, "%s\n  { /* block Type %d */", Comma(type), type);
+
+        band = 0;
+
+        do
+        {
+            fprintf(f, "%s\n    { /* Coeff Band %d */", Comma(band), band);
+
+            pt = 0;
+
+            do
+            {
+                fprintf(f, "%s\n      {", Comma(pt));
+
+                unsigned int branch_ct [ENTROPY_NODES] [2];
+                unsigned int coef_counts[MAX_ENTROPY_TOKENS];
+                vp8_prob coef_probs[ENTROPY_NODES];
+                for (t=0; t<MAX_ENTROPY_TOKENS; ++t)
+                    coef_counts[t]=context_counters [type] [band] [pt] [t];
+                vp8_tree_probs_from_distribution(
+                    MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
+                    coef_probs, branch_ct, coef_counts, 256, 1);
+
+                t = 0;
+
+                do
+                {
+                    fprintf(f, "%s %d", Comma(t), coef_probs[t]);
+
+                }
+                while (++t < ENTROPY_NODES);
+
+                fprintf(f, "}");
+            }
+            while (++pt < PREV_COEF_CONTEXTS);
+
+            fprintf(f, "\n    }");
+
+        }
+        while (++band < COEF_BANDS);
+
+        fprintf(f, "\n  }");
+    }
+    while (++type < BLOCK_TYPES);
+    fprintf(f, "\n};\n");
+
+    fprintf(f, "static const vp8_prob\n"
+            "vp8_default_coef_probs_8x8[BLOCK_TYPES] [COEF_BANDS]\n"
+            "[PREV_COEF_CONTEXTS] [ENTROPY_NODES] = {");
+    type = 0;
+
+    do
+    {
+        fprintf(f, "%s\n  { /* block Type %d */", Comma(type), type);
+
+        band = 0;
+
+        do
+        {
+            fprintf(f, "%s\n    { /* Coeff Band %d */", Comma(band), band);
+
+            pt = 0;
+
+            do
+            {
+                fprintf(f, "%s\n      {", Comma(pt));
+
+                unsigned int branch_ct [ENTROPY_NODES] [2];
+                unsigned int coef_counts[MAX_ENTROPY_TOKENS];
+                vp8_prob coef_probs[ENTROPY_NODES];
+                for (t=0; t<MAX_ENTROPY_TOKENS; ++t)
+                    coef_counts[t]=context_counters_8x8[type] [band] [pt] [t];
+                vp8_tree_probs_from_distribution(
+                    MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
+                    coef_probs, branch_ct, coef_counts, 256, 1);
+
+                t = 0;
+
+                do
+                {
+                    fprintf(f, "%s %d", Comma(t), coef_probs[t]);
+
+                }
+                while (++t < ENTROPY_NODES);
+
+                fprintf(f, "}");
+            }
+            while (++pt < PREV_COEF_CONTEXTS);
+
+            fprintf(f, "\n    }");
+
+        }
+        while (++band < COEF_BANDS);
+
+        fprintf(f, "\n  }");
+    }
+    while (++type < BLOCK_TYPES);
+    fprintf(f, "\n};\n");
+
     fclose(f);
 }