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