Fixing silk fixed point
[opus.git] / silk / silk_tables_pulses_per_block.c
1 /***********************************************************************\r
2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. \r
3 Redistribution and use in source and binary forms, with or without \r
4 modification, (subject to the limitations in the disclaimer below) \r
5 are permitted provided that the following conditions are met:\r
6 - Redistributions of source code must retain the above copyright notice,\r
7 this list of conditions and the following disclaimer.\r
8 - Redistributions in binary form must reproduce the above copyright \r
9 notice, this list of conditions and the following disclaimer in the \r
10 documentation and/or other materials provided with the distribution.\r
11 - Neither the name of Skype Limited, nor the names of specific \r
12 contributors, may be used to endorse or promote products derived from \r
13 this software without specific prior written permission.\r
14 NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED \r
15 BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND \r
16 CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,\r
17 BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND \r
18 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE \r
19 COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, \r
20 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
21 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF \r
22 USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON \r
23 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \r
25 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
26 ***********************************************************************/\r
27 \r
28 #include "silk_tables.h"\r
29 \r
30 const SKP_uint8 silk_max_pulses_table[ 4 ] = {\r
31              8,     10,     12,     16\r
32 };\r
33 \r
34 const SKP_uint8 silk_pulses_per_block_iCDF[ 10 ][ 18 ] = {\r
35 {\r
36            125,     51,     26,     18,     15,     12,     11,     10,\r
37              9,      8,      7,      6,      5,      4,      3,      2,\r
38              1,      0\r
39 },\r
40 {\r
41            198,    105,     45,     22,     15,     12,     11,     10,\r
42              9,      8,      7,      6,      5,      4,      3,      2,\r
43              1,      0\r
44 },\r
45 {\r
46            213,    162,    116,     83,     59,     43,     32,     24,\r
47             18,     15,     12,      9,      7,      6,      5,      3,\r
48              2,      0\r
49 },\r
50 {\r
51            239,    187,    116,     59,     28,     16,     11,     10,\r
52              9,      8,      7,      6,      5,      4,      3,      2,\r
53              1,      0\r
54 },\r
55 {\r
56            250,    229,    188,    135,     86,     51,     30,     19,\r
57             13,     10,      8,      6,      5,      4,      3,      2,\r
58              1,      0\r
59 },\r
60 {\r
61            249,    235,    213,    185,    156,    128,    103,     83,\r
62             66,     53,     42,     33,     26,     21,     17,     13,\r
63             10,      0\r
64 },\r
65 {\r
66            254,    249,    235,    206,    164,    118,     77,     46,\r
67             27,     16,     10,      7,      5,      4,      3,      2,\r
68              1,      0\r
69 },\r
70 {\r
71            255,    253,    249,    239,    220,    191,    156,    119,\r
72             85,     57,     37,     23,     15,     10,      6,      4,\r
73              2,      0\r
74 },\r
75 {\r
76            255,    253,    251,    246,    237,    223,    203,    179,\r
77            152,    124,     98,     75,     55,     40,     29,     21,\r
78             15,      0\r
79 },\r
80 {\r
81            255,    254,    253,    247,    220,    162,    106,     67,\r
82             42,     28,     18,     12,      9,      6,      4,      3,\r
83              2,      0\r
84 }\r
85 };\r
86 \r
87 const SKP_uint8 silk_pulses_per_block_BITS_Q5[ 9 ][ 18 ] = {\r
88 {\r
89             31,     57,    107,    160,    205,    205,    255,    255,\r
90            255,    255,    255,    255,    255,    255,    255,    255,\r
91            255,    255\r
92 },\r
93 {\r
94             69,     47,     67,    111,    166,    205,    255,    255,\r
95            255,    255,    255,    255,    255,    255,    255,    255,\r
96            255,    255\r
97 },\r
98 {\r
99             82,     74,     79,     95,    109,    128,    145,    160,\r
100            173,    205,    205,    205,    224,    255,    255,    224,\r
101            255,    224\r
102 },\r
103 {\r
104            125,     74,     59,     69,     97,    141,    182,    255,\r
105            255,    255,    255,    255,    255,    255,    255,    255,\r
106            255,    255\r
107 },\r
108 {\r
109            173,    115,     85,     73,     76,     92,    115,    145,\r
110            173,    205,    224,    224,    255,    255,    255,    255,\r
111            255,    255\r
112 },\r
113 {\r
114            166,    134,    113,    102,    101,    102,    107,    118,\r
115            125,    138,    145,    155,    166,    182,    192,    192,\r
116            205,    150\r
117 },\r
118 {\r
119            224,    182,    134,    101,     83,     79,     85,     97,\r
120            120,    145,    173,    205,    224,    255,    255,    255,\r
121            255,    255\r
122 },\r
123 {\r
124            255,    224,    192,    150,    120,    101,     92,     89,\r
125             93,    102,    118,    134,    160,    182,    192,    224,\r
126            224,    224\r
127 },\r
128 {\r
129            255,    224,    224,    182,    155,    134,    118,    109,\r
130            104,    102,    106,    111,    118,    131,    145,    160,\r
131            173,    131\r
132 }\r
133 };\r
134 \r
135 const SKP_uint8 silk_rate_levels_iCDF[ 2 ][ 9 ] = \r
136 {\r
137 {\r
138            241,    190,    178,    132,     87,     74,     41,     14,\r
139              0\r
140 },\r
141 {\r
142            223,    193,    157,    140,    106,     57,     39,     18,\r
143              0\r
144 }\r
145 };\r
146 \r
147 const SKP_uint8 silk_rate_levels_BITS_Q5[ 2 ][ 9 ] = \r
148 {\r
149 {\r
150            131,     74,    141,     79,     80,    138,     95,    104,\r
151            134\r
152 },\r
153 {\r
154             95,     99,     91,    125,     93,     76,    123,    115,\r
155            123\r
156 }\r
157 };\r
158 \r
159 const SKP_uint8 silk_shell_code_table0[ 44 ] = {\r
160            128,      0,    214,     42,      0,    235,    128,     21,\r
161              0,    244,    184,     72,     11,      0,    248,    214,\r
162            128,     42,      7,      0,    248,    225,    170,     80,\r
163             25,      5,      0,    251,    236,    198,    126,     54,\r
164             18,      3,      0,    250,    238,    211,    159,     82,\r
165             35,     15,      5,      0\r
166 };\r
167 \r
168 const SKP_uint8 silk_shell_code_table1[ 65 ] = {\r
169            129,      0,    207,     50,      0,    236,    129,     20,\r
170              0,    245,    185,     72,     10,      0,    249,    213,\r
171            129,     42,      6,      0,    250,    226,    169,     87,\r
172             27,      4,      0,    251,    233,    194,    130,     62,\r
173             20,      4,      0,    250,    236,    207,    160,     99,\r
174             47,     17,      3,      0,    255,    240,    217,    182,\r
175            131,     81,     41,     11,      1,      0,    255,    254,\r
176            233,    201,    159,    107,     61,     20,      2,      1,\r
177              0\r
178 };\r
179 \r
180 const SKP_uint8 silk_shell_code_table2[ 90 ] = {\r
181            129,      0,    203,     54,      0,    234,    129,     23,\r
182              0,    245,    184,     73,     10,      0,    250,    215,\r
183            129,     41,      5,      0,    252,    232,    173,     86,\r
184             24,      3,      0,    253,    240,    200,    129,     56,\r
185             15,      2,      0,    253,    244,    217,    164,     94,\r
186             38,     10,      1,      0,    253,    245,    226,    189,\r
187            132,     71,     27,      7,      1,      0,    253,    246,\r
188            231,    203,    159,    105,     56,     23,      6,      1,\r
189              0,    255,    248,    235,    213,    179,    133,     85,\r
190             47,     19,      5,      1,      0,    255,    254,    243,\r
191            221,    194,    159,    117,     70,     37,     12,      2,\r
192              1,      0\r
193 };\r
194 \r
195 const SKP_uint8 silk_shell_code_table3[ 152 ] = {\r
196            130,      0,    200,     58,      0,    231,    130,     26,\r
197              0,    244,    184,     76,     12,      0,    249,    214,\r
198            130,     43,      6,      0,    252,    232,    173,     87,\r
199             24,      3,      0,    253,    241,    203,    131,     56,\r
200             14,      2,      0,    254,    246,    221,    167,     94,\r
201             35,      8,      1,      0,    254,    249,    232,    193,\r
202            130,     65,     23,      5,      1,      0,    255,    251,\r
203            239,    211,    162,     99,     45,     15,      4,      1,\r
204              0,    255,    251,    243,    223,    186,    131,     74,\r
205             33,     11,      3,      1,      0,    255,    252,    245,\r
206            230,    202,    158,    105,     57,     24,      8,      2,\r
207              1,      0,    255,    253,    247,    235,    214,    179,\r
208            132,     84,     44,     19,      7,      2,      1,      0,\r
209            255,    254,    250,    240,    223,    196,    159,    112,\r
210             69,     36,     15,      6,      2,      1,      0,    255,\r
211            254,    253,    245,    231,    209,    176,    136,     93,\r
212             55,     27,     11,      3,      2,      1,      0,    255,\r
213            254,    253,    252,    239,    221,    194,    158,    117,\r
214             76,     42,     18,      4,      3,      2,      1,      0\r
215 };\r
216 \r
217 const SKP_uint8 silk_shell_code_table_offsets[ 17 ] = {\r
218              0,      0,      2,      5,      9,     14,     20,     27,\r
219             35,     44,     54,     65,     77,     90,    104,    119,\r
220            135\r
221 };\r
222 \r
223 const SKP_uint8 silk_sign_iCDF[ 36 ] = {\r
224             49,     67,     77,     82,     93,     99,     11,     18,\r
225             24,     31,     36,     45,     46,     66,     78,     87,\r
226             94,    104,     14,     21,     32,     42,     51,     66,\r
227             94,    104,    109,    112,    115,    118,     53,     69,\r
228             80,     88,     95,    102\r
229 };\r