summaryrefslogtreecommitdiff
path: root/audio_codec/libamr/if_rom.c (plain)
blob: 094d2dd0dcad8a1c1bd70ca5e128cd3655fcddab
1/*
2 *===================================================================
3 * 3GPP AMR Wideband Floating-point Speech Codec
4 *===================================================================
5 */
6#ifndef IF_H
7#define IF_H
8
9#include "typedef.h"
10
11/*
12 * definition of constants
13 */
14#define NUM_OF_SPMODES 9
15
16/* number of parameters */
17#define PRMNO_7k 18
18#define PRMNO_9k 32
19#define PRMNO_12k 36
20#define PRMNO_14k 36
21#define PRMNO_16k 36
22#define PRMNO_18k 52
23#define PRMNO_20k 52
24#define PRMNO_23k 52
25#define PRMNO_24k 56
26#define PRMNO_SID 7
27#define NB_PARM_MAX PRMNO_24k
28
29/* number of bits */
30#ifndef NBBITS_7k
31#define NBBITS_7k 132
32#define NBBITS_9k 177
33#define NBBITS_12k 253
34#define NBBITS_14k 285
35#define NBBITS_16k 317
36#define NBBITS_18k 365
37#define NBBITS_20k 397
38#define NBBITS_23k 461
39#define NBBITS_24k 477
40#define NBBITS_SID 35
41#endif
42
43/* number of total bits */
44#define HEADER_SIZE 6 /* real size + 1 */
45#define T_NBBITS_7k (NBBITS_7k + HEADER_SIZE)
46#define T_NBBITS_9k (NBBITS_9k + HEADER_SIZE)
47#define T_NBBITS_12k (NBBITS_12k + HEADER_SIZE)
48#define T_NBBITS_14k (NBBITS_14k + HEADER_SIZE)
49#define T_NBBITS_16k (NBBITS_16k + HEADER_SIZE)
50#define T_NBBITS_18k (NBBITS_18k + HEADER_SIZE)
51#define T_NBBITS_20k (NBBITS_20k + HEADER_SIZE)
52#define T_NBBITS_23k (NBBITS_23k + HEADER_SIZE)
53#define T_NBBITS_24k (NBBITS_24k + HEADER_SIZE)
54#define T_NBBITS_SID (NBBITS_SID + HEADER_SIZE)
55
56#define TX_SPEECH 0
57#define TX_SID_FIRST 1
58#define TX_SID_UPDATE 2
59#define TX_NO_DATA 3
60
61#define RX_SPEECH_GOOD 0
62#define RX_SPEECH_PROBABLY_DEGRADED 1
63#define RX_SPEECH_LOST 2
64#define RX_SPEECH_BAD 3
65#define RX_SID_FIRST 4
66#define RX_SID_UPDATE 5
67#define RX_SID_BAD 6
68#define RX_NO_DATA 7
69
70#ifdef ENABLE_CPU2_DECODER
71CPU2_DATA_START
72#endif
73
74/* One encoded frame (bytes) */
75/*
76 * 6 bytes are used both for mode 9 and 10.
77 * Mode 9 is used in encoder and mode 10 in IF2
78 */
79#ifdef IF2
80const UWord8 block_size[16] = {18, 23, 33, 37, 41, 47, 51, 59, 61, 6, 6, 0, 0, 0, 1, 1};
81#else
82const UWord8 block_size[16] = {18, 24, 33, 37, 41, 47, 51, 59, 61, 6, 6, 0, 0, 0, 1, 1};
83#endif
84/*
85 * tables
86 */
87
88const Word16 mode_7k[NBBITS_7k << 1] = {
89 0, 0x1, 1, 0x8, 1, 0x4, 1, 0x2,
90 8, 0x2, 11, 0x2, 14, 0x2, 17, 0x2,
91 8, 0x1, 11, 0x1, 1, 0x1, 1, 0x10,
92 6, 0x80, 6, 0x40, 6, 0x20, 6, 0x10,
93 8, 0x10, 11, 0x10, 14, 0x10, 17, 0x10,
94 8, 0x4, 11, 0x4, 14, 0x4, 17, 0x4,
95 14, 0x1, 17, 0x1, 17, 0x8, 6, 0x8,
96 6, 0x4, 11, 0x20, 17, 0x20, 1, 0x80,
97 1, 0x20, 8, 0x20, 14, 0x20, 11, 0x8,
98 14, 0x8, 8, 0x8, 1, 0x40, 9, 0x10,
99 15, 0x10, 15, 0x8, 12, 0x10, 3, 0x10,
100 3, 0x2, 3, 0x1, 9, 0x8, 12, 0x8,
101 3, 0x20, 3, 0x8, 3, 0x4, 3, 0x40,
102 2, 0x8, 12, 0x4, 6, 0x2, 12, 0x2,
103 9, 0x4, 15, 0x4, 2, 0x4, 4, 0x40,
104 4, 0x20, 4, 0x10, 4, 0x8, 4, 0x4,
105 2, 0x2, 2, 0x1, 6, 0x1, 12, 0x1,
106 9, 0x2, 15, 0x2, 2, 0x80, 2, 0x20,
107 2, 0x40, 2, 0x10, 9, 0x1, 15, 0x1,
108 4, 0x2, 4, 0x1, 5, 0x20, 5, 0x10,
109 5, 0x4, 5, 0x8, 5, 0x2, 5, 0x1,
110 7, 0x800, 7, 0x20, 10, 0x800, 10, 0x20,
111 13, 0x800, 13, 0x20, 16, 0x800, 16, 0x20,
112 7, 0x400, 10, 0x400, 13, 0x400, 16, 0x400,
113 7, 0x10, 10, 0x10, 13, 0x10, 16, 0x10,
114 7, 0x200, 10, 0x200, 13, 0x200, 16, 0x200,
115 7, 0x8, 10, 0x8, 13, 0x8, 16, 0x8,
116 7, 0x100, 10, 0x100, 13, 0x100, 16, 0x100,
117 7, 0x4, 10, 0x4, 13, 0x4, 16, 0x4,
118 7, 0x80, 10, 0x80, 13, 0x80, 16, 0x80,
119 7, 0x2, 10, 0x2, 13, 0x2, 16, 0x2,
120 7, 0x40, 10, 0x40, 13, 0x40, 16, 0x40,
121 7, 0x1, 10, 0x1, 13, 0x1, 16, 0x1
122};
123
124const Word16 mode_9k[NBBITS_9k << 1] = {
125 0, 0x1, 1, 0x10, 1, 0x4, 1, 0x2,
126 1, 0x8, 1, 0x20, 8, 0x80, 8, 0x40,
127 8, 0x20, 20, 0x80, 20, 0x40, 20, 0x20,
128 13, 0x20, 19, 0x20, 25, 0x20, 31, 0x20,
129 13, 0x1, 19, 0x1, 25, 0x1, 31, 0x1,
130 13, 0x8, 19, 0x8, 25, 0x8, 31, 0x8,
131 13, 0x4, 19, 0x4, 25, 0x4, 31, 0x4,
132 13, 0x2, 19, 0x2, 25, 0x2, 31, 0x2,
133 13, 0x10, 19, 0x10, 25, 0x10, 31, 0x10,
134 8, 0x10, 20, 0x10, 8, 0x8, 1, 0x40,
135 1, 0x80, 14, 0x10, 20, 0x8, 26, 0x10,
136 3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
137 3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
138 2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
139 4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
140 2, 0x2, 8, 0x4, 20, 0x4, 5, 0x20,
141 14, 0x8, 26, 0x8, 2, 0x80, 5, 0x8,
142 2, 0x20, 14, 0x4, 26, 0x4, 8, 0x2,
143 20, 0x2, 4, 0x2, 4, 0x4, 14, 0x2,
144 26, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
145 7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
146 20, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
147 6, 0x8, 6, 0x2, 14, 0x1, 26, 0x1,
148 6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
149 7, 0x2, 9, 0x10, 10, 0x10, 11, 0x10,
150 12, 0x10, 15, 0x10, 16, 0x10, 17, 0x10,
151 18, 0x10, 21, 0x10, 22, 0x10, 23, 0x10,
152 24, 0x10, 27, 0x10, 28, 0x10, 29, 0x10,
153 30, 0x10, 9, 0x8, 15, 0x8, 21, 0x8,
154 27, 0x8, 10, 0x8, 16, 0x8, 22, 0x8,
155 28, 0x8, 11, 0x8, 17, 0x8, 23, 0x8,
156 29, 0x8, 12, 0x8, 18, 0x8, 24, 0x8,
157 30, 0x8, 9, 0x4, 15, 0x4, 21, 0x4,
158 27, 0x4, 10, 0x4, 16, 0x4, 22, 0x4,
159 28, 0x4, 11, 0x4, 17, 0x4, 23, 0x4,
160 29, 0x4, 12, 0x4, 18, 0x4, 24, 0x4,
161 30, 0x4, 9, 0x2, 15, 0x2, 21, 0x2,
162 27, 0x2, 10, 0x2, 16, 0x2, 22, 0x2,
163 28, 0x2, 11, 0x2, 17, 0x2, 23, 0x2,
164 29, 0x2, 12, 0x2, 18, 0x2, 24, 0x2,
165 30, 0x2, 9, 0x1, 15, 0x1, 21, 0x1,
166 27, 0x1, 10, 0x1, 16, 0x1, 22, 0x1,
167 28, 0x1, 11, 0x1, 17, 0x1, 23, 0x1,
168 29, 0x1, 12, 0x1, 18, 0x1, 24, 0x1,
169 30, 0x1
170};
171
172const Word16 mode_12k[NBBITS_12k << 1] = {
173 0, 0x1, 1, 0x10, 1, 0x4, 14, 0x40,
174 21, 0x40, 28, 0x40, 35, 0x40, 1, 0x2,
175 1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
176 8, 0x40, 8, 0x20, 8, 0x10, 22, 0x100,
177 22, 0x80, 22, 0x40, 22, 0x20, 22, 0x10,
178 14, 0x20, 21, 0x20, 28, 0x20, 35, 0x20,
179 14, 0x1, 21, 0x1, 28, 0x1, 35, 0x1,
180 14, 0x8, 21, 0x8, 28, 0x8, 35, 0x8,
181 14, 0x4, 21, 0x4, 28, 0x4, 35, 0x4,
182 15, 0x20, 29, 0x20, 14, 0x2, 21, 0x2,
183 28, 0x2, 35, 0x2, 14, 0x10, 21, 0x10,
184 28, 0x10, 35, 0x10, 8, 0x8, 1, 0x40,
185 1, 0x80, 15, 0x10, 29, 0x10, 22, 0x8,
186 3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
187 3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
188 2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
189 4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
190 2, 0x2, 8, 0x4, 22, 0x4, 5, 0x20,
191 15, 0x8, 29, 0x8, 2, 0x80, 5, 0x8,
192 2, 0x20, 15, 0x4, 29, 0x4, 8, 0x2,
193 22, 0x2, 4, 0x2, 4, 0x4, 15, 0x2,
194 29, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
195 7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
196 22, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
197 6, 0x8, 6, 0x2, 15, 0x1, 29, 0x1,
198 6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
199 7, 0x2, 9, 0x1, 16, 0x1, 23, 0x1,
200 30, 0x1, 10, 0x100, 11, 0x100, 12, 0x100,
201 13, 0x100, 17, 0x100, 18, 0x100, 19, 0x100,
202 20, 0x100, 24, 0x100, 25, 0x100, 26, 0x100,
203 27, 0x100, 31, 0x100, 32, 0x100, 33, 0x100,
204 34, 0x100, 10, 0x80, 17, 0x80, 24, 0x80,
205 31, 0x80, 10, 0x8, 17, 0x8, 24, 0x8,
206 31, 0x8, 11, 0x80, 18, 0x80, 25, 0x80,
207 32, 0x80, 11, 0x8, 18, 0x8, 25, 0x8,
208 32, 0x8, 12, 0x80, 19, 0x80, 26, 0x80,
209 33, 0x80, 12, 0x8, 19, 0x8, 26, 0x8,
210 33, 0x8, 13, 0x80, 20, 0x80, 27, 0x80,
211 34, 0x80, 13, 0x8, 20, 0x8, 27, 0x8,
212 34, 0x8, 10, 0x40, 17, 0x40, 24, 0x40,
213 31, 0x40, 10, 0x4, 17, 0x4, 24, 0x4,
214 31, 0x4, 11, 0x40, 18, 0x40, 25, 0x40,
215 32, 0x40, 11, 0x4, 18, 0x4, 25, 0x4,
216 32, 0x4, 12, 0x40, 19, 0x40, 26, 0x40,
217 33, 0x40, 12, 0x4, 19, 0x4, 26, 0x4,
218 33, 0x4, 13, 0x40, 20, 0x40, 27, 0x40,
219 34, 0x40, 13, 0x4, 20, 0x4, 27, 0x4,
220 34, 0x4, 10, 0x20, 17, 0x20, 24, 0x20,
221 31, 0x20, 10, 0x2, 17, 0x2, 24, 0x2,
222 31, 0x2, 11, 0x20, 18, 0x20, 25, 0x20,
223 32, 0x20, 11, 0x2, 18, 0x2, 25, 0x2,
224 32, 0x2, 12, 0x20, 19, 0x20, 26, 0x20,
225 33, 0x20, 12, 0x2, 19, 0x2, 26, 0x2,
226 33, 0x2, 13, 0x20, 20, 0x20, 27, 0x20,
227 34, 0x20, 13, 0x2, 20, 0x2, 27, 0x2,
228 34, 0x2, 10, 0x10, 17, 0x10, 24, 0x10,
229 31, 0x10, 10, 0x1, 17, 0x1, 24, 0x1,
230 31, 0x1, 11, 0x10, 18, 0x10, 25, 0x10,
231 32, 0x10, 11, 0x1, 18, 0x1, 25, 0x1,
232 32, 0x1, 12, 0x10, 19, 0x10, 26, 0x10,
233 33, 0x10, 12, 0x1, 19, 0x1, 26, 0x1,
234 33, 0x1, 13, 0x10, 20, 0x10, 27, 0x10,
235 34, 0x10, 13, 0x1, 20, 0x1, 27, 0x1,
236 34, 0x1
237};
238
239const Word16 mode_14k[NBBITS_14k << 1] = {
240 0, 0x1, 1, 0x10, 1, 0x4, 14, 0x40,
241 21, 0x40, 28, 0x40, 35, 0x40, 1, 0x2,
242 1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
243 8, 0x40, 8, 0x20, 8, 0x10, 22, 0x100,
244 22, 0x80, 22, 0x40, 22, 0x20, 22, 0x10,
245 14, 0x20, 21, 0x20, 28, 0x20, 35, 0x20,
246 14, 0x1, 21, 0x1, 28, 0x1, 35, 0x1,
247 14, 0x8, 21, 0x8, 28, 0x8, 35, 0x8,
248 14, 0x4, 21, 0x4, 28, 0x4, 35, 0x4,
249 15, 0x20, 29, 0x20, 14, 0x2, 21, 0x2,
250 28, 0x2, 35, 0x2, 14, 0x10, 21, 0x10,
251 28, 0x10, 35, 0x10, 8, 0x8, 1, 0x40,
252 1, 0x80, 15, 0x10, 29, 0x10, 22, 0x8,
253 3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
254 3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
255 2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
256 4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
257 2, 0x2, 8, 0x4, 22, 0x4, 5, 0x20,
258 15, 0x8, 29, 0x8, 2, 0x80, 5, 0x8,
259 2, 0x20, 15, 0x4, 29, 0x4, 8, 0x2,
260 22, 0x2, 4, 0x2, 4, 0x4, 15, 0x2,
261 29, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
262 7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
263 22, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
264 6, 0x8, 6, 0x2, 15, 0x1, 29, 0x1,
265 6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
266 7, 0x2, 9, 0x1, 16, 0x1, 23, 0x1,
267 30, 0x1, 10, 0x80, 17, 0x80, 24, 0x80,
268 31, 0x80, 11, 0x80, 18, 0x80, 25, 0x80,
269 32, 0x80, 10, 0x1000, 17, 0x1000, 24, 0x1000,
270 31, 0x1000, 10, 0x40, 17, 0x40, 24, 0x40,
271 31, 0x40, 11, 0x1000, 18, 0x1000, 25, 0x1000,
272 32, 0x1000, 11, 0x40, 18, 0x40, 25, 0x40,
273 32, 0x40, 12, 0x100, 19, 0x100, 26, 0x100,
274 33, 0x100, 13, 0x100, 20, 0x100, 27, 0x100,
275 34, 0x100, 12, 0x80, 19, 0x80, 26, 0x80,
276 33, 0x80, 13, 0x80, 20, 0x80, 27, 0x80,
277 34, 0x80, 12, 0x40, 19, 0x40, 26, 0x40,
278 33, 0x40, 13, 0x40, 20, 0x40, 27, 0x40,
279 34, 0x40, 12, 0x20, 19, 0x20, 26, 0x20,
280 33, 0x20, 13, 0x20, 20, 0x20, 27, 0x20,
281 34, 0x20, 10, 0x20, 17, 0x20, 24, 0x20,
282 31, 0x20, 11, 0x20, 18, 0x20, 25, 0x20,
283 32, 0x20, 10, 0x10, 17, 0x10, 24, 0x10,
284 31, 0x10, 11, 0x10, 18, 0x10, 25, 0x10,
285 32, 0x10, 12, 0x10, 19, 0x10, 26, 0x10,
286 33, 0x10, 13, 0x10, 20, 0x10, 27, 0x10,
287 34, 0x10, 10, 0x800, 17, 0x800, 24, 0x800,
288 31, 0x800, 10, 0x8, 17, 0x8, 24, 0x8,
289 31, 0x8, 11, 0x800, 18, 0x800, 25, 0x800,
290 32, 0x800, 11, 0x8, 18, 0x8, 25, 0x8,
291 32, 0x8, 12, 0x8, 19, 0x8, 26, 0x8,
292 33, 0x8, 13, 0x8, 20, 0x8, 27, 0x8,
293 34, 0x8, 10, 0x400, 17, 0x400, 24, 0x400,
294 31, 0x400, 10, 0x4, 17, 0x4, 24, 0x4,
295 31, 0x4, 11, 0x400, 18, 0x400, 25, 0x400,
296 32, 0x400, 11, 0x4, 18, 0x4, 25, 0x4,
297 32, 0x4, 12, 0x4, 19, 0x4, 26, 0x4,
298 33, 0x4, 13, 0x4, 20, 0x4, 27, 0x4,
299 34, 0x4, 10, 0x200, 17, 0x200, 24, 0x200,
300 31, 0x200, 10, 0x2, 17, 0x2, 24, 0x2,
301 31, 0x2, 11, 0x200, 18, 0x200, 25, 0x200,
302 32, 0x200, 11, 0x2, 18, 0x2, 25, 0x2,
303 32, 0x2, 12, 0x2, 19, 0x2, 26, 0x2,
304 33, 0x2, 13, 0x2, 20, 0x2, 27, 0x2,
305 34, 0x2, 10, 0x100, 17, 0x100, 24, 0x100,
306 31, 0x100, 10, 0x1, 17, 0x1, 24, 0x1,
307 31, 0x1, 11, 0x100, 18, 0x100, 25, 0x100,
308 32, 0x100, 11, 0x1, 18, 0x1, 25, 0x1,
309 32, 0x1, 12, 0x1, 19, 0x1, 26, 0x1,
310 33, 0x1, 13, 0x1, 20, 0x1, 27, 0x1,
311 34, 0x1
312};
313
314const Word16 mode_16k[NBBITS_16k << 1] = {
315 0, 0x1, 1, 0x10, 1, 0x4, 14, 0x40,
316 21, 0x40, 28, 0x40, 35, 0x40, 1, 0x2,
317 1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
318 8, 0x40, 8, 0x20, 8, 0x10, 22, 0x100,
319 22, 0x80, 22, 0x40, 22, 0x20, 22, 0x10,
320 14, 0x20, 21, 0x20, 28, 0x20, 35, 0x20,
321 14, 0x1, 21, 0x1, 28, 0x1, 35, 0x1,
322 14, 0x8, 21, 0x8, 28, 0x8, 35, 0x8,
323 14, 0x4, 21, 0x4, 28, 0x4, 35, 0x4,
324 15, 0x20, 29, 0x20, 14, 0x2, 21, 0x2,
325 28, 0x2, 35, 0x2, 14, 0x10, 21, 0x10,
326 28, 0x10, 35, 0x10, 8, 0x8, 1, 0x40,
327 1, 0x80, 15, 0x10, 29, 0x10, 22, 0x8,
328 3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
329 3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
330 2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
331 4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
332 2, 0x2, 8, 0x4, 22, 0x4, 5, 0x20,
333 15, 0x8, 29, 0x8, 2, 0x80, 5, 0x8,
334 2, 0x20, 15, 0x4, 29, 0x4, 8, 0x2,
335 22, 0x2, 4, 0x2, 4, 0x4, 15, 0x2,
336 29, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
337 7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
338 22, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
339 6, 0x8, 6, 0x2, 15, 0x1, 29, 0x1,
340 6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
341 7, 0x2, 9, 0x1, 16, 0x1, 23, 0x1,
342 30, 0x1, 10, 0x40, 17, 0x40, 24, 0x40,
343 31, 0x40, 11, 0x40, 18, 0x40, 25, 0x40,
344 32, 0x40, 12, 0x40, 19, 0x40, 26, 0x40,
345 33, 0x40, 13, 0x40, 20, 0x40, 27, 0x40,
346 34, 0x40, 10, 0x1000, 17, 0x1000, 24, 0x1000,
347 31, 0x1000, 11, 0x1000, 18, 0x1000, 25, 0x1000,
348 32, 0x1000, 12, 0x1000, 19, 0x1000, 26, 0x1000,
349 33, 0x1000, 13, 0x1000, 20, 0x1000, 27, 0x1000,
350 34, 0x1000, 10, 0x80, 17, 0x80, 24, 0x80,
351 31, 0x80, 11, 0x80, 18, 0x80, 25, 0x80,
352 32, 0x80, 12, 0x80, 19, 0x80, 26, 0x80,
353 33, 0x80, 13, 0x80, 20, 0x80, 27, 0x80,
354 34, 0x80, 10, 0x800, 17, 0x800, 24, 0x800,
355 31, 0x800, 11, 0x800, 18, 0x800, 25, 0x800,
356 32, 0x800, 12, 0x800, 19, 0x800, 26, 0x800,
357 33, 0x800, 13, 0x800, 20, 0x800, 27, 0x800,
358 34, 0x800, 10, 0x400, 17, 0x400, 24, 0x400,
359 31, 0x400, 10, 0x20, 17, 0x20, 24, 0x20,
360 31, 0x20, 10, 0x4, 17, 0x4, 24, 0x4,
361 31, 0x4, 11, 0x400, 18, 0x400, 25, 0x400,
362 32, 0x400, 11, 0x20, 18, 0x20, 25, 0x20,
363 32, 0x20, 11, 0x4, 18, 0x4, 25, 0x4,
364 32, 0x4, 12, 0x400, 19, 0x400, 26, 0x400,
365 33, 0x400, 12, 0x20, 19, 0x20, 26, 0x20,
366 33, 0x20, 12, 0x4, 19, 0x4, 26, 0x4,
367 33, 0x4, 13, 0x400, 20, 0x400, 27, 0x400,
368 34, 0x400, 13, 0x20, 20, 0x20, 27, 0x20,
369 34, 0x20, 13, 0x4, 20, 0x4, 27, 0x4,
370 34, 0x4, 10, 0x200, 17, 0x200, 24, 0x200,
371 31, 0x200, 10, 0x10, 17, 0x10, 24, 0x10,
372 31, 0x10, 10, 0x2, 17, 0x2, 24, 0x2,
373 31, 0x2, 11, 0x200, 18, 0x200, 25, 0x200,
374 32, 0x200, 11, 0x10, 18, 0x10, 25, 0x10,
375 32, 0x10, 11, 0x2, 18, 0x2, 25, 0x2,
376 32, 0x2, 12, 0x200, 19, 0x200, 26, 0x200,
377 33, 0x200, 12, 0x10, 19, 0x10, 26, 0x10,
378 33, 0x10, 12, 0x2, 19, 0x2, 26, 0x2,
379 33, 0x2, 13, 0x200, 20, 0x200, 27, 0x200,
380 34, 0x200, 13, 0x10, 20, 0x10, 27, 0x10,
381 34, 0x10, 13, 0x2, 20, 0x2, 27, 0x2,
382 34, 0x2, 10, 0x100, 17, 0x100, 24, 0x100,
383 31, 0x100, 10, 0x8, 17, 0x8, 24, 0x8,
384 31, 0x8, 10, 0x1, 17, 0x1, 24, 0x1,
385 31, 0x1, 11, 0x100, 18, 0x100, 25, 0x100,
386 32, 0x100, 11, 0x8, 18, 0x8, 25, 0x8,
387 32, 0x8, 11, 0x1, 18, 0x1, 25, 0x1,
388 32, 0x1, 12, 0x100, 19, 0x100, 26, 0x100,
389 33, 0x100, 12, 0x8, 19, 0x8, 26, 0x8,
390 33, 0x8, 12, 0x1, 19, 0x1, 26, 0x1,
391 33, 0x1, 13, 0x100, 20, 0x100, 27, 0x100,
392 34, 0x100, 13, 0x8, 20, 0x8, 27, 0x8,
393 34, 0x8, 13, 0x1, 20, 0x1, 27, 0x1,
394 34, 0x1
395};
396
397const Word16 mode_18k[NBBITS_18k << 1] = {
398 0, 0x1, 1, 0x10, 1, 0x4, 18, 0x40,
399 29, 0x40, 40, 0x40, 51, 0x40, 1, 0x2,
400 1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
401 8, 0x40, 8, 0x20, 8, 0x10, 30, 0x100,
402 30, 0x80, 30, 0x40, 30, 0x20, 30, 0x10,
403 18, 0x20, 29, 0x20, 40, 0x20, 51, 0x20,
404 18, 0x1, 29, 0x1, 40, 0x1, 51, 0x1,
405 18, 0x8, 29, 0x8, 40, 0x8, 51, 0x8,
406 18, 0x4, 29, 0x4, 40, 0x4, 51, 0x4,
407 19, 0x20, 41, 0x20, 18, 0x2, 29, 0x2,
408 40, 0x2, 51, 0x2, 18, 0x10, 29, 0x10,
409 40, 0x10, 51, 0x10, 8, 0x8, 1, 0x40,
410 1, 0x80, 19, 0x10, 41, 0x10, 30, 0x8,
411 3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
412 3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
413 2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
414 4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
415 2, 0x2, 8, 0x4, 30, 0x4, 5, 0x20,
416 19, 0x8, 41, 0x8, 2, 0x80, 5, 0x8,
417 2, 0x20, 19, 0x4, 41, 0x4, 8, 0x2,
418 30, 0x2, 4, 0x2, 4, 0x4, 19, 0x2,
419 41, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
420 7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
421 30, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
422 6, 0x8, 6, 0x2, 19, 0x1, 41, 0x1,
423 6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
424 7, 0x2, 9, 0x1, 20, 0x1, 31, 0x1,
425 42, 0x1, 28, 0x1, 45, 0x1, 21, 0x1,
426 17, 0x1, 22, 0x1, 11, 0x1, 39, 0x1,
427 10, 0x1, 12, 0x1, 50, 0x1, 23, 0x2,
428 23, 0x1, 43, 0x1, 25, 0x1, 10, 0x2,
429 33, 0x1, 44, 0x1, 13, 0x2, 32, 0x1,
430 22, 0x2, 26, 0x1, 46, 0x2, 35, 0x2,
431 13, 0x1, 16, 0x1, 12, 0x2, 14, 0x1,
432 43, 0x2, 15, 0x1, 24, 0x1, 24, 0x2,
433 21, 0x2, 34, 0x1, 44, 0x2, 46, 0x1,
434 49, 0x1, 11, 0x2, 45, 0x2, 27, 0x1,
435 48, 0x1, 47, 0x1, 34, 0x2, 32, 0x2,
436 38, 0x1, 37, 0x1, 33, 0x2, 36, 0x1,
437 50, 0x20, 35, 0x1, 26, 0x2000, 15, 0x40,
438 27, 0x2000, 15, 0x20, 26, 0x40, 50, 0x40,
439 17, 0x200, 47, 0x2000, 14, 0x2000, 27, 0x40,
440 17, 0x20, 48, 0x40, 14, 0x40, 28, 0x40,
441 16, 0x20, 27, 0x20, 16, 0x2000, 14, 0x20,
442 28, 0x20, 25, 0x20, 49, 0x40, 47, 0x40,
443 25, 0x2000, 39, 0x20, 14, 0x200, 48, 0x20,
444 26, 0x20, 25, 0x40, 16, 0x200, 49, 0x20,
445 17, 0x400, 47, 0x20, 49, 0x2000, 39, 0x40,
446 14, 0x400, 17, 0x2000, 27, 0x200, 37, 0x40,
447 17, 0x40, 15, 0x2000, 17, 0x80, 28, 0x200,
448 37, 0x20, 38, 0x40, 27, 0x400, 14, 0x80,
449 28, 0x2000, 16, 0x400, 50, 0x2000, 16, 0x40,
450 48, 0x80, 15, 0x200, 49, 0x200, 48, 0x2000,
451 49, 0x400, 38, 0x2000, 26, 0x200, 50, 0x200,
452 25, 0x200, 15, 0x400, 39, 0x400, 36, 0x20,
453 38, 0x20, 47, 0x80, 50, 0x10, 50, 0x400,
454 26, 0x80, 36, 0x40, 47, 0x200, 48, 0x200,
455 28, 0x400, 39, 0x200, 25, 0x400, 27, 0x80,
456 39, 0x2000, 50, 0x80, 38, 0x200, 15, 0x80,
457 25, 0x80, 17, 0x10, 28, 0x80, 26, 0x400,
458 37, 0x2000, 38, 0x80, 49, 0x80, 47, 0x400,
459 38, 0x400, 15, 0x10, 36, 0x2000, 16, 0x80,
460 49, 0x10, 36, 0x80, 36, 0x200, 36, 0x400,
461 39, 0x80, 37, 0x200, 37, 0x400, 48, 0x400,
462 36, 0x10, 47, 0x10, 16, 0x10, 14, 0x10,
463 27, 0x10, 39, 0x10, 14, 0x1000, 28, 0x10,
464 25, 0x10, 48, 0x10, 27, 0x1000, 37, 0x10,
465 37, 0x80, 38, 0x10, 17, 0x8, 26, 0x1000,
466 26, 0x10, 50, 0x8, 14, 0x8, 25, 0x1000,
467 17, 0x1000, 47, 0x8, 16, 0x1000, 28, 0x1000,
468 47, 0x1000, 15, 0x1000, 36, 0x8, 15, 0x8,
469 28, 0x8, 17, 0x100, 49, 0x8, 27, 0x8,
470 50, 0x1000, 48, 0x1000, 48, 0x8, 39, 0x8,
471 37, 0x1000, 26, 0x8, 17, 0x4, 47, 0x4,
472 14, 0x100, 50, 0x4, 48, 0x4, 38, 0x1000,
473 28, 0x100, 27, 0x100, 39, 0x100, 16, 0x4,
474 16, 0x100, 25, 0x8, 16, 0x8, 15, 0x4,
475 14, 0x4, 39, 0x1000, 39, 0x4, 37, 0x8,
476 36, 0x1000, 38, 0x8, 27, 0x4, 15, 0x100,
477 25, 0x4, 36, 0x4, 49, 0x100, 26, 0x4,
478 49, 0x1000, 28, 0x4, 49, 0x4, 37, 0x4,
479 26, 0x100, 47, 0x100, 25, 0x100, 50, 0x100,
480 38, 0x4, 48, 0x100, 38, 0x100, 37, 0x100,
481 36, 0x100, 50, 0x2, 26, 0x800, 17, 0x2,
482 14, 0x800, 28, 0x800, 27, 0x800, 25, 0x800,
483 37, 0x800, 14, 0x2, 47, 0x800, 49, 0x800,
484 47, 0x2, 49, 0x2, 17, 0x800, 38, 0x800,
485 15, 0x800, 39, 0x2, 16, 0x2, 15, 0x2,
486 50, 0x800, 48, 0x800, 27, 0x2, 37, 0x2,
487 28, 0x2, 48, 0x2, 16, 0x800, 25, 0x2,
488 26, 0x2, 39, 0x800, 36, 0x800, 36, 0x2,
489 38, 0x2
490};
491
492const Word16 mode_20k[NBBITS_20k << 1] = {
493 0, 0x1, 1, 0x10, 1, 0x4, 18, 0x40,
494 29, 0x40, 40, 0x40, 51, 0x40, 1, 0x2,
495 1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
496 8, 0x40, 8, 0x20, 8, 0x10, 30, 0x100,
497 30, 0x80, 30, 0x40, 30, 0x20, 30, 0x10,
498 18, 0x20, 29, 0x20, 40, 0x20, 51, 0x20,
499 18, 0x1, 29, 0x1, 40, 0x1, 51, 0x1,
500 18, 0x8, 29, 0x8, 40, 0x8, 51, 0x8,
501 18, 0x4, 29, 0x4, 40, 0x4, 51, 0x4,
502 19, 0x20, 41, 0x20, 18, 0x2, 29, 0x2,
503 40, 0x2, 51, 0x2, 18, 0x10, 29, 0x10,
504 40, 0x10, 51, 0x10, 8, 0x8, 1, 0x40,
505 1, 0x80, 19, 0x10, 41, 0x10, 30, 0x8,
506 3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
507 3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
508 2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
509 4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
510 2, 0x2, 8, 0x4, 30, 0x4, 5, 0x20,
511 19, 0x8, 41, 0x8, 2, 0x80, 5, 0x8,
512 2, 0x20, 19, 0x4, 41, 0x4, 8, 0x2,
513 30, 0x2, 4, 0x2, 4, 0x4, 19, 0x2,
514 41, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
515 7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
516 30, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
517 6, 0x8, 6, 0x2, 19, 0x1, 41, 0x1,
518 6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
519 7, 0x2, 9, 0x1, 20, 0x1, 31, 0x1,
520 42, 0x1, 10, 0x8, 11, 0x8, 15, 0x100,
521 46, 0x2, 14, 0x100, 43, 0x8, 21, 0x8,
522 48, 0x100, 22, 0x8, 44, 0x8, 24, 0x2,
523 45, 0x2, 26, 0x100, 23, 0x2, 35, 0x2,
524 12, 0x2, 25, 0x100, 36, 0x100, 22, 0x200,
525 47, 0x100, 10, 0x200, 33, 0x8, 32, 0x8,
526 13, 0x2, 34, 0x2, 24, 0x1, 11, 0x200,
527 13, 0x1, 28, 0x2000, 16, 0x2000, 37, 0x100,
528 21, 0x200, 23, 0x1, 46, 0x1, 35, 0x1,
529 45, 0x1, 27, 0x2000, 50, 0x2000, 43, 0x200,
530 12, 0x1, 44, 0x200, 49, 0x2000, 17, 0x2000,
531 32, 0x200, 33, 0x200, 34, 0x1, 39, 0x2000,
532 38, 0x2000, 10, 0x10, 10, 0x100, 22, 0x10,
533 11, 0x100, 15, 0x80, 26, 0x80, 43, 0x100,
534 21, 0x10, 25, 0x80, 22, 0x100, 11, 0x10,
535 50, 0x10, 44, 0x100, 44, 0x10, 47, 0x80,
536 16, 0x1000, 14, 0x80, 21, 0x100, 32, 0x100,
537 43, 0x10, 17, 0x10, 33, 0x100, 27, 0x100,
538 48, 0x80, 32, 0x10, 10, 0x4, 33, 0x10,
539 28, 0x1000, 28, 0x20, 21, 0x4, 17, 0x1000,
540 44, 0x4, 37, 0x80, 32, 0x4, 39, 0x10,
541 27, 0x1000, 27, 0x10, 39, 0x20, 15, 0x40,
542 27, 0x20, 36, 0x80, 17, 0x20, 49, 0x1000,
543 50, 0x20, 16, 0x20, 43, 0x4, 49, 0x10,
544 25, 0x40, 49, 0x20, 14, 0x40, 16, 0x10,
545 39, 0x100, 26, 0x40, 11, 0x4, 28, 0x10,
546 27, 0x200, 16, 0x100, 39, 0x1000, 28, 0x200,
547 49, 0x100, 50, 0x100, 50, 0x1000, 28, 0x100,
548 48, 0x40, 17, 0x40, 17, 0x200, 17, 0x100,
549 50, 0x40, 22, 0x4, 16, 0x200, 16, 0x40,
550 38, 0x1000, 50, 0x200, 39, 0x200, 38, 0x20,
551 38, 0x10, 47, 0x40, 28, 0x40, 37, 0x40,
552 33, 0x4, 49, 0x200, 50, 0x8, 39, 0x8,
553 39, 0x40, 36, 0x40, 17, 0x8, 49, 0x40,
554 27, 0x8, 15, 0x8, 27, 0x40, 38, 0x8,
555 28, 0x8, 38, 0x100, 38, 0x200, 26, 0x8,
556 49, 0x8, 14, 0x8, 22, 0x80, 38, 0x40,
557 10, 0x80, 47, 0x8, 43, 0x1, 26, 0x4,
558 11, 0x1, 16, 0x8, 44, 0x80, 28, 0x800,
559 47, 0x4, 11, 0x80, 15, 0x4, 21, 0x1,
560 21, 0x80, 27, 0x800, 10, 0x1, 43, 0x80,
561 44, 0x1, 25, 0x8, 48, 0x8, 33, 0x1,
562 27, 0x4, 25, 0x4, 36, 0x4, 36, 0x8,
563 17, 0x4, 32, 0x1, 27, 0x80, 14, 0x4,
564 50, 0x2, 17, 0x800, 15, 0x20, 50, 0x4,
565 16, 0x4, 48, 0x4, 38, 0x4, 33, 0x80,
566 16, 0x800, 37, 0x8, 39, 0x4, 25, 0x20,
567 22, 0x1, 32, 0x80, 37, 0x4, 17, 0x2,
568 49, 0x4, 26, 0x20, 39, 0x800, 14, 0x20,
569 50, 0x800, 39, 0x2, 17, 0x80, 16, 0x80,
570 49, 0x800, 47, 0x20, 48, 0x20, 28, 0x4,
571 38, 0x800, 28, 0x2, 10, 0x2, 50, 0x80,
572 38, 0x2, 28, 0x80, 16, 0x2, 25, 0x2,
573 15, 0x2, 39, 0x80, 49, 0x2, 49, 0x80,
574 27, 0x2, 36, 0x20, 26, 0x2, 44, 0x2,
575 44, 0x40, 22, 0x2, 37, 0x20, 36, 0x2,
576 33, 0x2, 32, 0x2, 11, 0x2, 47, 0x2,
577 21, 0x2, 10, 0x40, 14, 0x2, 43, 0x40,
578 22, 0x40, 37, 0x2, 48, 0x2, 43, 0x2,
579 11, 0x40, 38, 0x80, 25, 0x200, 21, 0x40,
580 48, 0x200, 14, 0x200, 15, 0x200, 50, 0x1,
581 37, 0x200, 33, 0x40, 26, 0x200, 32, 0x40,
582 27, 0x400, 36, 0x200, 28, 0x400, 47, 0x200,
583 17, 0x1, 17, 0x400, 39, 0x1, 16, 0x400,
584 50, 0x400, 26, 0x10, 16, 0x1, 49, 0x1,
585 27, 0x1, 15, 0x10, 39, 0x400, 25, 0x10,
586 28, 0x1, 49, 0x400, 38, 0x400, 14, 0x10,
587 38, 0x1, 47, 0x1, 47, 0x10, 48, 0x10,
588 36, 0x10, 26, 0x1, 25, 0x1, 37, 0x10,
589 14, 0x1, 15, 0x1, 21, 0x20, 43, 0x20,
590 37, 0x1, 48, 0x1, 11, 0x20, 44, 0x20,
591 10, 0x20, 36, 0x1, 22, 0x20, 33, 0x20,
592 32, 0x20
593};
594
595const Word16 mode_23k[NBBITS_23k << 1] = {
596 0, 0x1, 1, 0x10, 1, 0x4, 18, 0x40,
597 29, 0x40, 40, 0x40, 51, 0x40, 1, 0x2,
598 1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
599 8, 0x40, 8, 0x20, 8, 0x10, 30, 0x100,
600 30, 0x80, 30, 0x40, 30, 0x20, 30, 0x10,
601 18, 0x20, 29, 0x20, 40, 0x20, 51, 0x20,
602 18, 0x1, 29, 0x1, 40, 0x1, 51, 0x1,
603 18, 0x8, 29, 0x8, 40, 0x8, 51, 0x8,
604 18, 0x4, 29, 0x4, 40, 0x4, 51, 0x4,
605 19, 0x20, 41, 0x20, 18, 0x2, 29, 0x2,
606 40, 0x2, 51, 0x2, 18, 0x10, 29, 0x10,
607 40, 0x10, 51, 0x10, 8, 0x8, 1, 0x40,
608 1, 0x80, 19, 0x10, 41, 0x10, 30, 0x8,
609 3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
610 3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
611 2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
612 4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
613 2, 0x2, 8, 0x4, 30, 0x4, 5, 0x20,
614 19, 0x8, 41, 0x8, 2, 0x80, 5, 0x8,
615 2, 0x20, 19, 0x4, 41, 0x4, 8, 0x2,
616 30, 0x2, 4, 0x2, 4, 0x4, 19, 0x2,
617 41, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
618 7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
619 30, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
620 6, 0x8, 6, 0x2, 19, 0x1, 41, 0x1,
621 6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
622 7, 0x2, 9, 0x1, 20, 0x1, 31, 0x1,
623 42, 0x1, 23, 0x400, 24, 0x400, 22, 0x400,
624 12, 0x400, 10, 0x400, 46, 0x400, 13, 0x400,
625 21, 0x400, 35, 0x400, 44, 0x400, 43, 0x400,
626 33, 0x400, 11, 0x400, 23, 0x100, 45, 0x400,
627 34, 0x400, 24, 0x100, 35, 0x100, 13, 0x100,
628 11, 0x100, 23, 0x200, 46, 0x100, 22, 0x100,
629 10, 0x100, 13, 0x200, 10, 0x200, 46, 0x200,
630 43, 0x100, 21, 0x100, 12, 0x100, 21, 0x200,
631 32, 0x400, 22, 0x200, 12, 0x200, 45, 0x200,
632 45, 0x100, 44, 0x200, 44, 0x100, 24, 0x200,
633 35, 0x200, 11, 0x200, 32, 0x100, 32, 0x200,
634 43, 0x200, 33, 0x100, 34, 0x100, 33, 0x200,
635 34, 0x200, 23, 0x80, 10, 0x80, 24, 0x80,
636 12, 0x80, 13, 0x80, 11, 0x80, 43, 0x80,
637 46, 0x80, 22, 0x80, 21, 0x80, 50, 0x200,
638 35, 0x80, 45, 0x80, 13, 0x4, 11, 0x4,
639 33, 0x80, 10, 0x40, 32, 0x80, 43, 0x4,
640 17, 0x200, 47, 0x200, 21, 0x4, 14, 0x200,
641 44, 0x80, 24, 0x4, 12, 0x4, 22, 0x4,
642 10, 0x4, 13, 0x40, 25, 0x200, 16, 0x200,
643 11, 0x40, 39, 0x200, 23, 0x4, 35, 0x4,
644 44, 0x40, 45, 0x4, 49, 0x200, 35, 0x40,
645 27, 0x200, 46, 0x4, 34, 0x80, 28, 0x200,
646 15, 0x200, 26, 0x200, 23, 0x40, 16, 0x20,
647 36, 0x200, 46, 0x40, 15, 0x40, 37, 0x200,
648 24, 0x40, 38, 0x200, 43, 0x40, 48, 0x200,
649 22, 0x40, 10, 0x8, 45, 0x40, 12, 0x40,
650 48, 0x40, 26, 0x20, 17, 0x400, 23, 0x8,
651 49, 0x400, 15, 0x400, 48, 0x10, 17, 0x20,
652 33, 0x40, 21, 0x40, 49, 0x40, 25, 0x20,
653 50, 0x40, 26, 0x40, 28, 0x400, 27, 0x40,
654 13, 0x8, 34, 0x4, 44, 0x4, 27, 0x20,
655 21, 0x8, 32, 0x40, 22, 0x8, 50, 0x400,
656 27, 0x400, 48, 0x20, 14, 0x400, 32, 0x4,
657 17, 0x40, 16, 0x40, 34, 0x40, 15, 0x20,
658 39, 0x10, 24, 0x8, 47, 0x40, 13, 0x20,
659 17, 0x10, 28, 0x40, 47, 0x400, 45, 0x8,
660 25, 0x10, 16, 0x10, 33, 0x4, 39, 0x20,
661 14, 0x40, 28, 0x20, 49, 0x20, 12, 0x8,
662 36, 0x400, 50, 0x20, 25, 0x400, 39, 0x40,
663 23, 0x20, 14, 0x10, 26, 0x10, 47, 0x20,
664 38, 0x40, 37, 0x400, 14, 0x20, 36, 0x20,
665 15, 0x10, 16, 0x400, 11, 0x20, 25, 0x40,
666 48, 0x400, 26, 0x400, 44, 0x8, 43, 0x8,
667 49, 0x10, 10, 0x20, 43, 0x20, 39, 0x400,
668 11, 0x8, 50, 0x10, 21, 0x2, 37, 0x40,
669 21, 0x20, 28, 0x10, 47, 0x10, 37, 0x20,
670 35, 0x8, 24, 0x20, 38, 0x20, 46, 0x20,
671 32, 0x8, 10, 0x10, 23, 0x1, 37, 0x10,
672 13, 0x10, 21, 0x1, 27, 0x10, 33, 0x20,
673 36, 0x40, 23, 0x10, 46, 0x8, 12, 0x20,
674 24, 0x2, 13, 0x1, 10, 0x1, 44, 0x20,
675 22, 0x20, 38, 0x10, 24, 0x1, 38, 0x400,
676 32, 0x20, 45, 0x20, 43, 0x1, 44, 0x10,
677 34, 0x8, 35, 0x1, 46, 0x1, 22, 0x2,
678 33, 0x1, 36, 0x10, 35, 0x20, 43, 0x10,
679 45, 0x1, 23, 0x2, 22, 0x1, 12, 0x1,
680 13, 0x2, 14, 0x100, 27, 0x8, 11, 0x1,
681 12, 0x2, 11, 0x2, 17, 0x100, 44, 0x1,
682 21, 0x10, 24, 0x10, 45, 0x10, 16, 0x100,
683 22, 0x10, 48, 0x8, 11, 0x10, 43, 0x2,
684 28, 0x100, 27, 0x100, 10, 0x2, 32, 0x2,
685 33, 0x8, 17, 0x8, 35, 0x2, 47, 0x100,
686 15, 0x100, 12, 0x10, 16, 0x8, 39, 0x8,
687 15, 0x8, 34, 0x20, 34, 0x1, 44, 0x2,
688 27, 0x4, 45, 0x2, 35, 0x10, 46, 0x10,
689 33, 0x2, 50, 0x100, 48, 0x100, 26, 0x8,
690 25, 0x8, 25, 0x100, 50, 0x8, 14, 0x8,
691 32, 0x1, 49, 0x100, 26, 0x100, 39, 0x100,
692 38, 0x8, 17, 0x4, 28, 0x8, 37, 0x100,
693 46, 0x2, 50, 0x4, 36, 0x100, 34, 0x10,
694 15, 0x4, 14, 0x4, 33, 0x10, 49, 0x8,
695 32, 0x10, 48, 0x4, 38, 0x100, 34, 0x2,
696 47, 0x4, 25, 0x4, 36, 0x8, 26, 0x4,
697 37, 0x8, 16, 0x4, 48, 0x2, 28, 0x4,
698 37, 0x4, 39, 0x4, 47, 0x8, 36, 0x4,
699 17, 0x2, 38, 0x4, 49, 0x4, 27, 0x2,
700 14, 0x2, 25, 0x2, 50, 0x2, 28, 0x2,
701 15, 0x2, 47, 0x2, 39, 0x2, 26, 0x2,
702 16, 0x2, 49, 0x2, 37, 0x2, 47, 0x80,
703 36, 0x2, 38, 0x2, 16, 0x80, 14, 0x80,
704 17, 0x80, 50, 0x80, 39, 0x80, 28, 0x80,
705 49, 0x80, 15, 0x80, 38, 0x80, 25, 0x80,
706 37, 0x80, 26, 0x80, 27, 0x80, 48, 0x80,
707 50, 0x1, 36, 0x80, 39, 0x1, 14, 0x1,
708 49, 0x1, 26, 0x1, 25, 0x1, 15, 0x1,
709 48, 0x1, 38, 0x1, 27, 0x1, 28, 0x1,
710 16, 0x1, 17, 0x1, 47, 0x1, 37, 0x1,
711 36, 0x1
712};
713
714const Word16 mode_24k[NBBITS_24k << 1] = {
715 0, 0x1, 1, 0x10, 1, 0x4, 18, 0x40,
716 30, 0x40, 42, 0x40, 54, 0x40, 1, 0x2,
717 1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
718 8, 0x40, 8, 0x20, 8, 0x10, 32, 0x100,
719 32, 0x80, 32, 0x40, 32, 0x20, 32, 0x10,
720 18, 0x20, 30, 0x20, 42, 0x20, 54, 0x20,
721 18, 0x1, 30, 0x1, 42, 0x1, 54, 0x1,
722 18, 0x8, 30, 0x8, 42, 0x8, 54, 0x8,
723 18, 0x4, 30, 0x4, 42, 0x4, 54, 0x4,
724 20, 0x20, 44, 0x20, 18, 0x2, 30, 0x2,
725 42, 0x2, 54, 0x2, 18, 0x10, 30, 0x10,
726 42, 0x10, 54, 0x10, 8, 0x8, 1, 0x40,
727 1, 0x80, 20, 0x10, 44, 0x10, 32, 0x8,
728 3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
729 3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
730 2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
731 4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
732 2, 0x2, 8, 0x4, 32, 0x4, 5, 0x20,
733 19, 0x8, 19, 0x4, 19, 0x2, 19, 0x1,
734 31, 0x8, 31, 0x4, 31, 0x2, 31, 0x1,
735 43, 0x8, 43, 0x4, 43, 0x2, 43, 0x1,
736 55, 0x8, 55, 0x4, 55, 0x2, 55, 0x1,
737 20, 0x8, 44, 0x8, 2, 0x80, 5, 0x8,
738 2, 0x20, 20, 0x4, 44, 0x4, 8, 0x2,
739 32, 0x2, 4, 0x2, 4, 0x4, 20, 0x2,
740 44, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
741 7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
742 32, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
743 6, 0x8, 6, 0x2, 20, 0x1, 44, 0x1,
744 6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
745 7, 0x2, 9, 0x1, 21, 0x1, 33, 0x1,
746 45, 0x1, 24, 0x400, 25, 0x400, 23, 0x400,
747 12, 0x400, 10, 0x400, 49, 0x400, 13, 0x400,
748 22, 0x400, 37, 0x400, 47, 0x400, 46, 0x400,
749 35, 0x400, 11, 0x400, 24, 0x100, 48, 0x400,
750 36, 0x400, 25, 0x100, 37, 0x100, 13, 0x100,
751 11, 0x100, 24, 0x200, 49, 0x100, 23, 0x100,
752 10, 0x100, 13, 0x200, 10, 0x200, 49, 0x200,
753 46, 0x100, 22, 0x100, 12, 0x100, 22, 0x200,
754 34, 0x400, 23, 0x200, 12, 0x200, 48, 0x200,
755 48, 0x100, 47, 0x200, 47, 0x100, 25, 0x200,
756 37, 0x200, 11, 0x200, 34, 0x100, 34, 0x200,
757 46, 0x200, 35, 0x100, 36, 0x100, 35, 0x200,
758 36, 0x200, 24, 0x80, 10, 0x80, 25, 0x80,
759 12, 0x80, 13, 0x80, 11, 0x80, 46, 0x80,
760 49, 0x80, 23, 0x80, 22, 0x80, 53, 0x200,
761 37, 0x80, 48, 0x80, 13, 0x4, 11, 0x4,
762 35, 0x80, 10, 0x40, 34, 0x80, 46, 0x4,
763 17, 0x200, 50, 0x200, 22, 0x4, 14, 0x200,
764 47, 0x80, 25, 0x4, 12, 0x4, 23, 0x4,
765 10, 0x4, 13, 0x40, 26, 0x200, 16, 0x200,
766 11, 0x40, 41, 0x200, 24, 0x4, 37, 0x4,
767 47, 0x40, 48, 0x4, 52, 0x200, 37, 0x40,
768 28, 0x200, 49, 0x4, 36, 0x80, 29, 0x200,
769 15, 0x200, 27, 0x200, 24, 0x40, 16, 0x20,
770 38, 0x200, 49, 0x40, 15, 0x40, 39, 0x200,
771 25, 0x40, 40, 0x200, 46, 0x40, 51, 0x200,
772 23, 0x40, 10, 0x8, 48, 0x40, 12, 0x40,
773 51, 0x40, 27, 0x20, 17, 0x400, 24, 0x8,
774 52, 0x400, 15, 0x400, 51, 0x10, 17, 0x20,
775 35, 0x40, 22, 0x40, 52, 0x40, 26, 0x20,
776 53, 0x40, 27, 0x40, 29, 0x400, 28, 0x40,
777 13, 0x8, 36, 0x4, 47, 0x4, 28, 0x20,
778 22, 0x8, 34, 0x40, 23, 0x8, 53, 0x400,
779 28, 0x400, 51, 0x20, 14, 0x400, 34, 0x4,
780 17, 0x40, 16, 0x40, 36, 0x40, 15, 0x20,
781 41, 0x10, 25, 0x8, 50, 0x40, 13, 0x20,
782 17, 0x10, 29, 0x40, 50, 0x400, 48, 0x8,
783 26, 0x10, 16, 0x10, 35, 0x4, 41, 0x20,
784 14, 0x40, 29, 0x20, 52, 0x20, 12, 0x8,
785 38, 0x400, 53, 0x20, 26, 0x400, 41, 0x40,
786 24, 0x20, 14, 0x10, 27, 0x10, 50, 0x20,
787 40, 0x40, 39, 0x400, 14, 0x20, 38, 0x20,
788 15, 0x10, 16, 0x400, 11, 0x20, 26, 0x40,
789 51, 0x400, 27, 0x400, 47, 0x8, 46, 0x8,
790 52, 0x10, 10, 0x20, 46, 0x20, 41, 0x400,
791 11, 0x8, 53, 0x10, 22, 0x2, 39, 0x40,
792 22, 0x20, 29, 0x10, 50, 0x10, 39, 0x20,
793 37, 0x8, 25, 0x20, 40, 0x20, 49, 0x20,
794 34, 0x8, 10, 0x10, 24, 0x1, 39, 0x10,
795 13, 0x10, 22, 0x1, 28, 0x10, 35, 0x20,
796 38, 0x40, 24, 0x10, 49, 0x8, 12, 0x20,
797 25, 0x2, 13, 0x1, 10, 0x1, 47, 0x20,
798 23, 0x20, 40, 0x10, 25, 0x1, 40, 0x400,
799 34, 0x20, 48, 0x20, 46, 0x1, 47, 0x10,
800 36, 0x8, 37, 0x1, 49, 0x1, 23, 0x2,
801 35, 0x1, 38, 0x10, 37, 0x20, 46, 0x10,
802 48, 0x1, 24, 0x2, 23, 0x1, 12, 0x1,
803 13, 0x2, 14, 0x100, 28, 0x8, 11, 0x1,
804 12, 0x2, 11, 0x2, 17, 0x100, 47, 0x1,
805 22, 0x10, 25, 0x10, 48, 0x10, 16, 0x100,
806 23, 0x10, 51, 0x8, 11, 0x10, 46, 0x2,
807 29, 0x100, 28, 0x100, 10, 0x2, 34, 0x2,
808 35, 0x8, 17, 0x8, 37, 0x2, 50, 0x100,
809 15, 0x100, 12, 0x10, 16, 0x8, 41, 0x8,
810 15, 0x8, 36, 0x20, 36, 0x1, 47, 0x2,
811 28, 0x4, 48, 0x2, 37, 0x10, 49, 0x10,
812 35, 0x2, 53, 0x100, 51, 0x100, 27, 0x8,
813 26, 0x8, 26, 0x100, 53, 0x8, 14, 0x8,
814 34, 0x1, 52, 0x100, 27, 0x100, 41, 0x100,
815 40, 0x8, 17, 0x4, 29, 0x8, 39, 0x100,
816 49, 0x2, 53, 0x4, 38, 0x100, 36, 0x10,
817 15, 0x4, 14, 0x4, 35, 0x10, 52, 0x8,
818 34, 0x10, 51, 0x4, 40, 0x100, 36, 0x2,
819 50, 0x4, 26, 0x4, 38, 0x8, 27, 0x4,
820 39, 0x8, 16, 0x4, 51, 0x2, 29, 0x4,
821 39, 0x4, 41, 0x4, 50, 0x8, 38, 0x4,
822 17, 0x2, 40, 0x4, 52, 0x4, 28, 0x2,
823 14, 0x2, 26, 0x2, 53, 0x2, 29, 0x2,
824 15, 0x2, 50, 0x2, 41, 0x2, 27, 0x2,
825 16, 0x2, 52, 0x2, 39, 0x2, 50, 0x80,
826 38, 0x2, 40, 0x2, 16, 0x80, 14, 0x80,
827 17, 0x80, 53, 0x80, 41, 0x80, 29, 0x80,
828 52, 0x80, 15, 0x80, 40, 0x80, 26, 0x80,
829 39, 0x80, 27, 0x80, 28, 0x80, 51, 0x80,
830 53, 0x1, 38, 0x80, 41, 0x1, 14, 0x1,
831 52, 0x1, 27, 0x1, 26, 0x1, 15, 0x1,
832 51, 0x1, 40, 0x1, 28, 0x1, 29, 0x1,
833 16, 0x1, 17, 0x1, 50, 0x1, 39, 0x1,
834 38, 0x1
835};
836
837const Word16 mode_DTX[NBBITS_SID << 1] = {
838 0, 0x20, 0, 0x10, 0, 0x8, 0, 0x4,
839 0, 0x2, 0, 0x1, 1, 0x20, 1, 0x10,
840 1, 0x8, 1, 0x4, 1, 0x2, 1, 0x1,
841 2, 0x20, 2, 0x10, 2, 0x8, 2, 0x4,
842 2, 0x2, 2, 0x1, 3, 0x10, 3, 0x8,
843 3, 0x4, 3, 0x2, 3, 0x1, 4, 0x10,
844 4, 0x8, 4, 0x4, 4, 0x2, 4, 0x1,
845 5, 0x20, 5, 0x10, 5, 0x8, 5, 0x4,
846 5, 0x2, 5, 0x1, 6, 0x1
847};
848
849const Word16 nb_of_param[NUM_OF_SPMODES] = {
850 PRMNO_7k, PRMNO_9k, PRMNO_12k,
851 PRMNO_14k, PRMNO_16k, PRMNO_18k,
852 PRMNO_20k, PRMNO_23k, PRMNO_24k
853};
854
855const Word16 dfh_M7k[PRMNO_7k] = {
856 0, 49, 131,
857 84, 5, 50,
858 29, 2015, 8,
859 0, 2061, 8,
860 1, 3560, 8,
861 0, 2981, 8
862};
863
864const Word16 dfh_M9k[PRMNO_9k] = {
865 0, 49, 131,
866 55, 49, 38,
867 26, 29, 29,
868 3, 15, 7,
869 15, 8, 16,
870 13, 7, 17,
871 16, 8, 0,
872 16, 20, 16,
873 27, 8, 23,
874 0, 27, 0,
875 27, 8
876};
877
878const Word16 dfh_M12k[PRMNO_12k] = {
879 0, 49, 131,
880 55, 49, 38,
881 26, 29, 58,
882 1, 7, 63,
883 127, 15, 70,
884 37, 1, 209,
885 210, 224, 96,
886 31, 7, 1,
887 256, 260, 271,
888 443, 31, 47,
889 0, 400, 238,
890 436, 347, 31
891};
892
893const Word16 dfh_M14k[PRMNO_14k] = {
894 0, 49, 131,
895 55, 49, 38,
896 26, 29, 58,
897 1, 3847, 3845,
898 63, 127, 70,
899 34, 0, 3128,
900 4517, 192, 96,
901 0, 2, 1,
902 4160, 8036, 267,
903 443, 31, 46,
904 0, 3840, 7091,
905 432, 395, 31
906};
907
908const Word16 dfh_M16k[PRMNO_16k] = {
909 0, 49, 131,
910 55, 49, 38,
911 26, 29, 58,
912 1, 3847, 3845,
913 3847, 3843, 70,
914 31, 0, 3648,
915 4764, 824, 2864,
916 0, 6, 1,
917 4160, 5220, 4319,
918 7131, 31, 47,
919 0, 112, 3764,
920 219, 211, 31
921};
922
923const Word16 dfh_M18k[PRMNO_18k] = {
924 0, 49, 131,
925 55, 49, 38,
926 26, 29, 58,
927 1, 3, 2,
928 3, 2, 7223,
929 703, 7223, 703,
930 70, 0, 1,
931 3, 2, 2,
932 3, 9475, 9483,
933 3090, 8737, 0,
934 0, 1, 0,
935 0, 2, 0,
936 4112, 4400, 8415,
937 14047, 31, 38,
938 0, 2, 1,
939 3, 1, 91,
940 426, 13545, 12955,
941 0
942};
943
944const Word16 dfh_M20k[PRMNO_20k] = {
945 0, 49, 131,
946 55, 49, 38,
947 26, 29, 58,
948 1, 161, 759,
949 3, 2, 127,
950 516, 6167, 447,
951 70, 11, 1,
952 264, 641, 2,
953 3, 123, 562,
954 8347, 4354, 0,
955 1, 1, 264,
956 408, 3, 0,
957 256, 308, 9487,
958 14047, 31, 46,
959 0, 320, 885,
960 2, 2, 464,
961 439, 11347, 12739,
962 0
963};
964
965const Word16 dfh_M23k[PRMNO_23k] = {
966 0, 49, 131,
967 55, 49, 38,
968 26, 29, 58,
969 1, 1154, 1729,
970 1154, 1761, 447,
971 1519, 959, 495,
972 70, 27, 1,
973 1800, 1253, 665,
974 1960, 546, 164,
975 1043, 335, 0,
976 28, 1, 580,
977 196, 1187, 383,
978 1031, 1052, 359,
979 1531, 31, 45,
980 1, 1024, 893,
981 1272, 1920, 101,
982 876, 203, 1119,
983 31
984};
985
986const Word16 dfh_M24k[PRMNO_24k] = {
987 0, 49, 131,
988 55, 49, 38,
989 26, 29, 58,
990 1, 1729, 1154,
991 1761, 1154, 1519,
992 959, 495, 447,
993 70, 3, 42,
994 1, 580, 1436,
995 1362, 1250, 901,
996 714, 24, 45,
997 0, 0, 0,
998 1, 68, 708,
999 1212, 383, 1048,
1000 1611, 1756, 1467,
1001 31, 1, 23,
1002 0, 1536, 1460,
1003 861, 1554, 410,
1004 1368, 1008, 594,
1005 31, 0
1006};
1007
1008/*
1009 * overall table with the parameters of the
1010 * decoder homing frames for all modes
1011 */
1012
1013const Word16 *dhf[10] = {
1014 dfh_M7k,
1015 dfh_M9k,
1016 dfh_M12k,
1017 dfh_M14k,
1018 dfh_M16k,
1019 dfh_M18k,
1020 dfh_M20k,
1021 dfh_M23k,
1022 dfh_M24k,
1023 dfh_M24k
1024};
1025
1026#ifdef ENABLE_CPU2_DECODER
1027CPU2_DATA_END
1028#endif
1029
1030#endif
1031