Merge "Reduce computational complexity of generic C loop filter."
[profile/ivi/libvpx.git] / vp8 / common / modecontext.c
1 /*
2  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10
11
12 #include "entropymode.h"
13
14 const unsigned int vp8_kf_default_bmode_counts [VP8_BINTRAMODES] [VP8_BINTRAMODES] [VP8_BINTRAMODES] =
15 {
16     {
17         /*Above Mode :  0*/
18         { 43438,   2195,    470,    316,    615,    171,    217,    412,    124,    160, }, /* left_mode 0 */
19         {  5722,   2751,    296,    291,     81,     68,     80,    101,    100,    170, }, /* left_mode 1 */
20         {  1629,    201,    307,     25,     47,     16,     34,     72,     19,     28, }, /* left_mode 2 */
21         {   332,    266,     36,    500,     20,     65,     23,     14,    154,    106, }, /* left_mode 3 */
22         {   450,     97,     10,     24,    117,     10,      2,     12,      8,     71, }, /* left_mode 4 */
23         {   384,     49,     29,     44,     12,    162,     51,      5,     87,     42, }, /* left_mode 5 */
24         {   495,     53,    157,     27,     14,     57,    180,     17,     17,     34, }, /* left_mode 6 */
25         {   695,     64,     62,      9,     27,      5,      3,    147,     10,     26, }, /* left_mode 7 */
26         {   230,     54,     20,    124,     16,    125,     29,     12,    283,     37, }, /* left_mode 8 */
27         {   260,     87,     21,    120,     32,     16,     33,     16,     33,    203, }, /* left_mode 9 */
28     },
29     {
30         /*Above Mode :  1*/
31         {  3934,   2573,    355,    137,    128,     87,    133,    117,     37,     27, }, /* left_mode 0 */
32         {  1036,   1929,    278,    135,     27,     37,     48,     55,     41,     91, }, /* left_mode 1 */
33         {   223,    256,    253,     15,     13,      9,     28,     64,      3,      3, }, /* left_mode 2 */
34         {   120,    129,     17,    316,     15,     11,      9,      4,     53,     74, }, /* left_mode 3 */
35         {   129,     58,      6,     11,     38,      2,      0,      5,      2,     67, }, /* left_mode 4 */
36         {    53,     22,     11,     16,      8,     26,     14,      3,     19,     12, }, /* left_mode 5 */
37         {    59,     26,     61,     11,      4,      9,     35,     13,      8,      8, }, /* left_mode 6 */
38         {   101,     52,     40,      8,      5,      2,      8,     59,      2,     20, }, /* left_mode 7 */
39         {    48,     34,     10,     52,      8,     15,      6,      6,     63,     20, }, /* left_mode 8 */
40         {    96,     48,     22,     63,     11,     14,      5,      8,      9,     96, }, /* left_mode 9 */
41     },
42     {
43         /*Above Mode :  2*/
44         {   709,    461,    506,     36,     27,     33,    151,     98,     24,      6, }, /* left_mode 0 */
45         {   201,    375,    442,     27,     13,      8,     46,     58,      6,     19, }, /* left_mode 1 */
46         {   122,    140,    417,      4,     13,      3,     33,     59,      4,      2, }, /* left_mode 2 */
47         {    36,     17,     22,     16,      6,      8,     12,     17,      9,     21, }, /* left_mode 3 */
48         {    51,     15,      7,      1,     14,      0,      4,      5,      3,     22, }, /* left_mode 4 */
49         {    18,     11,     30,      9,      7,     20,     11,      5,      2,      6, }, /* left_mode 5 */
50         {    38,     21,    103,      9,      4,     12,     79,     13,      2,      5, }, /* left_mode 6 */
51         {    64,     17,     66,      2,     12,      4,      2,     65,      4,      5, }, /* left_mode 7 */
52         {    14,      7,      7,     16,      3,     11,      4,     13,     15,     16, }, /* left_mode 8 */
53         {    36,      8,     32,      9,      9,      4,     14,      7,      6,     24, }, /* left_mode 9 */
54     },
55     {
56         /*Above Mode :  3*/
57         {  1340,    173,     36,    119,     30,     10,     13,     10,     20,     26, }, /* left_mode 0 */
58         {   156,    293,     26,    108,      5,     16,      2,      4,     23,     30, }, /* left_mode 1 */
59         {    60,     34,     13,      7,      3,      3,      0,      8,      4,      5, }, /* left_mode 2 */
60         {    72,     64,      1,    235,      3,      9,      2,      7,     28,     38, }, /* left_mode 3 */
61         {    29,     14,      1,      3,      5,      0,      2,      2,      5,     13, }, /* left_mode 4 */
62         {    22,      7,      4,     11,      2,      5,      1,      2,      6,      4, }, /* left_mode 5 */
63         {    18,     14,      5,      6,      4,      3,     14,      0,      9,      2, }, /* left_mode 6 */
64         {    41,     10,      7,      1,      2,      0,      0,     10,      2,      1, }, /* left_mode 7 */
65         {    23,     19,      2,     33,      1,      5,      2,      0,     51,      8, }, /* left_mode 8 */
66         {    33,     26,      7,     53,      3,      9,      3,      3,      9,     19, }, /* left_mode 9 */
67     },
68     {
69         /*Above Mode :  4*/
70         {   410,    165,     43,     31,     66,     15,     30,     54,      8,     17, }, /* left_mode 0 */
71         {   115,     64,     27,     18,     30,      7,     11,     15,      4,     19, }, /* left_mode 1 */
72         {    31,     23,     25,      1,      7,      2,      2,     10,      0,      5, }, /* left_mode 2 */
73         {    17,      4,      1,      6,      8,      2,      7,      5,      5,     21, }, /* left_mode 3 */
74         {   120,     12,      1,      2,     83,      3,      0,      4,      1,     40, }, /* left_mode 4 */
75         {     4,      3,      1,      2,      1,      2,      5,      0,      3,      6, }, /* left_mode 5 */
76         {    10,      2,     13,      6,      6,      6,      8,      2,      4,      5, }, /* left_mode 6 */
77         {    58,     10,      5,      1,     28,      1,      1,     33,      1,      9, }, /* left_mode 7 */
78         {     8,      2,      1,      4,      2,      5,      1,      1,      2,     10, }, /* left_mode 8 */
79         {    76,      7,      5,      7,     18,      2,      2,      0,      5,     45, }, /* left_mode 9 */
80     },
81     {
82         /*Above Mode :  5*/
83         {   444,     46,     47,     20,     14,    110,     60,     14,     60,      7, }, /* left_mode 0 */
84         {    59,     57,     25,     18,      3,     17,     21,      6,     14,      6, }, /* left_mode 1 */
85         {    24,     17,     20,      6,      4,     13,      7,      2,      3,      2, }, /* left_mode 2 */
86         {    13,     11,      5,     14,      4,      9,      2,      4,     15,      7, }, /* left_mode 3 */
87         {     8,      5,      2,      1,      4,      0,      1,      1,      2,     12, }, /* left_mode 4 */
88         {    19,      5,      5,      7,      4,     40,      6,      3,     10,      4, }, /* left_mode 5 */
89         {    16,      5,      9,      1,      1,     16,     26,      2,     10,      4, }, /* left_mode 6 */
90         {    11,      4,      8,      1,      1,      4,      4,      5,      4,      1, }, /* left_mode 7 */
91         {    15,      1,      3,      7,      3,     21,      7,      1,     34,      5, }, /* left_mode 8 */
92         {    18,      5,      1,      3,      4,      3,      7,      1,      2,      9, }, /* left_mode 9 */
93     },
94     {
95         /*Above Mode :  6*/
96         {   476,    149,     94,     13,     14,     77,    291,     27,     23,      3, }, /* left_mode 0 */
97         {    79,     83,     42,     14,      2,     12,     63,      2,      4,     14, }, /* left_mode 1 */
98         {    43,     36,     55,      1,      3,      8,     42,     11,      5,      1, }, /* left_mode 2 */
99         {     9,      9,      6,     16,      1,      5,      6,      3,     11,     10, }, /* left_mode 3 */
100         {    10,      3,      1,      3,     10,      1,      0,      1,      1,      4, }, /* left_mode 4 */
101         {    14,      6,     15,      5,      1,     20,     25,      2,      5,      0, }, /* left_mode 5 */
102         {    28,      7,     51,      1,      0,      8,    127,      6,      2,      5, }, /* left_mode 6 */
103         {    13,      3,      3,      2,      3,      1,      2,      8,      1,      2, }, /* left_mode 7 */
104         {    10,      3,      3,      3,      3,      8,      2,      2,      9,      3, }, /* left_mode 8 */
105         {    13,      7,     11,      4,      0,      4,      6,      2,      5,      8, }, /* left_mode 9 */
106     },
107     {
108         /*Above Mode :  7*/
109         {   376,    135,    119,      6,     32,      8,     31,    224,      9,      3, }, /* left_mode 0 */
110         {    93,     60,     54,      6,     13,      7,      8,     92,      2,     12, }, /* left_mode 1 */
111         {    74,     36,     84,      0,      3,      2,      9,     67,      2,      1, }, /* left_mode 2 */
112         {    19,      4,      4,      8,      8,      2,      4,      7,      6,     16, }, /* left_mode 3 */
113         {    51,      7,      4,      1,     77,      3,      0,     14,      1,     15, }, /* left_mode 4 */
114         {     7,      7,      5,      7,      4,      7,      4,      5,      0,      3, }, /* left_mode 5 */
115         {    18,      2,     19,      2,      2,      4,     12,     11,      1,      2, }, /* left_mode 6 */
116         {   129,      6,     27,      1,     21,      3,      0,    189,      0,      6, }, /* left_mode 7 */
117         {     9,      1,      2,      8,      3,      7,      0,      5,      3,      3, }, /* left_mode 8 */
118         {    20,      4,      5,     10,      4,      2,      7,     17,      3,     16, }, /* left_mode 9 */
119     },
120     {
121         /*Above Mode :  8*/
122         {   617,     68,     34,     79,     11,     27,     25,     14,     75,     13, }, /* left_mode 0 */
123         {    51,     82,     21,     26,      6,     12,     13,      1,     26,     16, }, /* left_mode 1 */
124         {    29,      9,     12,     11,      3,      7,      1,     10,      2,      2, }, /* left_mode 2 */
125         {    17,     19,     11,     74,      4,      3,      2,      0,     58,     13, }, /* left_mode 3 */
126         {    10,      1,      1,      3,      4,      1,      0,      2,      1,      8, }, /* left_mode 4 */
127         {    14,      4,      5,      5,      1,     13,      2,      0,     27,      8, }, /* left_mode 5 */
128         {    10,      3,      5,      4,      1,      7,      6,      4,      5,      1, }, /* left_mode 6 */
129         {    10,      2,      6,      2,      1,      1,      1,      4,      2,      1, }, /* left_mode 7 */
130         {    14,      8,      5,     23,      2,     12,      6,      2,    117,      5, }, /* left_mode 8 */
131         {     9,      6,      2,     19,      1,      6,      3,      2,      9,      9, }, /* left_mode 9 */
132     },
133     {
134         /*Above Mode :  9*/
135         {   680,     73,     22,     38,     42,      5,     11,      9,      6,     28, }, /* left_mode 0 */
136         {   113,    112,     21,     22,     10,      2,      8,      4,      6,     42, }, /* left_mode 1 */
137         {    44,     20,     24,      6,      5,      4,      3,      3,      1,      2, }, /* left_mode 2 */
138         {    40,     23,      7,     71,      5,      2,      4,      1,      7,     22, }, /* left_mode 3 */
139         {    85,      9,      4,      4,     17,      2,      0,      3,      2,     23, }, /* left_mode 4 */
140         {    13,      4,      2,      6,      1,      7,      0,      1,      7,      6, }, /* left_mode 5 */
141         {    26,      6,      8,      3,      2,      3,      8,      1,      5,      4, }, /* left_mode 6 */
142         {    54,      8,      9,      6,      7,      0,      1,     11,      1,      3, }, /* left_mode 7 */
143         {     9,     10,      4,     13,      2,      5,      4,      2,     14,      8, }, /* left_mode 8 */
144         {    92,      9,      5,     19,     15,      3,      3,      1,      6,     58, }, /* left_mode 9 */
145     },
146 };