xref: /aosp_15_r20/external/libxaac/decoder/ixheaacd_aac_rom.c (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
1 /******************************************************************************
2  *                                                                            *
3  * Copyright (C) 2018 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************
18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19 */
20 #include "ixheaacd_sbr_common.h"
21 #include "ixheaac_type_def.h"
22 #include "ixheaacd_defines.h"
23 #include "ixheaacd_aac_rom.h"
24 #include "ixheaacd_intrinsics.h"
25 
26 // -1 is appended at the end of each table to identify
27 //   number of scf bands at run time
28 //
29 const ia_aac_dec_huffman_tables_struct ixheaacd_aac_huffmann_tables = {
30 
31     // static const WORD8 ixheaacd_sfb_96_1024[42] =
32     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
33      8,  8,  8,  8,  8,  12, 12, 12, 12, 12, 16, 16, 24, 28,
34      36, 44, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -1},
35 
36     // 12 scfbands
37     // static const WORD8 ixheaacd_sfb_96_128[13] =
38     {4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36, -1},
39 
40     // 47 scfbands
41     // static const WORD8 ixheaacd_sfb_64_1024[48] =
42     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,
43      8,  8,  12, 12, 12, 16, 16, 16, 20, 24, 24, 28, 36, 40, 40, 40,
44      40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, -1},
45 
46     // 12 scfbands */
47     // static const WORD8 ixheaacd_sfb_64_128[13] =
48     // same as ixheaacd_sfb_96_128
49 
50     // 49 scfbands
51     // static const WORD8 ixheaacd_sfb_48_1024[50] =
52     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  8,  8,  8,  8,
53      12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32,
54      32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, -1},
55 
56     // 14 scfbands
57     // static const WORD8 ixheaacd_sfb_48_128[15] =
58     {4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16, -1},
59 
60     // 51 scfbands
61     // static const WORD8 ixheaacd_sfb_32_1024[52] =
62     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  8,  8,  8,  8,  12,
63      12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32, 32,
64      32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1},
65 
66     // 47 scfbands
67     // static const WORD8 ixheaacd_sfb_24_1024[48] =
68     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  8,  8,
69      8,  8,  8,  8,  8,  12, 12, 12, 12, 16, 16, 16, 20, 20, 24, 24,
70      28, 28, 32, 36, 36, 40, 44, 48, 52, 52, 64, 64, 64, 64, 64, -1},
71 
72     // 15 scfbands
73     // static const WORD8 ixheaacd_sfb_24_128[16] =
74     {4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 16, 16, 20, -1},
75 
76     // 43 scfbands
77     // static const WORD8 ixheaacd_sfb_16_1024[44] =
78     {8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  12, 12, 12, 12,
79      12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24, 24, 28,
80      28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64, -1},
81 
82     // 15 scfbands
83     // static const WORD8 ixheaacd_sfb_16_128[16] =
84     {4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20, -1},
85 
86     // 40 scfbands
87     // static const WORD8 ixheaacd_sfb_8_1024[41] =
88     {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16,
89      16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 24, 24, 24, 28,
90      28, 32, 36, 36, 40, 44, 48, 52, 56, 60, 64, 80, -1},
91 
92     // 15 scfbands
93     // static const WORD8 ixheaacd_sfb_8_128[16] =
94     {4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 20, 20, -1},
95 
96     // const ia_sampling_rate_info_struct str_sample_rate_info[16] =
97     {{96000},
98      {88200},
99      {64000},
100      {48000},
101      {44100},
102      {32000},
103      {24000},
104      {22050},
105      {16000},
106      {12000},
107      {11025},
108      {8000},
109      {7350}},
110 
111     //        15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
112     //       +------------------------------------------------+
113     //       | 1|  Len     |    Symbol                        |
114     //       +------------------------------------------------+
115     //       | 0|          |    Offset                        |
116     //       +------------------------------------------------+
117     // LSB (00) is set 1 when the codeword is decoded
118     //
119     // HuffmanCodeBook_1
120     // idx_hf11
121     {
122         0x20100001, 0x41e00045, 0x659000c6, 0x890001c4, 0x0e6003df, 0xaef003e8,
123         0x10d007ef, 0x115007f7, 0x119007fb, 0xd1a007fc, 0x11e00ffd, 0x11f00ffe,
124         0x12000fff, 0xc0700009, 0x052000bf, 0x08b001bf, 0x0c6003bf, 0x0fd007df,
125         0x11c00ffb, 0x20e0001a, 0x0180003f,
126     },
127 
128     // idx_hf10
129     {0x10200002, 0x21800029, 0x32900064, 0x442000e2, 0x561001e4,
130      0x087003ef, 0x68a003f2, 0x09c007f7, 0x0a0007fb, 0x0a400ffb,
131      0x0a600ffd, 0x0a700ffe, 0x0a800fff, 0x60a0000d, 0x0240005f,
132      0x03f000df, 0x05c001df, 0x077003df, 0x094007ef, 0x00e0001f},
133 
134     // idx_hf9
135     {0x00000000, 0x00200005, 0x1030000c, 0x20a00072, 0x31d001e6, 0x431003e1,
136      0x550007e2, 0x67600feb, 0x08e01fef, 0x09601ff7, 0x09e03ff7, 0x0a203ffb,
137      0x0a403ffd, 0x0a607ffd, 0x0a707ffe, 0x0a807fff, 0x00700037, 0x512000ed,
138      0x02f003df, 0x04d007df, 0x06a00fdf, 0x07e01fdf, 0x016001df},
139     // idx_hf8
140     {0x10000000, 0x20c00014, 0x31600033, 0x42400075, 0x030000f7, 0x533000fa,
141      0x039001fb, 0x03b001fd, 0x03d003fd, 0x03e003fe, 0x03f003ff, 0x50500006,
142      0x0120002f, 0x01e0006f, 0x028000ef, 0x035001f7, 0x0070000f},
143 
144     // idx_hf7
145     {0x00000000, 0x00200005, 0x1030000c, 0x20c00074, 0x316000f3, 0x424001f5,
146      0x030003f7, 0x533003fa, 0x039007fb, 0x03b007fd, 0x03d00ffd, 0x03e00ffe,
147      0x03f00fff, 0x00700037, 0x012000ef, 0x01e001ef, 0x028003ef, 0x035007f7},
148 
149     // idx_hf6
150     {0x00700007, 0x10800008, 0x21800033, 0x32500074, 0x42d000f1, 0x041001f7,
151      0x544001fa, 0x04a003fb, 0x04c003fd, 0x04e007fd, 0x04f007fe, 0x050007ff,
152      0x0140002f, 0x0200006f, 0x02b000ef, 0x039001ef, 0x046003f7},
153 
154     // idx_hf5
155     {0x00000000, 0x0040000b, 0x0080001b, 0x10c00073, 0x218000f3, 0x324001f3,
156      0x430003f3, 0x040007f7, 0x542007f9, 0x04a00ffb, 0x04c00ffd, 0x04e01ffd,
157      0x04f01ffe, 0x05001fff, 0x014000ef, 0x020001ef, 0x02c003ef, 0x038007ef,
158      0x04600ff7},
159 
160     // idx_hf4
161     {0x00700007, 0x10900009, 0x20f00019, 0x31800070, 0x42d000f6, 0x535001f5,
162      0x041003f7, 0x643003f9, 0x04b007fb, 0x04d007fd, 0x04e007fe, 0x04f00ffe,
163      0x05000fff, 0x00d00017, 0x0170006f, 0x026000ef, 0x02f001ef, 0x039003ef,
164      0x047007f7},
165 
166     // idx_hf3
167     {0x00000000, 0x0040000b, 0x10600019, 0x20c00039, 0x314000f2, 0x423001f4,
168      0x031003f7, 0x532003f8, 0x63a007f9, 0x04200ffb, 0x74300ffc, 0x84601ffc,
169      0x94903ffc, 0x04d07ffd, 0x04e07ffe, 0x04f0fffe, 0x0500ffff, 0x00a00037,
170      0x80f00076, 0x01e001ef, 0x029003ef, 0x038007f7, 0x03e00ff7, 0x04501ffb,
171      0x04803ffb, 0x04b07ffb, 0x011000ef},
172 
173     // idx_hf2
174     {0x10000000, 0x01e0002f, 0x22000031, 0x32f00072, 0x041000f7, 0x442000f8,
175      0x04c001fb, 0x04e001fd, 0x04f001fe, 0x050001ff, 0x40100002, 0x02c0006f,
176      0x039000ef, 0x048001f7, 0x1080000c, 0x00e0001f},
177 
178     // idx_hf1
179     {0x00000000, 0x00800017, 0x0180006f, 0x02000077, 0x030001ef, 0x038001f7,
180      0x040003f7, 0x048007f7, 0x04c007fb, 0x04e007fd, 0x04f007fe, 0x050007ff},
181 
182     // inp_hf11
183     {0x000c, 0x0004, 0x0244, 0x2405, 0x0225, 0x0025, 0x0465, 0x0265, 0x0485,
184      0x0286, 0x0686, 0x06a6, 0x0446, 0x04a6, 0x0046, 0x06c6, 0x08a7, 0x02a7,
185      0x08c7, 0x04c7, 0x08e7, 0x06e7, 0x0667, 0x0067, 0x0ac7, 0x0ae7, 0x04e7,
186      0x0907, 0x02c7, 0x0b07, 0x0707, 0x0b27, 0x0928, 0x0d08, 0x0508, 0x0ce8,
187      0x0d28, 0x0728, 0x02e8, 0x0a88, 0x0868, 0x22a8, 0x2268, 0x2288, 0x0d48,
188      0x22c8, 0x0888, 0x0948, 0x0088, 0x0648, 0x0b48, 0x0ca8, 0x22e8, 0x2248,
189      0x2308, 0x0528, 0x0f28, 0x0748, 0x0d68, 0x0b68, 0x0ec8, 0x2348, 0x0f48,
190      0x0f08, 0x2328, 0x10e8, 0x0428, 0x0308, 0x0968, 0x2368, 0x0f68, 0x2388,
191      0x1308, 0x2228, 0x0d88, 0x1528, 0x0548, 0x0b88, 0x1748, 0x23a8, 0x1168,
192      0x1148, 0x0768, 0x0aa8, 0x23c8, 0x1968, 0x0f88, 0x0988, 0x0da8, 0x0fa8,
193      0x00a8, 0x1189, 0x23e9, 0x1b89, 0x0329, 0x1129, 0x1fc9, 0x0ba9, 0x1da9,
194      0x0789, 0x11a9, 0x0fc9, 0x0569, 0x11c9, 0x1369, 0x1389, 0x21e9, 0x09a9,
195      0x0dc9, 0x0cc9, 0x13a9, 0x0bc9, 0x11e9, 0x0fe9, 0x0349, 0x15a9, 0x00c9,
196      0x1589, 0x1349, 0x13c9, 0x09c9, 0x0589, 0x13e9, 0x07a9, 0x0de9, 0x15c9,
197      0x1209, 0x15e9, 0x1409, 0x17c9, 0x0369, 0x0ee9, 0x1609, 0x1009, 0x07c9,
198      0x0be9, 0x1569, 0x09e9, 0x17a9, 0x1be9, 0x0e09, 0x1c09, 0x05a9, 0x2209,
199      0x0c09, 0x1809, 0x17ea, 0x142a, 0x102a, 0x122a, 0x020a, 0x0a2a, 0x00ea,
200      0x080a, 0x182a, 0x1bca, 0x1c2a, 0x19ea, 0x05ea, 0x1c4a, 0x124a, 0x0e2a,
201      0x164a, 0x162a, 0x1e0a, 0x1a0a, 0x038a, 0x0a0a, 0x178a, 0x07ea, 0x03ca,
202      0x19ca, 0x104a, 0x082a, 0x0c2a, 0x0c4a, 0x1e4a, 0x0a4a, 0x184a, 0x1e2a,
203      0x1a2a, 0x1c6a, 0x1a4a, 0x110a, 0x186a, 0x05ca, 0x144a, 0x1e6a, 0x0e6a,
204      0x168a, 0x202a, 0x126a, 0x146a, 0x1e8a, 0x166a, 0x0c6a, 0x188a, 0x1dea,
205      0x060a, 0x0e4a, 0x03aa, 0x1caa, 0x010a, 0x1c8a, 0x106a, 0x1a6a, 0x108a,
206      0x204a, 0x19aa, 0x0e8a, 0x062a, 0x208a, 0x206a, 0x03ea, 0x148a, 0x0a6a,
207      0x1eaa, 0x12aa, 0x1cca, 0x128a, 0x0c8a, 0x084a, 0x16aa, 0x18aa, 0x1a8a,
208      0x20aa, 0x20ca, 0x12ca, 0x200a, 0x10aa, 0x132a, 0x012a, 0x14ca, 0x14aa,
209      0x1aaa, 0x1eca, 0x16ea, 0x1eea, 0x1aca, 0x0eaa, 0x10ca, 0x14eb, 0x20eb,
210      0x18cb, 0x192b, 0x040b, 0x16cb, 0x170b, 0x1d0b, 0x1ceb, 0x190b, 0x18eb,
211      0x12eb, 0x1f2b, 0x1d2b, 0x1b2b, 0x210b, 0x1f0b, 0x154b, 0x1aeb, 0x150b,
212      0x014b, 0x1b0b, 0x176b, 0x1b4b, 0x172b, 0x1d4b, 0x01ab, 0x1f4b, 0x212b,
213      0x214b, 0x194b, 0x1f6b, 0x1bab, 0x016b, 0x1d6b, 0x216b, 0x218b, 0x1b6b,
214      0x1dcb, 0x1f8b, 0x1d8b, 0x198b, 0x1fab, 0x01cc, 0x018c, 0x21ac, 0x1fec,
215      0x01ec, 0x21cc},
216     // inp_hf10
217     {0x000c, 0x01c4, 0x01e4, 0x0364, 0x0385, 0x01a5, 0x0025, 0x0205, 0x0525,
218      0x0505, 0x03a5, 0x0545, 0x0346, 0x0046, 0x03c6, 0x06c6, 0x0226, 0x06a6,
219      0x0006, 0x06e6, 0x0566, 0x04e6, 0x0066, 0x0706, 0x03e6, 0x0866, 0x0247,
220      0x0847, 0x0887, 0x0587, 0x08a7, 0x0727, 0x0a07, 0x0407, 0x0a27, 0x0687,
221      0x09e7, 0x0087, 0x0267, 0x05a7, 0x08c7, 0x0a47, 0x0747, 0x0a68, 0x0ba8,
222      0x05c8, 0x0428, 0x08e8, 0x0d48, 0x0bc8, 0x0828, 0x0b88, 0x00a8, 0x0d28,
223      0x0288, 0x0d68, 0x0be8, 0x0768, 0x0448, 0x0a88, 0x0c08, 0x02a8, 0x05e8,
224      0x0d88, 0x0788, 0x0908, 0x0da8, 0x0928, 0x0c29, 0x0aa9, 0x0ee9, 0x09c9,
225      0x0ac9, 0x0f09, 0x0609, 0x0ec9, 0x0469, 0x00c9, 0x0dc9, 0x0f29, 0x07a9,
226      0x1089, 0x02c9, 0x0c49, 0x0de9, 0x0f49, 0x0c69, 0x10a9, 0x0949, 0x10c9,
227      0x0489, 0x1069, 0x0629, 0x0f69, 0x0ae9, 0x0d09, 0x07c9, 0x0b69, 0x1229,
228      0x0c8a, 0x124a, 0x110a, 0x02ea, 0x120a, 0x0f8a, 0x00ea, 0x0e0a, 0x10ea,
229      0x064a, 0x096a, 0x0e2a, 0x128a, 0x010a, 0x126a, 0x04aa, 0x0caa, 0x0b0a,
230      0x112a, 0x07ea, 0x030a, 0x13ca, 0x0faa, 0x13ea, 0x12aa, 0x098a, 0x140a,
231      0x12ca, 0x142a, 0x066a, 0x0b2a, 0x0eaa, 0x114a, 0x104a, 0x13aa, 0x012a,
232      0x080a, 0x0fca, 0x144a, 0x04ca, 0x0e4a, 0x0feb, 0x032b, 0x12eb, 0x146b,
233      0x0ccb, 0x09ab, 0x0b4b, 0x116b, 0x0e6b, 0x148b, 0x014b, 0x0ceb, 0x11eb,
234      0x118b, 0x130b, 0x132b, 0x016b, 0x134b, 0x100b, 0x11ab, 0x138b, 0x0e8b,
235      0x14ac, 0x11cc, 0x102c, 0x136c, 0x14ec, 0x018c, 0x14cc, 0x150c},
236     // inp_hf9
237     {0x000f, 0x0001, 0x01a3, 0x0023, 0x01c4, 0x0366, 0x01e6, 0x0346, 0x0046,
238      0x0507, 0x0387, 0x0207, 0x04e8, 0x0068, 0x03a8, 0x0528, 0x0228, 0x06a8,
239      0x03c8, 0x0248, 0x06c9, 0x0549, 0x0089, 0x0689, 0x0849, 0x03e9, 0x0269,
240      0x0569, 0x0869, 0x09e9, 0x06e9, 0x00aa, 0x040a, 0x082a, 0x028a, 0x058a,
241      0x02aa, 0x0d2a, 0x070a, 0x088a, 0x0a0a, 0x0b8a, 0x00ca, 0x0d4a, 0x044a,
242      0x05aa, 0x042a, 0x072a, 0x0eca, 0x02ca, 0x0baa, 0x09cb, 0x08ab, 0x0a2b,
243      0x0d6b, 0x00eb, 0x0eeb, 0x05eb, 0x074b, 0x05cb, 0x010b, 0x106b, 0x0a4b,
244      0x046b, 0x08cb, 0x0d0b, 0x0b6b, 0x0bcb, 0x108b, 0x0f0b, 0x0d8b, 0x02eb,
245      0x0beb, 0x0a6b, 0x08eb, 0x078b, 0x076b, 0x060b, 0x120b, 0x092b, 0x0eab,
246      0x0dab, 0x10ac, 0x048c, 0x012c, 0x122c, 0x0f2c, 0x0a8c, 0x13ac, 0x07ac,
247      0x0dcc, 0x030c, 0x0f4c, 0x10cc, 0x090c, 0x0c0c, 0x04ac, 0x032c, 0x13cc,
248      0x124c, 0x062c, 0x094c, 0x0aac, 0x0dec, 0x126c, 0x014c, 0x0c2c, 0x13ec,
249      0x104c, 0x10ec, 0x07cc, 0x0acc, 0x04cc, 0x0f6c, 0x0f8c, 0x07ec, 0x11ec,
250      0x0aec, 0x064c, 0x096c, 0x0e0d, 0x0c6d, 0x142d, 0x066d, 0x128d, 0x0c4d,
251      0x140d, 0x12ad, 0x110d, 0x080d, 0x0c8d, 0x098d, 0x016d, 0x144d, 0x0b0d,
252      0x138d, 0x112d, 0x09ad, 0x0cad, 0x0fad, 0x018d, 0x12cd, 0x0e2d, 0x0fcd,
253      0x114d, 0x0ccd, 0x146d, 0x0b2d, 0x0e6d, 0x12ed, 0x0ced, 0x0b4d, 0x0e4e,
254      0x116e, 0x0e8e, 0x0fee, 0x100e, 0x102e, 0x11ae, 0x14ae, 0x118e, 0x130e,
255      0x148e, 0x132e, 0x14ce, 0x14ee, 0x11cf, 0x134f, 0x136f, 0x150f},
256 
257     // inp_hf8
258     {0x000a, 0x0123, 0x0224, 0x0104, 0x0144, 0x0024, 0x0244, 0x0005, 0x0205,
259      0x0045, 0x0325, 0x0165, 0x0345, 0x0265, 0x0366, 0x0426, 0x0186, 0x0446,
260      0x0286, 0x0306, 0x0066, 0x0466, 0x0386, 0x0546, 0x0527, 0x02a7, 0x01a7,
261      0x0567, 0x03a7, 0x0487, 0x0587, 0x0087, 0x04a7, 0x0407, 0x02c7, 0x0647,
262      0x0627, 0x01c7, 0x03c8, 0x0668, 0x05a8, 0x0508, 0x0688, 0x00a8, 0x04c8,
263      0x0728, 0x0748, 0x02e8, 0x06a8, 0x0768, 0x01e8, 0x05c8, 0x03e8, 0x06c9,
264      0x0789, 0x0609, 0x04e9, 0x00c9, 0x07a9, 0x07c9, 0x06e9, 0x05ea, 0x070a,
265      0x00ea, 0x07ea},
266 
267     // inp_hf7
268     {0x000c, 0x0001, 0x0103, 0x0023, 0x0124, 0x0226, 0x0146, 0x0206, 0x0046,
269      0x0327, 0x0167, 0x0247, 0x0307, 0x0067, 0x0268, 0x0348, 0x0188, 0x0428,
270      0x01a8, 0x0528, 0x0368, 0x0288, 0x0088, 0x0408, 0x0449, 0x02a9, 0x0549,
271      0x00a9, 0x0629, 0x0509, 0x01c9, 0x0469, 0x03a9, 0x0389, 0x0569, 0x02c9,
272      0x0649, 0x01e9, 0x03ca, 0x00ca, 0x060a, 0x048a, 0x072a, 0x04aa, 0x074a,
273      0x058a, 0x066a, 0x02ea, 0x076a, 0x068a, 0x05aa, 0x04ca, 0x03ea, 0x070b,
274      0x00eb, 0x06ab, 0x05cb, 0x078b, 0x04eb, 0x05eb, 0x07ab, 0x07cc, 0x06cc,
275      0x06ec, 0x07ec},
276 
277     // inp_hf6
278     {0x000b, 0x0504, 0x0624, 0x04e4, 0x0524, 0x03e4, 0x0644, 0x0404, 0x0604,
279      0x03c4, 0x0726, 0x0766, 0x02e6, 0x02a6, 0x02c6, 0x0426, 0x0746, 0x05e6,
280      0x0666, 0x04c6, 0x03a6, 0x0546, 0x0706, 0x0306, 0x0286, 0x0786, 0x01c7,
281      0x0887, 0x0847, 0x0447, 0x0187, 0x0687, 0x05c7, 0x0387, 0x0867, 0x01a7,
282      0x04a7, 0x0567, 0x08a7, 0x0168, 0x0328, 0x07a8, 0x0828, 0x06e8, 0x0268,
283      0x01e8, 0x08c8, 0x0809, 0x0149, 0x0209, 0x05a9, 0x0369, 0x09a9, 0x00a9,
284      0x0069, 0x06a9, 0x0969, 0x0469, 0x0489, 0x00c9, 0x0049, 0x07c9, 0x0249,
285      0x0089, 0x09c9, 0x0949, 0x0349, 0x0989, 0x06c9, 0x0589, 0x012a, 0x022a,
286      0x07ea, 0x092a, 0x08ea, 0x09ea, 0x00ea, 0x002a, 0x0a0b, 0x010b, 0x000b,
287      0x090b},
288 
289     // inp_hf5
290     {0x000d, 0x0501, 0x03e4, 0x0624, 0x0524, 0x04e4, 0x0605, 0x0405, 0x03c5,
291      0x0645, 0x02c7, 0x0547, 0x0747, 0x04c7, 0x02a8, 0x0768, 0x03a8, 0x0668,
292      0x02e8, 0x0728, 0x0428, 0x05e8, 0x01a8, 0x0868, 0x04a8, 0x0568, 0x0189,
293      0x0689, 0x0889, 0x0389, 0x01c9, 0x0849, 0x05c9, 0x0449, 0x0309, 0x0789,
294      0x0289, 0x0709, 0x016a, 0x082a, 0x032a, 0x06ea, 0x08aa, 0x07aa, 0x01ea,
295      0x026a, 0x048a, 0x008a, 0x09aa, 0x098a, 0x006b, 0x058b, 0x096b, 0x036b,
296      0x06ab, 0x046b, 0x00ab, 0x05ab, 0x080b, 0x014b, 0x020b, 0x034b, 0x004b,
297      0x09cb, 0x06cb, 0x07cb, 0x08cb, 0x00cb, 0x024c, 0x094c, 0x07ec, 0x002c,
298      0x00ec, 0x08ec, 0x022c, 0x09ec, 0x092c, 0x012c, 0x090d, 0x010d, 0x0a0d,
299      0x000d},
300 
301     // inp_hf4
302     {0x000c, 0x0504, 0x01a4, 0x04a4, 0x04e4, 0x03e4, 0x0364, 0x0484, 0x0004,
303      0x0084, 0x03c4, 0x0385, 0x0185, 0x0025, 0x0145, 0x0065, 0x0125, 0x0867,
304      0x0567, 0x0627, 0x0527, 0x0847, 0x0807, 0x0607, 0x0747, 0x0207, 0x01c8,
305      0x0548, 0x02c8, 0x0408, 0x05c8, 0x04c8, 0x0448, 0x07e8, 0x0728, 0x05a8,
306      0x06e8, 0x0168, 0x02a8, 0x00a8, 0x01e8, 0x0268, 0x03a8, 0x00e8, 0x0428,
307      0x06c8, 0x0048, 0x0249, 0x00c9, 0x0689, 0x0989, 0x08c9, 0x0589, 0x0649,
308      0x0889, 0x066a, 0x096a, 0x08aa, 0x032a, 0x022a, 0x092a, 0x02ea, 0x07aa,
309      0x046a, 0x09ea, 0x05ea, 0x076a, 0x082a, 0x06aa, 0x08eb, 0x09ab, 0x030b,
310      0x090b, 0x010b, 0x078b, 0x028b, 0x070b, 0x0a0b, 0x034b, 0x09cb, 0x094c,
311      0x07cc},
312 
313     // inp_hf3
314     {0x0010, 0x0001, 0x0364, 0x0024, 0x0124, 0x0064, 0x0485, 0x0085, 0x0186,
315      0x0146, 0x03c6, 0x01a6, 0x0386, 0x04e6, 0x0507, 0x03e7, 0x04a7, 0x06c8,
316      0x0048, 0x00a8, 0x07e8, 0x0608, 0x00e9, 0x0209, 0x05a9, 0x01c9, 0x0849,
317      0x00c9, 0x02a9, 0x01e9, 0x0249, 0x0169, 0x0729, 0x0629, 0x02c9, 0x0549,
318      0x0569, 0x05ca, 0x042a, 0x044a, 0x026a, 0x086a, 0x052a, 0x080a, 0x040a,
319      0x010a, 0x022a, 0x096a, 0x066a, 0x03aa, 0x06ea, 0x032a, 0x090b, 0x068b,
320      0x04cb, 0x074b, 0x058b, 0x098b, 0x030b, 0x02eb, 0x046c, 0x092c, 0x08ac,
321      0x09cc, 0x034c, 0x09ec, 0x08cc, 0x064c, 0x06ac, 0x028d, 0x078d, 0x05ed,
322      0x07ae, 0x088e, 0x082e, 0x0a0f, 0x09af, 0x08ef, 0x076f, 0x070f, 0x0950,
323      0x07d0},
324     // inp_hf2
325     {0x0009, 0x0503, 0x0864, 0x01a5, 0x0525, 0x04a5, 0x04e5, 0x03e5, 0x0565,
326      0x0625, 0x0446, 0x02c6, 0x05c6, 0x0546, 0x0606, 0x04c6, 0x0186, 0x0746,
327      0x0806, 0x0086, 0x0486, 0x08c6, 0x0886, 0x0406, 0x0206, 0x0646, 0x0386,
328      0x01c6, 0x03c6, 0x0146, 0x0986, 0x0686, 0x0586, 0x0846, 0x05e7, 0x0827,
329      0x0267, 0x0427, 0x07a7, 0x0967, 0x08e7, 0x0327, 0x03a7, 0x09e7, 0x01e7,
330      0x0027, 0x0167, 0x06e7, 0x0927, 0x0768, 0x02a8, 0x00e8, 0x0228, 0x00a8,
331      0x0068, 0x0368, 0x08a8, 0x07e8, 0x05a8, 0x06a8, 0x02e8, 0x0128, 0x0668,
332      0x0728, 0x0468, 0x09a8, 0x0788, 0x0288, 0x0709, 0x0009, 0x0309, 0x0349,
333      0x0a09, 0x00c9, 0x07c9, 0x0249, 0x0109, 0x0909, 0x06c9, 0x0049, 0x0949,
334      0x09c9},
335 
336     // inp_hf1
337     {0x000b, 0x0501, 0x0865, 0x01a5, 0x04e5, 0x0625, 0x0525, 0x04a5, 0x0565,
338      0x03e5, 0x0747, 0x02c7, 0x04c7, 0x05c7, 0x0447, 0x0547, 0x0987, 0x0487,
339      0x0087, 0x0387, 0x0807, 0x0607, 0x0207, 0x0587, 0x08c7, 0x0407, 0x0687,
340      0x0647, 0x0147, 0x0887, 0x0187, 0x0847, 0x01c7, 0x03c7, 0x0929, 0x0269,
341      0x07a9, 0x0669, 0x05e9, 0x0469, 0x0429, 0x06e9, 0x0829, 0x05a9, 0x0329,
342      0x01e9, 0x00e9, 0x03a9, 0x0769, 0x0729, 0x02a9, 0x0029, 0x0369, 0x06a9,
343      0x08a9, 0x09a9, 0x02e9, 0x09e9, 0x00aa, 0x012a, 0x096a, 0x07ea, 0x016a,
344      0x006a, 0x022a, 0x08ea, 0x078b, 0x028b, 0x030b, 0x070b, 0x0a0b, 0x010b,
345      0x090b, 0x00cb, 0x000b, 0x094b, 0x07cb, 0x034b, 0x024b, 0x004b, 0x06cb,
346      0x09cb},
347 
348     // UWORD16 huffman_code_book_scl[122];
349     {0x0013, 0x0781, 0x0763, 0x07a4, 0x0744, 0x07c4, 0x0725, 0x07e5, 0x0706,
350      0x0806, 0x06e6, 0x0826, 0x0847, 0x06c7, 0x0867, 0x06a8, 0x0888, 0x0688,
351      0x08a8, 0x0668, 0x08c9, 0x0649, 0x0629, 0x08e9, 0x090a, 0x060a, 0x092a,
352      0x05ea, 0x094a, 0x05ca, 0x098b, 0x096b, 0x09ab, 0x09cb, 0x05ab, 0x056b,
353      0x058c, 0x09ec, 0x054c, 0x052c, 0x0a0c, 0x050c, 0x0a2d, 0x04ed, 0x0a4d,
354      0x04cd, 0x0a6d, 0x04ae, 0x046e, 0x0aae, 0x042e, 0x048e, 0x044e, 0x0a8e,
355      0x040e, 0x0aef, 0x0b2f, 0x03cf, 0x03ef, 0x0ad0, 0x03b0, 0x0350, 0x0370,
356      0x0390, 0x0310, 0x0b10, 0x0331, 0x02d1, 0x02f1, 0x0b52, 0x02b2, 0x0272,
357      0x0072, 0x0032, 0x0052, 0x0012, 0x0c53, 0x0c73, 0x0c93, 0x0cb3, 0x0cd3,
358      0x0eb3, 0x0c33, 0x0b73, 0x0b93, 0x0bb3, 0x0bd3, 0x0bf3, 0x0c13, 0x0d13,
359      0x0df3, 0x0e13, 0x0e33, 0x0e53, 0x0e73, 0x0e93, 0x0dd3, 0x0d33, 0x0d53,
360      0x0d73, 0x0d93, 0x0db3, 0x0ed3, 0x00d3, 0x0113, 0x0133, 0x0153, 0x00b3,
361      0x0cf3, 0x0f13, 0x0ef3, 0x0093, 0x00f3, 0x01f3, 0x0213, 0x0253, 0x0293,
362      0x0233, 0x0173, 0x0193, 0x01d3, 0x01b3},
363 
364     // UWORD32 huffman_code_book_scl_index[33];
365     {0x00000000, 0x10100004, 0x2040000c, 0x00a0003b, 0x30d0007a, 0x412000fa,
366      0x516001f9, 0x61c003f9, 0x722007f9, 0x82800ff9, 0x92d01ff8, 0xa3503ff9,
367      0xb400fff6, 0xc431fff0, 0x0687ffef, 0x0707fff7, 0x0747fffb, 0x0767fffd,
368      0x0777fffe, 0x0787ffff, 0x0030000b, 0x0060001b, 0x00f000f7, 0x014001f7,
369      0x01a003f7, 0x020007f7, 0x02600ff7, 0x02c01ff7, 0x03303ff7, 0x03907ff7,
370      0x0421ffef, 0x14a3ffe8, 0x0587ffdf},
371 
372     // const WORD16 ixheaacd_sfb_48_512[37] =
373     {4, 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8, 8,
374      8, 12, 12, 12, 12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 52, -1},
375     // const WORD16 ixheaacd_sfb_32_512[38] =
376     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
377      4,  8,  8,  8,  8,  8,  12, 12, 12, 12, 16, 16, 16,
378      20, 24, 24, 28, 32, 32, 32, 32, 32, 32, 32, -1},
379     // const WORD16 ixheaacd_sfb_24_512[32] =
380     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  12, 12,
381      12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1},
382     // const WORD16 ixheaacd_sfb_48_480[36] =
383     {
384         4, 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  8,
385         8, 12, 12, 12, 12, 12, 16, 16, 24, 28, 32, 32, 32, 32, 32, 32, 48, -1,
386     },
387     // const WORD16 ixheaacd_sfb_32_480[38] =
388     {
389         4, 4, 4, 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,
390         8, 8, 8, 12, 12, 12, 16, 16, 20, 24, 32, 32, 32, 32, 32, 32, 32, 32, -1,
391     },
392     // const WORD16 ixheaacd_sfb_24_480[31] =
393     {
394         4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  12, 12,
395         12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1,
396     },
397 
398     // static const WORD16 sfb_96_960[41] =
399     {
400         4,    4,    4,    4,    4,    4,
401         4,    4,    4,    4,    4,    4,
402         4,    4,    8,    8,    8,    8,
403         8,   12,   12,   12,   12,   12,
404         16,   16,   24,   28,   36,   44,
405         64,   64,   64,   64,   64,   64,
406         64,   64,   64,   64,  -1
407     },
408 
409     /* 13 scfbands */
410     // static const WORD16 sfb_96_120[13] =
411     {
412         4,    4,    4,    4,     4,   4,
413         8,    8,    8,   16,    28,  28,
414         -1
415     },
416 
417     /* 47 scfbands*/
418     // static const WORD16 sfb_64_960[47] =
419     {
420         4,   4,   4,   4,   4,   4,   4,
421         4,   4,   4,   4,   4,   4,   4,
422         8,   8,   8,   8,  12,  12,  12,
423         16,  16,  16,  20,  24,  24,  28,
424         36,  40,  40,  40,  40,  40,  40,
425         40,  40,  40,  40,  40,  40,  40,
426         40,  40,  40,  16,  -1
427     },
428 
429     /* 49 scfbands */
430     // static const WORD16 sfb_48_960[50] =
431     {
432         4,      4,      4,      4,      4,      4,
433         4,      4,      4,      4,      8,      8,
434         8,      8,      8,      8,      8,      12,
435         12,     12,     12,     16,     16,     20,
436         20,     24,     24,     28,     28,     32,
437         32,     32,     32,     32,     32,     32,
438         32,     32,     32,     32,     32,     32,
439         32,     32,     32,     32,     32,     32,
440         32,     -1
441     },
442 
443     /* 14 scfbands */
444     // static const WORD16 sfb_48_120[15] =
445     {
446         4,      4,      4,      4,      4,      8,
447         8,      8,      12,     12,     12,     16,
448         16,     8,      -1
449     },
450 
451 
452     /* 47 scfbands */
453     // static const WORD16 sfb_24_960[47] =
454     {
455         4,      4,      4,      4,      4,      4,
456         4,      4,      4,      4,      4,      8,
457         8,      8,      8,      8,      8,      8,
458         8,      8,      8,      12,     12,     12,
459         12,     16,     16,     16,     20,     20,
460         24,     24,     28,     28,     32,     36,
461         36,     40,     44,     48,     52,     52,
462         64,     64,     64,     64,     -1
463     },
464 
465     /* 15 scfbands */
466     // static const WORD16 sfb_24_120[16] =
467     {
468         4,      4,      4,      4,      4,      4,
469         4,      8,      8,      8,      12,     12,
470         16,     16,     12,     -1
471     },
472 
473     /* 43 scfbands */
474     // static const WORD16 sfb_16_960[43] =
475     {
476         8,      8,      8,      8,      8,      8,
477         8,      8,      8,      8,      8,      12,
478         12,     12,     12,     12,     12,     12,
479         12,     12,     16,     16,     16,     16,
480         20,     20,     20,     24,     24,     28,
481         28,     32,     36,     40,     40,     44,
482         48,     52,     56,     60,     64,     64,
483         -1
484     },
485 
486     /* 15 scfbands */
487     // static const WORD16 sfb_16_120[16] =
488     {
489         4,      4,      4,      4,      4,      4,
490         4,      4,      8,      8,      12,     12,
491         16,     20,     12,     -1
492     },
493 
494     /* 40 scfbands */
495     // static const WORD16 sfb_8_960[41] =
496     {
497         12,     12,     12,     12,     12,     12,
498         12,     12,     12,     12,     12,     12,
499         12,     16,     16,     16,     16,     16,
500         16,     16,     20,     20,     20,     20,
501         24,     24,     24,     28,     28,     32,
502         36,     36,     40,     44,     48,     52,
503         56,     60,     64,     16,     -1
504     },
505 
506     /* 15 scfbands */
507     // static const WORD16 sfb_8_120[16] =
508     {
509         4,      4,      4,      4,      4,      4,
510         4,      8,      8,      8,      8,      12,
511         16,     20,     12,     -1
512     },
513 };  // end of ia_aac_dec_huffman_tables_struct
514 
515 const ia_aac_dec_block_tables_struct ixheaacd_aac_block_tables = {
516 
517     // const WORD32 ixheaacd_pow_table_Q13[129] =
518     {0 >> 4,        131072 >> 4,   330281 >> 4,   567116 >> 4,   832256 >> 4,
519      1120650 >> 4,  1429042 >> 4,  1755122 >> 4,  2097152 >> 4,  2453767 >> 4,
520      2823861 >> 4,  3206517 >> 4,  3600960 >> 4,  4006524 >> 4,  4422631 >> 4,
521      4848770 >> 4,  5284492 >> 4,  5729392 >> 4,  6183105 >> 4,  6645302 >> 4,
522      7115683 >> 4,  7593972 >> 4,  8079916 >> 4,  8573281 >> 4,  9073850 >> 4,
523      9581422 >> 4,  10095808 >> 4, 10616832 >> 4, 11144330 >> 4, 11678147 >> 4,
524      12218136 >> 4, 12764159 >> 4, 13316085 >> 4, 13873792 >> 4, 14437162 >> 4,
525      15006082 >> 4, 15580448 >> 4, 16160157 >> 4, 16745112 >> 4, 17335222 >> 4,
526      17930398 >> 4, 18530554 >> 4, 19135610 >> 4, 19745488 >> 4, 20360112 >> 4,
527      20979411 >> 4, 21603314 >> 4, 22231755 >> 4, 22864669 >> 4, 23501994 >> 4,
528      24143669 >> 4, 24789637 >> 4, 25439841 >> 4, 26094226 >> 4, 26752740 >> 4,
529      27415332 >> 4, 28081952 >> 4, 28752552 >> 4, 29427086 >> 4, 30105507 >> 4,
530      30787772 >> 4, 31473838 >> 4, 32163664 >> 4, 32857208 >> 4, 33554432 >> 4,
531      34255297 >> 4, 34959765 >> 4, 35667801 >> 4, 36379368 >> 4, 37094431 >> 4,
532      37812958 >> 4, 38534914 >> 4, 39260268 >> 4, 39988988 >> 4, 40721043 >> 4,
533      41456403 >> 4, 42195038 >> 4, 42936921 >> 4, 43682022 >> 4, 44430314 >> 4,
534      45181770 >> 4, 45936364 >> 4, 46694070 >> 4, 47454862 >> 4, 48218716 >> 4,
535      48985607 >> 4, 49755512 >> 4, 50528406 >> 4, 51304267 >> 4, 52083073 >> 4,
536      52864802 >> 4, 53649431 >> 4, 54436939 >> 4, 55227306 >> 4, 56020511 >> 4,
537      56816534 >> 4, 57615355 >> 4, 58416954 >> 4, 59221313 >> 4, 60028412 >> 4,
538      60838233 >> 4, 61650759 >> 4, 62465970 >> 4, 63283850 >> 4, 64104381 >> 4,
539      64927547 >> 4, 65753329 >> 4, 66581713 >> 4, 67412681 >> 4, 68246218 >> 4,
540      69082308 >> 4, 69920936 >> 4, 70762086 >> 4, 71605743 >> 4, 72451892 >> 4,
541      73300519 >> 4, 74151609 >> 4, 75005149 >> 4, 75861124 >> 4, 76719520 >> 4,
542      77580324 >> 4, 78443523 >> 4, 79309103 >> 4, 80177051 >> 4, 81047354 >> 4,
543      81920000 >> 4, 82794977 >> 4, 83672271 >> 4, 84551871 >> 4},
544 
545     // const WORD16 scale_table[4] =
546     {
547 
548         16384, 19484, 23171, 27555},
549 
550     // const WORD8 tns_max_bands_tbl[12][2] =
551     {
552         // Long //Short
553         {31, 9},   // 96000
554         {31, 9},   // 88200
555         {34, 10},  // 64000
556         {40, 14},  // 48000
557         {42, 14},  // 44100
558         {51, 14},  // 32000
559         {46, 14},  // 24000
560         {46, 14},  // 22050
561         {42, 14},  // 16000
562         {42, 14},  // 12000
563         {42, 14},  // 11025
564         {39, 14}   //  8000
565     },
566 
567     // const WORD16 tns_coeff3_16[8] =
568     {(WORD16)-0x7e0e, (WORD16)-0x6eda, (WORD16)-0x5247, (WORD16)-0x2bc7,
569      (WORD16)0x0000, (WORD16)0x378a, (WORD16)0x6413, (WORD16)0x7cca},
570 
571     // const WORD16 tns_coeff4_16[16] =
572     {(WORD16)-0x7f74, (WORD16)-0x7b1d, (WORD16)-0x7295, (WORD16)-0x6625,
573      (WORD16)-0x563c, (WORD16)-0x4362, (WORD16)-0x2e3d, (WORD16)-0x1785,
574      (WORD16)0x0000, (WORD16)0x1a9d, (WORD16)0x3410, (WORD16)0x4b3d,
575      (WORD16)0x5f1f, (WORD16)0x6eda, (WORD16)0x79bc, (WORD16)0x7f4c},
576 
577     // const WORD32 scale_mant_tab[PNS_SCALE_MANT_TAB_SIZE] =
578     {0x08000000, 0x09837f05, 0x0b504f33, 0x0d744fcc},
579     // const WORD32 tns_coeff3[8] =
580     {
581         -2114858540, -1859775364, -1380375817, -734482679, 0, 931758215,
582         1678970362, 2093641723,
583     },
584 
585     // const WORD32 tns_coeff4[16] =
586     {
587         -2138322869, -2065504899, -1922348549, -1713729017, -1446750457,
588         -1130504584, -775760644, -394599111, 0, 446486976, 873460283,
589         1262259191, 1595891328, 1859775364, 2042378368, 2135719561,
590     },
591 
592     // const WORD32 tns_coeff3_32[8] =
593     {(WORD32)-0x7e0e2e31, (WORD32)-0x6ed9eba0, (WORD32)-0x5246dd48,
594      (WORD32)-0x2bc750e8, (WORD32)0x00000000, (WORD32)0x3789809a,
595      (WORD32)0x64130dd3, (WORD32)0x7cca7014},
596 
597     // const WORD32 tns_coeff4_32[16] =
598     {(WORD32)-0x7f7437ac, (WORD32)-0x7b1d1a47, (WORD32)-0x7294b5f1,
599      (WORD32)-0x66256db1, (WORD32)-0x563ba8a9, (WORD32)-0x4362210d,
600      (WORD32)-0x2e3d2aba, (WORD32)-0x17851aac, (WORD32)0x00000000,
601      (WORD32)0x1a9cd9ac, (WORD32)0x340ff241, (WORD32)0x4b3c8c11,
602      (WORD32)0x5f1f5ea0, (WORD32)0x6ed9eba0, (WORD32)0x79bc384c,
603      (WORD32)0x7f4c7e52},
604 
605     // const WORD32 tns_max_bands_tbl_usac[(1<<LEN_SAMP_IDX)][2] =
606     {
607 
608         {
609             31, 9,
610         },  // 96000
611         {
612             31, 9,
613         },  // 88200
614         {
615             34, 10,
616         },  // 64000
617         {
618             40, 14,
619         },  // 48000
620         {
621             42, 14,
622         },  // 44100
623         {
624             51, 14,
625         },  // 32000
626         {
627             47, 15,
628         },  // 24000
629         {
630             47, 15,
631         },  // 22050
632         {
633             43, 15,
634         },  // 16000
635         {
636             43, 15,
637         },  // 12000
638         {
639             43, 15,
640         },  // 11025
641         {
642             40, 15,
643         },  // 8000
644         {
645             40, 15,
646         },  // 7350
647         {
648             0, 0,
649         },
650         {
651             0, 0,
652         },
653         {
654             0, 0,
655         }},
656 
657     // const WORD8 tns_max_bands_tbl_ld[12][4] =
658     {
659         /*{*/ 31, /* 96000 */
660         /*{*/ 31, /* 88200 */
661         /*{*/ 31, /* 64000 */
662         /*{*/ 31, /* 48000 */
663         /*{*/ 32, /* 44100 */
664         /*{*/ 37, /* 32000 */
665         /*{*/ 31, /* 24000 */
666         /*{*/ 31, /* 22050 */
667         /*{*/ 31, /* 16000 */
668         /*{*/ 31, /* 12000 */
669         /*{*/ 31, /* 11025 */
670         /*{*/ 31, /*  8000 */
671     },
672     // const WORD8 tns_max_bands_tbl_480[12][4] =
673     {
674         /*{*/ 31, /* 96000 */
675         /*{*/ 31, /* 88200 */
676         /*{*/ 31, /* 64000 */
677         /*{*/ 31, /* 48000 */
678         /*{*/ 32, /* 44100 */
679         /*{*/ 37, /* 32000 */
680         /*{*/ 30, /* 24000 */
681         /*{*/ 30, /* 22050 */
682         /*{*/ 30, /* 16000 */
683         /*{*/ 30, /* 12000 */
684         /*{*/ 30, /* 11025 */
685         /*{*/ 30, /*  8000 */
686     },
687     // const WORD16 scale_table_960[4] =
688     {
689         /* Q14 format */
690         /* table of 2^(r/4) for r=0, 1, 2, 3 */
691         16385, 19486, 23172, 27557
692     },
693 };  // end of ia_aac_dec_block_tables_struct */
694 
695 const ia_aac_dec_imdct_tables_struct ixheaacd_imdct_tables = {
696     // const WORD16 cos_array_2048[512] and const WORD16 sine_array_2048[512] =
697 
698     {
699         -32767, 0,      -32767, -101,   -32767, -201,   -32767, -302,   -32766,
700         -402,   -32764, -503,   -32762, -603,   -32760, -704,   -32758, -804,
701         -32756, -905,   -32753, -1005,  -32749, -1106,  -32746, -1206,  -32742,
702         -1307,  -32738, -1407,  -32733, -1507,  -32729, -1608,  -32723, -1708,
703         -32718, -1809,  -32712, -1909,  -32706, -2009,  -32700, -2110,  -32693,
704         -2210,  -32686, -2310,  -32679, -2411,  -32672, -2511,  -32664, -2611,
705         -32656, -2711,  -32647, -2811,  -32638, -2912,  -32629, -3012,  -32620,
706         -3112,  -32610, -3212,  -32600, -3312,  -32590, -3412,  -32579, -3512,
707         -32568, -3612,  -32557, -3712,  -32546, -3812,  -32534, -3911,  -32522,
708         -4011,  -32509, -4111,  -32496, -4211,  -32483, -4310,  -32470, -4410,
709         -32456, -4510,  -32442, -4609,  -32428, -4709,  -32413, -4808,  -32398,
710         -4908,  -32383, -5007,  -32368, -5106,  -32352, -5206,  -32336, -5305,
711         -32319, -5404,  -32303, -5503,  -32286, -5602,  -32268, -5701,  -32251,
712         -5800,  -32233, -5899,  -32214, -5998,  -32196, -6097,  -32177, -6195,
713         -32158, -6294,  -32138, -6393,  -32119, -6491,  -32099, -6590,  -32078,
714         -6688,  -32058, -6787,  -32037, -6885,  -32015, -6983,  -31994, -7081,
715         -31972, -7180,  -31950, -7278,  -31927, -7376,  -31904, -7474,  -31881,
716         -7571,  -31858, -7669,  -31834, -7767,  -31810, -7864,  -31786, -7962,
717         -31761, -8059,  -31737, -8157,  -31711, -8254,  -31686, -8351,  -31660,
718         -8449,  -31634, -8546,  -31608, -8643,  -31581, -8740,  -31554, -8837,
719         -31527, -8933,  -31499, -9030,  -31471, -9127,  -31443, -9223,  -31415,
720         -9320,  -31386, -9416,  -31357, -9512,  -31328, -9608,  -31298, -9704,
721         -31268, -9800,  -31238, -9896,  -31207, -9992,  -31177, -10088, -31146,
722         -10183, -31114, -10279, -31082, -10374, -31050, -10469, -31018, -10565,
723         -30986, -10660, -30953, -10755, -30920, -10850, -30886, -10945, -30853,
724         -11039, -30819, -11134, -30784, -11228, -30750, -11323, -30715, -11417,
725         -30680, -11511, -30644, -11605, -30608, -11699, -30572, -11793, -30536,
726         -11887, -30499, -11980, -30462, -12074, -30425, -12167, -30388, -12261,
727         -30350, -12354, -30312, -12447, -30274, -12540, -30235, -12633, -30196,
728         -12725, -30157, -12818, -30118, -12910, -30078, -13003, -30038, -13095,
729         -29997, -13187, -29957, -13279, -29916, -13371, -29875, -13463, -29833,
730         -13554, -29792, -13646, -29750, -13737, -29707, -13828, -29665, -13919,
731         -29622, -14010, -29579, -14101, -29535, -14192, -29492, -14282, -29448,
732         -14373, -29404, -14463, -29359, -14553, -29314, -14643, -29269, -14733,
733         -29224, -14823, -29178, -14912, -29132, -15002, -29086, -15091, -29040,
734         -15180, -28993, -15269, -28946, -15358, -28899, -15447, -28851, -15535,
735         -28803, -15624, -28755, -15712, -28707, -15800, -28658, -15888, -28610,
736         -15976, -28560, -16064, -28511, -16151, -28461, -16239, -28411, -16326,
737         -28361, -16413, -28311, -16500, -28260, -16587, -28209, -16673, -28158,
738         -16760, -28106, -16846, -28054, -16932, -28002, -17018, -27950, -17104,
739         -27897, -17190, -27844, -17275, -27791, -17361, -27738, -17446, -27684,
740         -17531, -27630, -17616, -27576, -17700, -27522, -17785, -27467, -17869,
741         -27412, -17953, -27357, -18037, -27301, -18121, -27246, -18205, -27190,
742         -18288, -27133, -18372, -27077, -18455, -27020, -18538, -26963, -18621,
743         -26906, -18703, -26848, -18786, -26791, -18868, -26733, -18950, -26674,
744         -19032, -26616, -19114, -26557, -19195, -26498, -19277, -26439, -19358,
745         -26379, -19439, -26320, -19520, -26260, -19601, -26199, -19681, -26139,
746         -19761, -26078, -19841, -26017, -19921, -25956, -20001, -25894, -20081,
747         -25833, -20160, -25771, -20239, -25708, -20318, -25646, -20397, -25583,
748         -20475, -25520, -20554, -25457, -20632, -25394, -20710, -25330, -20788,
749         -25266, -20865, -25202, -20943, -25138, -21020, -25073, -21097, -25008,
750         -21174, -24943, -21251, -24878, -21327, -24812, -21403, -24746, -21479,
751         -24680, -21555, -24614, -21631, -24548, -21706, -24481, -21781, -24414,
752         -21856, -24347, -21931, -24280, -22006, -24212, -22080, -24144, -22154,
753         -24076, -22228, -24008, -22302, -23939, -22375, -23870, -22449, -23801,
754         -22522, -23732, -22595, -23663, -22668, -23593, -22740, -23523, -22812,
755         -23453, -22884, -23383, -22956, -23312, -23028, -23241, -23099, -23170,
756         -23170,
757     },
758 
759     // const WORD8 dig_rev_table8_long[64]
760     {0, 8,  16, 24, 32, 40, 48, 56, 1, 9,  17, 25, 33, 41, 49, 57,
761      2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51, 59,
762      4, 12, 20, 28, 36, 44, 52, 60, 5, 13, 21, 29, 37, 45, 53, 61,
763      6, 14, 22, 30, 38, 46, 54, 62, 7, 15, 23, 31, 39, 47, 55, 63},
764 
765     // const WORD8 dig_rev_table8_short
766     {0, 1, 2, 3, 4, 5, 6, 7},
767 
768     // const WORD32 fft_twiddle[64 * 7] =
769     {0x00007fff, 0xfe6e7ffe, 0xfcdc7ff6, 0xfb4a7fea, 0xf9b87fd9, 0xf8277fc2,
770      0xf6957fa7, 0xf5057f87, 0xf3747f62, 0xf1e47f38, 0xf0557f0a, 0xeec67ed6,
771      0xed387e9d, 0xebab7e60, 0xea1e7e1e, 0xe8927dd6, 0xe7077d8a, 0xe57d7d3a,
772      0xe3f47ce4, 0xe26d7c89, 0xe0e67c2a, 0xdf617bc6, 0xdddc7b5d, 0xdc597aef,
773      0xdad87a7d, 0xd9587a06, 0xd7d9798a, 0xd65c790a, 0xd4e17885, 0xd36777fb,
774      0xd1ef776c, 0xd07976d9, 0xcf047642, 0xcd9275a6, 0xcc217505, 0xcab27460,
775      0xc94673b6, 0xc7db7308, 0xc6737255, 0xc50d719e, 0xc3a970e3, 0xc2487023,
776      0xc0e96f5f, 0xbf8c6e97, 0xbe326dca, 0xbcda6cf9, 0xbb856c24, 0xba336b4b,
777      0xb8e36a6e, 0xb796698c, 0xb64c68a7, 0xb50567bd, 0xb3c066d0, 0xb27f65de,
778      0xb14064e9, 0xb00563ef, 0xaecc62f2, 0xad9761f1, 0xac6560ec, 0xab365fe4,
779      0xaa0a5ed7, 0xa8e25dc8, 0xa7bd5cb4, 0xa69c5b9d, 0xa57e5a82, 0xa4635964,
780      0xa34c5843, 0xa238571e, 0xa12955f6, 0xa01c54ca, 0x9f14539b, 0x9e0f5269,
781      0x9d0e5134, 0x9c114ffb, 0x9b174ec0, 0x9a224d81, 0x99304c40, 0x98434afb,
782      0x975949b4, 0x9674486a, 0x9592471d, 0x94b545cd, 0x93dc447b, 0x93074326,
783      0x923641ce, 0x91694074, 0x90a13f17, 0x8fdd3db8, 0x8f1d3c57, 0x8e623af3,
784      0x8dab398d, 0x8cf83825, 0x8c4a36ba, 0x8ba0354e, 0x8afb33df, 0x8a5a326e,
785      0x89be30fc, 0x89272f87, 0x88942e11, 0x88052c99, 0x877b2b1f, 0x86f629a4,
786      0x86762827, 0x85fa26a8, 0x85832528, 0x851123a7, 0x84a32224, 0x843a209f,
787      0x83d61f1a, 0x83771d93, 0x831c1c0c, 0x82c61a83, 0x827618f9, 0x822a176e,
788      0x81e215e2, 0x81a01455, 0x816312c8, 0x812a113a, 0x80f60fab, 0x80c80e1c,
789      0x809e0c8c, 0x80790afb, 0x8059096b, 0x803e07d9, 0x80270648, 0x801604b6,
790      0x800a0324, 0x80020192, 0x80000000, 0x8002fe6e, 0x800afcdc, 0x8016fb4a,
791      0x8027f9b8, 0x803ef827, 0x8059f695, 0x8079f505, 0x809ef374, 0x80c8f1e4,
792      0x80f6f055, 0x812aeec6, 0x8163ed38, 0x81a0ebab, 0x81e2ea1e, 0x822ae892,
793      0x8276e707, 0x82c6e57d, 0x831ce3f4, 0x8377e26d, 0x83d6e0e6, 0x843adf61,
794      0x84a3dddc, 0x8511dc59, 0x8583dad8, 0x85fad958, 0x8676d7d9, 0x86f6d65c,
795      0x877bd4e1, 0x8805d367, 0x8894d1ef, 0x8927d079, 0x89becf04, 0x8a5acd92,
796      0x8afbcc21, 0x8ba0cab2, 0x8c4ac946, 0x8cf8c7db, 0x8dabc673, 0x8e62c50d,
797      0x8f1dc3a9, 0x8fddc248, 0x90a1c0e9, 0x9169bf8c, 0x9236be32, 0x9307bcda,
798      0x93dcbb85, 0x94b5ba33, 0x9592b8e3, 0x9674b796, 0x9759b64c, 0x9843b505,
799      0x9930b3c0, 0x9a22b27f, 0x9b17b140, 0x9c11b005, 0x9d0eaecc, 0x9e0fad97,
800      0x9f14ac65, 0xa01cab36, 0xa129aa0a, 0xa238a8e2, 0xa34ca7bd, 0xa463a69c,
801      0xa57ea57e, 0xa69ca463, 0xa7bda34c, 0xa8e2a238, 0xaa0aa129, 0xab36a01c,
802      0xac659f14, 0xad979e0f, 0xaecc9d0e, 0xb0059c11, 0xb1409b17, 0xb27f9a22,
803      0xb3c09930, 0xb5059843, 0xb64c9759, 0xb7969674, 0xb8e39592, 0xba3394b5,
804      0xbb8593dc, 0xbcda9307, 0xbe329236, 0xbf8c9169, 0xc0e990a1, 0xc2488fdd,
805      0xc3a98f1d, 0xc50d8e62, 0xc6738dab, 0xc7db8cf8, 0xc9468c4a, 0xcab28ba0,
806      0xcc218afb, 0xcd928a5a, 0xcf0489be, 0xd0798927, 0xd1ef8894, 0xd3678805,
807      0xd4e1877b, 0xd65c86f6, 0xd7d98676, 0xd95885fa, 0xdad88583, 0xdc598511,
808      0xdddc84a3, 0xdf61843a, 0xe0e683d6, 0xe26d8377, 0xe3f4831c, 0xe57d82c6,
809      0xe7078276, 0xe892822a, 0xea1e81e2, 0xebab81a0, 0xed388163, 0xeec6812a,
810      0xf05580f6, 0xf1e480c8, 0xf374809e, 0xf5058079, 0xf6958059, 0xf827803e,
811      0xf9b88027, 0xfb4a8016, 0xfcdc800a, 0xfe6e8002, 0x00008000, 0x01928002,
812      0x0324800a, 0x04b68016, 0x06488027, 0x07d9803e, 0x096b8059, 0x0afb8079,
813      0x0c8c809e, 0x0e1c80c8, 0x0fab80f6, 0x113a812a, 0x12c88163, 0x145581a0,
814      0x15e281e2, 0x176e822a, 0x18f98276, 0x1a8382c6, 0x1c0c831c, 0x1d938377,
815      0x1f1a83d6, 0x209f843a, 0x222484a3, 0x23a78511, 0x25288583, 0x26a885fa,
816      0x28278676, 0x29a486f6, 0x2b1f877b, 0x2c998805, 0x2e118894, 0x2f878927,
817      0x30fc89be, 0x326e8a5a, 0x33df8afb, 0x354e8ba0, 0x36ba8c4a, 0x38258cf8,
818      0x398d8dab, 0x3af38e62, 0x3c578f1d, 0x3db88fdd, 0x3f1790a1, 0x40749169,
819      0x41ce9236, 0x43269307, 0x447b93dc, 0x45cd94b5, 0x471d9592, 0x486a9674,
820      0x49b49759, 0x4afb9843, 0x4c409930, 0x4d819a22, 0x4ec09b17, 0x4ffb9c11,
821      0x51349d0e, 0x52699e0f, 0x539b9f14, 0x54caa01c, 0x55f6a129, 0x571ea238,
822      0x5843a34c, 0x5964a463, 0x5a82a57e, 0x5b9da69c, 0x5cb4a7bd, 0x5dc8a8e2,
823      0x5ed7aa0a, 0x5fe4ab36, 0x60ecac65, 0x61f1ad97, 0x62f2aecc, 0x63efb005,
824      0x64e9b140, 0x65deb27f, 0x66d0b3c0, 0x67bdb505, 0x68a7b64c, 0x698cb796,
825      0x6a6eb8e3, 0x6b4bba33, 0x6c24bb85, 0x6cf9bcda, 0x6dcabe32, 0x6e97bf8c,
826      0x6f5fc0e9, 0x7023c248, 0x70e3c3a9, 0x719ec50d, 0x7255c673, 0x7308c7db,
827      0x73b6c946, 0x7460cab2, 0x7505cc21, 0x75a6cd92, 0x7642cf04, 0x76d9d079,
828      0x776cd1ef, 0x77fbd367, 0x7885d4e1, 0x790ad65c, 0x798ad7d9, 0x7a06d958,
829      0x7a7ddad8, 0x7aefdc59, 0x7b5ddddc, 0x7bc6df61, 0x7c2ae0e6, 0x7c89e26d,
830      0x7ce4e3f4, 0x7d3ae57d, 0x7d8ae707, 0x7dd6e892, 0x7e1eea1e, 0x7e60ebab,
831      0x7e9ded38, 0x7ed6eec6, 0x7f0af055, 0x7f38f1e4, 0x7f62f374, 0x7f87f505,
832      0x7fa7f695, 0x7fc2f827, 0x7fd9f9b8, 0x7feafb4a, 0x7ff6fcdc, 0x7ffefe6e,
833      0x7fff0000, 0x7ffe0192, 0x7ff60324, 0x7fea04b6, 0x7fd90648, 0x7fc207d9,
834      0x7fa7096b, 0x7f870afb, 0x7f620c8c, 0x7f380e1c, 0x7f0a0fab, 0x7ed6113a,
835      0x7e9d12c8, 0x7e601455, 0x7e1e15e2, 0x7dd6176e, 0x7d8a18f9, 0x7d3a1a83,
836      0x7ce41c0c, 0x7c891d93, 0x7c2a1f1a, 0x7bc6209f, 0x7b5d2224, 0x7aef23a7,
837      0x7a7d2528, 0x7a0626a8, 0x798a2827, 0x790a29a4, 0x78852b1f, 0x77fb2c99,
838      0x776c2e11, 0x76d92f87, 0x764230fc, 0x75a6326e, 0x750533df, 0x7460354e,
839      0x73b636ba, 0x73083825, 0x7255398d, 0x719e3af3, 0x70e33c57, 0x70233db8,
840      0x6f5f3f17, 0x6e974074, 0x6dca41ce, 0x6cf94326, 0x6c24447b, 0x6b4b45cd,
841      0x6a6e471d, 0x698c486a, 0x68a749b4, 0x67bd4afb, 0x66d04c40, 0x65de4d81,
842      0x64e94ec0, 0x63ef4ffb, 0x62f25134, 0x61f15269},
843 
844     // const WORD16 only_long_window_sine[1024] =
845     {0x0019, 0x7fff, 0x004b, 0x7fff, 0x007e, 0x7fff, 0x00b0, 0x7fff, 0x00e2,
846      0x7fff, 0x0114, 0x7fff, 0x0147, 0x7ffe, 0x0179, 0x7ffe, 0x01ab, 0x7ffd,
847      0x01dd, 0x7ffd, 0x0210, 0x7ffc, 0x0242, 0x7ffb, 0x0274, 0x7ffa, 0x02a7,
848      0x7ff9, 0x02d9, 0x7ff8, 0x030b, 0x7ff7, 0x033d, 0x7ff6, 0x0370, 0x7ff4,
849      0x03a2, 0x7ff3, 0x03d4, 0x7ff1, 0x0406, 0x7ff0, 0x0439, 0x7fee, 0x046b,
850      0x7fec, 0x049d, 0x7feb, 0x04cf, 0x7fe9, 0x0501, 0x7fe7, 0x0534, 0x7fe5,
851      0x0566, 0x7fe3, 0x0598, 0x7fe1, 0x05ca, 0x7fde, 0x05fd, 0x7fdc, 0x062f,
852      0x7fda, 0x0661, 0x7fd7, 0x0693, 0x7fd5, 0x06c5, 0x7fd2, 0x06f8, 0x7fcf,
853      0x072a, 0x7fcd, 0x075c, 0x7fca, 0x078e, 0x7fc7, 0x07c0, 0x7fc4, 0x07f2,
854      0x7fc1, 0x0825, 0x7fbe, 0x0857, 0x7fba, 0x0889, 0x7fb7, 0x08bb, 0x7fb4,
855      0x08ed, 0x7fb0, 0x091f, 0x7fad, 0x0952, 0x7fa9, 0x0984, 0x7fa5, 0x09b6,
856      0x7fa2, 0x09e8, 0x7f9e, 0x0a1a, 0x7f9a, 0x0a4c, 0x7f96, 0x0a7e, 0x7f92,
857      0x0ab0, 0x7f8e, 0x0ae2, 0x7f89, 0x0b14, 0x7f85, 0x0b47, 0x7f81, 0x0b79,
858      0x7f7c, 0x0bab, 0x7f78, 0x0bdd, 0x7f73, 0x0c0f, 0x7f6e, 0x0c41, 0x7f6a,
859      0x0c73, 0x7f65, 0x0ca5, 0x7f60, 0x0cd7, 0x7f5b, 0x0d09, 0x7f56, 0x0d3b,
860      0x7f50, 0x0d6d, 0x7f4b, 0x0d9f, 0x7f46, 0x0dd1, 0x7f41, 0x0e03, 0x7f3b,
861      0x0e35, 0x7f36, 0x0e67, 0x7f30, 0x0e99, 0x7f2a, 0x0ecb, 0x7f24, 0x0efc,
862      0x7f1f, 0x0f2e, 0x7f19, 0x0f60, 0x7f13, 0x0f92, 0x7f0d, 0x0fc4, 0x7f06,
863      0x0ff6, 0x7f00, 0x1028, 0x7efa, 0x105a, 0x7ef4, 0x108c, 0x7eed, 0x10bd,
864      0x7ee7, 0x10ef, 0x7ee0, 0x1121, 0x7ed9, 0x1153, 0x7ed3, 0x1185, 0x7ecc,
865      0x11b6, 0x7ec5, 0x11e8, 0x7ebe, 0x121a, 0x7eb7, 0x124c, 0x7eb0, 0x127d,
866      0x7ea8, 0x12af, 0x7ea1, 0x12e1, 0x7e9a, 0x1313, 0x7e92, 0x1344, 0x7e8b,
867      0x1376, 0x7e83, 0x13a8, 0x7e7b, 0x13d9, 0x7e74, 0x140b, 0x7e6c, 0x143d,
868      0x7e64, 0x146e, 0x7e5c, 0x14a0, 0x7e54, 0x14d1, 0x7e4c, 0x1503, 0x7e43,
869      0x1535, 0x7e3b, 0x1566, 0x7e33, 0x1598, 0x7e2a, 0x15c9, 0x7e22, 0x15fb,
870      0x7e19, 0x162c, 0x7e11, 0x165e, 0x7e08, 0x168f, 0x7dff, 0x16c1, 0x7df6,
871      0x16f2, 0x7ded, 0x1724, 0x7de4, 0x1755, 0x7ddb, 0x1787, 0x7dd2, 0x17b8,
872      0x7dc9, 0x17e9, 0x7dbf, 0x181b, 0x7db6, 0x184c, 0x7dac, 0x187d, 0x7da3,
873      0x18af, 0x7d99, 0x18e0, 0x7d8f, 0x1911, 0x7d85, 0x1943, 0x7d7c, 0x1974,
874      0x7d72, 0x19a5, 0x7d68, 0x19d6, 0x7d5d, 0x1a08, 0x7d53, 0x1a39, 0x7d49,
875      0x1a6a, 0x7d3f, 0x1a9b, 0x7d34, 0x1acc, 0x7d2a, 0x1afe, 0x7d1f, 0x1b2f,
876      0x7d15, 0x1b60, 0x7d0a, 0x1b91, 0x7cff, 0x1bc2, 0x7cf4, 0x1bf3, 0x7ce9,
877      0x1c24, 0x7cde, 0x1c55, 0x7cd3, 0x1c86, 0x7cc8, 0x1cb7, 0x7cbd, 0x1ce8,
878      0x7cb1, 0x1d19, 0x7ca6, 0x1d4a, 0x7c9b, 0x1d7b, 0x7c8f, 0x1dac, 0x7c83,
879      0x1ddd, 0x7c78, 0x1e0e, 0x7c6c, 0x1e3e, 0x7c60, 0x1e6f, 0x7c54, 0x1ea0,
880      0x7c48, 0x1ed1, 0x7c3c, 0x1f02, 0x7c30, 0x1f32, 0x7c24, 0x1f63, 0x7c18,
881      0x1f94, 0x7c0b, 0x1fc5, 0x7bff, 0x1ff5, 0x7bf2, 0x2026, 0x7be6, 0x2057,
882      0x7bd9, 0x2087, 0x7bcc, 0x20b8, 0x7bbf, 0x20e8, 0x7bb3, 0x2119, 0x7ba6,
883      0x2149, 0x7b99, 0x217a, 0x7b8b, 0x21aa, 0x7b7e, 0x21db, 0x7b71, 0x220b,
884      0x7b64, 0x223c, 0x7b56, 0x226c, 0x7b49, 0x229d, 0x7b3b, 0x22cd, 0x7b2e,
885      0x22fd, 0x7b20, 0x232e, 0x7b12, 0x235e, 0x7b04, 0x238e, 0x7af6, 0x23bf,
886      0x7ae8, 0x23ef, 0x7ada, 0x241f, 0x7acc, 0x244f, 0x7abe, 0x2480, 0x7ab0,
887      0x24b0, 0x7aa1, 0x24e0, 0x7a93, 0x2510, 0x7a84, 0x2540, 0x7a76, 0x2570,
888      0x7a67, 0x25a0, 0x7a58, 0x25d0, 0x7a49, 0x2600, 0x7a3b, 0x2630, 0x7a2c,
889      0x2660, 0x7a1d, 0x2690, 0x7a0e, 0x26c0, 0x79fe, 0x26f0, 0x79ef, 0x2720,
890      0x79e0, 0x2750, 0x79d0, 0x2780, 0x79c1, 0x27af, 0x79b1, 0x27df, 0x79a2,
891      0x280f, 0x7992, 0x283f, 0x7982, 0x286e, 0x7972, 0x289e, 0x7962, 0x28ce,
892      0x7952, 0x28fd, 0x7942, 0x292d, 0x7932, 0x295c, 0x7922, 0x298c, 0x7912,
893      0x29bc, 0x7901, 0x29eb, 0x78f1, 0x2a1b, 0x78e1, 0x2a4a, 0x78d0, 0x2a79,
894      0x78bf, 0x2aa9, 0x78af, 0x2ad8, 0x789e, 0x2b08, 0x788d, 0x2b37, 0x787c,
895      0x2b66, 0x786b, 0x2b95, 0x785a, 0x2bc5, 0x7849, 0x2bf4, 0x7838, 0x2c23,
896      0x7826, 0x2c52, 0x7815, 0x2c81, 0x7803, 0x2cb1, 0x77f2, 0x2ce0, 0x77e0,
897      0x2d0f, 0x77cf, 0x2d3e, 0x77bd, 0x2d6d, 0x77ab, 0x2d9c, 0x7799, 0x2dcb,
898      0x7787, 0x2dfa, 0x7775, 0x2e29, 0x7763, 0x2e57, 0x7751, 0x2e86, 0x773f,
899      0x2eb5, 0x772d, 0x2ee4, 0x771a, 0x2f13, 0x7708, 0x2f41, 0x76f5, 0x2f70,
900      0x76e3, 0x2f9f, 0x76d0, 0x2fcd, 0x76bd, 0x2ffc, 0x76aa, 0x302b, 0x7698,
901      0x3059, 0x7685, 0x3088, 0x7672, 0x30b6, 0x765e, 0x30e5, 0x764b, 0x3113,
902      0x7638, 0x3141, 0x7625, 0x3170, 0x7611, 0x319e, 0x75fe, 0x31cc, 0x75ea,
903      0x31fb, 0x75d7, 0x3229, 0x75c3, 0x3257, 0x75af, 0x3285, 0x759c, 0x32b4,
904      0x7588, 0x32e2, 0x7574, 0x3310, 0x7560, 0x333e, 0x754c, 0x336c, 0x7538,
905      0x339a, 0x7523, 0x33c8, 0x750f, 0x33f6, 0x74fb, 0x3424, 0x74e6, 0x3452,
906      0x74d2, 0x3480, 0x74bd, 0x34ad, 0x74a8, 0x34db, 0x7494, 0x3509, 0x747f,
907      0x3537, 0x746a, 0x3564, 0x7455, 0x3592, 0x7440, 0x35c0, 0x742b, 0x35ed,
908      0x7416, 0x361b, 0x7401, 0x3648, 0x73eb, 0x3676, 0x73d6, 0x36a3, 0x73c1,
909      0x36d1, 0x73ab, 0x36fe, 0x7396, 0x372c, 0x7380, 0x3759, 0x736a, 0x3786,
910      0x7354, 0x37b4, 0x733f, 0x37e1, 0x7329, 0x380e, 0x7313, 0x383b, 0x72fd,
911      0x3868, 0x72e7, 0x3895, 0x72d0, 0x38c2, 0x72ba, 0x38f0, 0x72a4, 0x391d,
912      0x728d, 0x3949, 0x7277, 0x3976, 0x7260, 0x39a3, 0x724a, 0x39d0, 0x7233,
913      0x39fd, 0x721c, 0x3a2a, 0x7206, 0x3a57, 0x71ef, 0x3a83, 0x71d8, 0x3ab0,
914      0x71c1, 0x3add, 0x71aa, 0x3b09, 0x7193, 0x3b36, 0x717b, 0x3b62, 0x7164,
915      0x3b8f, 0x714d, 0x3bbb, 0x7135, 0x3be8, 0x711e, 0x3c14, 0x7106, 0x3c41,
916      0x70ef, 0x3c6d, 0x70d7, 0x3c99, 0x70bf, 0x3cc5, 0x70a7, 0x3cf2, 0x708f,
917      0x3d1e, 0x7077, 0x3d4a, 0x705f, 0x3d76, 0x7047, 0x3da2, 0x702f, 0x3dce,
918      0x7017, 0x3dfa, 0x6fff, 0x3e26, 0x6fe6, 0x3e52, 0x6fce, 0x3e7e, 0x6fb5,
919      0x3eaa, 0x6f9d, 0x3ed6, 0x6f84, 0x3f01, 0x6f6b, 0x3f2d, 0x6f53, 0x3f59,
920      0x6f3a, 0x3f84, 0x6f21, 0x3fb0, 0x6f08, 0x3fdc, 0x6eef, 0x4007, 0x6ed6,
921      0x4033, 0x6ebd, 0x405e, 0x6ea3, 0x408a, 0x6e8a, 0x40b5, 0x6e71, 0x40e0,
922      0x6e57, 0x410c, 0x6e3e, 0x4137, 0x6e24, 0x4162, 0x6e0a, 0x418d, 0x6df1,
923      0x41b9, 0x6dd7, 0x41e4, 0x6dbd, 0x420f, 0x6da3, 0x423a, 0x6d89, 0x4265,
924      0x6d6f, 0x4290, 0x6d55, 0x42bb, 0x6d3b, 0x42e6, 0x6d21, 0x4310, 0x6d06,
925      0x433b, 0x6cec, 0x4366, 0x6cd2, 0x4391, 0x6cb7, 0x43bb, 0x6c9c, 0x43e6,
926      0x6c82, 0x4411, 0x6c67, 0x443b, 0x6c4c, 0x4466, 0x6c32, 0x4490, 0x6c17,
927      0x44ba, 0x6bfc, 0x44e5, 0x6be1, 0x450f, 0x6bc6, 0x4539, 0x6baa, 0x4564,
928      0x6b8f, 0x458e, 0x6b74, 0x45b8, 0x6b59, 0x45e2, 0x6b3d, 0x460c, 0x6b22,
929      0x4636, 0x6b06, 0x4660, 0x6aeb, 0x468a, 0x6acf, 0x46b4, 0x6ab3, 0x46de,
930      0x6a97, 0x4708, 0x6a7c, 0x4732, 0x6a60, 0x475c, 0x6a44, 0x4785, 0x6a28,
931      0x47af, 0x6a0b, 0x47d9, 0x69ef, 0x4802, 0x69d3, 0x482c, 0x69b7, 0x4855,
932      0x699a, 0x487f, 0x697e, 0x48a8, 0x6961, 0x48d1, 0x6945, 0x48fb, 0x6928,
933      0x4924, 0x690c, 0x494d, 0x68ef, 0x4976, 0x68d2, 0x49a0, 0x68b5, 0x49c9,
934      0x6898, 0x49f2, 0x687b, 0x4a1b, 0x685e, 0x4a44, 0x6841, 0x4a6d, 0x6824,
935      0x4a95, 0x6806, 0x4abe, 0x67e9, 0x4ae7, 0x67cc, 0x4b10, 0x67ae, 0x4b38,
936      0x6791, 0x4b61, 0x6773, 0x4b8a, 0x6756, 0x4bb2, 0x6738, 0x4bdb, 0x671a,
937      0x4c03, 0x66fc, 0x4c2c, 0x66de, 0x4c54, 0x66c1, 0x4c7c, 0x66a3, 0x4ca5,
938      0x6684, 0x4ccd, 0x6666, 0x4cf5, 0x6648, 0x4d1d, 0x662a, 0x4d45, 0x660c,
939      0x4d6d, 0x65ed, 0x4d95, 0x65cf, 0x4dbd, 0x65b0, 0x4de5, 0x6592, 0x4e0d,
940      0x6573, 0x4e35, 0x6554, 0x4e5d, 0x6536, 0x4e84, 0x6517, 0x4eac, 0x64f8,
941      0x4ed4, 0x64d9, 0x4efb, 0x64ba, 0x4f23, 0x649b, 0x4f4a, 0x647c, 0x4f72,
942      0x645d, 0x4f99, 0x643e, 0x4fc0, 0x641e, 0x4fe8, 0x63ff, 0x500f, 0x63df,
943      0x5036, 0x63c0, 0x505d, 0x63a0, 0x5084, 0x6381, 0x50ac, 0x6361, 0x50d3,
944      0x6342, 0x50f9, 0x6322, 0x5120, 0x6302, 0x5147, 0x62e2, 0x516e, 0x62c2,
945      0x5195, 0x62a2, 0x51bb, 0x6282, 0x51e2, 0x6262, 0x5209, 0x6242, 0x522f,
946      0x6221, 0x5256, 0x6201, 0x527c, 0x61e1, 0x52a3, 0x61c0, 0x52c9, 0x61a0,
947      0x52ef, 0x617f, 0x5316, 0x615f, 0x533c, 0x613e, 0x5362, 0x611d, 0x5388,
948      0x60fd, 0x53ae, 0x60dc, 0x53d4, 0x60bb, 0x53fa, 0x609a, 0x5420, 0x6079,
949      0x5446, 0x6058, 0x546c, 0x6037, 0x5491, 0x6016, 0x54b7, 0x5ff4, 0x54dd,
950      0x5fd3, 0x5502, 0x5fb2, 0x5528, 0x5f90, 0x554e, 0x5f6f, 0x5573, 0x5f4d,
951      0x5598, 0x5f2c, 0x55be, 0x5f0a, 0x55e3, 0x5ee8, 0x5608, 0x5ec7, 0x562d,
952      0x5ea5, 0x5653, 0x5e83, 0x5678, 0x5e61, 0x569d, 0x5e3f, 0x56c2, 0x5e1d,
953      0x56e7, 0x5dfb, 0x570c, 0x5dd9, 0x5730, 0x5db7, 0x5755, 0x5d94, 0x577a,
954      0x5d72, 0x579f, 0x5d50, 0x57c3, 0x5d2d, 0x57e8, 0x5d0b, 0x580c, 0x5ce8,
955      0x5831, 0x5cc5, 0x5855, 0x5ca3, 0x5879, 0x5c80, 0x589e, 0x5c5d, 0x58c2,
956      0x5c3a, 0x58e6, 0x5c18, 0x590a, 0x5bf5, 0x592e, 0x5bd2, 0x5952, 0x5baf,
957      0x5976, 0x5b8c, 0x599a, 0x5b68, 0x59be, 0x5b45, 0x59e2, 0x5b22, 0x5a06,
958      0x5aff, 0x5a29, 0x5adb, 0x5a4d, 0x5ab8, 0x5a71, 0x5a94},
959 
960     // const WORD16 only_long_window_kbd[1024] =
961     {0x000a, 0x7fff, 0x000e, 0x7fff, 0x0012, 0x7fff, 0x0015, 0x7fff, 0x0019,
962      0x7fff, 0x001c, 0x7fff, 0x0020, 0x7fff, 0x0023, 0x7fff, 0x0026, 0x7fff,
963      0x002a, 0x7fff, 0x002d, 0x7fff, 0x0030, 0x7fff, 0x0034, 0x7fff, 0x0038,
964      0x7fff, 0x003b, 0x7fff, 0x003f, 0x7fff, 0x0043, 0x7fff, 0x0047, 0x7fff,
965      0x004b, 0x7fff, 0x004f, 0x7fff, 0x0053, 0x7fff, 0x0057, 0x7fff, 0x005b,
966      0x7fff, 0x0060, 0x7fff, 0x0064, 0x7fff, 0x0069, 0x7fff, 0x006d, 0x7fff,
967      0x0072, 0x7fff, 0x0077, 0x7fff, 0x007c, 0x7fff, 0x0081, 0x7fff, 0x0086,
968      0x7fff, 0x008b, 0x7fff, 0x0091, 0x7fff, 0x0096, 0x7fff, 0x009c, 0x7fff,
969      0x00a1, 0x7fff, 0x00a7, 0x7fff, 0x00ad, 0x7fff, 0x00b3, 0x7fff, 0x00b9,
970      0x7fff, 0x00bf, 0x7fff, 0x00c6, 0x7fff, 0x00cc, 0x7fff, 0x00d3, 0x7fff,
971      0x00da, 0x7fff, 0x00e0, 0x7fff, 0x00e7, 0x7fff, 0x00ee, 0x7fff, 0x00f5,
972      0x7fff, 0x00fd, 0x7fff, 0x0104, 0x7fff, 0x010c, 0x7fff, 0x0113, 0x7fff,
973      0x011b, 0x7fff, 0x0123, 0x7fff, 0x012b, 0x7fff, 0x0133, 0x7fff, 0x013c,
974      0x7ffe, 0x0144, 0x7ffe, 0x014d, 0x7ffe, 0x0156, 0x7ffe, 0x015f, 0x7ffe,
975      0x0168, 0x7ffe, 0x0171, 0x7ffe, 0x017a, 0x7ffe, 0x0183, 0x7ffe, 0x018d,
976      0x7ffe, 0x0197, 0x7ffd, 0x01a1, 0x7ffd, 0x01ab, 0x7ffd, 0x01b5, 0x7ffd,
977      0x01bf, 0x7ffd, 0x01ca, 0x7ffd, 0x01d4, 0x7ffd, 0x01df, 0x7ffc, 0x01ea,
978      0x7ffc, 0x01f5, 0x7ffc, 0x0200, 0x7ffc, 0x020c, 0x7ffc, 0x0217, 0x7ffc,
979      0x0223, 0x7ffb, 0x022f, 0x7ffb, 0x023b, 0x7ffb, 0x0247, 0x7ffb, 0x0253,
980      0x7ffb, 0x0260, 0x7ffa, 0x026d, 0x7ffa, 0x027a, 0x7ffa, 0x0287, 0x7ffa,
981      0x0294, 0x7ff9, 0x02a1, 0x7ff9, 0x02af, 0x7ff9, 0x02bc, 0x7ff9, 0x02ca,
982      0x7ff8, 0x02d8, 0x7ff8, 0x02e7, 0x7ff8, 0x02f5, 0x7ff7, 0x0304, 0x7ff7,
983      0x0312, 0x7ff7, 0x0321, 0x7ff6, 0x0331, 0x7ff6, 0x0340, 0x7ff5, 0x034f,
984      0x7ff5, 0x035f, 0x7ff5, 0x036f, 0x7ff4, 0x037f, 0x7ff4, 0x038f, 0x7ff3,
985      0x03a0, 0x7ff3, 0x03b0, 0x7ff2, 0x03c1, 0x7ff2, 0x03d2, 0x7ff1, 0x03e3,
986      0x7ff1, 0x03f5, 0x7ff0, 0x0406, 0x7ff0, 0x0418, 0x7fef, 0x042a, 0x7fef,
987      0x043c, 0x7fee, 0x044f, 0x7fed, 0x0461, 0x7fed, 0x0474, 0x7fec, 0x0487,
988      0x7feb, 0x049a, 0x7feb, 0x04ae, 0x7fea, 0x04c1, 0x7fe9, 0x04d5, 0x7fe9,
989      0x04e9, 0x7fe8, 0x04fd, 0x7fe7, 0x0512, 0x7fe6, 0x0527, 0x7fe5, 0x053b,
990      0x7fe5, 0x0550, 0x7fe4, 0x0566, 0x7fe3, 0x057b, 0x7fe2, 0x0591, 0x7fe1,
991      0x05a7, 0x7fe0, 0x05bd, 0x7fdf, 0x05d3, 0x7fde, 0x05ea, 0x7fdd, 0x0601,
992      0x7fdc, 0x0618, 0x7fdb, 0x062f, 0x7fda, 0x0646, 0x7fd9, 0x065e, 0x7fd7,
993      0x0676, 0x7fd6, 0x068e, 0x7fd5, 0x06a6, 0x7fd4, 0x06bf, 0x7fd2, 0x06d8,
994      0x7fd1, 0x06f1, 0x7fd0, 0x070a, 0x7fce, 0x0723, 0x7fcd, 0x073d, 0x7fcc,
995      0x0757, 0x7fca, 0x0771, 0x7fc9, 0x078c, 0x7fc7, 0x07a6, 0x7fc5, 0x07c1,
996      0x7fc4, 0x07dc, 0x7fc2, 0x07f7, 0x7fc0, 0x0813, 0x7fbf, 0x082f, 0x7fbd,
997      0x084b, 0x7fbb, 0x0867, 0x7fb9, 0x0884, 0x7fb7, 0x08a0, 0x7fb6, 0x08bd,
998      0x7fb4, 0x08da, 0x7fb2, 0x08f8, 0x7faf, 0x0916, 0x7fad, 0x0934, 0x7fab,
999      0x0952, 0x7fa9, 0x0970, 0x7fa7, 0x098f, 0x7fa5, 0x09ae, 0x7fa2, 0x09cd,
1000      0x7fa0, 0x09ec, 0x7f9d, 0x0a0c, 0x7f9b, 0x0a2c, 0x7f98, 0x0a4c, 0x7f96,
1001      0x0a6c, 0x7f93, 0x0a8d, 0x7f91, 0x0aae, 0x7f8e, 0x0acf, 0x7f8b, 0x0af0,
1002      0x7f88, 0x0b12, 0x7f85, 0x0b33, 0x7f82, 0x0b55, 0x7f7f, 0x0b78, 0x7f7c,
1003      0x0b9a, 0x7f79, 0x0bbd, 0x7f76, 0x0be0, 0x7f73, 0x0c04, 0x7f6f, 0x0c27,
1004      0x7f6c, 0x0c4b, 0x7f69, 0x0c6f, 0x7f65, 0x0c93, 0x7f61, 0x0cb8, 0x7f5e,
1005      0x0cdd, 0x7f5a, 0x0d02, 0x7f56, 0x0d27, 0x7f53, 0x0d4d, 0x7f4f, 0x0d73,
1006      0x7f4b, 0x0d99, 0x7f47, 0x0dbf, 0x7f43, 0x0de6, 0x7f3e, 0x0e0c, 0x7f3a,
1007      0x0e34, 0x7f36, 0x0e5b, 0x7f31, 0x0e83, 0x7f2d, 0x0eaa, 0x7f28, 0x0ed3,
1008      0x7f24, 0x0efb, 0x7f1f, 0x0f23, 0x7f1a, 0x0f4c, 0x7f15, 0x0f75, 0x7f10,
1009      0x0f9f, 0x7f0b, 0x0fc8, 0x7f06, 0x0ff2, 0x7f01, 0x101c, 0x7efb, 0x1047,
1010      0x7ef6, 0x1071, 0x7ef0, 0x109c, 0x7eeb, 0x10c8, 0x7ee5, 0x10f3, 0x7edf,
1011      0x111f, 0x7eda, 0x114a, 0x7ed4, 0x1177, 0x7ece, 0x11a3, 0x7ec7, 0x11d0,
1012      0x7ec1, 0x11fd, 0x7ebb, 0x122a, 0x7eb4, 0x1257, 0x7eae, 0x1285, 0x7ea7,
1013      0x12b3, 0x7ea0, 0x12e1, 0x7e9a, 0x130f, 0x7e93, 0x133e, 0x7e8c, 0x136d,
1014      0x7e84, 0x139c, 0x7e7d, 0x13cc, 0x7e76, 0x13fb, 0x7e6e, 0x142b, 0x7e67,
1015      0x145b, 0x7e5f, 0x148c, 0x7e57, 0x14bc, 0x7e4f, 0x14ed, 0x7e47, 0x151e,
1016      0x7e3f, 0x1550, 0x7e37, 0x1581, 0x7e2e, 0x15b3, 0x7e26, 0x15e5, 0x7e1d,
1017      0x1618, 0x7e14, 0x164a, 0x7e0b, 0x167d, 0x7e02, 0x16b0, 0x7df9, 0x16e4,
1018      0x7df0, 0x1717, 0x7de6, 0x174b, 0x7ddd, 0x177f, 0x7dd3, 0x17b3, 0x7dc9,
1019      0x17e8, 0x7dbf, 0x181d, 0x7db5, 0x1852, 0x7dab, 0x1887, 0x7da1, 0x18bc,
1020      0x7d96, 0x18f2, 0x7d8c, 0x1928, 0x7d81, 0x195e, 0x7d76, 0x1995, 0x7d6b,
1021      0x19cb, 0x7d60, 0x1a02, 0x7d54, 0x1a39, 0x7d49, 0x1a71, 0x7d3d, 0x1aa8,
1022      0x7d31, 0x1ae0, 0x7d26, 0x1b18, 0x7d19, 0x1b50, 0x7d0d, 0x1b89, 0x7d01,
1023      0x1bc2, 0x7cf4, 0x1bfb, 0x7ce8, 0x1c34, 0x7cdb, 0x1c6d, 0x7cce, 0x1ca7,
1024      0x7cc1, 0x1ce1, 0x7cb3, 0x1d1b, 0x7ca6, 0x1d55, 0x7c98, 0x1d8f, 0x7c8a,
1025      0x1dca, 0x7c7c, 0x1e05, 0x7c6e, 0x1e40, 0x7c60, 0x1e7b, 0x7c51, 0x1eb7,
1026      0x7c43, 0x1ef3, 0x7c34, 0x1f2f, 0x7c25, 0x1f6b, 0x7c16, 0x1fa7, 0x7c06,
1027      0x1fe4, 0x7bf7, 0x2021, 0x7be7, 0x205e, 0x7bd7, 0x209b, 0x7bc7, 0x20d8,
1028      0x7bb7, 0x2116, 0x7ba6, 0x2154, 0x7b96, 0x2192, 0x7b85, 0x21d0, 0x7b74,
1029      0x220e, 0x7b63, 0x224d, 0x7b52, 0x228c, 0x7b40, 0x22cb, 0x7b2e, 0x230a,
1030      0x7b1c, 0x2349, 0x7b0a, 0x2389, 0x7af8, 0x23c8, 0x7ae6, 0x2408, 0x7ad3,
1031      0x2448, 0x7ac0, 0x2489, 0x7aad, 0x24c9, 0x7a9a, 0x250a, 0x7a86, 0x254b,
1032      0x7a73, 0x258c, 0x7a5f, 0x25cd, 0x7a4b, 0x260e, 0x7a36, 0x2650, 0x7a22,
1033      0x2691, 0x7a0d, 0x26d3, 0x79f8, 0x2715, 0x79e3, 0x2757, 0x79ce, 0x279a,
1034      0x79b8, 0x27dc, 0x79a3, 0x281f, 0x798d, 0x2862, 0x7977, 0x28a5, 0x7960,
1035      0x28e8, 0x794a, 0x292b, 0x7933, 0x296f, 0x791c, 0x29b2, 0x7905, 0x29f6,
1036      0x78ed, 0x2a3a, 0x78d6, 0x2a7e, 0x78be, 0x2ac2, 0x78a6, 0x2b07, 0x788d,
1037      0x2b4b, 0x7875, 0x2b90, 0x785c, 0x2bd4, 0x7843, 0x2c19, 0x782a, 0x2c5e,
1038      0x7810, 0x2ca4, 0x77f7, 0x2ce9, 0x77dd, 0x2d2e, 0x77c3, 0x2d74, 0x77a8,
1039      0x2dba, 0x778e, 0x2dff, 0x7773, 0x2e45, 0x7758, 0x2e8b, 0x773d, 0x2ed2,
1040      0x7721, 0x2f18, 0x7706, 0x2f5e, 0x76ea, 0x2fa5, 0x76cd, 0x2fec, 0x76b1,
1041      0x3032, 0x7694, 0x3079, 0x7677, 0x30c0, 0x765a, 0x3107, 0x763d, 0x314e,
1042      0x761f, 0x3196, 0x7601, 0x31dd, 0x75e3, 0x3225, 0x75c5, 0x326c, 0x75a6,
1043      0x32b4, 0x7588, 0x32fc, 0x7569, 0x3344, 0x7549, 0x338c, 0x752a, 0x33d4,
1044      0x750a, 0x341c, 0x74ea, 0x3464, 0x74ca, 0x34ac, 0x74a9, 0x34f5, 0x7488,
1045      0x353d, 0x7467, 0x3585, 0x7446, 0x35ce, 0x7424, 0x3617, 0x7403, 0x365f,
1046      0x73e1, 0x36a8, 0x73be, 0x36f1, 0x739c, 0x373a, 0x7379, 0x3783, 0x7356,
1047      0x37cc, 0x7333, 0x3815, 0x730f, 0x385e, 0x72ec, 0x38a7, 0x72c8, 0x38f1,
1048      0x72a3, 0x393a, 0x727f, 0x3983, 0x725a, 0x39cd, 0x7235, 0x3a16, 0x7210,
1049      0x3a60, 0x71ea, 0x3aa9, 0x71c4, 0x3af3, 0x719e, 0x3b3c, 0x7178, 0x3b86,
1050      0x7151, 0x3bd0, 0x712b, 0x3c19, 0x7104, 0x3c63, 0x70dc, 0x3cad, 0x70b5,
1051      0x3cf7, 0x708d, 0x3d40, 0x7065, 0x3d8a, 0x703c, 0x3dd4, 0x7014, 0x3e1e,
1052      0x6feb, 0x3e68, 0x6fc2, 0x3eb1, 0x6f98, 0x3efb, 0x6f6f, 0x3f45, 0x6f45,
1053      0x3f8f, 0x6f1b, 0x3fd9, 0x6ef0, 0x4023, 0x6ec6, 0x406d, 0x6e9b, 0x40b6,
1054      0x6e70, 0x4100, 0x6e44, 0x414a, 0x6e19, 0x4194, 0x6ded, 0x41de, 0x6dc1,
1055      0x4228, 0x6d94, 0x4271, 0x6d68, 0x42bb, 0x6d3b, 0x4305, 0x6d0d, 0x434f,
1056      0x6ce0, 0x4398, 0x6cb2, 0x43e2, 0x6c84, 0x442c, 0x6c56, 0x4475, 0x6c28,
1057      0x44bf, 0x6bf9, 0x4508, 0x6bca, 0x4552, 0x6b9b, 0x459b, 0x6b6b, 0x45e5,
1058      0x6b3c, 0x462e, 0x6b0c, 0x4678, 0x6adb, 0x46c1, 0x6aab, 0x470a, 0x6a7a,
1059      0x4753, 0x6a49, 0x479c, 0x6a18, 0x47e5, 0x69e7, 0x482e, 0x69b5, 0x4877,
1060      0x6983, 0x48c0, 0x6951, 0x4909, 0x691e, 0x4952, 0x68ec, 0x499b, 0x68b9,
1061      0x49e3, 0x6885, 0x4a2c, 0x6852, 0x4a74, 0x681e, 0x4abd, 0x67ea, 0x4b05,
1062      0x67b6, 0x4b4d, 0x6782, 0x4b95, 0x674d, 0x4bde, 0x6718, 0x4c26, 0x66e3,
1063      0x4c6d, 0x66ae, 0x4cb5, 0x6678, 0x4cfd, 0x6642, 0x4d45, 0x660c, 0x4d8c,
1064      0x65d6, 0x4dd4, 0x659f, 0x4e1b, 0x6568, 0x4e62, 0x6531, 0x4ea9, 0x64fa,
1065      0x4ef0, 0x64c3, 0x4f37, 0x648b, 0x4f7e, 0x6453, 0x4fc5, 0x641b, 0x500b,
1066      0x63e2, 0x5052, 0x63aa, 0x5098, 0x6371, 0x50df, 0x6338, 0x5125, 0x62fe,
1067      0x516b, 0x62c5, 0x51b1, 0x628b, 0x51f6, 0x6251, 0x523c, 0x6217, 0x5281,
1068      0x61dc, 0x52c7, 0x61a2, 0x530c, 0x6167, 0x5351, 0x612c, 0x5396, 0x60f1,
1069      0x53db, 0x60b5, 0x5420, 0x6079, 0x5464, 0x603d, 0x54a9, 0x6001, 0x54ed,
1070      0x5fc5, 0x5531, 0x5f88, 0x5575, 0x5f4b, 0x55b9, 0x5f0e, 0x55fc, 0x5ed1,
1071      0x5640, 0x5e94, 0x5683, 0x5e56, 0x56c7, 0x5e18, 0x570a, 0x5dda, 0x574d,
1072      0x5d9c, 0x578f, 0x5d5e, 0x57d2, 0x5d1f, 0x5814, 0x5ce0, 0x5856, 0x5ca1,
1073      0x5899, 0x5c62, 0x58da, 0x5c23, 0x591c, 0x5be3, 0x595e, 0x5ba4, 0x599f,
1074      0x5b64, 0x59e0, 0x5b24, 0x5a21, 0x5ae3, 0x5a62, 0x5aa3},
1075 
1076     // const WORD16 only_short_window_sine[128] =
1077     {0x00c9, 0x7fff, 0x025b, 0x7ffa, 0x03ed, 0x7ff1, 0x057f, 0x7fe2, 0x0711,
1078      0x7fce, 0x08a2, 0x7fb5, 0x0a33, 0x7f98, 0x0bc4, 0x7f75, 0x0d54, 0x7f4e,
1079      0x0ee4, 0x7f22, 0x1073, 0x7ef0, 0x1201, 0x7eba, 0x138f, 0x7e7f, 0x151c,
1080      0x7e3f, 0x16a8, 0x7dfb, 0x1833, 0x7db1, 0x19be, 0x7d63, 0x1b47, 0x7d0f,
1081      0x1cd0, 0x7cb7, 0x1e57, 0x7c5a, 0x1fdd, 0x7bf9, 0x2162, 0x7b92, 0x22e5,
1082      0x7b27, 0x2467, 0x7ab7, 0x25e8, 0x7a42, 0x2768, 0x79c9, 0x28e5, 0x794a,
1083      0x2a62, 0x78c8, 0x2bdc, 0x7840, 0x2d55, 0x77b4, 0x2ecc, 0x7723, 0x3042,
1084      0x768e, 0x31b5, 0x75f4, 0x3327, 0x7556, 0x3497, 0x74b3, 0x3604, 0x740b,
1085      0x3770, 0x735f, 0x38d9, 0x72af, 0x3a40, 0x71fa, 0x3ba5, 0x7141, 0x3d08,
1086      0x7083, 0x3e68, 0x6fc2, 0x3fc6, 0x6efb, 0x4121, 0x6e31, 0x427a, 0x6d62,
1087      0x43d1, 0x6c8f, 0x4524, 0x6bb8, 0x4675, 0x6add, 0x47c4, 0x69fd, 0x490f,
1088      0x691a, 0x4a58, 0x6832, 0x4b9e, 0x6747, 0x4ce1, 0x6657, 0x4e21, 0x6564,
1089      0x4f5e, 0x646c, 0x5098, 0x6371, 0x51cf, 0x6272, 0x5303, 0x616f, 0x5433,
1090      0x6068, 0x5560, 0x5f5e, 0x568a, 0x5e50, 0x57b1, 0x5d3e, 0x58d4, 0x5c29,
1091      0x59f4, 0x5b10},
1092 
1093     // const WORD16 only_short_window_kbd[128] =
1094     {0x0001, 0x7fff, 0x0004, 0x7fff, 0x0008, 0x7fff, 0x000d, 0x7fff, 0x0014,
1095      0x7fff, 0x001d, 0x7fff, 0x0029, 0x7fff, 0x0039, 0x7fff, 0x004c, 0x7fff,
1096      0x0063, 0x7fff, 0x0080, 0x7fff, 0x00a2, 0x7fff, 0x00cb, 0x7fff, 0x00fb,
1097      0x7fff, 0x0133, 0x7fff, 0x0174, 0x7ffe, 0x01be, 0x7ffd, 0x0214, 0x7ffc,
1098      0x0275, 0x7ffa, 0x02e3, 0x7ff8, 0x035e, 0x7ff5, 0x03e8, 0x7ff1, 0x0481,
1099      0x7fec, 0x052b, 0x7fe5, 0x05e7, 0x7fdd, 0x06b4, 0x7fd3, 0x0795, 0x7fc6,
1100      0x088a, 0x7fb7, 0x0993, 0x7fa4, 0x0ab2, 0x7f8d, 0x0be7, 0x7f72, 0x0d32,
1101      0x7f51, 0x0e95, 0x7f2b, 0x100e, 0x7efd, 0x119f, 0x7ec8, 0x1347, 0x7e8a,
1102      0x1507, 0x7e43, 0x16de, 0x7df1, 0x18cc, 0x7d93, 0x1ad0, 0x7d29, 0x1ceb,
1103      0x7cb1, 0x1f1b, 0x7c2a, 0x215f, 0x7b93, 0x23b7, 0x7aeb, 0x2621, 0x7a30,
1104      0x289c, 0x7963, 0x2b27, 0x7882, 0x2dc0, 0x778b, 0x3066, 0x767f, 0x3318,
1105      0x755c, 0x35d2, 0x7422, 0x3895, 0x72d1, 0x3b5d, 0x7167, 0x3e29, 0x6fe5,
1106      0x40f6, 0x6e4a, 0x43c4, 0x6c97, 0x4690, 0x6acc, 0x4957, 0x68e8, 0x4c18,
1107      0x66ed, 0x4ed2, 0x64da, 0x5182, 0x62b2, 0x5426, 0x6074, 0x56bd, 0x5e22,
1108      0x5945, 0x5bbc},
1109 
1110     // const WORD16 cos_array_2048p[512] and const WORD16 sine_array_2048p[512]
1111     // =
1112     {
1113         32767, 0,     32767, 101,   32767, 201,   32767, 302,   32766, 402,
1114         32764, 503,   32762, 603,   32760, 704,   32758, 804,   32756, 905,
1115         32753, 1005,  32749, 1106,  32746, 1206,  32742, 1307,  32738, 1407,
1116         32733, 1507,  32729, 1608,  32723, 1708,  32718, 1809,  32712, 1909,
1117         32706, 2009,  32700, 2110,  32693, 2210,  32686, 2310,  32679, 2411,
1118         32672, 2511,  32664, 2611,  32656, 2711,  32647, 2811,  32638, 2912,
1119         32629, 3012,  32620, 3112,  32610, 3212,  32600, 3312,  32590, 3412,
1120         32579, 3512,  32568, 3612,  32557, 3712,  32546, 3812,  32534, 3911,
1121         32522, 4011,  32509, 4111,  32496, 4211,  32483, 4310,  32470, 4410,
1122         32456, 4510,  32442, 4609,  32428, 4709,  32413, 4808,  32398, 4908,
1123         32383, 5007,  32368, 5106,  32352, 5206,  32336, 5305,  32319, 5404,
1124         32303, 5503,  32286, 5602,  32268, 5701,  32251, 5800,  32233, 5899,
1125         32214, 5998,  32196, 6097,  32177, 6195,  32158, 6294,  32138, 6393,
1126         32119, 6491,  32099, 6590,  32078, 6688,  32058, 6787,  32037, 6885,
1127         32015, 6983,  31994, 7081,  31972, 7180,  31950, 7278,  31927, 7376,
1128         31904, 7474,  31881, 7571,  31858, 7669,  31834, 7767,  31810, 7864,
1129         31786, 7962,  31761, 8059,  31737, 8157,  31711, 8254,  31686, 8351,
1130         31660, 8449,  31634, 8546,  31608, 8643,  31581, 8740,  31554, 8837,
1131         31527, 8933,  31499, 9030,  31471, 9127,  31443, 9223,  31415, 9320,
1132         31386, 9416,  31357, 9512,  31328, 9608,  31298, 9704,  31268, 9800,
1133         31238, 9896,  31207, 9992,  31177, 10088, 31146, 10183, 31114, 10279,
1134         31082, 10374, 31050, 10469, 31018, 10565, 30986, 10660, 30953, 10755,
1135         30920, 10850, 30886, 10945, 30853, 11039, 30819, 11134, 30784, 11228,
1136         30750, 11323, 30715, 11417, 30680, 11511, 30644, 11605, 30608, 11699,
1137         30572, 11793, 30536, 11887, 30499, 11980, 30462, 12074, 30425, 12167,
1138         30388, 12261, 30350, 12354, 30312, 12447, 30274, 12540, 30235, 12633,
1139         30196, 12725, 30157, 12818, 30118, 12910, 30078, 13003, 30038, 13095,
1140         29997, 13187, 29957, 13279, 29916, 13371, 29875, 13463, 29833, 13554,
1141         29792, 13646, 29750, 13737, 29707, 13828, 29665, 13919, 29622, 14010,
1142         29579, 14101, 29535, 14192, 29492, 14282, 29448, 14373, 29404, 14463,
1143         29359, 14553, 29314, 14643, 29269, 14733, 29224, 14823, 29178, 14912,
1144         29132, 15002, 29086, 15091, 29040, 15180, 28993, 15269, 28946, 15358,
1145         28899, 15447, 28851, 15535, 28803, 15624, 28755, 15712, 28707, 15800,
1146         28658, 15888, 28610, 15976, 28560, 16064, 28511, 16151, 28461, 16239,
1147         28411, 16326, 28361, 16413, 28311, 16500, 28260, 16587, 28209, 16673,
1148         28158, 16760, 28106, 16846, 28054, 16932, 28002, 17018, 27950, 17104,
1149         27897, 17190, 27844, 17275, 27791, 17361, 27738, 17446, 27684, 17531,
1150         27630, 17616, 27576, 17700, 27522, 17785, 27467, 17869, 27412, 17953,
1151         27357, 18037, 27301, 18121, 27246, 18205, 27190, 18288, 27133, 18372,
1152         27077, 18455, 27020, 18538, 26963, 18621, 26906, 18703, 26848, 18786,
1153         26791, 18868, 26733, 18950, 26674, 19032, 26616, 19114, 26557, 19195,
1154         26498, 19277, 26439, 19358, 26379, 19439, 26320, 19520, 26260, 19601,
1155         26199, 19681, 26139, 19761, 26078, 19841, 26017, 19921, 25956, 20001,
1156         25894, 20081, 25833, 20160, 25771, 20239, 25708, 20318, 25646, 20397,
1157         25583, 20475, 25520, 20554, 25457, 20632, 25394, 20710, 25330, 20788,
1158         25266, 20865, 25202, 20943, 25138, 21020, 25073, 21097, 25008, 21174,
1159         24943, 21251, 24878, 21327, 24812, 21403, 24746, 21479, 24680, 21555,
1160         24614, 21631, 24548, 21706, 24481, 21781, 24414, 21856, 24347, 21931,
1161         24280, 22006, 24212, 22080, 24144, 22154, 24076, 22228, 24008, 22302,
1162         23939, 22375, 23870, 22449, 23801, 22522, 23732, 22595, 23663, 22668,
1163         23593, 22740, 23523, 22812, 23453, 22884, 23383, 22956, 23312, 23028,
1164         23241, 23099, 23170, 23170,
1165     },
1166 
1167     // WORD32 w1024[768]
1168     {
1169 
1170         0x00007fff, 0xff377fff, 0xfe6e7ffe, 0xfda57ffa, 0xfcdc7ff6, 0xfc137ff1,
1171         0xfb4a7fea, 0xfa817fe2, 0xf9b87fd9, 0xf8ef7fce, 0xf8277fc2, 0xf75e7fb5,
1172         0xf6957fa7, 0xf5cd7f98, 0xf5057f87, 0xf43c7f75, 0xf3747f62, 0xf2ac7f4e,
1173         0xf1e47f38, 0xf11c7f22, 0xf0557f0a, 0xef8d7ef0, 0xeec67ed6, 0xedff7eba,
1174         0xed387e9d, 0xec717e7f, 0xebab7e60, 0xeae47e3f, 0xea1e7e1e, 0xe9587dfb,
1175         0xe8927dd6, 0xe7cd7db1, 0xe7077d8a, 0xe6427d63, 0xe57d7d3a, 0xe4b97d0f,
1176         0xe3f47ce4, 0xe3307cb7, 0xe26d7c89, 0xe1a97c5a, 0xe0e67c2a, 0xe0237bf9,
1177         0xdf617bc6, 0xde9e7b92, 0xdddc7b5d, 0xdd1b7b27, 0xdc597aef, 0xdb997ab7,
1178         0xdad87a7d, 0xda187a42, 0xd9587a06, 0xd89879c9, 0xd7d9798a, 0xd71b794a,
1179         0xd65c790a, 0xd59e78c8, 0xd4e17885, 0xd4247840, 0xd36777fb, 0xd2ab77b4,
1180         0xd1ef776c, 0xd1347723, 0xd07976d9, 0xcfbe768e, 0xcf047642, 0xce4b75f4,
1181         0xcd9275a6, 0xccd97556, 0xcc217505, 0xcb6974b3, 0xcab27460, 0xc9fc740b,
1182         0xc94673b6, 0xc890735f, 0xc7db7308, 0xc72772af, 0xc6737255, 0xc5c071fa,
1183         0xc50d719e, 0xc45b7141, 0xc3a970e3, 0xc2f87083, 0xc2487023, 0xc1986fc2,
1184         0xc0e96f5f, 0xc03a6efb, 0xbf8c6e97, 0xbedf6e31, 0xbe326dca, 0xbd866d62,
1185         0xbcda6cf9, 0xbc2f6c8f, 0xbb856c24, 0xbadc6bb8, 0xba336b4b, 0xb98b6add,
1186         0xb8e36a6e, 0xb83c69fd, 0xb796698c, 0xb6f1691a, 0xb64c68a7, 0xb5a86832,
1187         0xb50567bd, 0xb4626747, 0xb3c066d0, 0xb31f6657, 0xb27f65de, 0xb1df6564,
1188         0xb14064e9, 0xb0a2646c, 0xb00563ef, 0xaf686371, 0xaecc62f2, 0xae316272,
1189         0xad9761f1, 0xacfd616f, 0xac6560ec, 0xabcd6068, 0xab365fe4, 0xaaa05f5e,
1190         0xaa0a5ed7, 0xa9765e50, 0xa8e25dc8, 0xa84f5d3e, 0xa7bd5cb4, 0xa72c5c29,
1191         0xa69c5b9d, 0xa60c5b10, 0xa57e5a82, 0xa4f059f4, 0xa4635964, 0xa3d758d4,
1192         0xa34c5843, 0xa2c257b1, 0xa238571e, 0xa1b0568a, 0xa12955f6, 0xa0a25560,
1193         0xa01c54ca, 0x9f985433, 0x9f14539b, 0x9e915303, 0x9e0f5269, 0x9d8e51cf,
1194         0x9d0e5134, 0x9c8f5098, 0x9c114ffb, 0x9b944f5e, 0x9b174ec0, 0x9a9c4e21,
1195         0x9a224d81, 0x99a94ce1, 0x99304c40, 0x98b94b9e, 0x98434afb, 0x97ce4a58,
1196         0x975949b4, 0x96e6490f, 0x9674486a, 0x960347c4, 0x9592471d, 0x95234675,
1197         0x94b545cd, 0x94484524, 0x93dc447b, 0x937143d1, 0x93074326, 0x929e427a,
1198         0x923641ce, 0x91cf4121, 0x91694074, 0x91053fc6, 0x90a13f17, 0x903e3e68,
1199         0x8fdd3db8, 0x8f7d3d08, 0x8f1d3c57, 0x8ebf3ba5, 0x8e623af3, 0x8e063a40,
1200         0x8dab398d, 0x8d5138d9, 0x8cf83825, 0x8ca13770, 0x8c4a36ba, 0x8bf53604,
1201         0x8ba0354e, 0x8b4d3497, 0x8afb33df, 0x8aaa3327, 0x8a5a326e, 0x8a0c31b5,
1202         0x89be30fc, 0x89723042, 0x89272f87, 0x88dd2ecc, 0x88942e11, 0x884c2d55,
1203         0x88052c99, 0x87c02bdc, 0x877b2b1f, 0x87382a62, 0x86f629a4, 0x86b628e5,
1204         0x86762827, 0x86372768, 0x85fa26a8, 0x85be25e8, 0x85832528, 0x85492467,
1205         0x851123a7, 0x84d922e5, 0x84a32224, 0x846e2162, 0x843a209f, 0x84071fdd,
1206         0x83d61f1a, 0x83a61e57, 0x83771d93, 0x83491cd0, 0x831c1c0c, 0x82f11b47,
1207         0x82c61a83, 0x829d19be, 0x827618f9, 0x824f1833, 0x822a176e, 0x820516a8,
1208         0x81e215e2, 0x81c1151c, 0x81a01455, 0x8181138f, 0x816312c8, 0x81461201,
1209         0x812a113a, 0x81101073, 0x80f60fab, 0x80de0ee4, 0x80c80e1c, 0x80b20d54,
1210         0x809e0c8c, 0x808b0bc4, 0x80790afb, 0x80680a33, 0x8059096b, 0x804b08a2,
1211         0x803e07d9, 0x80320711, 0x80270648, 0x801e057f, 0x801604b6, 0x800f03ed,
1212         0x800a0324, 0x8006025b, 0x80020192, 0x800100c9, 0x80000000, 0x8001ff37,
1213         0x8002fe6e, 0x8006fda5, 0x800afcdc, 0x800ffc13, 0x8016fb4a, 0x801efa81,
1214         0x8027f9b8, 0x8032f8ef, 0x803ef827, 0x804bf75e, 0x8059f695, 0x8068f5cd,
1215         0x8079f505, 0x808bf43c, 0x809ef374, 0x80b2f2ac, 0x80c8f1e4, 0x80def11c,
1216         0x80f6f055, 0x8110ef8d, 0x812aeec6, 0x8146edff, 0x8163ed38, 0x8181ec71,
1217         0x81a0ebab, 0x81c1eae4, 0x81e2ea1e, 0x8205e958, 0x822ae892, 0x824fe7cd,
1218         0x8276e707, 0x829de642, 0x82c6e57d, 0x82f1e4b9, 0x831ce3f4, 0x8349e330,
1219         0x8377e26d, 0x83a6e1a9, 0x83d6e0e6, 0x8407e023, 0x843adf61, 0x846ede9e,
1220         0x84a3dddc, 0x84d9dd1b, 0x8511dc59, 0x8549db99, 0x8583dad8, 0x85beda18,
1221         0x85fad958, 0x8637d898, 0x8676d7d9, 0x86b6d71b, 0x86f6d65c, 0x8738d59e,
1222         0x877bd4e1, 0x87c0d424, 0x8805d367, 0x884cd2ab, 0x8894d1ef, 0x88ddd134,
1223         0x8927d079, 0x8972cfbe, 0x89becf04, 0x8a0cce4b, 0x8a5acd92, 0x8aaaccd9,
1224         0x8afbcc21, 0x8b4dcb69, 0x8ba0cab2, 0x8bf5c9fc, 0x8c4ac946, 0x8ca1c890,
1225         0x8cf8c7db, 0x8d51c727, 0x8dabc673, 0x8e06c5c0, 0x8e62c50d, 0x8ebfc45b,
1226         0x8f1dc3a9, 0x8f7dc2f8, 0x8fddc248, 0x903ec198, 0x90a1c0e9, 0x9105c03a,
1227         0x9169bf8c, 0x91cfbedf, 0x9236be32, 0x929ebd86, 0x9307bcda, 0x9371bc2f,
1228         0x93dcbb85, 0x9448badc, 0x94b5ba33, 0x9523b98b, 0x9592b8e3, 0x9603b83c,
1229         0x9674b796, 0x96e6b6f1, 0x9759b64c, 0x97ceb5a8, 0x9843b505, 0x98b9b462,
1230         0x9930b3c0, 0x99a9b31f, 0x9a22b27f, 0x9a9cb1df, 0x9b17b140, 0x9b94b0a2,
1231         0x9c11b005, 0x9c8faf68, 0x9d0eaecc, 0x9d8eae31, 0x9e0fad97, 0x9e91acfd,
1232         0x9f14ac65, 0x9f98abcd, 0xa01cab36, 0xa0a2aaa0, 0xa129aa0a, 0xa1b0a976,
1233         0xa238a8e2, 0xa2c2a84f, 0xa34ca7bd, 0xa3d7a72c, 0xa463a69c, 0xa4f0a60c,
1234         0xa57ea57e, 0xa60ca4f0, 0xa69ca463, 0xa72ca3d7, 0xa7bda34c, 0xa84fa2c2,
1235         0xa8e2a238, 0xa976a1b0, 0xaa0aa129, 0xaaa0a0a2, 0xab36a01c, 0xabcd9f98,
1236         0xac659f14, 0xacfd9e91, 0xad979e0f, 0xae319d8e, 0xaecc9d0e, 0xaf689c8f,
1237         0xb0059c11, 0xb0a29b94, 0xb1409b17, 0xb1df9a9c, 0xb27f9a22, 0xb31f99a9,
1238         0xb3c09930, 0xb46298b9, 0xb5059843, 0xb5a897ce, 0xb64c9759, 0xb6f196e6,
1239         0xb7969674, 0xb83c9603, 0xb8e39592, 0xb98b9523, 0xba3394b5, 0xbadc9448,
1240         0xbb8593dc, 0xbc2f9371, 0xbcda9307, 0xbd86929e, 0xbe329236, 0xbedf91cf,
1241         0xbf8c9169, 0xc03a9105, 0xc0e990a1, 0xc198903e, 0xc2488fdd, 0xc2f88f7d,
1242         0xc3a98f1d, 0xc45b8ebf, 0xc50d8e62, 0xc5c08e06, 0xc6738dab, 0xc7278d51,
1243         0xc7db8cf8, 0xc8908ca1, 0xc9468c4a, 0xc9fc8bf5, 0xcab28ba0, 0xcb698b4d,
1244         0xcc218afb, 0xccd98aaa, 0xcd928a5a, 0xce4b8a0c, 0xcf0489be, 0xcfbe8972,
1245         0xd0798927, 0xd13488dd, 0xd1ef8894, 0xd2ab884c, 0xd3678805, 0xd42487c0,
1246         0xd4e1877b, 0xd59e8738, 0xd65c86f6, 0xd71b86b6, 0xd7d98676, 0xd8988637,
1247         0xd95885fa, 0xda1885be, 0xdad88583, 0xdb998549, 0xdc598511, 0xdd1b84d9,
1248         0xdddc84a3, 0xde9e846e, 0xdf61843a, 0xe0238407, 0xe0e683d6, 0xe1a983a6,
1249         0xe26d8377, 0xe3308349, 0xe3f4831c, 0xe4b982f1, 0xe57d82c6, 0xe642829d,
1250         0xe7078276, 0xe7cd824f, 0xe892822a, 0xe9588205, 0xea1e81e2, 0xeae481c1,
1251         0xebab81a0, 0xec718181, 0xed388163, 0xedff8146, 0xeec6812a, 0xef8d8110,
1252         0xf05580f6, 0xf11c80de, 0xf1e480c8, 0xf2ac80b2, 0xf374809e, 0xf43c808b,
1253         0xf5058079, 0xf5cd8068, 0xf6958059, 0xf75e804b, 0xf827803e, 0xf8ef8032,
1254         0xf9b88027, 0xfa81801e, 0xfb4a8016, 0xfc13800f, 0xfcdc800a, 0xfda58006,
1255         0xfe6e8002, 0xff378001, 0x00008000, 0x00c98001, 0x01928002, 0x025b8006,
1256         0x0324800a, 0x03ed800f, 0x04b68016, 0x057f801e, 0x06488027, 0x07118032,
1257         0x07d9803e, 0x08a2804b, 0x096b8059, 0x0a338068, 0x0afb8079, 0x0bc4808b,
1258         0x0c8c809e, 0x0d5480b2, 0x0e1c80c8, 0x0ee480de, 0x0fab80f6, 0x10738110,
1259         0x113a812a, 0x12018146, 0x12c88163, 0x138f8181, 0x145581a0, 0x151c81c1,
1260         0x15e281e2, 0x16a88205, 0x176e822a, 0x1833824f, 0x18f98276, 0x19be829d,
1261         0x1a8382c6, 0x1b4782f1, 0x1c0c831c, 0x1cd08349, 0x1d938377, 0x1e5783a6,
1262         0x1f1a83d6, 0x1fdd8407, 0x209f843a, 0x2162846e, 0x222484a3, 0x22e584d9,
1263         0x23a78511, 0x24678549, 0x25288583, 0x25e885be, 0x26a885fa, 0x27688637,
1264         0x28278676, 0x28e586b6, 0x29a486f6, 0x2a628738, 0x2b1f877b, 0x2bdc87c0,
1265         0x2c998805, 0x2d55884c, 0x2e118894, 0x2ecc88dd, 0x2f878927, 0x30428972,
1266         0x30fc89be, 0x31b58a0c, 0x326e8a5a, 0x33278aaa, 0x33df8afb, 0x34978b4d,
1267         0x354e8ba0, 0x36048bf5, 0x36ba8c4a, 0x37708ca1, 0x38258cf8, 0x38d98d51,
1268         0x398d8dab, 0x3a408e06, 0x3af38e62, 0x3ba58ebf, 0x3c578f1d, 0x3d088f7d,
1269         0x3db88fdd, 0x3e68903e, 0x3f1790a1, 0x3fc69105, 0x40749169, 0x412191cf,
1270         0x41ce9236, 0x427a929e, 0x43269307, 0x43d19371, 0x447b93dc, 0x45249448,
1271         0x45cd94b5, 0x46759523, 0x471d9592, 0x47c49603, 0x486a9674, 0x490f96e6,
1272         0x49b49759, 0x4a5897ce, 0x4afb9843, 0x4b9e98b9, 0x4c409930, 0x4ce199a9,
1273         0x4d819a22, 0x4e219a9c, 0x4ec09b17, 0x4f5e9b94, 0x4ffb9c11, 0x50989c8f,
1274         0x51349d0e, 0x51cf9d8e, 0x52699e0f, 0x53039e91, 0x539b9f14, 0x54339f98,
1275         0x54caa01c, 0x5560a0a2, 0x55f6a129, 0x568aa1b0, 0x571ea238, 0x57b1a2c2,
1276         0x5843a34c, 0x58d4a3d7, 0x5964a463, 0x59f4a4f0, 0x5a82a57e, 0x5b10a60c,
1277         0x5b9da69c, 0x5c29a72c, 0x5cb4a7bd, 0x5d3ea84f, 0x5dc8a8e2, 0x5e50a976,
1278         0x5ed7aa0a, 0x5f5eaaa0, 0x5fe4ab36, 0x6068abcd, 0x60ecac65, 0x616facfd,
1279         0x61f1ad97, 0x6272ae31, 0x62f2aecc, 0x6371af68, 0x63efb005, 0x646cb0a2,
1280         0x64e9b140, 0x6564b1df, 0x65deb27f, 0x6657b31f, 0x66d0b3c0, 0x6747b462,
1281         0x67bdb505, 0x6832b5a8, 0x68a7b64c, 0x691ab6f1, 0x698cb796, 0x69fdb83c,
1282         0x6a6eb8e3, 0x6addb98b, 0x6b4bba33, 0x6bb8badc, 0x6c24bb85, 0x6c8fbc2f,
1283         0x6cf9bcda, 0x6d62bd86, 0x6dcabe32, 0x6e31bedf, 0x6e97bf8c, 0x6efbc03a,
1284         0x6f5fc0e9, 0x6fc2c198, 0x7023c248, 0x7083c2f8, 0x70e3c3a9, 0x7141c45b,
1285         0x719ec50d, 0x71fac5c0, 0x7255c673, 0x72afc727, 0x7308c7db, 0x735fc890,
1286         0x73b6c946, 0x740bc9fc, 0x7460cab2, 0x74b3cb69, 0x7505cc21, 0x7556ccd9,
1287         0x75a6cd92, 0x75f4ce4b, 0x7642cf04, 0x768ecfbe, 0x76d9d079, 0x7723d134,
1288         0x776cd1ef, 0x77b4d2ab, 0x77fbd367, 0x7840d424, 0x7885d4e1, 0x78c8d59e,
1289         0x790ad65c, 0x794ad71b, 0x798ad7d9, 0x79c9d898, 0x7a06d958, 0x7a42da18,
1290         0x7a7ddad8, 0x7ab7db99, 0x7aefdc59, 0x7b27dd1b, 0x7b5ddddc, 0x7b92de9e,
1291         0x7bc6df61, 0x7bf9e023, 0x7c2ae0e6, 0x7c5ae1a9, 0x7c89e26d, 0x7cb7e330,
1292         0x7ce4e3f4, 0x7d0fe4b9, 0x7d3ae57d, 0x7d63e642, 0x7d8ae707, 0x7db1e7cd,
1293         0x7dd6e892, 0x7dfbe958, 0x7e1eea1e, 0x7e3feae4, 0x7e60ebab, 0x7e7fec71,
1294         0x7e9ded38, 0x7ebaedff, 0x7ed6eec6, 0x7ef0ef8d, 0x7f0af055, 0x7f22f11c,
1295         0x7f38f1e4, 0x7f4ef2ac, 0x7f62f374, 0x7f75f43c, 0x7f87f505, 0x7f98f5cd,
1296         0x7fa7f695, 0x7fb5f75e, 0x7fc2f827, 0x7fcef8ef, 0x7fd9f9b8, 0x7fe2fa81,
1297         0x7feafb4a, 0x7ff1fc13, 0x7ff6fcdc, 0x7ffafda5, 0x7ffefe6e, 0x7fffff37,
1298 
1299     },
1300 
1301     // WORD8 bit_rev_1024[256]=
1302     {0x00, 0x40, 0x80, 0xc0, 0x10, 0x50, 0x90, 0xd0, 0x20, 0x60, 0xa0, 0xe0,
1303      0x30, 0x70, 0xb0, 0xf0, 0x04, 0x44, 0x84, 0xc4, 0x14, 0x54, 0x94, 0xd4,
1304      0x24, 0x64, 0xa4, 0xe4, 0x34, 0x74, 0xb4, 0xf4, 0x08, 0x48, 0x88, 0xc8,
1305      0x18, 0x58, 0x98, 0xd8, 0x28, 0x68, 0xa8, 0xe8, 0x38, 0x78, 0xb8, 0xf8,
1306      0x0c, 0x4c, 0x8c, 0xcc, 0x1c, 0x5c, 0x9c, 0xdc, 0x2c, 0x6c, 0xac, 0xec,
1307      0x3c, 0x7c, 0xbc, 0xfc, 0x01, 0x41, 0x81, 0xc1, 0x11, 0x51, 0x91, 0xd1,
1308      0x21, 0x61, 0xa1, 0xe1, 0x31, 0x71, 0xb1, 0xf1, 0x05, 0x45, 0x85, 0xc5,
1309      0x15, 0x55, 0x95, 0xd5, 0x25, 0x65, 0xa5, 0xe5, 0x35, 0x75, 0xb5, 0xf5,
1310      0x09, 0x49, 0x89, 0xc9, 0x19, 0x59, 0x99, 0xd9, 0x29, 0x69, 0xa9, 0xe9,
1311      0x39, 0x79, 0xb9, 0xf9, 0x0d, 0x4d, 0x8d, 0xcd, 0x1d, 0x5d, 0x9d, 0xdd,
1312      0x2d, 0x6d, 0xad, 0xed, 0x3d, 0x7d, 0xbd, 0xfd, 0x02, 0x42, 0x82, 0xc2,
1313      0x12, 0x52, 0x92, 0xd2, 0x22, 0x62, 0xa2, 0xe2, 0x32, 0x72, 0xb2, 0xf2,
1314      0x06, 0x46, 0x86, 0xc6, 0x16, 0x56, 0x96, 0xd6, 0x26, 0x66, 0xa6, 0xe6,
1315      0x36, 0x76, 0xb6, 0xf6, 0x0a, 0x4a, 0x8a, 0xca, 0x1a, 0x5a, 0x9a, 0xda,
1316      0x2a, 0x6a, 0xaa, 0xea, 0x3a, 0x7a, 0xba, 0xfa, 0x0e, 0x4e, 0x8e, 0xce,
1317      0x1e, 0x5e, 0x9e, 0xde, 0x2e, 0x6e, 0xae, 0xee, 0x3e, 0x7e, 0xbe, 0xfe,
1318      0x03, 0x43, 0x83, 0xc3, 0x13, 0x53, 0x93, 0xd3, 0x23, 0x63, 0xa3, 0xe3,
1319      0x33, 0x73, 0xb3, 0xf3, 0x07, 0x47, 0x87, 0xc7, 0x17, 0x57, 0x97, 0xd7,
1320      0x27, 0x67, 0xa7, 0xe7, 0x37, 0x77, 0xb7, 0xf7, 0x0b, 0x4b, 0x8b, 0xcb,
1321      0x1b, 0x5b, 0x9b, 0xdb, 0x2b, 0x6b, 0xab, 0xeb, 0x3b, 0x7b, 0xbb, 0xfb,
1322      0x0f, 0x4f, 0x8f, 0xcf, 0x1f, 0x5f, 0x9f, 0xdf, 0x2f, 0x6f, 0xaf, 0xef,
1323      0x3f, 0x7f, 0xbf, 0xff},
1324 
1325     // WORD8 bit_rev_512[64]=
1326     {0x00, 0x10, 0x20, 0x30, 0x04, 0x14, 0x24, 0x34, 0x08, 0x18, 0x28,
1327      0x38, 0x0c, 0x1c, 0x2c, 0x3c, 0x01, 0x11, 0x21, 0x31, 0x05, 0x15,
1328      0x25, 0x35, 0x09, 0x19, 0x29, 0x39, 0x0d, 0x1d, 0x2d, 0x3d, 0x02,
1329      0x12, 0x22, 0x32, 0x06, 0x16, 0x26, 0x36, 0x0a, 0x1a, 0x2a, 0x3a,
1330      0x0e, 0x1e, 0x2e, 0x3e, 0x03, 0x13, 0x23, 0x33, 0x07, 0x17, 0x27,
1331      0x37, 0x0b, 0x1b, 0x2b, 0x3b, 0x0f, 0x1f, 0x2f, 0x3f},
1332 
1333     // WORD8 bit_rev_128[16]=
1334     {0x00, 0x04, 0x08, 0x0c, 0x01, 0x05, 0x09, 0x0d, 0x02, 0x06, 0x0a, 0x0e,
1335      0x03, 0x07, 0x0b, 0x0f},
1336 
1337     // WORD8 bit_rev_32[4]=
1338     {
1339         0x00, 0x01, 0x02, 0x03,
1340     },
1341     // const WORD32 w_256[504] =
1342     {
1343         0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff,
1344         0x03242abf, 0x7ff62182, 0x0647d97c, 0x7fd8878e, 0x096a9049, 0x7fa736b4,
1345         0x0647d97c, 0x7fd8878e, 0x0c8bd35e, 0x7f62368f, 0x12c8106f, 0x7e9d55fc,
1346         0x096a9049, 0x7fa736b4, 0x12c8106f, 0x7e9d55fc, 0x1c0b826b, 0x7ce3ceb2,
1347         0x0c8bd35e, 0x7f62368f, 0x18f8b83c, 0x7d8a5f40, 0x25280c5e, 0x7a7d055b,
1348         0x0fab272b, 0x7f0991c4, 0x1f19f97b, 0x7c29fbee, 0x2e110a62, 0x776c4edb,
1349         0x12c8106f, 0x7e9d55fc, 0x25280c5e, 0x7a7d055b, 0x36ba2014, 0x73b5ebd1,
1350         0x15e21445, 0x7e1d93ea, 0x2b1f34eb, 0x78848414, 0x3f1749b8, 0x6f5f02b2,
1351         0x18f8b83c, 0x7d8a5f40, 0x30fbc54d, 0x7641af3d, 0x471cece7, 0x6a6d98a4,
1352         0x1c0b826b, 0x7ce3ceb2, 0x36ba2014, 0x73b5ebd1, 0x4ebfe8a5, 0x64e88926,
1353         0x1f19f97b, 0x7c29fbee, 0x3c56ba70, 0x70e2cbc6, 0x55f5a4d2, 0x5ed77c8a,
1354         0x2223a4c5, 0x7b5d039e, 0x41ce1e65, 0x6dca0d14, 0x5cb420e0, 0x5842dd54,
1355         0x25280c5e, 0x7a7d055b, 0x471cece7, 0x6a6d98a4, 0x62f201ac, 0x5133cc94,
1356         0x2826b928, 0x798a23b1, 0x4c3fdff4, 0x66cf8120, 0x68a69e81, 0x49b41533,
1357         0x2b1f34eb, 0x78848414, 0x5133cc94, 0x62f201ac, 0x6dca0d15, 0x41ce1e64,
1358         0x2e110a62, 0x776c4edb, 0x55f5a4d2, 0x5ed77c8a, 0x72552c85, 0x398cdd32,
1359         0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d,
1360         0x33def287, 0x7504d345, 0x5ed77c8a, 0x55f5a4d2, 0x798a23b1, 0x2826b928,
1361         0x36ba2014, 0x73b5ebd1, 0x62f201ac, 0x5133cc94, 0x7c29fbee, 0x1f19f97b,
1362         0x398cdd33, 0x72552c85, 0x66cf8120, 0x4c3fdff3, 0x7e1d93ea, 0x15e21444,
1363         0x3c56ba70, 0x70e2cbc6, 0x6a6d98a4, 0x471cece6, 0x7f62368f, 0x0c8bd35e,
1364         0x3f1749b8, 0x6f5f02b2, 0x6dca0d15, 0x41ce1e64, 0x7ff62182, 0x03242abf,
1365         0x41ce1e65, 0x6dca0d14, 0x70e2cbc6, 0x3c56ba70, 0x7fd8878e, 0xf9b82684,
1366         0x447acd51, 0x6c242960, 0x73b5ebd1, 0x36ba2013, 0x7f0991c3, 0xf054d8d5,
1367         0x471cece7, 0x6a6d98a4, 0x7641af3d, 0x30fbc54d, 0x7d8a5f40, 0xe70747c4,
1368         0x49b41534, 0x68a69e81, 0x78848414, 0x2b1f34eb, 0x7b5d039d, 0xdddc5b3b,
1369         0x4c3fdff4, 0x66cf8120, 0x7a7d055b, 0x25280c5d, 0x78848414, 0xd4e0cb15,
1370         0x4ebfe8a5, 0x64e88926, 0x7c29fbee, 0x1f19f97b, 0x7504d345, 0xcc210d79,
1371         0x5133cc94, 0x62f201ac, 0x7d8a5f40, 0x18f8b83c, 0x70e2cbc6, 0xc3a94590,
1372         0x539b2af0, 0x60ec3830, 0x7e9d55fc, 0x12c8106e, 0x6c242960, 0xbb8532b0,
1373         0x55f5a4d2, 0x5ed77c8a, 0x7f62368f, 0x0c8bd35e, 0x66cf811f, 0xb3c0200d,
1374         0x5842dd55, 0x5cb420e0, 0x7fd8878e, 0x0647d97c, 0x60ec3830, 0xac64d511,
1375         0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667,
1376         0x5cb420e0, 0x5842dd54, 0x7fd8878e, 0xf9b82684, 0x539b2aef, 0x9f13c7d1,
1377         0x5ed77c8a, 0x55f5a4d2, 0x7f62368f, 0xf3742ca2, 0x4c3fdff3, 0x99307ee1,
1378         0x60ec3830, 0x539b2aef, 0x7e9d55fc, 0xed37ef92, 0x447acd50, 0x93dbd6a0,
1379         0x62f201ac, 0x5133cc94, 0x7d8a5f40, 0xe70747c4, 0x3c56ba6f, 0x8f1d343b,
1380         0x64e88926, 0x4ebfe8a4, 0x7c29fbee, 0xe0e60685, 0x33def287, 0x8afb2cbb,
1381         0x66cf8120, 0x4c3fdff3, 0x7a7d055b, 0xdad7f3a3, 0x2b1f34eb, 0x877b7bed,
1382         0x68a69e81, 0x49b41533, 0x78848414, 0xd4e0cb15, 0x2223a4c5, 0x84a2fc63,
1383         0x6a6d98a4, 0x471cece6, 0x7641af3d, 0xcf043ab3, 0x18f8b83c, 0x8275a0c1,
1384         0x6c242960, 0x447acd50, 0x73b5ebd1, 0xc945dfed, 0x0fab272a, 0x80f66e3d,
1385         0x6dca0d15, 0x41ce1e64, 0x70e2cbc6, 0xc3a94590, 0x0647d97b, 0x80277873,
1386         0x6f5f02b2, 0x3f1749b8, 0x6dca0d14, 0xbe31e19c, 0xfcdbd541, 0x8009de7f,
1387         0x70e2cbc6, 0x3c56ba70, 0x6a6d98a4, 0xb8e3131a, 0xf3742ca2, 0x809dc972,
1388         0x72552c85, 0x398cdd32, 0x66cf811f, 0xb3c0200d, 0xea1debbc, 0x81e26c17,
1389         0x73b5ebd1, 0x36ba2013, 0x62f201ac, 0xaecc336c, 0xe0e60685, 0x83d60413,
1390         0x7504d345, 0x33def287, 0x5ed77c89, 0xaa0a5b2e, 0xd7d946d8, 0x8675dc50,
1391         0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5,
1392         0x776c4edb, 0x2e110a62, 0x55f5a4d2, 0xa1288377, 0xc67322ce, 0x8daad37d,
1393         0x78848414, 0x2b1f34eb, 0x5133cc94, 0x9d0dfe54, 0xbe31e19c, 0x9235f2ed,
1394         0x798a23b1, 0x2826b928, 0x4c3fdff3, 0x99307ee1, 0xb64beacd, 0x97596181,
1395         0x7a7d055b, 0x25280c5d, 0x471cece6, 0x9592675c, 0xaecc336c, 0x9d0dfe55,
1396         0x7b5d039e, 0x2223a4c5, 0x41ce1e64, 0x9235f2ec, 0xa7bd22ac, 0xa34bdf22,
1397         0x7c29fbee, 0x1f19f97b, 0x3c56ba6f, 0x8f1d343b, 0xa1288377, 0xaa0a5b30,
1398         0x7ce3ceb2, 0x1c0b826a, 0x36ba2013, 0x8c4a1430, 0x9b1776da, 0xb140175d,
1399         0x7d8a5f40, 0x18f8b83c, 0x30fbc54d, 0x89be50c4, 0x9592675c, 0xb8e3131b,
1400         0x7e1d93ea, 0x15e21444, 0x2b1f34eb, 0x877b7bed, 0x90a0fd4f, 0xc0e8b64a,
1401         0x7e9d55fc, 0x12c8106e, 0x25280c5d, 0x8582faa6, 0x8c4a1430, 0xc945dfee,
1402         0x7f0991c4, 0x0fab272b, 0x1f19f97a, 0x83d60413, 0x8893b125, 0xd1eef5a0,
1403         0x7f62368f, 0x0c8bd35e, 0x18f8b83c, 0x8275a0c1, 0x8582faa6, 0xdad7f3a5,
1404         0x7fa736b4, 0x096a9049, 0x12c8106e, 0x8162aa05, 0x831c314f, 0xe3f47d98,
1405         0x7fd8878e, 0x0647d97c, 0x0c8bd35d, 0x809dc972, 0x8162aa05, 0xed37ef94,
1406         0x7ff62182, 0x03242abf, 0x0647d97b, 0x80277873, 0x8058c94d, 0xf6956fb9,
1407         0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff,
1408         0x0c8bd35e, 0x7f62368f, 0x18f8b83c, 0x7d8a5f40, 0x25280c5e, 0x7a7d055b,
1409         0x18f8b83c, 0x7d8a5f40, 0x30fbc54d, 0x7641af3d, 0x471cece7, 0x6a6d98a4,
1410         0x25280c5e, 0x7a7d055b, 0x471cece7, 0x6a6d98a4, 0x62f201ac, 0x5133cc94,
1411         0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d,
1412         0x3c56ba70, 0x70e2cbc6, 0x6a6d98a4, 0x471cece6, 0x7f62368f, 0x0c8bd35e,
1413         0x471cece7, 0x6a6d98a4, 0x7641af3d, 0x30fbc54d, 0x7d8a5f40, 0xe70747c4,
1414         0x5133cc94, 0x62f201ac, 0x7d8a5f40, 0x18f8b83c, 0x70e2cbc6, 0xc3a94590,
1415         0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667,
1416         0x62f201ac, 0x5133cc94, 0x7d8a5f40, 0xe70747c4, 0x3c56ba6f, 0x8f1d343b,
1417         0x6a6d98a4, 0x471cece6, 0x7641af3d, 0xcf043ab3, 0x18f8b83c, 0x8275a0c1,
1418         0x70e2cbc6, 0x3c56ba70, 0x6a6d98a4, 0xb8e3131a, 0xf3742ca2, 0x809dc972,
1419         0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5,
1420         0x7a7d055b, 0x25280c5d, 0x471cece6, 0x9592675c, 0xaecc336c, 0x9d0dfe55,
1421         0x7d8a5f40, 0x18f8b83c, 0x30fbc54d, 0x89be50c4, 0x9592675c, 0xb8e3131b,
1422         0x7f62368f, 0x0c8bd35e, 0x18f8b83c, 0x8275a0c1, 0x8582faa6, 0xdad7f3a5,
1423         0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff,
1424         0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d,
1425         0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667,
1426         0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5,
1427     },
1428 
1429     // WORD32 low_overlap_win[512];
1430     {
1431         0,          0,          0,          0,          0,          0,
1432         0,          0,          0,          0,          0,          0,
1433         0,          0,          0,          0,          0,          0,
1434         0,          0,          0,          0,          0,          0,
1435         0,          0,          0,          0,          0,          0,
1436         0,          0,          0,          0,          0,          0,
1437         0,          0,          0,          0,          0,          0,
1438         0,          0,          0,          0,          0,          0,
1439         0,          0,          0,          0,          0,          0,
1440         0,          0,          0,          0,          0,          0,
1441         0,          0,          0,          0,          0,          0,
1442         0,          0,          0,          0,          0,          0,
1443         0,          0,          0,          0,          0,          0,
1444         0,          0,          0,          0,          0,          0,
1445         0,          0,          0,          0,          0,          0,
1446         0,          0,          0,          0,          0,          0,
1447         0,          0,          0,          0,          0,          0,
1448         0,          0,          0,          0,          0,          0,
1449         0,          0,          0,          0,          0,          0,
1450         0,          0,          0,          0,          0,          0,
1451         0,          0,          0,          0,          0,          0,
1452         0,          0,          0,          0,          0,          0,
1453         0,          0,          0,          0,          0,          0,
1454         0,          0,          0,          0,          0,          0,
1455         0,          0,          0,          0,          0,          0,
1456         0,          0,          0,          0,          0,          0,
1457         0,          0,          0,          0,          0,          0,
1458         0,          0,          0,          0,          0,          0,
1459         0,          0,          0,          0,          0,          0,
1460         0,          0,          0,          0,          0,          0,
1461         0,          0,          0,          0,          0,          0,
1462         0,          0,          0,          0,          0,          0,
1463         6588355,    19764075,   32936819,   46104602,   59265442,   72417357,
1464         85558366,   98686490,   111799753,  124896178,  137973795,  151030634,
1465         164064728,  177074114,  190056834,  203010932,  215934457,  228825463,
1466         241682009,  254502159,  267283981,  280025551,  292724951,  305380267,
1467         317989594,  330551034,  343062693,  355522688,  367929143,  380280189,
1468         392573967,  404808624,  416982318,  429093217,  441139495,  453119340,
1469         465030947,  476872521,  488642280,  500338452,  511959274,  523502998,
1470         534967883,  546352205,  557654248,  568872310,  580004702,  591049747,
1471         602005783,  612871159,  623644238,  634323399,  644907034,  655393547,
1472         665781361,  676068911,  686254647,  696337035,  706314558,  716185713,
1473         725949012,  735602987,  745146182,  754577161,  763894503,  773096806,
1474         782182683,  791150766,  799999705,  808728167,  817334837,  825818420,
1475         834177638,  842411231,  850517961,  858496605,  866345963,  874064853,
1476         881652112,  889106597,  896427186,  903612776,  910662286,  917574653,
1477         924348836,  930983817,  937478594,  943832191,  950043650,  956112036,
1478         962036435,  967815955,  973449725,  978936897,  984276645,  989468165,
1479         994510674,  999403414,  1004145647, 1008736660, 1013175760, 1017462280,
1480         1021595574, 1025575020, 1029400017, 1033069991, 1036584388, 1039942680,
1481         1043144359, 1046188946, 1049075979, 1051805026, 1054375675, 1056787539,
1482         1059040255, 1061133483, 1063066908, 1064840239, 1066453209, 1067905576,
1483         1069197119, 1070327646, 1071296985, 1072104991, 1072751541, 1073236539,
1484         1073559912, 1073721611, 1073741823, 1073741823, 1073741823, 1073741823,
1485         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1486         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1487         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1488         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1489         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1490         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1491         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1492         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1493         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1494         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1495         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1496         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1497         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1498         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1499         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1500         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1501         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1502         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1503         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1504         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1505         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1506         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1507         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1508         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1509         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1510         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1511         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1512         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1513         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1514         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1515         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1516         1073741823, 1073741823,
1517     },
1518     // WORD32 window_sine_512[512];
1519     {1647098,    4941280,    8235415,    11529473,   14823423,   18117232,
1520      21410872,   24704309,   27997515,   31290456,   34583103,   37875425,
1521      41167390,   44458968,   47750127,   51040837,   54331066,   57620784,
1522      60909960,   64198562,   67486560,   70773923,   74060620,   77346619,
1523      80631891,   83916404,   87200127,   90483029,   93765079,   97046247,
1524      100326501,  103605811,  106884146,  110161475,  113437767,  116712991,
1525      119987117,  123260113,  126531950,  129802595,  133072018,  136340189,
1526      139607077,  142872650,  146136879,  149399733,  152661180,  155921190,
1527      159179733,  162436777,  165692293,  168946249,  172198614,  175449359,
1528      178698453,  181945864,  185191563,  188435519,  191677702,  194918080,
1529      198156623,  201393302,  204628084,  207860941,  211091841,  214320755,
1530      217547651,  220772499,  223995270,  227215932,  230434456,  233650810,
1531      236864966,  240076892,  243286558,  246493934,  249698990,  252901696,
1532      256102022,  259299937,  262495411,  265688415,  268878918,  272066890,
1533      275252301,  278435122,  281615322,  284792871,  287967740,  291139898,
1534      294309315,  297475963,  300639811,  303800829,  306958987,  310114256,
1535      313266607,  316416009,  319562432,  322705848,  325846226,  328983537,
1536      332117752,  335248841,  338376774,  341501522,  344623056,  347741346,
1537      350856364,  353968078,  357076461,  360181484,  363283116,  366381328,
1538      369476092,  372567379,  375655158,  378739402,  381820081,  384897167,
1539      387970629,  391040440,  394106570,  397168990,  400227673,  403282588,
1540      406333707,  409381002,  412424443,  415464003,  418499652,  421531362,
1541      424559105,  427582851,  430602573,  433618242,  436629829,  439637307,
1542      442640646,  445639819,  448634798,  451625554,  454612059,  457594286,
1543      460572205,  463545789,  466515010,  469479840,  472440251,  475396215,
1544      478347705,  481294692,  484237149,  487175049,  490108362,  493037063,
1545      495961123,  498880515,  501795211,  504705185,  507610407,  510510852,
1546      513406492,  516297299,  519183247,  522064308,  524940455,  527811662,
1547      530677900,  533539143,  536395365,  539246537,  542092635,  544933629,
1548      547769495,  550600205,  553425732,  556246050,  559061133,  561870953,
1549      564675486,  567474703,  570268578,  573057087,  575840201,  578617895,
1550      581390144,  584156920,  586918197,  589673950,  592424154,  595168781,
1551      597907806,  600641203,  603368947,  606091011,  608807371,  611518001,
1552      614222874,  616921967,  619615253,  622302706,  624984303,  627660016,
1553      630329822,  632993695,  635651611,  638303543,  640949467,  643589358,
1554      646223192,  648850943,  651472587,  654088098,  656697454,  659300628,
1555      661897597,  664488336,  667072820,  669651025,  672222928,  674788503,
1556      677347727,  679900576,  682447025,  684987050,  687520628,  690047735,
1557      692568347,  695082441,  697589992,  700090976,  702585372,  705073154,
1558      707554300,  710028786,  712496590,  714957686,  717412054,  719859669,
1559      722300508,  724734549,  727161768,  729582143,  731995650,  734402268,
1560      736801974,  739194744,  741580557,  743959390,  746331220,  748696026,
1561      751053784,  753404474,  755748072,  758084557,  760413906,  762736098,
1562      765051111,  767358923,  769659512,  771952857,  774238936,  776517727,
1563      778789210,  781053362,  783310163,  785559591,  787801625,  790036244,
1564      792263427,  794483152,  796695400,  798900149,  801097378,  803287068,
1565      805469196,  807643743,  809810688,  811970011,  814121691,  816265708,
1566      818402043,  820530674,  822651582,  824764747,  826870150,  828967769,
1567      831057585,  833139580,  835213733,  837280024,  839338434,  841388945,
1568      843431535,  845466188,  847492882,  849511599,  851522321,  853525027,
1569      855519700,  857506321,  859484870,  861455329,  863417680,  865371905,
1570      867317984,  869255899,  871185633,  873107167,  875020482,  876925562,
1571      878822388,  880710942,  882591207,  884463164,  886326796,  888182086,
1572      890029016,  891867568,  893697726,  895519472,  897332790,  899137661,
1573      900934069,  902721997,  904501429,  906272346,  908034734,  909788575,
1574      911533853,  913270551,  914998653,  916718143,  918429004,  920131220,
1575      921824776,  923509655,  925185842,  926853321,  928512076,  930162091,
1576      931803351,  933435841,  935059545,  936674448,  938280534,  939877789,
1577      941466198,  943045745,  944616416,  946178195,  947731069,  949275023,
1578      950810041,  952336110,  953853216,  955361343,  956860478,  958350607,
1579      959831716,  961303790,  962766816,  964220780,  965665668,  967101468,
1580      968528164,  969945745,  971354195,  972753503,  974143656,  975524639,
1581      976896440,  978259046,  979612445,  980956623,  982291568,  983617267,
1582      984933708,  986240878,  987538766,  988827358,  990106643,  991376609,
1583      992637244,  993888536,  995130473,  996363043,  997586235,  998800037,
1584      1000004439, 1001199428, 1002384993, 1003561124, 1004727808, 1005885036,
1585      1007032796, 1008171077, 1009299869, 1010419161, 1011528943, 1012629204,
1586      1013719933, 1014801121, 1015872757, 1016934832, 1017987335, 1019030256,
1587      1020063585, 1021087314, 1022101431, 1023105928, 1024100795, 1025086023,
1588      1026061603, 1027027525, 1027983780, 1028930359, 1029867253, 1030794455,
1589      1031711953, 1032619741, 1033517810, 1034406151, 1035284755, 1036153615,
1590      1037012722, 1037862069, 1038701647, 1039531448, 1040351464, 1041161689,
1591      1041962114, 1042752731, 1043533533, 1044304514, 1045065665, 1045816979,
1592      1046558450, 1047290070, 1048011833, 1048723731, 1049425759, 1050117909,
1593      1050800175, 1051472550, 1052135028, 1052787603, 1053430269, 1054063020,
1594      1054685850, 1055298752, 1055901722, 1056494753, 1057077839, 1057650977,
1595      1058214159, 1058767381, 1059310637, 1059843923, 1060367233, 1060880562,
1596      1061383906, 1061877260, 1062360620, 1062833979, 1063297335, 1063750683,
1597      1064194019, 1064627337, 1065050636, 1065463909, 1065867154, 1066260366,
1598      1066643543, 1067016680, 1067379774, 1067732821, 1068075818, 1068408762,
1599      1068731650, 1069044478, 1069347245, 1069639946, 1069922579, 1070195142,
1600      1070457631, 1070710046, 1070952382, 1071184638, 1071406811, 1071618900,
1601      1071820903, 1072012817, 1072194641, 1072366373, 1072528012, 1072679556,
1602      1072821003, 1072952352, 1073073602, 1073184752, 1073285801, 1073376748,
1603      1073457591, 1073528331, 1073588967, 1073639497, 1073679922, 1073710241,
1604      1073730454, 1073740560},
1605     // WORD32 cosine_array_1024[512];
1606     {
1607         2147483008, 2147432448, 1647099,    14823777,   2147301120, 2147088896,
1608         27999896,   41174960,   2146795776, 2146421888, 54348476,   67519944,
1609         2145967232, 2145431680, 80688872,   93854760,   2144815488, 2144118400,
1610         107017112,  120175440,  2143340672, 2142482304, 133329240,  146478032,
1611         2141543168, 2140523392, 159621296,  172758544,  2139423104, 2138242176,
1612         185889296,  199013056,  2136980864, 2135639040, 212129312,  225237600,
1613         2134216832, 2132714240, 238337392,  251428208,  2131131264, 2129468160,
1614         264509568,  277580960,  2127724928, 2125901568, 290641920,  303691904,
1615         2123998080, 2122014720, 316730496,  329757120,  2119951360, 2117808256,
1616         342771360,  355772672,  2115585408, 2113282944, 368760608,  381734656,
1617         2110900864, 2108439296, 394694336,  407639136,  2105898368, 2103278208,
1618         420568608,  433482240,  2100578816, 2097800320, 446379552,  459260064,
1619         2094942848, 2092006528, 472123296,  484968736,  2088991488, 2085897728,
1620         497795904,  510604352,  2082725376, 2079474688, 523393568,  536163072,
1621         2076145792, 2072738560, 548912384,  561641024,  2069253376, 2065690368,
1622         574348544,  587034432,  2062049536, 2058331008, 599698240,  612339456,
1623         2054535040, 2050661632, 624957632,  637552256,  2046711040, 2042683520,
1624         650122880,  662668992,  2038578944, 2034397696, 675190208,  687685952,
1625         2030139904, 2025805568, 700155840,  712599360,  2021394944, 2016908288,
1626         725016064,  737405504,  2012345728, 2007707392, 749767104,  762100544,
1627         2002993408, 1998204032, 774405248,  786680768,  1993339392, 1988399744,
1628         798926720,  811142592,  1983385216, 1978296064, 823327936,  835482240,
1629         1973132416, 1967894528, 847605120,  859696064,  1962582400, 1957196544,
1630         871754688,  883780416,  1951736832, 1946203776, 895772928,  907731712,
1631         1940597376, 1934918016, 919656256,  931546240,  1929165696, 1923340800,
1632         943401152,  955220544,  1917443456, 1911473920, 967003968,  978750976,
1633         1905432448, 1899319168, 990461120,  1002134016, 1893134464, 1886878464,
1634         1013769152, 1025366080, 1880551424, 1874153600, 1036924480, 1048443776,
1635         1867685120, 1861146496, 1059923648, 1071363584, 1854537600, 1847859072,
1636         1082763264, 1094122112, 1841110784, 1834293376, 1105439744, 1116715776,
1637         1827406720, 1820451328, 1127949696, 1139141248, 1813427456, 1806335232,
1638         1150289920, 1161395200, 1799175040, 1791947136, 1172456832, 1183474304,
1639         1784651776, 1777289216, 1194447232, 1205375104, 1769859712, 1762363520,
1640         1216257664, 1227094400, 1754801024, 1747172480, 1237884928, 1248628992,
1641         1739478144, 1731718400, 1259325824, 1269975424, 1723893376, 1716003456,
1642         1280577152, 1291130624, 1708048896, 1700030080, 1301635584, 1312091392,
1643         1691947136, 1683800704, 1322497920, 1332854656, 1675590656, 1667317632,
1644         1343161088, 1353417088, 1658981888, 1650583680, 1363622016, 1373775744,
1645         1642123264, 1633601024, 1383877632, 1393927424, 1625017216, 1616372352,
1646         1403924864, 1413869312, 1607666560, 1598900352, 1423760512, 1433598208,
1647         1590073856, 1581187456, 1443381888, 1453111296, 1572241536, 1563236480,
1648         1462785920, 1472405376, 1554172544, 1545050112, 1481969536, 1491477888,
1649         1535869440, 1526631040, 1500930048, 1510325760, 1517335040, 1507982080,
1650         1519664512, 1528946048, 1498572160, 1489105920, 1538170112, 1547336192,
1651         1479583616, 1470005632, 1556444032, 1565493376, 1460372352, 1450683904,
1652         1574483712, 1583414656, 1440941056, 1431143808, 1592286080, 1601097600,
1653         1421292672, 1411388032, 1609848832, 1618539392, 1401430400, 1391419904,
1654         1627169024, 1635737344, 1381356928, 1371242112, 1644244224, 1652689152,
1655         1361075584, 1350857728, 1661071744, 1669391872, 1340589184, 1330270080,
1656         1677649152, 1685843328, 1319900928, 1309481984, 1693973888, 1702040832,
1657         1299013760, 1288496768, 1710043648, 1717981952, 1277931136, 1267317376,
1658         1725855744, 1733664512, 1256656000, 1245947264, 1741408000, 1749085824,
1659         1235191680, 1224389504, 1756697984, 1764243840, 1213541248, 1202647296,
1660         1771723392, 1779136128, 1191708032, 1180723968, 1786481920, 1793760512,
1661         1169695488, 1158622848, 1800971520, 1808114816, 1147506688, 1136347264,
1662         1815189888, 1822196736, 1125145088, 1113900544, 1829134848, 1836004224,
1663         1102614144, 1091286144, 1842804480, 1849535232, 1079917056, 1068507264,
1664         1856196480, 1862787712, 1057057344, 1045567552, 1869308928, 1875759744,
1665         1034038400, 1022470400, 1882139904, 1888449152, 1010863808, 999219200,
1666         1894687360, 1900854272, 987536960,  975817536,  1906949632, 1912973056,
1667         964061376,  952268928,  1918924544, 1924803840, 940440640,  928576960,
1668         1930610688, 1936344704, 916678272,  904745088,  1942005888, 1947593984,
1669         892777856,  880777024,  1953108736, 1958549888, 868742976,  856676288,
1670         1963917440, 1969211008, 844577280,  832446528,  1974430336, 1979575424,
1671         820284416,  808091392,  1984645888, 1989641728, 795867968,  783614592,
1672         1994562688, 1999408512, 771331712,  759019776,  2004178944, 2008874112,
1673         746679232,  734310592,  2013493504, 2018037120, 721914368,  709490880,
1674         2022504832, 2026896256, 697040768,  684564352,  2031211520, 2035450240,
1675         672062144,  659534720,  2039612288, 2043697664, 646982400,  634405696,
1676         2047705984, 2051637248, 621805184,  609181184,  2055491328, 2059267840,
1677         596534336,  583864960,  2062967040, 2066588416, 571173632,  558460736,
1678         2070132096, 2073597696, 545726912,  532972480,  2076985344, 2080294784,
1679         520197984,  507403936,  2083525888, 2086678528, 494590752,  481758976,
1680         2089752576, 2092748032, 468909024,  456041440,  2095664640, 2098502400,
1681         443156704,  430255264,  2101261056, 2103940736, 417337632,  404404288,
1682         2106541056, 2109062144, 391455712,  378492384,  2111503872, 2113865984,
1683         365514816,  352523488,  2116148608, 2118351488, 339518912,  326501504,
1684         2120474752, 2122518016, 313471840,  300430368,  2124481408, 2126364928,
1685         287377600,  274313984,  2128168320, 2129891456, 261240048,  248156272,
1686         2131534592, 2133097344, 235063168,  221961200,  2134579840, 2135982080,
1687         208850896,  195732704,  2137303808, 2138545024, 182607152,  169474736,
1688         2139705728, 2140785920, 156335920,  143191232,  2141785472, 2142704384,
1689         130041152,  116886168,  2143542656, 2144300288, 103726792,  90563504,
1690         2144977152, 2145573120, 77396808,   64227204,   2146088448, 2146523008,
1691         51055176,   37881228,   2146876672, 2147149568, 24705852,   11529547,
1692         2147341568, 2147452672,
1693     },
1694     // const WORD32 low_overlap_win_480[480]
1695     {0,          0,          0,          0,          0,          0,
1696      0,          0,          0,          0,          0,          0,
1697      0,          0,          0,          0,          0,          0,
1698      0,          0,          0,          0,          0,          0,
1699      0,          0,          0,          0,          0,          0,
1700      0,          0,          0,          0,          0,          0,
1701      0,          0,          0,          0,          0,          0,
1702      0,          0,          0,          0,          0,          0,
1703      0,          0,          0,          0,          0,          0,
1704      0,          0,          0,          0,          0,          0,
1705      0,          0,          0,          0,          0,          0,
1706      0,          0,          0,          0,          0,          0,
1707      0,          0,          0,          0,          0,          0,
1708      0,          0,          0,          0,          0,          0,
1709      0,          0,          0,          0,          0,          0,
1710      0,          0,          0,          0,          0,          0,
1711      0,          0,          0,          0,          0,          0,
1712      0,          0,          0,          0,          0,          0,
1713      0,          0,          0,          0,          0,          0,
1714      0,          0,          0,          0,          0,          0,
1715      0,          0,          0,          0,          0,          0,
1716      0,          0,          0,          0,          0,          0,
1717      0,          0,          0,          0,          0,          0,
1718      0,          0,          0,          0,          0,          0,
1719      0,          0,          0,          0,          0,          0,
1720      0,          0,          0,          0,          0,          0,
1721      0,          0,          0,          0,          0,          0,
1722      0,          0,          0,          0,          0,          0,
1723      0,          0,          0,          0,          0,          0,
1724      0,          0,          0,          0,          0,          0,
1725      7027573,    21081516,   35131847,   49176158,   63212044,   77237098,
1726      91248918,   105245103,  119223254,  133180978,  147115881,  161025577,
1727      174907682,  188759818,  202579610,  216364692,  230112700,  243821280,
1728      257488083,  271110766,  284686996,  298214446,  311690798,  325113744,
1729      338480984,  351790226,  365039191,  378225608,  391347219,  404401774,
1730      417387037,  430300783,  443140798,  455904885,  468590854,  481196532,
1731      493719760,  506158392,  518510295,  530773355,  542945470,  555024554,
1732      567008537,  578895366,  590683004,  602369432,  613952647,  625430664,
1733      636801517,  648063257,  659213956,  670251701,  681174602,  691980787,
1734      702668405,  713235624,  723680634,  734001645,  744196888,  754264618,
1735      764203108,  774010655,  783685580,  793226225,  802630954,  811898156,
1736      821026244,  830013654,  838858844,  847560301,  856116533,  864526073,
1737      872787481,  880899342,  888860265,  896668886,  904323868,  911823899,
1738      919167693,  926353993,  933381566,  940249210,  946955747,  953500027,
1739      959880930,  966097363,  972148260,  978032584,  983749328,  989297511,
1740      994676183,  999884422,  1004921336, 1009786063, 1014477767, 1018995646,
1741      1023338926, 1027506861, 1031498739, 1035313874, 1038951614, 1042411335,
1742      1045692444, 1048794379, 1051716608, 1054458631, 1057019978, 1059400211,
1743      1061598920, 1063615730, 1065450295, 1067102300, 1068571463, 1069857532,
1744      1070960286, 1071879537, 1072615126, 1073166929, 1073534850, 1073718826,
1745      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1746      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1747      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1748      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1749      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1750      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1751      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1752      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1753      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1754      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1755      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1756      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1757      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1758      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1759      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1760      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1761      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1762      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1763      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1764      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1765      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1766      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1767      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1768      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1769      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1770      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1771      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1772      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1773      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1774      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823},
1775     //   WORD32 window_sine_480[480];
1776     {1756905,    5270696,    8784431,    12298072,   15811582,   19324922,
1777      22838055,   26350943,   29863549,   33375836,   36887765,   40399299,
1778      43910400,   47421031,   50931154,   54440732,   57949727,   61458101,
1779      64965817,   68472837,   71979124,   75484640,   78989348,   82493210,
1780      85996188,   89498246,   92999345,   96499448,   99998518,   103496516,
1781      106993407,  110489151,  113983713,  117477053,  120969136,  124459923,
1782      127949377,  131437461,  134924138,  138409369,  141893118,  145375348,
1783      148856021,  152335099,  155812547,  159288325,  162762398,  166234728,
1784      169705277,  173174009,  176640887,  180105873,  183568930,  187030021,
1785      190489109,  193946157,  197401129,  200853986,  204304692,  207753211,
1786      211199504,  214643536,  218085269,  221524666,  224961691,  228396307,
1787      231828477,  235258165,  238685333,  242109944,  245531963,  248951353,
1788      252368076,  255782097,  259193379,  262601885,  266007578,  269410423,
1789      272810383,  276207421,  279601501,  282992587,  286380642,  289765631,
1790      293147516,  296526261,  299901832,  303274190,  306643301,  310009128,
1791      313371635,  316730785,  320086544,  323438875,  326787743,  330133110,
1792      333474943,  336813204,  340147858,  343478869,  346806202,  350129821,
1793      353449690,  356765774,  360078037,  363386445,  366690960,  369991549,
1794      373288175,  376580804,  379869400,  383153928,  386434352,  389710639,
1795      392982751,  396250655,  399514316,  402773698,  406028767,  409279487,
1796      412525825,  415767744,  419005212,  422238191,  425466650,  428690551,
1797      431909862,  435124547,  438334573,  441539904,  444740507,  447936347,
1798      451127389,  454313601,  457494947,  460671394,  463842908,  467009454,
1799      470170999,  473327508,  476478949,  479625287,  482766489,  485902520,
1800      489033348,  492158939,  495279259,  498394275,  501503954,  504608262,
1801      507707166,  510800633,  513888630,  516971123,  520048080,  523119468,
1802      526185253,  529245403,  532299886,  535348668,  538391717,  541429001,
1803      544460486,  547486140,  550505931,  553519827,  556527795,  559529802,
1804      562525818,  565515810,  568499745,  571477593,  574449320,  577414895,
1805      580374287,  583327463,  586274392,  589215043,  592149384,  595077383,
1806      597999010,  600914232,  603823019,  606725340,  609621163,  612510457,
1807      615393193,  618269337,  621138861,  624001732,  626857921,  629707397,
1808      632550130,  635386088,  638215242,  641037560,  643853014,  646661573,
1809      649463207,  652257885,  655045578,  657826256,  660599890,  663366449,
1810      666125903,  668878224,  671623382,  674361348,  677092091,  679815584,
1811      682531796,  685240699,  687942263,  690636460,  693323261,  696002637,
1812      698674559,  701338999,  703995929,  706645319,  709287141,  711921368,
1813      714547970,  717166920,  719778190,  722381752,  724977578,  727565639,
1814      730145909,  732718360,  735282964,  737839694,  740388522,  742929421,
1815      745462364,  747987323,  750504272,  753013184,  755514032,  758006789,
1816      760491428,  762967923,  765436247,  767896374,  770348277,  772791930,
1817      775227308,  777654383,  780073131,  782483524,  784885538,  787279146,
1818      789664323,  792041044,  794409282,  796769013,  799120211,  801462851,
1819      803796908,  806122357,  808439173,  810747332,  813046807,  815337576,
1820      817619614,  819892895,  822157396,  824413092,  826659959,  828897974,
1821      831127111,  833347348,  835558661,  837761025,  839954418,  842138815,
1822      844314194,  846480531,  848637802,  850785986,  852925058,  855054996,
1823      857175777,  859287379,  861389778,  863482952,  865566879,  867641537,
1824      869706903,  871762955,  873809671,  875847029,  877875008,  879893585,
1825      881902740,  883902450,  885892694,  887873451,  889844699,  891806418,
1826      893758587,  895701184,  897634188,  899557580,  901471339,  903375443,
1827      905269873,  907154608,  909029628,  910894913,  912750443,  914596199,
1828      916432160,  918258306,  920074619,  921881079,  923677666,  925464361,
1829      927241145,  929007999,  930764904,  932511841,  934248792,  935975738,
1830      937692661,  939399541,  941096361,  942783103,  944459749,  946126280,
1831      947782678,  949428927,  951065008,  952690904,  954306597,  955912071,
1832      957507308,  959092290,  960667001,  962231424,  963785543,  965329340,
1833      966862800,  968385905,  969898639,  971400986,  972892931,  974374457,
1834      975845548,  977306188,  978756362,  980196055,  981625250,  983043933,
1835      984452089,  985849701,  987236756,  988613239,  989979134,  991334427,
1836      992679104,  994013151,  995336552,  996649294,  997951362,  999242743,
1837      1000523424, 1001793389, 1003052626, 1004301121, 1005538861, 1006765832,
1838      1007982022, 1009187417, 1010382005, 1011565772, 1012738706, 1013900794,
1839      1015052024, 1016192384, 1017321862, 1018440444, 1019548120, 1020644877,
1840      1021730705, 1022805590, 1023869522, 1024922488, 1025964479, 1026995483,
1841      1028015488, 1029024484, 1030022460, 1031009406, 1031985310, 1032950162,
1842      1033903952, 1034846670, 1035778306, 1036698849, 1037608290, 1038506619,
1843      1039393827, 1040269903, 1041134839, 1041988625, 1042831253, 1043662712,
1844      1044482995, 1045292092, 1046089995, 1046876695, 1047652184, 1048416454,
1845      1049169495, 1049911301, 1050641864, 1051361174, 1052069226, 1052766010,
1846      1053451521, 1054125750, 1054788690, 1055440334, 1056080675, 1056709706,
1847      1057327421, 1057933812, 1058528874, 1059112600, 1059684984, 1060246020,
1848      1060795701, 1061334021, 1061860976, 1062376559, 1062880765, 1063373588,
1849      1063855024, 1064325066, 1064783710, 1065230952, 1065666785, 1066091206,
1850      1066504210, 1066905793, 1067295950, 1067674677, 1068041971, 1068397826,
1851      1068742240, 1069075208, 1069396727, 1069706794, 1070005405, 1070292558,
1852      1070568248, 1070832474, 1071085231, 1071326518, 1071556333, 1071774671,
1853      1071981532, 1072176913, 1072360812, 1072533226, 1072694155, 1072843595,
1854      1072981547, 1073108008, 1073222976, 1073326452, 1073418433, 1073498918,
1855      1073567907, 1073625399, 1073671393, 1073705890, 1073728887, 1073740386},
1856     // UWORD8 re_arr_tab_16[240];
1857     {
1858 
1859         0,   15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210,
1860         225, 16, 31, 46, 61, 76, 91, 106, 121, 136, 151, 166, 181, 196, 211,
1861         226, 1,  32, 47, 62, 77, 92, 107, 122, 137, 152, 167, 182, 197, 212,
1862         227, 2,  17, 48, 63, 78, 93, 108, 123, 138, 153, 168, 183, 198, 213,
1863         228, 3,  18, 33, 64, 79, 94, 109, 124, 139, 154, 169, 184, 199, 214,
1864         229, 4,  19, 34, 49, 80, 95, 110, 125, 140, 155, 170, 185, 200, 215,
1865         230, 5,  20, 35, 50, 65, 96, 111, 126, 141, 156, 171, 186, 201, 216,
1866         231, 6,  21, 36, 51, 66, 81, 112, 127, 142, 157, 172, 187, 202, 217,
1867         232, 7,  22, 37, 52, 67, 82, 97,  128, 143, 158, 173, 188, 203, 218,
1868         233, 8,  23, 38, 53, 68, 83, 98,  113, 144, 159, 174, 189, 204, 219,
1869         234, 9,  24, 39, 54, 69, 84, 99,  114, 129, 160, 175, 190, 205, 220,
1870         235, 10, 25, 40, 55, 70, 85, 100, 115, 130, 145, 176, 191, 206, 221,
1871         236, 11, 26, 41, 56, 71, 86, 101, 116, 131, 146, 161, 192, 207, 222,
1872         237, 12, 27, 42, 57, 72, 87, 102, 117, 132, 147, 162, 177, 208, 223,
1873         238, 13, 28, 43, 58, 73, 88, 103, 118, 133, 148, 163, 178, 193, 224,
1874         239, 14, 29, 44, 59, 74, 89, 104, 119, 134, 149, 164, 179, 194, 209},
1875     // UWORD8 re_arr_tab_sml_240[MDCT_LEN >> 1] =
1876     {0,   160, 80,  96,  16,  176, 192, 112, 32,  48,  208, 128, 144, 64,  224,
1877      225, 145, 65,  81,  1,   161, 177, 97,  17,  33,  193, 113, 129, 49,  209,
1878      210, 130, 50,  66,  226, 146, 162, 82,  2,   18,  178, 98,  114, 34,  194,
1879      195, 115, 35,  51,  211, 131, 147, 67,  227, 3,   163, 83,  99,  19,  179,
1880      180, 100, 20,  36,  196, 116, 132, 52,  212, 228, 148, 68,  84,  4,   164,
1881      165, 85,  5,   21,  181, 101, 117, 37,  197, 213, 133, 53,  69,  229, 149,
1882      150, 70,  230, 6,   166, 86,  102, 22,  182, 198, 118, 38,  54,  214, 134,
1883      135, 55,  215, 231, 151, 71,  87,  7,   167, 183, 103, 23,  39,  199, 119,
1884      120, 40,  200, 216, 136, 56,  72,  232, 152, 168, 88,  8,   24,  184, 104,
1885      105, 25,  185, 201, 121, 41,  57,  217, 137, 153, 73,  233, 9,   169, 89,
1886      90,  10,  170, 186, 106, 26,  42,  202, 122, 138, 58,  218, 234, 154, 74,
1887      75,  235, 155, 171, 91,  11,  27,  187, 107, 123, 43,  203, 219, 139, 59,
1888      60,  220, 140, 156, 76,  236, 12,  172, 92,  108, 28,  188, 204, 124, 44,
1889      45,  205, 125, 141, 61,  221, 237, 157, 77,  93,  13,  173, 189, 109, 29,
1890      30,  190, 110, 126, 46,  206, 222, 142, 62,  78,  238, 158, 174, 94,  14,
1891      15,  175, 95,  111, 31,  191, 207, 127, 47,  63,  223, 143, 159, 79,  239},
1892 
1893     // WORD32 cosine_array_960[480] =
1894     {
1895         2147482880, 2147425408, 1756906,    15812012,   2147275904, 2147034496,
1896         29866440,   43919588,   2146701056, 2146275712, 57970856,   72019640,
1897         2145758336, 2145149056, 86065336,   100107352,  2144447872, 2143654912,
1898         114145072,  128177912,  2142770048, 2141793536, 142205248,  156226512,
1899         2140725120, 2139565056, 170241056,  184248336,  2138313344, 2136969984,
1900         198247712,  212238592,  2135535104, 2134008832, 226220384,  240192480,
1901         2132391040, 2130681984, 254154288,  268105216,  2128881536, 2126990080,
1902         282044640,  295972000,  2125007360, 2122933632, 309886688,  323788096,
1903         2120769024, 2118513536, 337675616,  351548704,  2116167296, 2113730432,
1904         365406720,  379249056,  2111202944, 2108585088, 393075168,  406884448,
1905         2105876864, 2103078528, 420676288,  434450112,  2100189952, 2097211520,
1906         448205344,  461941344,  2094143232, 2090985216, 475657568,  489353408,
1907         2087737600, 2084400640, 503028320,  516681664,  2080974336, 2077458944,
1908         530312864,  543921344,  2073854464, 2070161280, 557506560,  571067840,
1909         2066379264, 2062508800, 584604672,  598116480,  2058550016, 2054503040,
1910         611602688,  625062656,  2050368000, 2046145152, 638495872,  651901696,
1911         2041834752, 2037436800, 665279680,  678629120,  2032951552, 2028379264,
1912         691949440,  705240192,  2023720064, 2018974208, 718500672,  731730432,
1913         2014141824, 2009223168, 744928832,  758095296,  2004218368, 1999127808,
1914         771229312,  784330240,  1993951616, 1988690048, 797397632,  810430848,
1915         1983343232, 1977911424, 823429312,  836392576,  1972394880, 1966793856,
1916         849319936,  862210944,  1961108608, 1955339392, 875065024,  887881600,
1917         1949486464, 1943549824, 900660160,  913400192,  1937530112, 1931427328,
1918         926100992,  938762176,  1925241856, 1918973824, 951383168,  963963392,
1919         1912623616, 1906191616, 976502272,  988999360,  1899677824, 1893082624,
1920         1001454080, 1013865920, 1886406400, 1879649408, 1026234304, 1038558720,
1921         1872811776, 1865894016, 1050838720, 1063073600, 1858896256, 1851819008,
1922         1075262976, 1087406336, 1844662272, 1837426560, 1099503104, 1111552768,
1923         1830112256, 1822719360, 1123554816, 1135508736, 1815248512, 1807699840,
1924         1147414016, 1159270016, 1800073856, 1792370688, 1171076480, 1182832768,
1925         1784590720, 1776734336, 1194538496, 1206192896, 1768801792, 1760793472,
1926         1217795712, 1229346304, 1752709760, 1744551040, 1240844288, 1252289024,
1927         1736317440, 1728009600, 1263680256, 1275017216, 1719627648, 1711172096,
1928         1286299648, 1297526912, 1702643200, 1694041344, 1308698624, 1319814272,
1929         1685367040, 1676620416, 1330873472, 1341875584, 1667801984, 1658912128,
1930         1352820224, 1363706880, 1649951232, 1640919680, 1374535168, 1385304576,
1931         1631817728, 1622646016, 1396014592, 1406664832, 1613404672, 1604094336,
1932         1417254784, 1427784064, 1594715136, 1585267712, 1438252160, 1448658688,
1933         1575752448, 1566169600, 1459003136, 1469285120, 1556519680, 1546803072,
1934         1479504128, 1489659776, 1537020160, 1527171456, 1499751552, 1509779200,
1935         1517257344, 1507278336, 1519742080, 1529639936, 1497234560, 1487126784,
1936         1539472128, 1549238528, 1476955264, 1466720512, 1558938496, 1568571648,
1937         1456422784, 1446062848, 1578137728, 1587636096, 1435640832, 1425157376,
1938         1597066496, 1606428416, 1414612992, 1404007808, 1615721600, 1624945536,
1939         1393342592, 1382617728, 1634099840, 1643184256, 1371833472, 1360990592,
1940         1652198144, 1661141376, 1350089344, 1339130368, 1670013440, 1678813824,
1941         1328113920, 1317040640, 1687542400, 1696198656, 1305910912, 1294725248,
1942         1704782336, 1713292928, 1283484032, 1272188032, 1721730176, 1730093568,
1943         1260837376, 1249432832, 1738382848, 1746597760, 1237974656, 1226463488,
1944         1754737792, 1762802688, 1214899712, 1203283968, 1770792064, 1778705536,
1945         1191616768, 1179898368, 1786542976, 1794303744, 1168129536, 1156310656,
1946         1801987584, 1809594368, 1144442112, 1132524672, 1817123584, 1824574976,
1947         1120558720, 1108544640, 1831948160, 1839243008, 1096483200, 1084374784,
1948         1846458880, 1853595776, 1072219904, 1060019072, 1860653312, 1867630976,
1949         1047772800, 1035481728, 1874528768, 1881346176, 1023146240, 1010766912,
1950         1888083072, 1894739072, 998344320,  985878976,  1901313920, 1907807232,
1951         973371392,  960822080,  1914219008, 1920548608, 948231616,  935600576,
1952         1926796032, 1932960896, 922929408,  910218752,  1939042944, 1945041920,
1953         897469056,  884680960,  1950957568, 1956789632, 871854912,  858991552,
1954         1962537856, 1968202112, 846091392,  833155008,  1973782016, 1979277312,
1955         820182912,  807175680,  1984687872, 1990013440, 794133888,  781058048,
1956         1995253760, 2000408576, 767948800,  754806592,  2005477632, 2010460928,
1957         741632064,  728425792,  2015357952, 2020168832, 715188352,  701920192,
1958         2024893056, 2029530496, 688622016,  675294336,  2034081024, 2038544512,
1959         661937728,  648552768,  2042920576, 2047209216, 635140032,  621700032,
1960         2051410048, 2055523072, 608233472,  594740864,  2059548032, 2063484800,
1961         581222720,  567679680,  2067333120, 2071092864, 554112384,  540521280,
1962         2074763904, 2078346112, 526907072,  513270272,  2081839360, 2085243264,
1963         499611488,  485931296,  2088557952, 2091783168, 472230304,  458509088,
1964         2094918784, 2097964544, 444768224,  431008288,  2100920576, 2103786496,
1965         417229920,  403433664,  2106562432, 2109248000, 389620128,  375789888,
1966         2111843328, 2114348160, 361943552,  348081728,  2116762368, 2119085952,
1967         334204992,  320313920,  2121318656, 2123460608, 306409152,  292491232,
1968         2125511552, 2127471488, 278560800,  264618448,  2129340288, 2131117824,
1969         250664736,  236700304,  2132804096, 2134398976, 222725728,  208741600,
1970         2135902464, 2137314432, 194748544,  180747136,  2138634880, 2139863680,
1971         166737984,  152721696,  2141000832, 2142046208, 138698864,  124670096,
1972         2142999936, 2143861760, 110635984,  96597136,   2144631808, 2145309952,
1973         82554144,   68507616,   2145896320, 2146390656, 54458156,   40406360,
1974         2146793088, 2147103488, 26352836,   12298181,   2147321984, 2147448448,
1975     },
1976 
1977     // WORD32 w_16[24] =
1978     {
1979         0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff,
1980         0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d,
1981         0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667,
1982         0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5,
1983     },
1984 
1985     // WORD32 window_sine_480_eld[1920];
1986     {0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1987      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1988      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1989      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1990      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1991      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1992      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1993      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1994      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1995      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1996      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1997      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1998      17,    72,    118,   176,   239,   307,   378,   451,   524,   597,
1999      669,   741,   812,   883,   954,   1024,  1095,  1165,  1235,  1305,
2000      1375,  1444,  1514,  1583,  1652,  1722,  1792,  1863,  1933,  2005,
2001      2077,  2150,  2224,  2299,  2374,  2451,  2529,  2607,  2686,  2766,
2002      2847,  2928,  3009,  3091,  3174,  3256,  3339,  3423,  3507,  3591,
2003      3676,  3760,  3846,  3932,  4018,  4104,  4191,  4278,  4366,  4454,
2004      4542,  4631,  4720,  4809,  4899,  4988,  5078,  5168,  5257,  5347,
2005      5436,  5524,  5613,  5702,  5790,  5878,  5967,  6056,  6144,  6233,
2006      6321,  6410,  6498,  6586,  6673,  6761,  6848,  6934,  7020,  7106,
2007      7192,  7276,  7361,  7445,  7529,  7614,  7698,  7781,  7865,  7947,
2008      8030,  8112,  8193,  8274,  8354,  8434,  8514,  8594,  8673,  8751,
2009      8830,  8908,  8985,  9063,  9139,  9216,  9292,  9367,  9442,  9517,
2010      9621,  9695,  9769,  9842,  9915,  9988,  10060, 10132, 10203, 10274,
2011      10345, 10415, 10485, 10554, 10623, 10691, 10760, 10827, 10895, 10962,
2012      11029, 11095, 11161, 11226, 11291, 11356, 11420, 11484, 11548, 11611,
2013      11674, 11736, 11798, 11859, 11921, 11981, 12042, 12102, 12161, 12220,
2014      12279, 12337, 12395, 12452, 12509, 12565, 12621, 12677, 12732, 12787,
2015      12841, 12895, 12948, 13000, 13053, 13104, 13156, 13206, 13257, 13306,
2016      13356, 13404, 13452, 13500, 13547, 13594, 13639, 13685, 13730, 13774,
2017      13818, 13861, 13904, 13946, 13988, 14029, 14069, 14109, 14148, 14187,
2018      14225, 14263, 14300, 14336, 14372, 14408, 14443, 14477, 14511, 14544,
2019      14577, 14609, 14641, 14673, 14704, 14734, 14764, 14794, 14823, 14852,
2020      14881, 14909, 14938, 14966, 14994, 15021, 15049, 15076, 15104, 15131,
2021      15159, 15186, 15213, 15239, 15265, 15289, 15312, 15333, 15351, 15372,
2022      15382, 15386, 15392, 15398, 15404, 15411, 15418, 15425, 15431, 15438,
2023      15444, 15451, 15458, 15464, 15471, 15478, 15485, 15492, 15499, 15505,
2024      15512, 15519, 15526, 15534, 15541, 15548, 15555, 15562, 15569, 15577,
2025      15584, 15592, 15599, 15606, 15614, 15621, 15629, 15637, 15644, 15652,
2026      15660, 15668, 15675, 15683, 15691, 15699, 15707, 15715, 15723, 15731,
2027      15740, 15748, 15756, 15764, 15773, 15781, 15789, 15798, 15806, 15815,
2028      15824, 15832, 15841, 15849, 15858, 15867, 15876, 15884, 15893, 15902,
2029      15911, 15920, 15929, 15938, 15947, 15956, 15965, 15974, 15983, 15993,
2030      16002, 16011, 16020, 16030, 16039, 16048, 16057, 16067, 16076, 16086,
2031      16095, 16104, 16114, 16123, 16133, 16142, 16152, 16161, 16171, 16181,
2032      16190, 16200, 16209, 16219, 16229, 16238, 16248, 16258, 16267, 16277,
2033      16287, 16296, 16306, 16316, 16326, 16335, 16345, 16355, 16365, 16374,
2034      16394, 16403, 16413, 16423, 16433, 16443, 16452, 16462, 16472, 16482,
2035      16492, 16502, 16511, 16521, 16531, 16541, 16551, 16561, 16570, 16580,
2036      16590, 16600, 16610, 16619, 16629, 16639, 16649, 16659, 16668, 16678,
2037      16688, 16698, 16707, 16717, 16727, 16737, 16746, 16756, 16766, 16775,
2038      16785, 16795, 16804, 16814, 16823, 16833, 16842, 16852, 16861, 16871,
2039      16880, 16890, 16899, 16909, 16918, 16927, 16937, 16946, 16955, 16964,
2040      16974, 16983, 16992, 17001, 17010, 17019, 17028, 17037, 17046, 17055,
2041      17064, 17072, 17081, 17090, 17099, 17107, 17116, 17125, 17133, 17142,
2042      17150, 17159, 17167, 17175, 17184, 17192, 17200, 17209, 17217, 17225,
2043      17233, 17241, 17249, 17257, 17265, 17273, 17281, 17289, 17297, 17305,
2044      17312, 17320, 17328, 17335, 17343, 17351, 17358, 17366, 17373, 17381,
2045      17388, 17396, 17403, 17411, 17418, 17426, 17433, 17440, 17446, 17452,
2046      17454, 17449, 17444, 17437, 17428, 17418, 17407, 17396, 17385, 17374,
2047      17363, 17352, 17340, 17329, 17316, 17304, 17291, 17278, 17264, 17250,
2048      17236, 17221, 17207, 17193, 17179, 17165, 17150, 17136, 17121, 17107,
2049      17091, 17076, 17059, 17042, 17024, 17005, 16986, 16966, 16945, 16923,
2050      16901, 16878, 16855, 16831, 16807, 16783, 16759, 16734, 16709, 16684,
2051      16658, 16633, 16607, 16581, 16554, 16527, 16500, 16471, 16443, 16414,
2052      16384, 16353, 16322, 16290, 16257, 16224, 16190, 16155, 16120, 16085,
2053      16050, 16016, 15981, 15947, 15912, 15878, 15843, 15807, 15771, 15735,
2054      15697, 15659, 15621, 15581, 15542, 15502, 15461, 15421, 15380, 15339,
2055      15299, 15259, 15219, 15180, 15140, 15099, 15058, 15016, 14974, 14931,
2056      14887, 14844, 14800, 14757, 14714, 14671, 14628, 14584, 14541, 14497,
2057      14453, 14408, 14364, 14319, 14274, 14229, 14184, 14139, 14094, 14049,
2058      14004, 13958, 13912, 13865, 13819, 13772, 13725, 13678, 13631, 13584,
2059      13537, 13491, 13444, 13396, 13349, 13301, 13253, 13205, 13156, 13106,
2060      13057, 13008, 12960, 12912, 12864, 12817, 12770, 12723, 12675, 12626,
2061      12576, 12526, 12475, 12424, 12373, 12321, 12270, 12220, 12170, 12120,
2062      12071, 12022, 11974, 11926, 11878, 11829, 11780, 11730, 11679, 11627,
2063      11575, 11521, 11467, 11414, 11360, 11307, 11255, 11203, 11152, 11101,
2064      11051, 11001, 10952, 10903, 10853, 10804, 10755, 10705, 10656, 10605,
2065      10554, 10503, 10450, 10397, 10343, 10289, 10234, 10179, 10124, 10069,
2066      10014, 9960,  9907,  9854,  9803,  9752,  9703,  9654,  9606,  9559,
2067      9513,  9466,  9419,  9371,  9322,  9271,  9219,  9165,  9109,  9053,
2068      8996,  8939,  8883,  8828,  8775,  8723,  8674,  8625,  8578,  8532,
2069      8486,  8440,  8392,  8344,  8295,  8244,  8192,  8140,  8088,  8036,
2070      7983,  7931,  7879,  7829,  7779,  7731,  7682,  7634,  7586,  7537,
2071      7488,  7439,  7390,  7340,  7290,  7241,  7192,  7144,  7096,  7049,
2072      7001,  6953,  6904,  6856,  6807,  6757,  6708,  6659,  6610,  6561,
2073      6513,  6465,  6418,  6370,  6323,  6277,  6230,  6183,  6137,  6090,
2074      6044,  5997,  5951,  5905,  5858,  5812,  5766,  5720,  5674,  5628,
2075      5583,  5537,  5491,  5446,  5401,  5355,  5310,  5265,  5221,  5175,
2076      5130,  5084,  5037,  4991,  4945,  4899,  4853,  4807,  4761,  4716,
2077      4671,  4626,  4581,  4536,  4491,  4447,  4403,  4359,  4315,  4271,
2078      4228,  4185,  4142,  4099,  4056,  4014,  3972,  3929,  3887,  3846,
2079      3804,  3762,  3721,  3680,  3639,  3598,  3558,  3517,  3477,  3437,
2080      3397,  3357,  3318,  3278,  3239,  3199,  3160,  3122,  3083,  3044,
2081      3006,  2967,  2929,  2891,  2853,  2815,  2778,  2741,  2704,  2668,
2082      2620,  2585,  2550,  2515,  2481,  2447,  2413,  2380,  2347,  2314,
2083      2281,  2248,  2215,  2183,  2151,  2119,  2087,  2055,  2024,  1993,
2084      1962,  1931,  1901,  1870,  1840,  1810,  1781,  1751,  1722,  1693,
2085      1664,  1636,  1608,  1579,  1552,  1524,  1497,  1470,  1443,  1416,
2086      1390,  1364,  1338,  1312,  1287,  1261,  1236,  1212,  1187,  1163,
2087      1139,  1115,  1092,  1068,  1045,  1022,  1000,  977,   955,   934,
2088      912,   891,   869,   848,   828,   807,   787,   767,   747,   728,
2089      709,   690,   671,   652,   634,   616,   598,   581,   563,   546,
2090      529,   513,   496,   480,   464,   448,   433,   417,   402,   387,
2091      372,   358,   344,   329,   316,   302,   289,   276,   263,   251,
2092      238,   226,   214,   203,   191,   180,   169,   158,   147,   137,
2093      127,   117,   107,   97,    88,    78,    70,    61,    52,    44,
2094      36,    28,    21,    13,    6,     -2,    -9,    -16,   -23,   -30,
2095      -37,   -43,   -49,   -55,   -60,   -65,   -69,   -73,   -78,   -81,
2096      -85,   -89,   -93,   -97,   -101,  -105,  -109,  -113,  -116,  -120,
2097      -123,  -126,  -129,  -131,  -133,  -135,  -137,  -138,  -139,  -140,
2098      -141,  -142,  -143,  -143,  -144,  -144,  -145,  -145,  -146,  -146,
2099      -147,  -147,  -147,  -147,  -147,  -147,  -147,  -146,  -146,  -145,
2100      -144,  -143,  -141,  -140,  -139,  -137,  -135,  -134,  -132,  -130,
2101      -129,  -127,  -125,  -123,  -122,  -120,  -118,  -116,  -114,  -111,
2102      -109,  -107,  -104,  -102,  -99,   -96,   -94,   -91,   -88,   -86,
2103      -83,   -81,   -78,   -75,   -72,   -70,   -67,   -64,   -61,   -58,
2104      -55,   -52,   -49,   -46,   -44,   -41,   -38,   -35,   -32,   -29,
2105      -26,   -23,   -20,   -17,   -14,   -11,   -9,    -6,    -3,    0,
2106      0,     3,     6,     8,     11,    14,    17,    19,    22,    24,
2107      27,    29,    32,    34,    37,    39,    42,    44,    46,    48,
2108      50,    53,    55,    57,    59,    61,    62,    64,    66,    67,
2109      69,    71,    72,    74,    75,    76,    78,    79,    80,    81,
2110      82,    83,    84,    85,    86,    86,    87,    87,    88,    88,
2111      88,    89,    89,    89,    90,    90,    90,    90,    90,    90,
2112      90,    89,    89,    88,    88,    87,    86,    85,    85,    84,
2113      83,    82,    81,    80,    78,    77,    76,    75,    74,    73,
2114      72,    70,    69,    68,    66,    65,    63,    61,    59,    57,
2115      55,    53,    51,    49,    47,    44,    42,    40,    38,    36,
2116      34,    32,    30,    28,    26,    23,    21,    19,    16,    14,
2117      11,    8,     6,     3,     1,     -2,    -4,    -7,    -9,    -12,
2118      -14,   -17,   -20,   -22,   -25,   -27,   -30,   -32,   -35,   -38,
2119      -40,   -43,   -45,   -48,   -50,   -53,   -55,   -58,   -60,   -63,
2120      -65,   -68,   -70,   -73,   -75,   -78,   -80,   -82,   -85,   -87,
2121      -90,   -92,   -94,   -97,   -99,   -102,  -104,  -106,  -109,  -111,
2122      -113,  -116,  -118,  -121,  -123,  -125,  -128,  -130,  -133,  -135,
2123      -138,  -140,  -143,  -145,  -148,  -151,  -153,  -156,  -159,  -162,
2124      -165,  -168,  -170,  -173,  -176,  -178,  -181,  -183,  -185,  -188,
2125      -190,  -192,  -194,  -196,  -197,  -199,  -201,  -202,  -204,  -205,
2126      -206,  -208,  -209,  -210,  -211,  -212,  -213,  -214,  -214,  -215,
2127      -216,  -216,  -217,  -218,  -218,  -218,  -219,  -219,  -219,  -219,
2128      -219,  -219,  -220,  -219,  -219,  -219,  -219,  -219,  -218,  -218,
2129      -218,  -217,  -217,  -216,  -216,  -215,  -214,  -214,  -213,  -212,
2130      -214,  -214,  -213,  -212,  -211,  -211,  -210,  -209,  -208,  -207,
2131      -206,  -204,  -203,  -202,  -201,  -199,  -198,  -196,  -195,  -193,
2132      -192,  -190,  -189,  -187,  -185,  -184,  -182,  -180,  -178,  -176,
2133      -175,  -173,  -171,  -169,  -167,  -165,  -163,  -162,  -160,  -158,
2134      -156,  -154,  -152,  -150,  -149,  -147,  -145,  -143,  -142,  -140,
2135      -139,  -137,  -135,  -134,  -133,  -131,  -130,  -129,  -127,  -126,
2136      -125,  -123,  -122,  -120,  -118,  -117,  -115,  -113,  -111,  -109,
2137      -107,  -105,  -103,  -100,  -98,   -96,   -94,   -91,   -89,   -87,
2138      -84,   -82,   -79,   -77,   -75,   -72,   -70,   -67,   -65,   -63,
2139      -60,   -58,   -56,   -53,   -51,   -49,   -47,   -44,   -42,   -40,
2140      -38,   -36,   -34,   -32,   -30,   -28,   -26,   -25,   -23,   -21,
2141      -20,   -18,   -16,   -15,   -13,   -12,   -10,   -9,    -8,    -6,
2142      -5,    -4,    -3,    -2,    -1,    0,     1,     2,     3,     4,
2143      5,     6,     6,     7,     8,     8,     9,     9,     9,     10,
2144      10,    10,    11,    11,    11,    12,    12,    12,    12,    13,
2145      13,    13,    13,    13,    13,    13,    13,    13,    12,    12,
2146      12,    12,    12,    12,    11,    11,    11,    11,    11,    10,
2147      10,    10,    10,    9,     9,     9,     9,     8,     8,     8,
2148      8,     7,     7,     7,     6,     6,     6,     6,     5,     5,
2149      5,     5,     4,     4,     4,     4,     3,     3,     3,     3,
2150      3,     2,     2,     2,     2,     2,     2,     1,     1,     1,
2151      1,     1,     1,     1,     1,     1,     1,     0,     0,     0,
2152      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2153      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2154      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2155      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2156      0,     0,     0,     0,     1,     1,     1,     1,     1,     1,
2157      1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
2158      2,     2,     2,     2,     3,     3,     3,     3,     3,     3,
2159      3,     4,     4,     4,     4,     4,     4,     4,     5,     5,
2160      5,     5,     5,     5,     5,     5,     6,     6,     6,     6,
2161      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2162      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2163      6,     6,     5,     5,     5,     5,     5,     5,     4,     4,
2164      4,     4,     4,     3,     3,     3,     3,     2,     2,     2,
2165      1,     1,     1,     0,     0,     0,     -1,    -1,    -1,    -2,
2166      -2,    -2,    -3,    -3,    -4,    -4,    -5,    -5,    -5,    -6,
2167      -6,    -7,    -7,    -7,    -8,    -8,    -9,    -9,    -10,   -10,
2168      -10,   -11,   -11,   -12,   -12,   -13,   -13,   -13,   -14,   -14,
2169      -15,   -15,   -15,   -16,   -16,   -16,   -17,   -17,   -17,   -18,
2170      -18,   -18,   -19,   -19,   -19,   -19,   -20,   -20,   -20,   -20,
2171      -21,   -21,   -21,   -21,   -21,   -22,   -22,   -22,   -22,   -22,
2172      -22,   -22,   -22,   -22,   -23,   -23,   -23,   -23,   -23,   -23,
2173      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,
2174      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,
2175      -22,   -22,   -22,   -22,   -22,   -22,   -22,   -22,   -22,   -21,
2176      -21,   -21,   -21,   -21,   -21,   -20,   -20,   -20,   -20,   -20,
2177      -19,   -19,   -19,   -19,   -19,   -18,   -18,   -18,   -18,   -17},
2178     // WORD16 window_sine_512_eld[2048];
2179     {0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2180      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2181      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2182      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2183      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2184      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2185      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2186      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2187      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2188      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2189      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2190      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2191      0,     0,     0,     0,     0,     0,     0,     0,     56,    93,
2192      139,   192,   251,   314,   380,   447,   515,   583,   651,   718,
2193      784,   849,   914,   979,   1044,  1109,  1174,  1239,  1304,  1368,
2194      1433,  1498,  1563,  1628,  1693,  1758,  1824,  1890,  1956,  2022,
2195      2090,  2157,  2226,  2295,  2365,  2436,  2508,  2580,  2653,  2727,
2196      2802,  2877,  2952,  3029,  3105,  3182,  3260,  3338,  3416,  3494,
2197      3573,  3652,  3731,  3811,  3891,  3971,  4052,  4133,  4214,  4296,
2198      4378,  4460,  4542,  4625,  4708,  4791,  4874,  4957,  5041,  5125,
2199      5209,  5293,  5377,  5460,  5544,  5627,  5710,  5794,  5877,  5960,
2200      6042,  6125,  6208,  6291,  6373,  6456,  6538,  6620,  6702,  6784,
2201      6865,  6947,  7028,  7108,  7189,  7269,  7349,  7428,  7507,  7586,
2202      7665,  7743,  7821,  7899,  7976,  8054,  8131,  8207,  8283,  8359,
2203      8434,  8510,  8584,  8659,  8733,  8807,  8880,  8953,  9026,  9099,
2204      9171,  9243,  9314,  9385,  9456,  9526,  9583,  9653,  9723,  9792,
2205      9860,  9929,  9997,  10064, 10132, 10199, 10265, 10331, 10397, 10463,
2206      10528, 10593, 10657, 10721, 10785, 10849, 10912, 10974, 11037, 11099,
2207      11161, 11222, 11283, 11344, 11404, 11464, 11524, 11583, 11642, 11701,
2208      11759, 11817, 11875, 11932, 11989, 12045, 12102, 12157, 12213, 12268,
2209      12322, 12377, 12431, 12484, 12537, 12590, 12642, 12694, 12746, 12797,
2210      12848, 12898, 12948, 12997, 13046, 13095, 13143, 13191, 13238, 13285,
2211      13331, 13377, 13422, 13467, 13512, 13556, 13599, 13642, 13685, 13727,
2212      13769, 13810, 13850, 13891, 13930, 13969, 14008, 14046, 14084, 14121,
2213      14158, 14194, 14230, 14265, 14300, 14334, 14368, 14401, 14434, 14466,
2214      14498, 14530, 14561, 14591, 14621, 14651, 14680, 14709, 14738, 14766,
2215      14794, 14821, 14849, 14876, 14902, 14929, 14955, 14981, 15007, 15033,
2216      15059, 15085, 15111, 15137, 15162, 15188, 15213, 15238, 15262, 15285,
2217      15307, 15327, 15345, 15361, 15384, 15388, 15394, 15400, 15406, 15412,
2218      15418, 15425, 15431, 15437, 15443, 15449, 15456, 15462, 15468, 15475,
2219      15481, 15487, 15494, 15500, 15507, 15513, 15520, 15526, 15533, 15540,
2220      15546, 15553, 15560, 15567, 15574, 15580, 15587, 15594, 15601, 15608,
2221      15615, 15622, 15630, 15637, 15644, 15651, 15658, 15666, 15673, 15680,
2222      15688, 15695, 15703, 15710, 15718, 15725, 15733, 15741, 15748, 15756,
2223      15764, 15772, 15780, 15787, 15795, 15803, 15811, 15819, 15827, 15835,
2224      15843, 15852, 15860, 15868, 15876, 15884, 15893, 15901, 15909, 15918,
2225      15926, 15935, 15943, 15952, 15960, 15969, 15977, 15986, 15994, 16003,
2226      16012, 16020, 16029, 16038, 16046, 16055, 16064, 16073, 16081, 16090,
2227      16099, 16108, 16117, 16126, 16135, 16144, 16152, 16161, 16170, 16179,
2228      16188, 16197, 16206, 16215, 16224, 16233, 16242, 16251, 16261, 16270,
2229      16279, 16288, 16297, 16306, 16315, 16324, 16334, 16343, 16352, 16361,
2230      16370, 16379, 16389, 16398, 16407, 16416, 16425, 16435, 16444, 16453,
2231      16462, 16472, 16481, 16490, 16499, 16508, 16518, 16527, 16536, 16545,
2232      16554, 16564, 16573, 16582, 16591, 16600, 16610, 16619, 16628, 16637,
2233      16646, 16656, 16665, 16674, 16683, 16692, 16701, 16710, 16720, 16729,
2234      16738, 16747, 16756, 16765, 16774, 16783, 16792, 16801, 16810, 16819,
2235      16828, 16837, 16846, 16855, 16864, 16873, 16882, 16890, 16899, 16908,
2236      16917, 16926, 16934, 16943, 16952, 16960, 16969, 16978, 16986, 16995,
2237      17003, 17012, 17020, 17029, 17037, 17045, 17054, 17062, 17070, 17078,
2238      17087, 17095, 17103, 17111, 17119, 17127, 17135, 17143, 17151, 17159,
2239      17167, 17175, 17183, 17191, 17198, 17206, 17214, 17221, 17229, 17237,
2240      17244, 17252, 17259, 17267, 17274, 17282, 17289, 17296, 17304, 17311,
2241      17318, 17325, 17333, 17340, 17347, 17354, 17361, 17368, 17375, 17382,
2242      17389, 17396, 17403, 17410, 17417, 17424, 17431, 17438, 17444, 17449,
2243      17446, 17444, 17440, 17434, 17426, 17417, 17408, 17398, 17388, 17377,
2244      17367, 17357, 17347, 17336, 17326, 17315, 17303, 17292, 17280, 17267,
2245      17254, 17241, 17228, 17215, 17202, 17188, 17175, 17162, 17149, 17135,
2246      17122, 17108, 17094, 17080, 17065, 17049, 17033, 17016, 16999, 16980,
2247      16962, 16942, 16922, 16901, 16880, 16858, 16836, 16814, 16792, 16769,
2248      16746, 16723, 16699, 16676, 16652, 16628, 16604, 16579, 16555, 16529,
2249      16504, 16478, 16451, 16424, 16397, 16368, 16340, 16310, 16280, 16249,
2250      16218, 16186, 16154, 16121, 16088, 16055, 16023, 15990, 15958, 15926,
2251      15894, 15861, 15828, 15795, 15761, 15727, 15692, 15656, 15620, 15583,
2252      15546, 15508, 15471, 15433, 15395, 15357, 15319, 15281, 15244, 15207,
2253      15169, 15132, 15094, 15055, 15016, 14976, 14936, 14895, 14855, 14814,
2254      14773, 14733, 14692, 14652, 14611, 14570, 14530, 14488, 14447, 14406,
2255      14364, 14322, 14280, 14238, 14195, 14153, 14111, 14068, 14025, 13983,
2256      13940, 13897, 13854, 13810, 13767, 13723, 13680, 13636, 13593, 13549,
2257      13505, 13462, 13418, 13374, 13330, 13286, 13241, 13195, 13150, 13104,
2258      13058, 13013, 12968, 12923, 12879, 12835, 12792, 12748, 12703, 12658,
2259      12612, 12565, 12518, 12471, 12423, 12376, 12328, 12281, 12233, 12187,
2260      12140, 12095, 12049, 12004, 11959, 11915, 11870, 11825, 11779, 11732,
2261      11684, 11635, 11586, 11536, 11486, 11435, 11385, 11336, 11287, 11239,
2262      11191, 11143, 11096, 11050, 11003, 10957, 10911, 10865, 10819, 10773,
2263      10727, 10680, 10633, 10585, 10537, 10488, 10439, 10389, 10338, 10287,
2264      10236, 10184, 10133, 10081, 10030, 9979,  9929,  9880,  9832,  9784,
2265      9737,  9691,  9646,  9602,  9558,  9514,  9470,  9426,  9381,  9334,
2266      9286,  9237,  9186,  9134,  9081,  9028,  8974,  8921,  8869,  8818,
2267      8769,  8721,  8675,  8630,  8586,  8542,  8499,  8455,  8410,  8365,
2268      8318,  8270,  8222,  8173,  8124,  8074,  8026,  7976,  7926,  7878,
2269      7831,  7784,  7738,  7693,  7647,  7602,  7556,  7509,  7463,  7416,
2270      7369,  7322,  7275,  7228,  7182,  7137,  7091,  7046,  7001,  6955,
2271      6909,  6863,  6817,  6770,  6723,  6676,  6629,  6583,  6537,  6491,
2272      6446,  6401,  6356,  6311,  6267,  6222,  6178,  6133,  6089,  6045,
2273      6000,  5956,  5912,  5868,  5824,  5780,  5736,  5692,  5648,  5604,
2274      5560,  5516,  5473,  5429,  5386,  5343,  5300,  5257,  5214,  5171,
2275      5128,  5085,  5043,  5000,  4958,  4915,  4873,  4831,  4789,  4747,
2276      4705,  4664,  4622,  4581,  4539,  4498,  4457,  4416,  4375,  4334,
2277      4293,  4253,  4212,  4172,  4132,  4092,  4052,  4012,  3972,  3933,
2278      3893,  3854,  3815,  3776,  3737,  3699,  3660,  3622,  3583,  3545,
2279      3507,  3469,  3432,  3394,  3357,  3319,  3282,  3245,  3208,  3171,
2280      3135,  3098,  3062,  3025,  2989,  2953,  2917,  2881,  2846,  2810,
2281      2775,  2740,  2706,  2671,  2638,  2604,  2572,  2539,  2507,  2475,
2282      2443,  2411,  2380,  2349,  2318,  2287,  2256,  2226,  2195,  2165,
2283      2135,  2105,  2075,  2046,  2016,  1987,  1958,  1929,  1901,  1872,
2284      1844,  1816,  1788,  1760,  1733,  1706,  1679,  1652,  1625,  1599,
2285      1572,  1546,  1521,  1495,  1470,  1444,  1419,  1395,  1370,  1346,
2286      1322,  1298,  1274,  1250,  1227,  1204,  1181,  1158,  1136,  1114,
2287      1092,  1070,  1048,  1027,  1005,  984,   964,   943,   923,   903,
2288      883,   863,   843,   824,   805,   786,   767,   749,   730,   712,
2289      694,   677,   659,   642,   625,   608,   592,   575,   559,   543,
2290      527,   512,   496,   481,   466,   451,   436,   422,   408,   394,
2291      380,   366,   352,   339,   326,   313,   301,   288,   276,   264,
2292      252,   241,   229,   218,   207,   196,   185,   175,   165,   155,
2293      145,   135,   125,   116,   107,   98,    89,    80,    72,    63,
2294      55,    48,    40,    33,    25,    18,    11,    4,     -3,    -9,
2295      -16,   -23,   -29,   -35,   -41,   -47,   -53,   -58,   -62,   -67,
2296      -71,   -75,   -79,   -82,   -86,   -89,   -93,   -97,   -101,  -104,
2297      -108,  -112,  -115,  -118,  -122,  -125,  -127,  -130,  -132,  -134,
2298      -136,  -137,  -138,  -139,  -140,  -141,  -142,  -143,  -143,  -144,
2299      -144,  -145,  -145,  -146,  -146,  -146,  -147,  -147,  -147,  -147,
2300      -147,  -147,  -147,  -146,  -146,  -145,  -144,  -143,  -142,  -141,
2301      -140,  -138,  -137,  -135,  -134,  -132,  -130,  -129,  -127,  -126,
2302      -124,  -122,  -121,  -119,  -117,  -115,  -113,  -111,  -109,  -106,
2303      -104,  -102,  -99,   -97,   -94,   -92,   -89,   -87,   -85,   -82,
2304      -80,   -77,   -74,   -72,   -69,   -67,   -64,   -61,   -59,   -56,
2305      -53,   -50,   -48,   -45,   -42,   -39,   -37,   -34,   -31,   -28,
2306      -26,   -23,   -20,   -17,   -15,   -12,   -9,    -7,    -4,    -1,
2307      1,     4,     7,     9,     12,    14,    17,    19,    22,    24,
2308      27,    29,    31,    34,    36,    38,    40,    43,    45,    47,
2309      49,    51,    53,    55,    57,    59,    60,    62,    64,    65,
2310      67,    69,    70,    71,    73,    74,    76,    77,    78,    79,
2311      81,    82,    83,    84,    84,    85,    86,    86,    87,    88,
2312      88,    88,    89,    89,    89,    90,    90,    90,    90,    91,
2313      91,    91,    91,    90,    90,    90,    89,    89,    88,    88,
2314      87,    86,    85,    84,    83,    83,    82,    81,    80,    79,
2315      78,    77,    75,    74,    73,    72,    71,    70,    68,    67,
2316      66,    64,    62,    61,    59,    57,    55,    53,    51,    49,
2317      47,    44,    42,    40,    38,    36,    34,    33,    31,    29,
2318      27,    25,    23,    20,    18,    16,    13,    11,    8,     6,
2319      3,     1,     -1,    -4,    -6,    -9,    -11,   -13,   -16,   -18,
2320      -21,   -23,   -25,   -28,   -30,   -33,   -35,   -38,   -40,   -43,
2321      -45,   -47,   -50,   -52,   -55,   -57,   -59,   -62,   -64,   -66,
2322      -69,   -71,   -73,   -76,   -78,   -80,   -83,   -85,   -87,   -89,
2323      -92,   -94,   -96,   -99,   -101,  -103,  -105,  -107,  -110,  -112,
2324      -114,  -116,  -119,  -121,  -123,  -125,  -128,  -130,  -132,  -135,
2325      -137,  -139,  -142,  -144,  -146,  -149,  -151,  -154,  -156,  -159,
2326      -162,  -164,  -167,  -170,  -172,  -175,  -178,  -180,  -182,  -185,
2327      -187,  -189,  -191,  -193,  -195,  -197,  -199,  -201,  -202,  -204,
2328      -205,  -207,  -208,  -209,  -210,  -211,  -213,  -214,  -214,  -215,
2329      -216,  -217,  -218,  -219,  -219,  -220,  -220,  -221,  -221,  -222,
2330      -222,  -222,  -222,  -223,  -223,  -223,  -223,  -223,  -223,  -223,
2331      -223,  -222,  -222,  -222,  -222,  -221,  -221,  -220,  -220,  -219,
2332      -219,  -218,  -217,  -217,  -216,  -215,  -215,  -214,  -213,  -213,
2333      -212,  -211,  -210,  -210,  -209,  -208,  -207,  -206,  -205,  -204,
2334      -202,  -201,  -200,  -199,  -197,  -196,  -195,  -193,  -192,  -190,
2335      -189,  -187,  -185,  -184,  -182,  -181,  -179,  -177,  -176,  -174,
2336      -172,  -170,  -169,  -167,  -165,  -163,  -162,  -160,  -158,  -156,
2337      -154,  -153,  -151,  -149,  -148,  -146,  -144,  -143,  -141,  -140,
2338      -138,  -137,  -135,  -134,  -133,  -131,  -130,  -129,  -128,  -127,
2339      -125,  -124,  -123,  -121,  -120,  -118,  -116,  -115,  -113,  -111,
2340      -109,  -107,  -105,  -103,  -101,  -99,   -97,   -95,   -93,   -91,
2341      -88,   -86,   -84,   -82,   -79,   -77,   -75,   -73,   -70,   -68,
2342      -66,   -64,   -61,   -59,   -57,   -55,   -53,   -51,   -49,   -46,
2343      -44,   -42,   -40,   -39,   -37,   -35,   -33,   -31,   -29,   -28,
2344      -26,   -24,   -22,   -21,   -19,   -18,   -16,   -15,   -13,   -12,
2345      -11,   -9,    -8,    -7,    -6,    -5,    -4,    -3,    -2,    -1,
2346      0,     1,     2,     3,     4,     5,     5,     6,     7,     7,
2347      8,     8,     9,     9,     10,    10,    10,    10,    11,    11,
2348      11,    12,    12,    12,    12,    12,    13,    13,    13,    13,
2349      13,    13,    13,    13,    13,    12,    12,    12,    12,    12,
2350      12,    12,    11,    11,    11,    11,    11,    10,    10,    10,
2351      10,    9,     9,     9,     9,     9,     8,     8,     8,     7,
2352      7,     7,     7,     6,     6,     6,     6,     5,     5,     5,
2353      5,     4,     4,     4,     4,     4,     3,     3,     3,     3,
2354      3,     2,     2,     2,     2,     2,     2,     2,     1,     1,
2355      1,     1,     1,     1,     1,     1,     1,     1,     0,     0,
2356      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2357      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2358      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2359      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2360      0,     0,     0,     0,     0,     0,     0,     0,     1,     1,
2361      1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
2362      2,     2,     2,     2,     2,     2,     2,     2,     3,     3,
2363      3,     3,     3,     3,     3,     4,     4,     4,     4,     4,
2364      4,     4,     4,     5,     5,     5,     5,     5,     5,     5,
2365      5,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2366      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2367      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2368      5,     5,     5,     5,     5,     5,     4,     4,     4,     4,
2369      4,     4,     3,     3,     3,     3,     2,     2,     2,     1,
2370      1,     1,     0,     0,     0,     -1,    -1,    -1,    -2,    -2,
2371      -2,    -3,    -3,    -3,    -4,    -4,    -5,    -5,    -5,    -6,
2372      -6,    -7,    -7,    -7,    -8,    -8,    -9,    -9,    -9,    -10,
2373      -10,   -11,   -11,   -11,   -12,   -12,   -13,   -13,   -13,   -14,
2374      -14,   -14,   -15,   -15,   -16,   -16,   -16,   -17,   -17,   -17,
2375      -18,   -18,   -18,   -18,   -19,   -19,   -19,   -19,   -20,   -20,
2376      -20,   -20,   -21,   -21,   -21,   -21,   -21,   -22,   -22,   -22,
2377      -22,   -22,   -22,   -22,   -22,   -23,   -23,   -23,   -23,   -23,
2378      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,
2379      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,
2380      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -22,
2381      -22,   -22,   -22,   -22,   -22,   -22,   -22,   -21,   -21,   -21,
2382      -21,   -21,   -21,   -20,   -20,   -20,   -20,   -20,   -20,   -19,
2383      -19,   -19,   -19,   -18,   -18,   -18,   -18,   -18},
2384 
2385     // const WORD16 only_long_window_sine_960[960] =
2386     {
2387         0x001B, 0x7FFF, 0x0050, 0x7FFF, 0x0086, 0x7FFF, 0x00BC, 0x7FFE, 0x00F1, 0x7FFE,
2388         0x0127, 0x7FFE, 0x015C, 0x7FFD, 0x0192, 0x7FFD, 0x01C8, 0x7FFC, 0x01FD, 0x7FFB,
2389         0x0233, 0x7FFA, 0x0269, 0x7FF9, 0x029E, 0x7FF8, 0x02D4, 0x7FF7, 0x0309, 0x7FF6,
2390         0x033F, 0x7FF4, 0x0375, 0x7FF3, 0x03AA, 0x7FF2, 0x03E0, 0x7FF0, 0x0415, 0x7FEE,
2391         0x044B, 0x7FED, 0x0480, 0x7FEB, 0x04B6, 0x7FE9, 0x04EC, 0x7FE7, 0x0521, 0x7FE5,
2392         0x0557, 0x7FE2, 0x058C, 0x7FE0, 0x05C2, 0x7FDE, 0x05F7, 0x7FDB, 0x062D, 0x7FD9,
2393         0x0663, 0x7FD6, 0x0698, 0x7FD3, 0x06CE, 0x7FD1, 0x0703, 0x7FCE, 0x0739, 0x7FCB,
2394         0x076E, 0x7FC8, 0x07A4, 0x7FC5, 0x07D9, 0x7FC1, 0x080F, 0x7FBE, 0x0844, 0x7FBB,
2395         0x087A, 0x7FB7, 0x08AF, 0x7FB3, 0x08E5, 0x7FB0, 0x091A, 0x7FAC, 0x0950, 0x7FA8,
2396         0x0985, 0x7FA4, 0x09BB, 0x7FA0, 0x09F0, 0x7F9C, 0x0A26, 0x7F98, 0x0A5B, 0x7F94,
2397         0x0A90, 0x7F8F, 0x0AC6, 0x7F8B, 0x0AFB, 0x7F86, 0x0B31, 0x7F82, 0x0B66, 0x7F7D,
2398         0x0B9C, 0x7F78, 0x0BD1, 0x7F73, 0x0C06, 0x7F6E, 0x0C3C, 0x7F69, 0x0C71, 0x7F64,
2399         0x0CA6, 0x7F5F, 0x0CDC, 0x7F59, 0x0D11, 0x7F54, 0x0D46, 0x7F4E, 0x0D7C, 0x7F49,
2400         0x0DB1, 0x7F43, 0x0DE6, 0x7F3D, 0x0E1C, 0x7F37, 0x0E51, 0x7F31, 0x0E86, 0x7F2B,
2401         0x0EBB, 0x7F25, 0x0EF1, 0x7F1F, 0x0F26, 0x7F19, 0x0F5B, 0x7F12, 0x0F90, 0x7F0C,
2402         0x0FC6, 0x7F05, 0x0FFB, 0x7EFF, 0x1030, 0x7EF8, 0x1065, 0x7EF1, 0x109A, 0x7EEA,
2403         0x10D0, 0x7EE3, 0x1105, 0x7EDC, 0x113A, 0x7ED5, 0x116F, 0x7ECE, 0x11A4, 0x7EC6,
2404         0x11D9, 0x7EBF, 0x120E, 0x7EB7, 0x1243, 0x7EB0, 0x1278, 0x7EA8, 0x12AD, 0x7EA0,
2405         0x12E2, 0x7E98, 0x1317, 0x7E90, 0x134C, 0x7E88, 0x1381, 0x7E80, 0x13B6, 0x7E78,
2406         0x13EB, 0x7E70, 0x1420, 0x7E67, 0x1455, 0x7E5F, 0x148A, 0x7E56, 0x14BF, 0x7E4E,
2407         0x14F4, 0x7E45, 0x1529, 0x7E3C, 0x155E, 0x7E33, 0x1593, 0x7E2A, 0x15C7, 0x7E21,
2408         0x15FC, 0x7E18, 0x1631, 0x7E0F, 0x1666, 0x7E05, 0x169B, 0x7DFC, 0x16CF, 0x7DF2,
2409         0x1704, 0x7DE9, 0x1739, 0x7DDF, 0x176E, 0x7DD5, 0x17A2, 0x7DCC, 0x17D7, 0x7DC2,
2410         0x180C, 0x7DB8, 0x1840, 0x7DAD, 0x1875, 0x7DA3, 0x18AA, 0x7D99, 0x18DE, 0x7D8F,
2411         0x1913, 0x7D84, 0x1947, 0x7D7A, 0x197C, 0x7D6F, 0x19B0, 0x7D64, 0x19E5, 0x7D59,
2412         0x1A19, 0x7D4F, 0x1A4E, 0x7D44, 0x1A82, 0x7D39, 0x1AB7, 0x7D2D, 0x1AEB, 0x7D22,
2413         0x1B20, 0x7D17, 0x1B54, 0x7D0B, 0x1B88, 0x7D00, 0x1BBD, 0x7CF4, 0x1BF1, 0x7CE9,
2414         0x1C25, 0x7CDD, 0x1C5A, 0x7CD1, 0x1C8E, 0x7CC5, 0x1CC2, 0x7CB9, 0x1CF6, 0x7CAD,
2415         0x1D2B, 0x7CA1, 0x1D5F, 0x7C95, 0x1D93, 0x7C88, 0x1DC7, 0x7C7C, 0x1DFB, 0x7C6F,
2416         0x1E2F, 0x7C63, 0x1E64, 0x7C56, 0x1E98, 0x7C49, 0x1ECC, 0x7C3C, 0x1F00, 0x7C30,
2417         0x1F34, 0x7C22, 0x1F68, 0x7C15, 0x1F9C, 0x7C08, 0x1FD0, 0x7BFB, 0x2004, 0x7BEE,
2418         0x2037, 0x7BE0, 0x206B, 0x7BD3, 0x209F, 0x7BC5, 0x20D3, 0x7BB7, 0x2107, 0x7BA9,
2419         0x213B, 0x7B9C, 0x216E, 0x7B8E, 0x21A2, 0x7B80, 0x21D6, 0x7B71, 0x220A, 0x7B63,
2420         0x223D, 0x7B55, 0x2271, 0x7B47, 0x22A4, 0x7B38, 0x22D8, 0x7B29, 0x230C, 0x7B1B,
2421         0x233F, 0x7B0C, 0x2373, 0x7AFD, 0x23A6, 0x7AEE, 0x23DA, 0x7ADF, 0x240D, 0x7AD0,
2422         0x2441, 0x7AC1, 0x2474, 0x7AB2, 0x24A7, 0x7AA3, 0x24DB, 0x7A93, 0x250E, 0x7A84,
2423         0x2541, 0x7A74, 0x2575, 0x7A65, 0x25A8, 0x7A55, 0x25DB, 0x7A45, 0x260E, 0x7A35,
2424         0x2642, 0x7A25, 0x2675, 0x7A15, 0x26A8, 0x7A05, 0x26DB, 0x79F5, 0x270E, 0x79E4,
2425         0x2741, 0x79D4, 0x2774, 0x79C4, 0x27A7, 0x79B3, 0x27DA, 0x79A2, 0x280D, 0x7992,
2426         0x2840, 0x7981, 0x2873, 0x7970, 0x28A6, 0x795F, 0x28D8, 0x794E, 0x290B, 0x793D,
2427         0x293E, 0x792B, 0x2971, 0x791A, 0x29A3, 0x7909, 0x29D6, 0x78F7, 0x2A09, 0x78E6,
2428         0x2A3B, 0x78D4, 0x2A6E, 0x78C2, 0x2AA1, 0x78B0, 0x2AD3, 0x789F, 0x2B06, 0x788D,
2429         0x2B38, 0x787B, 0x2B6B, 0x7868, 0x2B9D, 0x7856, 0x2BCF, 0x7844, 0x2C02, 0x7831,
2430         0x2C34, 0x781F, 0x2C66, 0x780C, 0x2C99, 0x77FA, 0x2CCB, 0x77E7, 0x2CFD, 0x77D4,
2431         0x2D2F, 0x77C1, 0x2D61, 0x77AE, 0x2D94, 0x779B, 0x2DC6, 0x7788, 0x2DF8, 0x7775,
2432         0x2E2A, 0x7762, 0x2E5C, 0x774E, 0x2E8E, 0x773B, 0x2EC0, 0x7727, 0x2EF1, 0x7714,
2433         0x2F23, 0x7700, 0x2F55, 0x76EC, 0x2F87, 0x76D8, 0x2FB9, 0x76C4, 0x2FEA, 0x76B0,
2434         0x301C, 0x769C, 0x304E, 0x7688, 0x307F, 0x7674, 0x30B1, 0x765F, 0x30E3, 0x764B,
2435         0x3114, 0x7636, 0x3146, 0x7622, 0x3177, 0x760D, 0x31A9, 0x75F8, 0x31DA, 0x75E4,
2436         0x320B, 0x75CF, 0x323D, 0x75BA, 0x326E, 0x75A5, 0x329F, 0x758F, 0x32D0, 0x757A,
2437         0x3302, 0x7565, 0x3333, 0x754F, 0x3364, 0x753A, 0x3395, 0x7524, 0x33C6, 0x750F,
2438         0x33F7, 0x74F9, 0x3428, 0x74E3, 0x3459, 0x74CD, 0x348A, 0x74B7, 0x34BB, 0x74A1,
2439         0x34EC, 0x748B, 0x351C, 0x7475, 0x354D, 0x745F, 0x357E, 0x7448, 0x35AF, 0x7432,
2440         0x35DF, 0x741B, 0x3610, 0x7405, 0x3640, 0x73EE, 0x3671, 0x73D7, 0x36A1, 0x73C0,
2441         0x36D2, 0x73AA, 0x3702, 0x7393, 0x3733, 0x737B, 0x3763, 0x7364, 0x3793, 0x734D,
2442         0x37C4, 0x7336, 0x37F4, 0x731E, 0x3824, 0x7307, 0x3854, 0x72EF, 0x3884, 0x72D8,
2443         0x38B5, 0x72C0, 0x38E5, 0x72A8, 0x3915, 0x7290, 0x3945, 0x7278, 0x3974, 0x7260,
2444         0x39A4, 0x7248, 0x39D4, 0x7230, 0x3A04, 0x7218, 0x3A34, 0x71FF, 0x3A64, 0x71E7,
2445         0x3A93, 0x71CF, 0x3AC3, 0x71B6, 0x3AF2, 0x719D, 0x3B22, 0x7185, 0x3B52, 0x716C,
2446         0x3B81, 0x7153, 0x3BB1, 0x713A, 0x3BE0, 0x7121, 0x3C0F, 0x7108, 0x3C3F, 0x70EF,
2447         0x3C6E, 0x70D5, 0x3C9D, 0x70BC, 0x3CCC, 0x70A2, 0x3CFB, 0x7089, 0x3D2B, 0x706F,
2448         0x3D5A, 0x7056, 0x3D89, 0x703C, 0x3DB8, 0x7022, 0x3DE7, 0x7008, 0x3E16, 0x6FEE,
2449         0x3E44, 0x6FD4, 0x3E73, 0x6FBA, 0x3EA2, 0x6FA0, 0x3ED1, 0x6F86, 0x3EFF, 0x6F6B,
2450         0x3F2E, 0x6F51, 0x3F5D, 0x6F36, 0x3F8B, 0x6F1C, 0x3FBA, 0x6F01, 0x3FE8, 0x6EE6,
2451         0x4017, 0x6ECC, 0x4045, 0x6EB1, 0x4073, 0x6E96, 0x40A2, 0x6E7B, 0x40D0, 0x6E60,
2452         0x40FE, 0x6E44, 0x412C, 0x6E29, 0x415A, 0x6E0E, 0x4189, 0x6DF2, 0x41B7, 0x6DD7,
2453         0x41E5, 0x6DBB, 0x4213, 0x6DA0, 0x4240, 0x6D84, 0x426E, 0x6D68, 0x429C, 0x6D4C,
2454         0x42CA, 0x6D30, 0x42F8, 0x6D14, 0x4325, 0x6CF8, 0x4353, 0x6CDC, 0x4380, 0x6CC0,
2455         0x43AE, 0x6CA4, 0x43DB, 0x6C87, 0x4409, 0x6C6B, 0x4436, 0x6C4E, 0x4464, 0x6C32,
2456         0x4491, 0x6C15, 0x44BE, 0x6BF8, 0x44EB, 0x6BDB, 0x4519, 0x6BBE, 0x4546, 0x6BA1,
2457         0x4573, 0x6B84, 0x45A0, 0x6B67, 0x45CD, 0x6B4A, 0x45FA, 0x6B2D, 0x4626, 0x6B0F,
2458         0x4653, 0x6AF2, 0x4680, 0x6AD5, 0x46AD, 0x6AB7, 0x46D9, 0x6A99, 0x4706, 0x6A7C,
2459         0x4733, 0x6A5E, 0x475F, 0x6A40, 0x478C, 0x6A22, 0x47B8, 0x6A04, 0x47E4, 0x69E6,
2460         0x4811, 0x69C8, 0x483D, 0x69AA, 0x4869, 0x698B, 0x4896, 0x696D, 0x48C2, 0x694F,
2461         0x48EE, 0x6930, 0x491A, 0x6911, 0x4946, 0x68F3, 0x4972, 0x68D4, 0x499E, 0x68B5,
2462         0x49C9, 0x6896, 0x49F5, 0x6877, 0x4A21, 0x6858, 0x4A4D, 0x6839, 0x4A78, 0x681A,
2463         0x4AA4, 0x67FB, 0x4ACF, 0x67DC, 0x4AFB, 0x67BC, 0x4B26, 0x679D, 0x4B52, 0x677D,
2464         0x4B7D, 0x675E, 0x4BA8, 0x673E, 0x4BD3, 0x671E, 0x4BFF, 0x66FF, 0x4C2A, 0x66DF,
2465         0x4C55, 0x66BF, 0x4C80, 0x669F, 0x4CAB, 0x667F, 0x4CD6, 0x665E, 0x4D01, 0x663E,
2466         0x4D2B, 0x661E, 0x4D56, 0x65FE, 0x4D81, 0x65DD, 0x4DAB, 0x65BD, 0x4DD6, 0x659C,
2467         0x4E01, 0x657B, 0x4E2B, 0x655B, 0x4E55, 0x653A, 0x4E80, 0x6519, 0x4EAA, 0x64F8,
2468         0x4ED4, 0x64D7, 0x4EFF, 0x64B6, 0x4F29, 0x6495, 0x4F53, 0x6474, 0x4F7D, 0x6453,
2469         0x4FA7, 0x6431, 0x4FD1, 0x6410, 0x4FFB, 0x63EE, 0x5025, 0x63CD, 0x504E, 0x63AB,
2470         0x5078, 0x638A, 0x50A2, 0x6368, 0x50CB, 0x6346, 0x50F5, 0x6324, 0x511E, 0x6302,
2471         0x5148, 0x62E0, 0x5171, 0x62BE, 0x519B, 0x629C, 0x51C4, 0x627A, 0x51ED, 0x6257,
2472         0x5216, 0x6235, 0x523F, 0x6213, 0x5268, 0x61F0, 0x5291, 0x61CE, 0x52BA, 0x61AB,
2473         0x52E3, 0x6188, 0x530C, 0x6166, 0x5335, 0x6143, 0x535E, 0x6120, 0x5386, 0x60FD,
2474         0x53AF, 0x60DA, 0x53D7, 0x60B7, 0x5400, 0x6094, 0x5428, 0x6070, 0x5451, 0x604D,
2475         0x5479, 0x602A, 0x54A1, 0x6006, 0x54C9, 0x5FE3, 0x54F2, 0x5FBF, 0x551A, 0x5F9C,
2476         0x5542, 0x5F78, 0x556A, 0x5F54, 0x5591, 0x5F31, 0x55B9, 0x5F0D, 0x55E1, 0x5EE9,
2477         0x5609, 0x5EC5, 0x5630, 0x5EA1, 0x5658, 0x5E7D, 0x5680, 0x5E58, 0x56A7, 0x5E34,
2478         0x56CF, 0x5E10, 0x56F6, 0x5DEB, 0x571D, 0x5DC7, 0x5745, 0x5DA2, 0x576C, 0x5D7E,
2479         0x5793, 0x5D59, 0x57BA, 0x5D34, 0x57E1, 0x5D10, 0x5808, 0x5CEB, 0x582F, 0x5CC6,
2480         0x5856, 0x5CA1, 0x587C, 0x5C7C, 0x58A3, 0x5C57, 0x58CA, 0x5C32, 0x58F0, 0x5C0C,
2481         0x5917, 0x5BE7, 0x593D, 0x5BC2, 0x5964, 0x5B9C, 0x598A, 0x5B77, 0x59B0, 0x5B51,
2482         0x59D7, 0x5B2C, 0x59FD, 0x5B06, 0x5A23, 0x5AE0, 0x5A49, 0x5ABB, 0x5A6F, 0x5A95
2483     },
2484 
2485     // const WORD16 only_long_window_kbd_960[960] =
2486     {
2487         0x000A, 0x7FFF, 0x000F, 0x7FFF, 0x0013, 0x7FFF, 0x0016, 0x7FFF, 0x001A, 0x7FFF,
2488         0x001D, 0x7FFF, 0x0021, 0x7FFF, 0x0025, 0x7FFF, 0x0028, 0x7FFF, 0x002C, 0x7FFF,
2489         0x002F, 0x7FFF, 0x0033, 0x7FFF, 0x0037, 0x7FFF, 0x003B, 0x7FFF, 0x003F, 0x7FFF,
2490         0x0043, 0x7FFF, 0x0047, 0x7FFF, 0x004B, 0x7FFF, 0x0050, 0x7FFF, 0x0054, 0x7FFF,
2491         0x0059, 0x7FFF, 0x005D, 0x7FFF, 0x0062, 0x7FFF, 0x0067, 0x7FFF, 0x006C, 0x7FFF,
2492         0x0071, 0x7FFF, 0x0076, 0x7FFF, 0x007B, 0x7FFF, 0x0080, 0x7FFF, 0x0086, 0x7FFF,
2493         0x008C, 0x7FFF, 0x0091, 0x7FFF, 0x0097, 0x7FFF, 0x009D, 0x7FFF, 0x00A3, 0x7FFF,
2494         0x00A9, 0x7FFF, 0x00B0, 0x7FFF, 0x00B6, 0x7FFE, 0x00BD, 0x7FFE, 0x00C3, 0x7FFE,
2495         0x00CA, 0x7FFE, 0x00D1, 0x7FFE, 0x00D8, 0x7FFE, 0x00E0, 0x7FFE, 0x00E7, 0x7FFE,
2496         0x00EF, 0x7FFE, 0x00F6, 0x7FFE, 0x00FE, 0x7FFE, 0x0106, 0x7FFE, 0x010E, 0x7FFE,
2497         0x0116, 0x7FFE, 0x011F, 0x7FFE, 0x0127, 0x7FFE, 0x0130, 0x7FFE, 0x0139, 0x7FFE,
2498         0x0142, 0x7FFD, 0x014B, 0x7FFD, 0x0154, 0x7FFD, 0x015E, 0x7FFD, 0x0167, 0x7FFD,
2499         0x0171, 0x7FFD, 0x017B, 0x7FFD, 0x0185, 0x7FFD, 0x018F, 0x7FFD, 0x019A, 0x7FFC,
2500         0x01A4, 0x7FFC, 0x01AF, 0x7FFC, 0x01BA, 0x7FFC, 0x01C5, 0x7FFC, 0x01D0, 0x7FFC,
2501         0x01DC, 0x7FFC, 0x01E7, 0x7FFB, 0x01F3, 0x7FFB, 0x01FF, 0x7FFB, 0x020B, 0x7FFB,
2502         0x0218, 0x7FFB, 0x0224, 0x7FFA, 0x0231, 0x7FFA, 0x023E, 0x7FFA, 0x024B, 0x7FFA,
2503         0x0258, 0x7FFA, 0x0265, 0x7FF9, 0x0273, 0x7FF9, 0x0281, 0x7FF9, 0x028F, 0x7FF8,
2504         0x029D, 0x7FF8, 0x02AC, 0x7FF8, 0x02BA, 0x7FF8, 0x02C9, 0x7FF7, 0x02D8, 0x7FF7,
2505         0x02E7, 0x7FF7, 0x02F7, 0x7FF6, 0x0306, 0x7FF6, 0x0316, 0x7FF5, 0x0326, 0x7FF5,
2506         0x0336, 0x7FF5, 0x0347, 0x7FF4, 0x0357, 0x7FF4, 0x0368, 0x7FF3, 0x0379, 0x7FF3,
2507         0x038A, 0x7FF2, 0x039C, 0x7FF2, 0x03AE, 0x7FF1, 0x03BF, 0x7FF1, 0x03D2, 0x7FF0,
2508         0x03E4, 0x7FF0, 0x03F7, 0x7FEF, 0x0409, 0x7FEF, 0x041C, 0x7FEE, 0x0430, 0x7FED,
2509         0x0443, 0x7FED, 0x0457, 0x7FEC, 0x046B, 0x7FEB, 0x047F, 0x7FEB, 0x0493, 0x7FEA,
2510         0x04A8, 0x7FE9, 0x04BD, 0x7FE9, 0x04D2, 0x7FE8, 0x04E7, 0x7FE7, 0x04FD, 0x7FE6,
2511         0x0513, 0x7FE5, 0x0529, 0x7FE4, 0x053F, 0x7FE3, 0x0555, 0x7FE3, 0x056C, 0x7FE2,
2512         0x0583, 0x7FE1, 0x059A, 0x7FE0, 0x05B2, 0x7FDF, 0x05CA, 0x7FDD, 0x05E2, 0x7FDC,
2513         0x05FA, 0x7FDB, 0x0612, 0x7FDA, 0x062B, 0x7FD9, 0x0644, 0x7FD8, 0x065D, 0x7FD6,
2514         0x0677, 0x7FD5, 0x0690, 0x7FD4, 0x06AA, 0x7FD3, 0x06C5, 0x7FD1, 0x06DF, 0x7FD0,
2515         0x06FA, 0x7FCE, 0x0715, 0x7FCD, 0x0730, 0x7FCB, 0x074C, 0x7FCA, 0x0768, 0x7FC8,
2516         0x0784, 0x7FC6, 0x07A0, 0x7FC5, 0x07BD, 0x7FC3, 0x07D9, 0x7FC1, 0x07F6, 0x7FC0,
2517         0x0814, 0x7FBE, 0x0832, 0x7FBC, 0x084F, 0x7FBA, 0x086E, 0x7FB8, 0x088C, 0x7FB6,
2518         0x08AB, 0x7FB4, 0x08CA, 0x7FB2, 0x08E9, 0x7FB0, 0x0909, 0x7FAD, 0x0928, 0x7FAB,
2519         0x0949, 0x7FA9, 0x0969, 0x7FA6, 0x098A, 0x7FA4, 0x09AA, 0x7FA1, 0x09CC, 0x7F9F,
2520         0x09ED, 0x7F9C, 0x0A0F, 0x7F9A, 0x0A31, 0x7F97, 0x0A53, 0x7F94, 0x0A76, 0x7F91,
2521         0x0A99, 0x7F8F, 0x0ABC, 0x7F8C, 0x0ADF, 0x7F89, 0x0B03, 0x7F86, 0x0B27, 0x7F82,
2522         0x0B4B, 0x7F7F, 0x0B70, 0x7F7C, 0x0B94, 0x7F79, 0x0BBA, 0x7F75, 0x0BDF, 0x7F72,
2523         0x0C05, 0x7F6E, 0x0C2B, 0x7F6B, 0x0C51, 0x7F67, 0x0C77, 0x7F63, 0x0C9E, 0x7F5F,
2524         0x0CC5, 0x7F5B, 0x0CED, 0x7F58, 0x0D14, 0x7F53, 0x0D3C, 0x7F4F, 0x0D65, 0x7F4B,
2525         0x0D8D, 0x7F47, 0x0DB6, 0x7F42, 0x0DDF, 0x7F3E, 0x0E08, 0x7F39, 0x0E32, 0x7F35,
2526         0x0E5C, 0x7F30, 0x0E86, 0x7F2B, 0x0EB1, 0x7F26, 0x0EDC, 0x7F21, 0x0F07, 0x7F1C,
2527         0x0F32, 0x7F17, 0x0F5E, 0x7F12, 0x0F8A, 0x7F0D, 0x0FB6, 0x7F07, 0x0FE3, 0x7F02,
2528         0x1010, 0x7EFC, 0x103D, 0x7EF6, 0x106A, 0x7EF0, 0x1098, 0x7EEA, 0x10C6, 0x7EE4,
2529         0x10F4, 0x7EDE, 0x1123, 0x7ED8, 0x1152, 0x7ED2, 0x1181, 0x7ECB, 0x11B0, 0x7EC5,
2530         0x11E0, 0x7EBE, 0x1210, 0x7EB7, 0x1240, 0x7EB0, 0x1271, 0x7EA9, 0x12A2, 0x7EA2,
2531         0x12D3, 0x7E9B, 0x1304, 0x7E93, 0x1336, 0x7E8C, 0x1368, 0x7E84, 0x139A, 0x7E7C,
2532         0x13CD, 0x7E75, 0x1400, 0x7E6D, 0x1433, 0x7E64, 0x1466, 0x7E5C, 0x149A, 0x7E54,
2533         0x14CE, 0x7E4B, 0x1502, 0x7E43, 0x1537, 0x7E3A, 0x156C, 0x7E31, 0x15A1, 0x7E28,
2534         0x15D6, 0x7E1F, 0x160C, 0x7E15, 0x1642, 0x7E0C, 0x1678, 0x7E02, 0x16AE, 0x7DF8,
2535         0x16E5, 0x7DEF, 0x171C, 0x7DE4, 0x1754, 0x7DDA, 0x178B, 0x7DD0, 0x17C3, 0x7DC5,
2536         0x17FB, 0x7DBB, 0x1833, 0x7DB0, 0x186C, 0x7DA5, 0x18A5, 0x7D9A, 0x18DE, 0x7D8F,
2537         0x1918, 0x7D83, 0x1952, 0x7D78, 0x198C, 0x7D6C, 0x19C6, 0x7D60, 0x1A00, 0x7D54,
2538         0x1A3B, 0x7D48, 0x1A76, 0x7D3B, 0x1AB1, 0x7D2F, 0x1AED, 0x7D22, 0x1B29, 0x7D15,
2539         0x1B65, 0x7D08, 0x1BA1, 0x7CFA, 0x1BDE, 0x7CED, 0x1C1B, 0x7CDF, 0x1C58, 0x7CD2,
2540         0x1C95, 0x7CC4, 0x1CD3, 0x7CB5, 0x1D11, 0x7CA7, 0x1D4F, 0x7C98, 0x1D8D, 0x7C8A,
2541         0x1DCC, 0x7C7B, 0x1E0B, 0x7C6C, 0x1E4A, 0x7C5C, 0x1E89, 0x7C4D, 0x1EC9, 0x7C3D,
2542         0x1F08, 0x7C2D, 0x1F48, 0x7C1D, 0x1F89, 0x7C0D, 0x1FC9, 0x7BFD, 0x200A, 0x7BEC,
2543         0x204B, 0x7BDB, 0x208C, 0x7BCA, 0x20CE, 0x7BB9, 0x210F, 0x7BA7, 0x2151, 0x7B95,
2544         0x2193, 0x7B84, 0x21D6, 0x7B71, 0x2218, 0x7B5F, 0x225B, 0x7B4D, 0x229E, 0x7B3A,
2545         0x22E1, 0x7B27, 0x2325, 0x7B14, 0x2369, 0x7B00, 0x23AC, 0x7AED, 0x23F1, 0x7AD9,
2546         0x2435, 0x7AC5, 0x2479, 0x7AB0, 0x24BE, 0x7A9C, 0x2503, 0x7A87, 0x2548, 0x7A72,
2547         0x258D, 0x7A5D, 0x25D3, 0x7A48, 0x2619, 0x7A32, 0x265F, 0x7A1C, 0x26A5, 0x7A06,
2548         0x26EB, 0x79F0, 0x2731, 0x79D9, 0x2778, 0x79C2, 0x27BF, 0x79AB, 0x2806, 0x7994,
2549         0x284D, 0x797C, 0x2895, 0x7965, 0x28DC, 0x794C, 0x2924, 0x7934, 0x296C, 0x791C,
2550         0x29B4, 0x7903, 0x29FC, 0x78EA, 0x2A45, 0x78D1, 0x2A8E, 0x78B7, 0x2AD6, 0x789D,
2551         0x2B1F, 0x7883, 0x2B68, 0x7869, 0x2BB2, 0x784F, 0x2BFB, 0x7834, 0x2C45, 0x7819,
2552         0x2C8E, 0x77FE, 0x2CD8, 0x77E2, 0x2D22, 0x77C6, 0x2D6D, 0x77AA, 0x2DB7, 0x778E,
2553         0x2E01, 0x7771, 0x2E4C, 0x7754, 0x2E97, 0x7737, 0x2EE2, 0x771A, 0x2F2D, 0x76FC,
2554         0x2F78, 0x76DE, 0x2FC3, 0x76C0, 0x300F, 0x76A2, 0x305A, 0x7683, 0x30A6, 0x7664,
2555         0x30F2, 0x7645, 0x313D, 0x7625, 0x318A, 0x7606, 0x31D6, 0x75E5, 0x3222, 0x75C5,
2556         0x326E, 0x75A4, 0x32BB, 0x7584, 0x3307, 0x7562, 0x3354, 0x7541, 0x33A1, 0x751F,
2557         0x33EE, 0x74FD, 0x343B, 0x74DB, 0x3488, 0x74B8, 0x34D5, 0x7496, 0x3522, 0x7472,
2558         0x356F, 0x744F, 0x35BD, 0x742B, 0x360A, 0x7407, 0x3658, 0x73E3, 0x36A5, 0x73BF,
2559         0x36F3, 0x739A, 0x3741, 0x7375, 0x378F, 0x734F, 0x37DD, 0x732A, 0x382B, 0x7304,
2560         0x3879, 0x72DD, 0x38C7, 0x72B7, 0x3915, 0x7290, 0x3963, 0x7269, 0x39B1, 0x7242,
2561         0x3A00, 0x721A, 0x3A4E, 0x71F2, 0x3A9C, 0x71CA, 0x3AEB, 0x71A1, 0x3B39, 0x7178,
2562         0x3B88, 0x714F, 0x3BD7, 0x7126, 0x3C25, 0x70FC, 0x3C74, 0x70D2, 0x3CC2, 0x70A8,
2563         0x3D11, 0x707D, 0x3D60, 0x7052, 0x3DAE, 0x7027, 0x3DFD, 0x6FFC, 0x3E4C, 0x6FD0,
2564         0x3E9B, 0x6FA4, 0x3EEA, 0x6F78, 0x3F38, 0x6F4B, 0x3F87, 0x6F1E, 0x3FD6, 0x6EF1,
2565         0x4025, 0x6EC4, 0x4073, 0x6E96, 0x40C2, 0x6E68, 0x4111, 0x6E39, 0x4160, 0x6E0B,
2566         0x41AF, 0x6DDC, 0x41FD, 0x6DAD, 0x424C, 0x6D7D, 0x429B, 0x6D4D, 0x42E9, 0x6D1D,
2567         0x4338, 0x6CED, 0x4387, 0x6CBC, 0x43D5, 0x6C8B, 0x4424, 0x6C5A, 0x4472, 0x6C28,
2568         0x44C1, 0x6BF7, 0x450F, 0x6BC4, 0x455E, 0x6B92, 0x45AC, 0x6B5F, 0x45FA, 0x6B2C,
2569         0x4648, 0x6AF9, 0x4697, 0x6AC6, 0x46E5, 0x6A92, 0x4733, 0x6A5E, 0x4781, 0x6A29,
2570         0x47CF, 0x69F5, 0x481D, 0x69C0, 0x486B, 0x698A, 0x48B8, 0x6955, 0x4906, 0x691F,
2571         0x4954, 0x68E9, 0x49A1, 0x68B3, 0x49EF, 0x687C, 0x4A3C, 0x6845, 0x4A89, 0x680E,
2572         0x4AD7, 0x67D6, 0x4B24, 0x679F, 0x4B71, 0x6767, 0x4BBE, 0x672E, 0x4C0B, 0x66F6,
2573         0x4C57, 0x66BD, 0x4CA4, 0x6684, 0x4CF0, 0x664A, 0x4D3D, 0x6611, 0x4D89, 0x65D7,
2574         0x4DD5, 0x659D, 0x4E21, 0x6562, 0x4E6D, 0x6527, 0x4EB9, 0x64EC, 0x4F05, 0x64B1,
2575         0x4F51, 0x6476, 0x4F9C, 0x643A, 0x4FE8, 0x63FE, 0x5033, 0x63C1, 0x507E, 0x6385,
2576         0x50C9, 0x6348, 0x5114, 0x630B, 0x515E, 0x62CE, 0x51A9, 0x6290, 0x51F3, 0x6252,
2577         0x523E, 0x6214, 0x5288, 0x61D6, 0x52D2, 0x6197, 0x531C, 0x6158, 0x5365, 0x6119,
2578         0x53AF, 0x60DA, 0x53F8, 0x609A, 0x5441, 0x605B, 0x548A, 0x601B, 0x54D3, 0x5FDA,
2579         0x551C, 0x5F9A, 0x5564, 0x5F59, 0x55AD, 0x5F18, 0x55F5, 0x5ED7, 0x563D, 0x5E95,
2580         0x5685, 0x5E53, 0x56CD, 0x5E12, 0x5714, 0x5DCF, 0x575B, 0x5D8D, 0x57A3, 0x5D4A,
2581         0x57E9, 0x5D08, 0x5830, 0x5CC4, 0x5877, 0x5C81, 0x58BD, 0x5C3E, 0x5903, 0x5BFA,
2582         0x5949, 0x5BB6, 0x598F, 0x5B72, 0x59D5, 0x5B2E, 0x5A1A, 0x5AE9, 0x5A5F, 0x5AA4
2583     },
2584 
2585     // const WORD16 only_short_window_sine_120[120] =
2586     {
2587         0x00D6, 0x7FFE, 0x0283, 0x7FF9, 0x0430, 0x7FED, 0x05DD, 0x7FDD, 0x0789, 0x7FC6,
2588         0x0935, 0x7FAA, 0x0AE1, 0x7F88, 0x0C8C, 0x7F61, 0x0E36, 0x7F34, 0x0FE0, 0x7F02,
2589         0x1189, 0x7ECA, 0x1332, 0x7E8C, 0x14DA, 0x7E49, 0x1680, 0x7E01, 0x1826, 0x7DB3,
2590         0x19CB, 0x7D5F, 0x1B6E, 0x7D06, 0x1D11, 0x7CA7, 0x1EB2, 0x7C43, 0x2051, 0x7BD9,
2591         0x21F0, 0x7B6A, 0x238D, 0x7AF6, 0x2528, 0x7A7C, 0x26C1, 0x79FD, 0x2859, 0x7978,
2592         0x29EF, 0x78EE, 0x2B84, 0x785F, 0x2D16, 0x77CB, 0x2EA7, 0x7731, 0x3035, 0x7692,
2593         0x31C1, 0x75EE, 0x334B, 0x7545, 0x34D3, 0x7496, 0x3659, 0x73E3, 0x37DC, 0x732A,
2594         0x395D, 0x726C, 0x3ADB, 0x71AA, 0x3C56, 0x70E2, 0x3DCF, 0x7015, 0x3F45, 0x6F44,
2595         0x40B9, 0x6E6D, 0x4229, 0x6D92, 0x4397, 0x6CB2, 0x4502, 0x6BCD, 0x466A, 0x6AE3,
2596         0x47CE, 0x69F5, 0x4930, 0x6902, 0x4A8E, 0x680B, 0x4BE9, 0x670E, 0x4D41, 0x660E,
2597         0x4E95, 0x6509, 0x4FE6, 0x63FF, 0x5133, 0x62F1, 0x527D, 0x61DF, 0x53C3, 0x60C8,
2598         0x5506, 0x5FAE, 0x5644, 0x5E8F, 0x577F, 0x5D6B, 0x58B6, 0x5C44, 0x59EA, 0x5B19
2599     },
2600 
2601     // const WORD16 only_short_window_kbd_120[120] =
2602     {
2603         0x0001, 0x7FFF, 0x0004, 0x7FFF, 0x0008, 0x7FFF, 0x000E, 0x7FFF, 0x0016, 0x7FFF,
2604         0x0021, 0x7FFF, 0x0030, 0x7FFF, 0x0042, 0x7FFF, 0x0059, 0x7FFF, 0x0075, 0x7FFF,
2605         0x0097, 0x7FFF, 0x00C1, 0x7FFE, 0x00F2, 0x7FFE, 0x012D, 0x7FFE, 0x0171, 0x7FFD,
2606         0x01C1, 0x7FFC, 0x021D, 0x7FFB, 0x0286, 0x7FF9, 0x02FE, 0x7FF6, 0x0385, 0x7FF3,
2607         0x041E, 0x7FEE, 0x04C9, 0x7FE8, 0x0586, 0x7FE0, 0x0658, 0x7FD7, 0x0740, 0x7FCA,
2608         0x083E, 0x7FBB, 0x0953, 0x7FA8, 0x0A80, 0x7F91, 0x0BC7, 0x7F74, 0x0D27, 0x7F52,
2609         0x0EA0, 0x7F28, 0x1035, 0x7EF7, 0x11E3, 0x7EBD, 0x13AD, 0x7E7A, 0x1591, 0x7E2A,
2610         0x1790, 0x7DCF, 0x19A8, 0x7D66, 0x1BDA, 0x7CEE, 0x1E25, 0x7C65, 0x2087, 0x7BCB,
2611         0x2300, 0x7B1E, 0x258E, 0x7A5D, 0x2830, 0x7986, 0x2AE5, 0x7898, 0x2DA9, 0x7793,
2612         0x307D, 0x7675, 0x335D, 0x753D, 0x3647, 0x73EB, 0x393A, 0x727E, 0x3C33, 0x70F5,
2613         0x3F2F, 0x6F50, 0x422D, 0x6D90, 0x452A, 0x6BB4, 0x4823, 0x69BC, 0x4B16, 0x67A9,
2614         0x4E01, 0x657B, 0x50E2, 0x6334, 0x53B5, 0x60D4, 0x567A, 0x5E5D, 0x592F, 0x5BD0
2615     },
2616 
2617     // WORD16 re_arr_tab_32[480];
2618     {
2619         0,      15,     30,     45,     60,     75,     90,     105,    120,    135,
2620         150,    165,    180,    195,    210,    225,    240,    255,    270,    285,
2621         300,    315,    330,    345,    360,    375,    390,    405,    420,    435,
2622         450,    465,    32,     47,     62,     77,     92,     107,    122,    137,
2623         152,    167,    182,    197,    212,    227,    242,    257,    272,    287,
2624         302,    317,    332,    347,    362,    377,    392,    407,    422,    437,
2625         452,    467,    2,      17,     64,     79,     94,     109,    124,    139,
2626         154,    169,    184,    199,    214,    229,    244,    259,    274,    289,
2627         304,    319,    334,    349,    364,    379,    394,    409,    424,    439,
2628         454,    469,    4,      19,     34,     49,     96,     111,    126,    141,
2629         156,    171,    186,    201,    216,    231,    246,    261,    276,    291,
2630         306,    321,    336,    351,    366,    381,    396,    411,    426,    441,
2631         456,    471,    6,      21,     36,     51,     66,     81,     128,    143,
2632         158,    173,    188,    203,    218,    233,    248,    263,    278,    293,
2633         308,    323,    338,    353,    368,    383,    398,    413,    428,    443,
2634         458,    473,    8,      23,     38,     53,     68,     83,     98,     113,
2635         160,    175,    190,    205,    220,    235,    250,    265,    280,    295,
2636         310,    325,    340,    355,    370,    385,    400,    415,    430,    445,
2637         460,    475,    10,     25,     40,     55,     70,     85,     100,    115,
2638         130,    145,    192,    207,    222,    237,    252,    267,    282,    297,
2639         312,    327,    342,    357,    372,    387,    402,    417,    432,    447,
2640         462,    477,    12,     27,     42,     57,     72,     87,     102,    117,
2641         132,    147,    162,    177,    224,    239,    254,    269,    284,    299,
2642         314,    329,    344,    359,    374,    389,    404,    419,    434,    449,
2643         464,    479,    14,     29,     44,     59,     74,     89,     104,    119,
2644         134,    149,    164,    179,    194,    209,    256,    271,    286,    301,
2645         316,    331,    346,    361,    376,    391,    406,    421,    436,    451,
2646         466,    1,      16,     31,     46,     61,     76,     91,     106,    121,
2647         136,    151,    166,    181,    196,    211,    226,    241,    288,    303,
2648         318,    333,    348,    363,    378,    393,    408,    423,    438,    453,
2649         468,    3,      18,     33,     48,     63,     78,     93,     108,    123,
2650         138,    153,    168,    183,    198,    213,    228,    243,    258,    273,
2651         320,    335,    350,    365,    380,    395,    410,    425,    440,    455,
2652         470,    5,      20,     35,     50,     65,     80,     95,     110,    125,
2653         140,    155,    170,    185,    200,    215,    230,    245,    260,    275,
2654         290,    305,    352,    367,    382,    397,    412,    427,    442,    457,
2655         472,    7,      22,     37,     52,     67,     82,     97,     112,    127,
2656         142,    157,    172,    187,    202,    217,    232,    247,    262,    277,
2657         292,    307,    322,    337,    384,    399,    414,    429,    444,    459,
2658         474,    9,      24,     39,     54,     69,     84,     99,     114,    129,
2659         144,    159,    174,    189,    204,    219,    234,    249,    264,    279,
2660         294,    309,    324,    339,    354,    369,    416,    431,    446,    461,
2661         476,    11,     26,     41,     56,     71,     86,     101,    116,    131,
2662         146,    161,    176,    191,    206,    221,    236,    251,    266,    281,
2663         296,    311,    326,    341,    356,    371,    386,    401,    448,    463,
2664         478,    13,     28,     43,     58,     73,     88,     103,    118,    133,
2665         148,    163,    178,    193,    208,    223,    238,    253,    268,    283,
2666         298,    313,    328,    343,    358,    373,    388,    403,    418,    433
2667     },
2668 
2669     // const WORD16 re_arr_tab_sml[FFT15 + 1] =
2670     {
2671         0,      4,      8,      9,      13,     2,      3,      7,
2672         11,     12,     1,      5,      6,      10,     14,     0
2673     },
2674 
2675     // const WORD16 re_arr_tab_4[60] =
2676     {
2677         0,      15,     30,     45,     4,      19,     34,     49,     8,      23,
2678         38,     53,     12,     27,     42,     57,     16,     31,     46,     1,
2679         20,     35,     50,     5,      24,     39,     54,     9,      28,     43,
2680         58,     13,     32,     47,     2,      17,     36,     51,     6,      21,
2681         40,     55,     10,     25,     44,     59,     14,     29,     48,     3,
2682         18,     33,     52,     7,      22,     37,     56,     11,     26,     41
2683     },
2684 
2685     // const WORD16 re_arr_tab_15_4[60] =
2686     {
2687         0,      4,      8,      12,     16,     20,     24,     28,     32,     36,
2688         40,     44,     48,     52,     56,     1,      5,      9,      13,     17,
2689         21,     25,     29,     33,     37,     41,     45,     49,     53,     57,
2690          2,     6,      10,     14,     18,     22,     26,     30,     34,     38,
2691         42,     46,     50,     54,     58,     3,      7,      11,     15,     19,
2692         23,     27,     31,     35,     39,     43,     47,     51,     55,     59
2693     },
2694 
2695     // const WORD16 re_arr_tab_120[60] =
2696     {
2697         0,      16,     32,     48,     4,      20,     36,     52,     8,      24,
2698         40,     56,     12,     28,     44,     45,     1,      17,     33,     49,
2699         5,      21,     37,     53,     9,      25,     41,     57,     13,     29,
2700         30,     46,     2,      18,     34,     50,     6,      22,     38,     54,
2701         10,     26,     42,     58,     14,     15,     31,     47,     3,      19,
2702         35,     51,     7,      23,     39,     55,     11,     27,     43,     59
2703     },
2704 
2705     // WORD16 re_arr_tab_5[FFT15 + 1] =
2706     {
2707         0,      3,      6,      9,      12,     5,      8,      11,
2708         14,     2,      10,     13,     1,      4,      7,      0
2709     },
2710 
2711     // WORD16 re_arr_tab_3[FFT15 + 1] =
2712     {
2713         0,      5,      10,     1,      6,      11,     2,      7,
2714         12,     3,      8,      13,     4,      9,      14,     0
2715     },
2716 
2717     // WORD16 re_arr_tab_sml_480[480] =
2718     {
2719         0,      160,    320,    96,     256,    416,    192,    352,
2720         32,     288,    448,    128,    384,    64,     224,    225,
2721         385,    65,     321,    1,      161,    417,    97,     257,
2722         33,     193,    353,    129,    289,    449,    450,    130,
2723         290,    66,     226,    386,    162,    322,    2,      258,
2724         418,    98,     354,    34,     194,    195,    355,    35,
2725         291,    451,    131,    387,    67,     227,    3,      163,
2726         323,    99,     259,    419,    420,    100,    260,    36,
2727         196,    356,    132,    292,    452,    228,    388,    68,
2728         324,    4,      164,    165,    325,    5,      261,    421,
2729         101,    357,    37,     197,    453,    133,    293,    69,
2730         229,    389,    390,    70,     230,    6,      166,    326,
2731         102,    262,    422,    198,    358,    38,     294,    454,
2732         134,    135,    295,    455,    231,    391,    71,     327,
2733         7,      167,    423,    103,    263,    39,     199,    359,
2734         360,    40,     200,    456,    136,    296,    72,     232,
2735         392,    168,    328,    8,      264,    424,    104,    105,
2736         265,    425,    201,    361,    41,     297,    457,    137,
2737         393,    73,     233,    9,      169,    329,    330,    10,
2738         170,    426,    106,    266,    42,     202,    362,    138,
2739         298,    458,    234,    394,    74,     75,     235,    395,
2740         171,    331,    11,     267,    427,    107,    363,    43,
2741         203,    459,    139,    299,    300,    460,    140,    396,
2742         76,     236,    12,     172,    332,    108,    268,    428,
2743         204,    364,    44,     45,     205,    365,    141,    301,
2744         461,    237,    397,    77,     333,    13,     173,    429,
2745         109,    269,    270,    430,    110,    366,    46,     206,
2746         462,    142,    302,    78,     238,    398,    174,    334,
2747         14,     15,     175,    335,    111,    271,    431,    207,
2748         367,    47,     303,    463,    143,    399,    79,     239,
2749         240,    400,    80,     336,    16,     176,    432,    112,
2750         272,    48,     208,    368,    144,    304,    464,    465,
2751         145,    305,    81,     241,    401,    177,    337,    17,
2752         273,    433,    113,    369,    49,     209,    210,    370,
2753         50,     306,    466,    146,    402,    82,     242,    18,
2754         178,    338,    114,    274,    434,    435,    115,    275,
2755         51,     211,    371,    147,    307,    467,    243,    403,
2756         83,     339,    19,     179,    180,    340,    20,     276,
2757         436,    116,    372,    52,     212,    468,    148,    308,
2758         84,     244,    404,    405,    85,     245,    21,     181,
2759         341,    117,    277,    437,    213,    373,    53,     309,
2760         469,    149,    150,    310,    470,    246,    406,    86,
2761         342,    22,     182,    438,    118,    278,    54,     214,
2762         374,    375,    55,     215,    471,    151,    311,    87,
2763         247,    407,    183,    343,    23,     279,    439,    119,
2764         120,    280,    440,    216,    376,    56,     312,    472,
2765         152,    408,    88,     248,    24,     184,    344,    345,
2766         25,     185,    441,    121,    281,    57,     217,    377,
2767         153,    313,    473,    249,    409,    89,     90,     250,
2768         410,    186,    346,    26,     282,    442,    122,    378,
2769         58,     218,    474,    154,    314,    315,    475,    155,
2770         411,    91,     251,    27,     187,    347,    123,    283,
2771         443,    219,    379,    59,     60,     220,    380,    156,
2772         316,    476,    252,    412,    92,     348,    28,     188,
2773         444,    124,    284,    285,    445,    125,    381,    61,
2774         221,    477,    157,    317,    93,     253,    413,    189,
2775         349,    29,     30,     190,    350,    126,    286,    446,
2776         222,    382,    62,     318,    478,    158,    414,    94,
2777         254,    255,    415,    95,     351,    31,     191,    447,
2778         127,    287,    63,     223,    383,    159,    319,    479
2779     },
2780 
2781     // WORD32 cosine_array_1920[960] =
2782     {
2783         32767,  13,     94,     32767,  32767,  121,    201,    32767,
2784         32767,  228,    308,    32767,  32766,  335,    416,    32765,
2785         32765,  442,    523,    32764,  32763,  550,    630,    32762,
2786         32761,  657,    737,    32760,  32759,  764,    844,    32757,
2787         32756,  871,    952,    32754,  32753,  978,    1059,   32751,
2788         32750,  1086,   1166,   32747,  32746,  1193,   1273,   32743,
2789         32742,  1300,   1380,   32739,  32738,  1407,   1487,   32734,
2790         32733,  1514,   1594,   32729,  32728,  1621,   1702,   32724,
2791         32722,  1728,   1809,   32718,  32717,  1835,   1916,   32712,
2792         32710,  1942,   2023,   32706,  32704,  2049,   2130,   32699,
2793         32697,  2157,   2237,   32692,  32690,  2263,   2344,   32684,
2794         32682,  2370,   2451,   32676,  32674,  2477,   2558,   32668,
2795         32666,  2584,   2664,   32659,  32657,  2691,   2771,   32651,
2796         32648,  2798,   2878,   32641,  32639,  2905,   2985,   32632,
2797         32629,  3012,   3092,   32622,  32619,  3118,   3198,   32612,
2798         32609,  3225,   3305,   32601,  32598,  3332,   3412,   32590,
2799         32587,  3439,   3518,   32579,  32576,  3545,   3625,   32567,
2800         32564,  3652,   3732,   32555,  32552,  3758,   3838,   32542,
2801         32539,  3865,   3945,   32530,  32526,  3971,   4051,   32517,
2802         32513,  4078,   4157,   32503,  32500,  4184,   4264,   32489,
2803         32486,  4290,   4370,   32475,  32472,  4397,   4476,   32461,
2804         32457,  4503,   4583,   32446,  32442,  4609,   4689,   32431,
2805         32427,  4715,   4795,   32415,  32411,  4821,   4901,   32399,
2806         32395,  4927,   5007,   32383,  32379,  5033,   5113,   32367,
2807         32362,  5139,   5219,   32350,  32345,  5245,   5325,   32333,
2808         32328,  5351,   5430,   32315,  32310,  5457,   5536,   32297,
2809         32292,  5562,   5642,   32279,  32274,  5668,   5747,   32260,
2810         32255,  5774,   5853,   32241,  32236,  5879,   5958,   32222,
2811         32217,  5985,   6064,   32202,  32197,  6090,   6169,   32182,
2812         32177,  6195,   6274,   32162,  32157,  6301,   6380,   32141,
2813         32136,  6406,   6485,   32120,  32115,  6511,   6590,   32099,
2814         32093,  6616,   6695,   32077,  32071,  6721,   6800,   32055,
2815         32049,  6826,   6905,   32032,  32027,  6931,   7009,   32010,
2816         32004,  7036,   7114,   31986,  31981,  7140,   7219,   31963,
2817         31957,  7245,   7323,   31939,  31933,  7349,   7428,   31915,
2818         31909,  7454,   7532,   31891,  31884,  7558,   7637,   31866,
2819         31859,  7663,   7741,   31841,  31834,  7767,   7845,   31815,
2820         31809,  7871,   7949,   31789,  31783,  7975,   8053,   31763,
2821         31756,  8079,   8157,   31737,  31730,  8183,   8261,   31710,
2822         31703,  8287,   8364,   31682,  31676,  8390,   8468,   31655,
2823         31648,  8494,   8572,   31627,  31620,  8597,   8675,   31599,
2824         31592,  8701,   8778,   31570,  31563,  8804,   8882,   31541,
2825         31534,  8907,   8985,   31512,  31505,  9011,   9088,   31483,
2826         31475,  9114,   9191,   31453,  31445,  9217,   9294,   31422,
2827         31415,  9319,   9397,   31392,  31384,  9422,   9499,   31361,
2828         31353,  9525,   9602,   31330,  31322,  9627,   9704,   31298,
2829         31290,  9730,   9807,   31266,  31258,  9832,   9909,   31234,
2830         31226,  9934,   10011,  31201,  31193,  10037,  10113,  31168,
2831         31160,  10139,  10215,  31135,  31127,  10241,  10317,  31102,
2832         31093,  10342,  10419,  31068,  31059,  10444,  10520,  31033,
2833         31025,  10546,  10622,  30999,  30990,  10647,  10723,  30964,
2834         30955,  10748,  10824,  30929,  30920,  10850,  10926,  30893,
2835         30884,  10951,  11027,  30857,  30848,  11052,  11128,  30821,
2836         30812,  11153,  11228,  30784,  30775,  11253,  11329,  30747,
2837         30738,  11354,  11430,  30710,  30701,  11455,  11530,  30672,
2838         30663,  11555,  11630,  30635,  30625,  11655,  11730,  30596,
2839         30587,  11756,  11831,  30558,  30548,  11856,  11930,  30519,
2840         30509,  11955,  12030,  30480,  30470,  12055,  12130,  30440,
2841         30430,  12155,  12230,  30400,  30390,  12254,  12329,  30360,
2842         30350,  12354,  12428,  30320,  30309,  12453,  12527,  30279,
2843         30269,  12552,  12626,  30238,  30227,  12651,  12725,  30196,
2844         30186,  12750,  12824,  30154,  30144,  12849,  12923,  30112,
2845         30102,  12947,  13021,  30070,  30059,  13046,  13119,  30027,
2846         30016,  13144,  13218,  29984,  29973,  13242,  13316,  29941,
2847         29930,  13340,  13414,  29897,  29886,  13438,  13511,  29853,
2848         29842,  13536,  13609,  29808,  29797,  13633,  13706,  29764,
2849         29752,  13731,  13804,  29719,  29707,  13828,  13901,  29673,
2850         29662,  13925,  13998,  29628,  29616,  14022,  14095,  29582,
2851         29570,  14119,  14192,  29535,  29524,  14216,  14288,  29489,
2852         29477,  14312,  14385,  29442,  29430,  14409,  14481,  29395,
2853         29383,  14505,  14577,  29347,  29335,  14601,  14673,  29299,
2854         29287,  14697,  14769,  29251,  29239,  14793,  14864,  29203,
2855         29190,  14888,  14960,  29154,  29142,  14984,  15055,  29105,
2856         29092,  15079,  15150,  29055,  29043,  15174,  15245,  29006,
2857         28993,  15269,  15340,  28955,  28943,  15364,  15435,  28905,
2858         28892,  15459,  15529,  28854,  28842,  15553,  15624,  28803,
2859         28791,  15647,  15718,  28752,  28739,  15741,  15812,  28701,
2860         28688,  15835,  15906,  28649,  28636,  15929,  15999,  28596,
2861         28583,  16023,  16093,  28544,  28531,  16116,  16186,  28491,
2862         28478,  16210,  16279,  28438,  28425,  16303,  16372,  28385,
2863         28371,  16396,  16465,  28331,  28317,  16488,  16558,  28277,
2864         28263,  16581,  16650,  28223,  28209,  16673,  16743,  28168,
2865         28154,  16766,  16835,  28113,  28099,  16858,  16927,  28058,
2866         28044,  16949,  17018,  28002,  27988,  17041,  17110,  27946,
2867         27932,  17133,  17201,  27890,  27876,  17224,  17292,  27834,
2868         27820,  17315,  17383,  27777,  27763,  17406,  17474,  27720,
2869         27706,  17497,  17565,  27663,  27648,  17587,  17655,  27605,
2870         27591,  17678,  17745,  27547,  27533,  17768,  17835,  27489,
2871         27474,  17858,  17925,  27430,  27416,  17948,  18015,  27372,
2872         27357,  18037,  18104,  27312,  27298,  18127,  18194,  27253,
2873         27238,  18216,  18283,  27193,  27178,  18305,  18372,  27133,
2874         27118,  18394,  18460,  27073,  27058,  18483,  18549,  27013,
2875         26997,  18571,  18637,  26952,  26936,  18659,  18725,  26891,
2876         26875,  18747,  18813,  26829,  26814,  18835,  18901,  26767,
2877         26752,  18923,  18988,  26705,  26690,  19010,  19076,  26643,
2878         26628,  19098,  19163,  26581,  26565,  19185,  19250,  26518,
2879         26502,  19271,  19336,  26455,  26439,  19358,  19423,  26391,
2880         26375,  19444,  19509,  26327,  26312,  19531,  19595,  26264,
2881         26247,  19617,  19681,  26199,  26183,  19702,  19767,  26135,
2882         26119,  19788,  19852,  26070,  26054,  19873,  19937,  26005,
2883         25988,  19959,  20022,  25939,  25923,  20043,  20107,  25874,
2884         25857,  20128,  20192,  25808,  25791,  20213,  20276,  25742,
2885         25725,  20297,  20360,  25675,  25658,  20381,  20444,  25608,
2886         25592,  20465,  20528,  25541,  25524,  20549,  20611,  25474,
2887         25457,  20632,  20694,  25406,  25389,  20715,  20777,  25339,
2888         25322,  20798,  20860,  25270,  25253,  20881,  20943,  25202,
2889         25185,  20963,  21025,  25133,  25116,  21046,  21107,  25064,
2890         25047,  21128,  21189,  24995,  24978,  21210,  21271,  24926,
2891         24908,  21291,  21352,  24856,  24838,  21373,  21434,  24786,
2892         24768,  21454,  21515,  24716,  24698,  21535,  21595,  24645,
2893         24627,  21616,  21676,  24574,  24557,  21696,  21756,  24503,
2894         24485,  21776,  21836,  24432,  24414,  21856,  21916,  24360,
2895         24342,  21936,  21996,  24288,  24270,  22016,  22075,  24216,
2896         24198,  22095,  22154,  24144,  24126,  22174,  22233,  24071,
2897         24053,  22253,  22312,  23998,  23980,  22331,  22390,  23925,
2898         23907,  22410,  22468,  23852,  23834,  22488,  22546,  23778,
2899         23760,  22566,  22624,  23704,  23686,  22643,  22701,  23630,
2900         23612,  22721,  22779,  23556,  23537,  22798,  22856,  23481,
2901         23462,  22875,  22932,  23406,  23387,  22951,  23009,  23331,
2902         23312,  23028,  23085,  23256,  23237,  23104,  23161,  23180
2903     },
2904 
2905 
2906     // const WORD16 w_512[2 * 510] =
2907     {
2908         0,      32767,  0,      32767,  0,      32767,  402,    32766,  804,    32758,
2909         1206,   32746,  804,    32758,  1608,   32729,  2411,   32679,  1206,   32746,
2910         2411,   32679,  3612,   32568,  1608,   32729,  3212,   32610,  4808,   32413,
2911         2009,   32706,  4011,   32522,  5998,   32214,  2411,   32679,  4808,   32413,
2912         7180,   31972,  2811,   32647,  5602,   32286,  8351,   31686,  3212,   32610,
2913         6393,   32138,  9512,   31357,  3612,   32568,  7180,   31972,  10660,  30986,
2914         4011,   32522,  7962,   31786,  11793,  30572,  4410,   32470,  8740,   31581,
2915         12910,  30118,  4808,   32413,  9512,   31357,  14010,  29622,  5205,   32352,
2916         10279,  31114,  15091,  29086,  5602,   32286,  11039,  30853,  16151,  28511,
2917         5998,   32214,  11793,  30572,  17190,  27897,  6393,   32138,  12540,  30274,
2918         18205,  27246,  6787,   32058,  13279,  29957,  19195,  26557,  7180,   31972,
2919         14010,  29622,  20160,  25833,  7571,   31881,  14733,  29269,  21097,  25073,
2920         7962,   31786,  15447,  28899,  22006,  24279,  8351,   31686,  16151,  28511,
2921         22884,  23453,  8740,   31581,  16846,  28106,  23732,  22595,  9127,   31471,
2922         17531,  27684,  24548,  21706,  9512,   31357,  18205,  27246,  25330,  20788,
2923         9896,   31238,  18868,  26791,  26078,  19841,  10279,  31114,  19520,  26320,
2924         26791,  18868,  10660,  30986,  20160,  25833,  27467,  17869,  11039,  30853,
2925         20788,  25330,  28106,  16846,  11417,  30715,  21403,  24812,  28707,  15800,
2926         11793,  30572,  22006,  24279,  29269,  14733,  12167,  30425,  22595,  23732,
2927         29792,  13646,  12540,  30274,  23170,  23170,  30274,  12540,  12910,  30118,
2928         23732,  22595,  30715,  11417,  13279,  29957,  24279,  22006,  31114,  10279,
2929         13646,  29792,  24812,  21403,  31471,  9127,   14010,  29622,  25330,  20788,
2930         31786,  7962,   14373,  29448,  25833,  20160,  32058,  6787,   14733,  29269,
2931         26320,  19520,  32286,  5602,   15091,  29086,  26791,  18868,  32470,  4410,
2932         15447,  28899,  27246,  18205,  32610,  3212,   15800,  28707,  27684,  17531,
2933         32706,  2009,   16151,  28511,  28106,  16846,  32758,  804,    16500,  28311,
2934         28511,  16151,  32766,  -402,   16846,  28106,  28899,  15447,  32729,  -1608,
2935         17190,  27897,  29269,  14733,  32647,  -2811,  17531,  27684,  29622,  14010,
2936         32522,  -4011,  17869,  27467,  29957,  13279,  32352,  -5205,  18205,  27246,
2937         30274,  12540,  32138,  -6393,  18538,  27020,  30572,  11793,  31881,  -7571,
2938         18868,  26791,  30853,  11039,  31581,  -8740,  19195,  26557,  31114,  10279,
2939         31238,  -9896,  19520,  26320,  31357,  9512,   30853,  -11039, 19841,  26078,
2940         31581,  8740,   30425,  -12167, 20160,  25833,  31786,  7962,   29957,  -13279,
2941         20475,  25583,  31972,  7180,   29448, -14373,  20788,  25330,  32138,  6393,
2942         28899,  -15447, 21097,  25073,  32286,  5602,   28311,  -16500, 21403,  24812,
2943         32413,  4808,   27684,  -17531, 21706,  24548,  32522,  4011,   27020,  -18538,
2944         22006,  24279,  32610,  3212,   26320,  -19520, 22302,  24008,  32679,  2411,
2945         25583,  -20475, 22595,  23732,  32729,  1608,   24812,  -21403, 22884,  23453,
2946         32758,  804,    24008,  -22302, 23170,  23170,  32767,  0,      23170,  -23170,
2947         23453,  22884,  32758,  -804,   22302,  -24008, 23732,  22595,  32729,  -1608,
2948         21403,  -24812, 24008,  22302,  32679,  -2411,  20475,  -25583, 24279,  22006,
2949         32610,  -3212,  19520,  -26320, 24548,  21706,  32522,  -4011,  18538,  -27020,
2950         24812,  21403,  32413,  -4808,  17531,  -27684, 25073,  21097,  32286,  -5602,
2951         16500,  -28311, 25330,  20788,  32138,  -6393,  15447,  -28899, 25583,  20475,
2952         31972,  -7180,  14373,  -29448, 25833,  20160,  31786,  -7962,  13279,  -29957,
2953         26078,  19841,  31581,  -8740,  12167,  -30425, 26320,  19520,  31357,  -9512,
2954         11039,  -30853, 26557,  19195,  31114,  -10279, 9896,   -31238, 26791,  18868,
2955         30853,  -11039, 8740,   -31581, 27020,  18538,  30572,  -11793, 7571,   -31881,
2956         27246,  18205,  30274,  -12540, 6393,   -32138, 27467,  17869,  29957,  -13279,
2957         5205,   -32352, 27684,  17531,  29622,  -14010, 4011,   -32522, 27897,  17190,
2958         29269,  -14733, 2811,   -32647, 28106,  16846,  28899,  -15447, 1608,   -32729,
2959         28311,  16500,  28511,  -16151, 402,    -32766, 28511,  16151,  28106,  -16846,
2960    -    804,    -32758, 28707,  15800,  27684,  -17531, -2009,  -32706, 28899,  15447,
2961         27246,  -18205, -3212,  -32610, 29086,  15091,  26791,  -18868, -4410,  -32470,
2962         29269,  14733,  26320,  -19520, -5602,  -32286, 29448,  14373,  25833,  -20160,
2963    -    6787,   -32058, 29622,  14010,  25330,  -20788, -7962,  -31786, 29792,  13646,
2964         24812,  -21403, -9127,  -31471, 29957,  13279,  24279,  -22006, -10279, -31114,
2965         30118,  12910,  23732,  -22595, -11417, -30715, 30274,  12540,  23170,  -23170,
2966    -    12540,  -30274, 30425,  12167,  22595,  -23732, -13646, -29792, 30572,  11793,
2967         22006,  -24279, -14733, -29269, 30715,  11417,  21403,  -24812, -15800, -28707,
2968         30853,  11039,  20788,  -25330, -16846, -28106, 30986,  10660,  20160,  -25833,
2969    -    17869,  -27467, 31114,  10279,  19520,  -26320, -18868, -26791, 31238,  9896,
2970         18868,  -26791, -19841, -26078, 31357,  9512,   18205,  -27246, -20788, -25330,
2971         31471,  9127,   17531,  -27684, -21706, -24548, 31581,  8740,   16846,  -28106,
2972    -    22595,  -23732, 31686,  8351,   16151,  -28511, -23453, -22884, 31786,  7962,
2973         15447,  -28899, -24279, -22006, 31881,  7571,   14733,  -29269, -25073, -21097,
2974         31972,  7180,   14010,  -29622, -25833, -20160, 32058,  6787,   13279,  -29957,
2975    -    26557,  -19195, 32138,  6393,   12540,  -30274, -27246, -18205, 32214,  5998,
2976         11793,  -30572, -27897, -17190, 32286,  5602,   11039,  -30853, -28511, -16151,
2977         32352,  5205,   10279,  -31114, -29086, -15091, 32413,  4808,   9512,   -31357,
2978    -    29622,  -14010, 32470,  4410,   8740,   -31581, -30118, -12910, 32522,  4011,
2979         7962,   -31786, -30572, -11793, 32568,  3612,   7180,   -31972, -30986, -10660,
2980         32610,  3212,   6393,   -32138, -31357, -9512,  32647,  2811,   5602,   -32286,
2981    -    31686,  -8351,  32679,  2411,   4808,   -32413, -31972, -7180,  32706,  2009,
2982         4011,   -32522, -32214, -5998,  32729,  1608,   3212,   -32610, -32413, -4808,
2983         32746,  1206,   2411,   -32679, -32568, -3612,  32758,  804,    1608,   -32729,
2984    -    32679,  -2411,  32766,  402,    804,    -32758, -32746, -1206,  0,      32767,
2985         0,      32767,  0,      32767,  1608,   32729,  3212,   32610,  4808,   32413,
2986         3212,   32610,  6393,   32138,  9512,   31357,  4808,   32413,  9512,   31357,
2987         14010,  29622,  6393,   32138,  12540,  30274,  18205,  27246,  7962,   31786,
2988         15447,  28899,  22006,  24279,  9512,   31357,  18205,  27246,  25330,  20788,
2989         11039,  30853,  20788,  25330,  28106,  16846,  12540,  30274,  23170,  23170,
2990         30274,  12540,  14010,  29622,  25330,  20788,  31786,  7962,   15447,  28899,
2991         27246,  18205,  32610,  3212,   16846,  28106,  28899,  15447,  32729,  -1608,
2992         18205,  27246,  30274,  12540,  32138,  -6393,  19520,  26320,  31357,   9512,
2993         30853, -11039,  20788,  25330,  32138,  6393,   28899,  -15447, 22006,  24279,
2994         32610,  3212,   26320,  -19520, 23170,  23170,  32767,  0,      23170,  -23170,
2995         24279,  22006,  32610,  -3212,  19520,  -26320, 25330,  20788,  32138,  -6393,
2996         15447,  -28899, 26320,  19520,  31357,  -9512,  11039,  -30853, 27246,  18205,
2997         30274,  -12540, 6393,   -32138, 28106,  16846,  28899,  -15447, 1608,   -32729,
2998         28899,  15447,  27246,  -18205, -3212,  -32610, 29622,  14010,  25330,  -20788,
2999    -    7962,   -31786, 30274,  12540,  23170,  -23170, -12540, -30274, 30853,  11039,
3000         20788,  -25330, -16846, -28106, 31357,  9512,   18205,  -27246, -20788, -25330,
3001         31786,  7962,   15447,  -28899, -24279, -22006, 32138,  6393,   12540,  -30274,
3002    -    27246,  -18205, 32413,  4808,   9512,   -31357, -29622, -14010, 32610,  3212,
3003         6393,   -32138, -31357, -9512,  32729,  1608,   3212,   -32610, -32413, -4808,
3004         0,      32767,  0,      32767,  0,      32767,  6393,   32138,  12540,  30274,
3005         18205,  27246,  12540,  30274,  23170,  23170,  30274,  12540,  18205,  27246,
3006         30274,  12540,  32138,  -6393,  23170,  23170,  32767,  0,      23170,  -23170,
3007         27246,  18205,  30274,  -12540, 6393,   -32138, 30274,  12540,  23170,  -23170,
3008    -    12540,  -30274, 32138,  6393,   12540,  -30274, -27246, -18205, 0,      32767,
3009         0,      32767,  0,      32767,  23170,  23170,  32767,  0,      23170,  -23170,
3010     },
3011 
3012 
3013     // WORD16 w_32[60]=
3014     {
3015         0,      32767,  0,      32767,  0,      32767,
3016         6393,   32137,  12539,  30273,  18204,  27245,
3017         12539,  30273,  23170,  23170,  30273,  12539,
3018         18204,  27245,  30273,  12539,  32137,  -6392,
3019         23170,  23170,  32767,  0,      23170,  -23169,
3020         27245,  18204,  30273,  -12538, 6393,   -32136,
3021         30273,  12539,  23170,  -23169, -12538, -30272,
3022         32137,  6393,   12539,  -30272, -27244, -18203,
3023         0,      32767,  0,      32767,  0,      32767,
3024         23170,  23170,  32767,  0,      23170,  -23169
3025     },
3026 
3027     // const WORD16 cosine_array_240[120] =
3028     {
3029         32767,  107,    751,    32759,  32754,  965,    1608,   32729,
3030         32717,  1822,   2464,   32675,  32658,  2678,   3319,   32600,
3031         32577,  3532,   4171,   32501,  32473,  4383,   5020,   32381,
3032         32348,  5232,   5866,   32239,  32200,  6077,   6708,   32074,
3033         32029,  6918,   7545,   31887,  31837,  7754,   8377,   31679,
3034         31624,  8585,   9204,   31449,  31388,  9409,   10024,  31197,
3035         31131,  10228,  10837,  30924,  30853,  11039,  11643,  30630,
3036         30553,  11843,  12441,  30315,  30232,  12639,  13230,  29979,
3037         29891,  13426,  14010,  29622,  29530,  14204,  14781,  29245,
3038         29148,  14972,  15541,  28848,  28746,  15730,  16291,  28431,
3039         28324,  16477,  17030,  27995,  27883,  17213,  17757,  27540,
3040         27423,  17937,  18472,  27066,  26944,  18648,  19174,  26573,
3041         26447,  19347,  19863,  26062,  25931,  20033,  20538,  25533,
3042         25398,  20705,  21199,  24986,  24847,  21363,  21846,  24423,
3043         24279,  22006,  22478,  23843,  23695,  22634,  23095,  23246
3044     },
3045 };
3046