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 <string.h>
21 #include "ixheaacd_sbr_common.h"
22 #include <ixheaacd_type_def.h>
23 #include "ixheaacd_defines.h"
24 #include "ixheaacd_bitbuffer.h"
25 #include "ixheaacd_pns.h"
26 
27 #include <ixheaacd_aac_rom.h>
28 #include "ixheaacd_pulsedata.h"
29 
30 #include "ixheaacd_drc_data_struct.h"
31 #include "ixheaacd_lt_predict.h"
32 #include "ixheaacd_channelinfo.h"
33 #include "ixheaacd_drc_dec.h"
34 
35 #include "ixheaacd_sbrdecoder.h"
36 #include "ixheaacd_sbr_const.h"
37 
38 #include "ixheaacd_sbrdecsettings.h"
39 #include "ixheaacd_sbr_scale.h"
40 #include "ixheaacd_lpp_tran.h"
41 #include "ixheaacd_env_extr_part.h"
42 #include <ixheaacd_sbr_rom.h>
43 #include "ixheaacd_hybrid.h"
44 #include "ixheaacd_ps_dec.h"
45 #include "ixheaacd_env_extr.h"
46 #include "ixheaacd_common_rom.h"
47 #include "ixheaacd_qmf_dec.h"
48 
49 const ia_env_calc_tables_struct ixheaacd_aac_dec_env_calc_tables = {
50     {(WORD16)0x4027, 0, (WORD16)0x4000, 1, (WORD16)0x7fb2, 1, (WORD16)0x56bc,
51      67},
52 
53     // const WORD16 sbr_lim_bands_per_octave_q13[4] =
54     {(WORD16)0x2000, (WORD16)0x2666, (WORD16)0x4000, (WORD16)0x6000},
55 
56     // const WORD16 sbr_smooth_filter[4] =
57     {(WORD16)0x5555, (WORD16)0x461d, (WORD16)0x3387, (WORD16)0x1bb8},
58 
59     // const WORD16 sbr_inv_int_table[INV_INT_TABLE_SIZE] =
60     {(WORD16)0x7fff, (WORD16)0x7fff, (WORD16)0x4000, (WORD16)0x2aab,
61      (WORD16)0x2000, (WORD16)0x199a, (WORD16)0x1555, (WORD16)0x1249,
62      (WORD16)0x1000, (WORD16)0x0e39, (WORD16)0x0ccd, (WORD16)0x0ba3,
63      (WORD16)0x0aab, (WORD16)0x09d9, (WORD16)0x0925, (WORD16)0x0889,
64      (WORD16)0x0800, (WORD16)0x0788, (WORD16)0x071c, (WORD16)0x06bd,
65      (WORD16)0x0666, (WORD16)0x0618, (WORD16)0x05d1, (WORD16)0x0591,
66      (WORD16)0x0555, (WORD16)0x051f, (WORD16)0x04ec, (WORD16)0x04be,
67      (WORD16)0x0492, (WORD16)0x046a, (WORD16)0x0444, (WORD16)0x0421,
68      (WORD16)0x0400, (WORD16)0x03e1, (WORD16)0x03c4, (WORD16)0x03a8,
69      (WORD16)0x038e, (WORD16)0x0376, (WORD16)0x035e, (WORD16)0x0348,
70      (WORD16)0x0333, (WORD16)0x031f, (WORD16)0x030c, (WORD16)0x02fa,
71      (WORD16)0x02e9, (WORD16)0x02d8, (WORD16)0x02c8, (WORD16)0x02b9},
72 
73     // const WORD32 sbr_rand_ph[SBR_NF_NO_RANDOM_VAL + MAX_FREQ_COEFFS] =
74     {((WORD32)0xf801 << 16) | ((WORD32)0xfb3e & 0xFFFF),
75      ((WORD32)0x07c5 << 16) | ((WORD32)0xfa99 & 0xFFFF),
76      ((WORD32)0x0121 << 16) | ((WORD32)0xf865 & 0xFFFF),
77      ((WORD32)0xfc3d << 16) | ((WORD32)0xfd03 & 0xFFFF),
78      ((WORD32)0x0675 << 16) | ((WORD32)0x025f & 0xFFFF),
79      ((WORD32)0xfce2 << 16) | ((WORD32)0x072a & 0xFFFF),
80      ((WORD32)0xffea << 16) | ((WORD32)0xfaa5 & 0xFFFF),
81      ((WORD32)0xf8b3 << 16) | ((WORD32)0xff14 & 0xFFFF),
82      ((WORD32)0x0463 << 16) | ((WORD32)0x0605 & 0xFFFF),
83      ((WORD32)0x0333 << 16) | ((WORD32)0xf816 & 0xFFFF),
84      ((WORD32)0xf803 << 16) | ((WORD32)0xf8f3 & 0xFFFF),
85      ((WORD32)0xf85c << 16) | ((WORD32)0x0746 & 0xFFFF),
86      ((WORD32)0xfc58 << 16) | ((WORD32)0xfb76 & 0xFFFF),
87      ((WORD32)0xfa2a << 16) | ((WORD32)0xf829 & 0xFFFF),
88      ((WORD32)0x060d << 16) | ((WORD32)0x01ad & 0xFFFF),
89      ((WORD32)0x0091 << 16) | ((WORD32)0xf9bd & 0xFFFF),
90      ((WORD32)0x05f6 << 16) | ((WORD32)0xf8b5 & 0xFFFF),
91      ((WORD32)0xf849 << 16) | ((WORD32)0xf86c & 0xFFFF),
92      ((WORD32)0x026f << 16) | ((WORD32)0xfc0c & 0xFFFF),
93      ((WORD32)0x0553 << 16) | ((WORD32)0x052c & 0xFFFF),
94      ((WORD32)0x0756 << 16) | ((WORD32)0x0167 & 0xFFFF),
95      ((WORD32)0xfa57 << 16) | ((WORD32)0x0434 & 0xFFFF),
96      ((WORD32)0xfa65 << 16) | ((WORD32)0xfc5f & 0xFFFF),
97      ((WORD32)0xf80a << 16) | ((WORD32)0xf8cb & 0xFFFF),
98      ((WORD32)0x07da << 16) | ((WORD32)0xf9ce & 0xFFFF),
99      ((WORD32)0xfba0 << 16) | ((WORD32)0xffcb & 0xFFFF),
100      ((WORD32)0xffdd << 16) | ((WORD32)0x0006 & 0xFFFF),
101      ((WORD32)0xf91c << 16) | ((WORD32)0x0367 & 0xFFFF),
102      ((WORD32)0xf817 << 16) | ((WORD32)0xf8f8 & 0xFFFF),
103      ((WORD32)0x0424 << 16) | ((WORD32)0x055b & 0xFFFF),
104      ((WORD32)0xf807 << 16) | ((WORD32)0xfb5a & 0xFFFF),
105      ((WORD32)0xf801 << 16) | ((WORD32)0x07df & 0xFFFF),
106      ((WORD32)0x046c << 16) | ((WORD32)0x04c2 & 0xFFFF),
107      ((WORD32)0x02c4 << 16) | ((WORD32)0x0797 & 0xFFFF),
108      ((WORD32)0x0503 << 16) | ((WORD32)0xfa0c & 0xFFFF),
109      ((WORD32)0xf9d4 << 16) | ((WORD32)0xfd4a & 0xFFFF),
110      ((WORD32)0xf8ac << 16) | ((WORD32)0x004c & 0xFFFF),
111      ((WORD32)0xf9e6 << 16) | ((WORD32)0xf8b1 & 0xFFFF),
112      ((WORD32)0x0662 << 16) | ((WORD32)0xf88c & 0xFFFF),
113      ((WORD32)0x045c << 16) | ((WORD32)0xff0c & 0xFFFF),
114      ((WORD32)0xf926 << 16) | ((WORD32)0x0365 & 0xFFFF),
115      ((WORD32)0xf892 << 16) | ((WORD32)0x023b & 0xFFFF),
116      ((WORD32)0xff10 << 16) | ((WORD32)0xf804 & 0xFFFF),
117      ((WORD32)0x01b5 << 16) | ((WORD32)0xf8be & 0xFFFF),
118      ((WORD32)0xf9e8 << 16) | ((WORD32)0x07fb & 0xFFFF),
119      ((WORD32)0x07d9 << 16) | ((WORD32)0xf855 & 0xFFFF),
120      ((WORD32)0xf920 << 16) | ((WORD32)0x07a9 & 0xFFFF),
121      ((WORD32)0xf889 << 16) | ((WORD32)0x03f4 & 0xFFFF),
122      ((WORD32)0x0270 << 16) | ((WORD32)0xfa5b & 0xFFFF),
123      ((WORD32)0x06d3 << 16) | ((WORD32)0x03be & 0xFFFF),
124      ((WORD32)0x074e << 16) | ((WORD32)0xf803 & 0xFFFF),
125      ((WORD32)0xff87 << 16) | ((WORD32)0x05a9 & 0xFFFF),
126      ((WORD32)0x0246 << 16) | ((WORD32)0x02c5 & 0xFFFF),
127      ((WORD32)0x079f << 16) | ((WORD32)0xfb9c & 0xFFFF),
128      ((WORD32)0xf9b7 << 16) | ((WORD32)0xf9f4 & 0xFFFF),
129      ((WORD32)0xf856 << 16) | ((WORD32)0xfe5e & 0xFFFF),
130      ((WORD32)0x0698 << 16) | ((WORD32)0x07bb & 0xFFFF),
131      ((WORD32)0xfac9 << 16) | ((WORD32)0xf8e7 & 0xFFFF),
132      ((WORD32)0xf882 << 16) | ((WORD32)0x07fd & 0xFFFF),
133      ((WORD32)0x0750 << 16) | ((WORD32)0xf823 & 0xFFFF),
134      ((WORD32)0xfa5e << 16) | ((WORD32)0x04b4 & 0xFFFF),
135      ((WORD32)0x000c << 16) | ((WORD32)0x04f1 & 0xFFFF),
136      ((WORD32)0x0720 << 16) | ((WORD32)0x0439 & 0xFFFF),
137      ((WORD32)0xfa81 << 16) | ((WORD32)0x0677 & 0xFFFF),
138      ((WORD32)0x05c6 << 16) | ((WORD32)0xfa76 & 0xFFFF),
139      ((WORD32)0xfaf7 << 16) | ((WORD32)0x0117 & 0xFFFF),
140      ((WORD32)0x0265 << 16) | ((WORD32)0xfc51 & 0xFFFF),
141      ((WORD32)0xf8a8 << 16) | ((WORD32)0xfa14 & 0xFFFF),
142      ((WORD32)0x07f2 << 16) | ((WORD32)0x0344 & 0xFFFF),
143      ((WORD32)0x0697 << 16) | ((WORD32)0xfa14 & 0xFFFF),
144      ((WORD32)0xf81e << 16) | ((WORD32)0xf801 & 0xFFFF),
145      ((WORD32)0xf854 << 16) | ((WORD32)0xf810 & 0xFFFF),
146      ((WORD32)0xfe4a << 16) | ((WORD32)0xf887 & 0xFFFF),
147      ((WORD32)0xfa7f << 16) | ((WORD32)0xfdd9 & 0xFFFF),
148      ((WORD32)0x0759 << 16) | ((WORD32)0x00c0 & 0xFFFF),
149      ((WORD32)0xf851 << 16) | ((WORD32)0x02e3 & 0xFFFF),
150      ((WORD32)0x0422 << 16) | ((WORD32)0xfa4a & 0xFFFF),
151      ((WORD32)0x04e4 << 16) | ((WORD32)0x03c2 & 0xFFFF),
152      ((WORD32)0x03c9 << 16) | ((WORD32)0xfdd0 & 0xFFFF),
153      ((WORD32)0x0748 << 16) | ((WORD32)0x07bd & 0xFFFF),
154      ((WORD32)0x0396 << 16) | ((WORD32)0x07f0 & 0xFFFF),
155      ((WORD32)0x0554 << 16) | ((WORD32)0x07ba & 0xFFFF),
156      ((WORD32)0x05fe << 16) | ((WORD32)0xf8cf & 0xFFFF),
157      ((WORD32)0xf809 << 16) | ((WORD32)0x0439 & 0xFFFF),
158      ((WORD32)0x07cb << 16) | ((WORD32)0xfea7 & 0xFFFF),
159      ((WORD32)0x05d1 << 16) | ((WORD32)0xfc28 & 0xFFFF),
160      ((WORD32)0x07a2 << 16) | ((WORD32)0x0582 & 0xFFFF),
161      ((WORD32)0xfa2a << 16) | ((WORD32)0xf9df & 0xFFFF),
162      ((WORD32)0xf92c << 16) | ((WORD32)0x0719 & 0xFFFF),
163      ((WORD32)0xf97d << 16) | ((WORD32)0xf834 & 0xFFFF),
164      ((WORD32)0xf8f7 << 16) | ((WORD32)0x05fb & 0xFFFF),
165      ((WORD32)0xfa46 << 16) | ((WORD32)0xf81d & 0xFFFF),
166      ((WORD32)0x06af << 16) | ((WORD32)0x06b2 & 0xFFFF),
167      ((WORD32)0xfc27 << 16) | ((WORD32)0xf818 & 0xFFFF),
168      ((WORD32)0x07c5 << 16) | ((WORD32)0x0668 & 0xFFFF),
169      ((WORD32)0x0429 << 16) | ((WORD32)0x066b & 0xFFFF),
170      ((WORD32)0xffef << 16) | ((WORD32)0xf9de & 0xFFFF),
171      ((WORD32)0xfa60 << 16) | ((WORD32)0x046e & 0xFFFF),
172      ((WORD32)0xf854 << 16) | ((WORD32)0xfc8a & 0xFFFF),
173      ((WORD32)0x07c4 << 16) | ((WORD32)0x00bf & 0xFFFF),
174      ((WORD32)0xf89c << 16) | ((WORD32)0x06d7 & 0xFFFF),
175      ((WORD32)0xfa71 << 16) | ((WORD32)0x07e4 & 0xFFFF),
176      ((WORD32)0x0220 << 16) | ((WORD32)0x05dd & 0xFFFF),
177      ((WORD32)0x023e << 16) | ((WORD32)0x012a & 0xFFFF),
178      ((WORD32)0xfa12 << 16) | ((WORD32)0x07f2 & 0xFFFF),
179      ((WORD32)0xffdc << 16) | ((WORD32)0xf964 & 0xFFFF),
180      ((WORD32)0xfb97 << 16) | ((WORD32)0xf817 & 0xFFFF),
181      ((WORD32)0x07d6 << 16) | ((WORD32)0xf87a & 0xFFFF),
182      ((WORD32)0xf810 << 16) | ((WORD32)0x055d & 0xFFFF),
183      ((WORD32)0xfa96 << 16) | ((WORD32)0x0103 & 0xFFFF),
184      ((WORD32)0x00bb << 16) | ((WORD32)0xfe5b & 0xFFFF),
185      ((WORD32)0xfa44 << 16) | ((WORD32)0xf82d & 0xFFFF),
186      ((WORD32)0x067b << 16) | ((WORD32)0x044c & 0xFFFF),
187      ((WORD32)0x0340 << 16) | ((WORD32)0xfde2 & 0xFFFF),
188      ((WORD32)0xfa96 << 16) | ((WORD32)0x078f & 0xFFFF),
189      ((WORD32)0x06f3 << 16) | ((WORD32)0xfe89 & 0xFFFF),
190      ((WORD32)0xf80a << 16) | ((WORD32)0xffca & 0xFFFF),
191      ((WORD32)0x06bf << 16) | ((WORD32)0x00d5 & 0xFFFF),
192      ((WORD32)0xff43 << 16) | ((WORD32)0x0590 & 0xFFFF),
193      ((WORD32)0x07ff << 16) | ((WORD32)0xff03 & 0xFFFF),
194      ((WORD32)0xf99f << 16) | ((WORD32)0xf8ac & 0xFFFF),
195      ((WORD32)0x07b5 << 16) | ((WORD32)0x07bb & 0xFFFF),
196      ((WORD32)0xf99b << 16) | ((WORD32)0x0525 & 0xFFFF),
197      ((WORD32)0xff13 << 16) | ((WORD32)0x0249 & 0xFFFF),
198      ((WORD32)0xfcce << 16) | ((WORD32)0x0788 & 0xFFFF),
199      ((WORD32)0x07ed << 16) | ((WORD32)0xf8a3 & 0xFFFF),
200      ((WORD32)0x024a << 16) | ((WORD32)0xf8b8 & 0xFFFF),
201      ((WORD32)0xf956 << 16) | ((WORD32)0xfa9d & 0xFFFF),
202      ((WORD32)0x07a2 << 16) | ((WORD32)0x03ef & 0xFFFF),
203      ((WORD32)0xff7c << 16) | ((WORD32)0x0043 & 0xFFFF),
204      ((WORD32)0xf809 << 16) | ((WORD32)0x0364 & 0xFFFF),
205      ((WORD32)0xfac3 << 16) | ((WORD32)0x069b & 0xFFFF),
206      ((WORD32)0xf980 << 16) | ((WORD32)0xfbdf & 0xFFFF),
207      ((WORD32)0xf807 << 16) | ((WORD32)0x06c2 & 0xFFFF),
208      ((WORD32)0x0006 << 16) | ((WORD32)0x052e & 0xFFFF),
209      ((WORD32)0x059d << 16) | ((WORD32)0xfe5d & 0xFFFF),
210      ((WORD32)0x07b5 << 16) | ((WORD32)0x0342 & 0xFFFF),
211      ((WORD32)0xfa7d << 16) | ((WORD32)0x074f & 0xFFFF),
212      ((WORD32)0xfd36 << 16) | ((WORD32)0x05b8 & 0xFFFF),
213      ((WORD32)0x075c << 16) | ((WORD32)0x0552 & 0xFFFF),
214      ((WORD32)0xf814 << 16) | ((WORD32)0x06df & 0xFFFF),
215      ((WORD32)0x0582 << 16) | ((WORD32)0x0474 & 0xFFFF),
216      ((WORD32)0xf80b << 16) | ((WORD32)0xfe65 & 0xFFFF),
217      ((WORD32)0x078a << 16) | ((WORD32)0xf806 & 0xFFFF),
218      ((WORD32)0xfa9b << 16) | ((WORD32)0x03f7 & 0xFFFF),
219      ((WORD32)0xfc36 << 16) | ((WORD32)0xf921 & 0xFFFF),
220      ((WORD32)0x0125 << 16) | ((WORD32)0xf878 & 0xFFFF),
221      ((WORD32)0xfda9 << 16) | ((WORD32)0x0076 & 0xFFFF),
222      ((WORD32)0x0381 << 16) | ((WORD32)0xf9b0 & 0xFFFF),
223      ((WORD32)0xfd18 << 16) | ((WORD32)0x0531 & 0xFFFF),
224      ((WORD32)0xff4d << 16) | ((WORD32)0x07d1 & 0xFFFF),
225      ((WORD32)0xf848 << 16) | ((WORD32)0xfbaf & 0xFFFF),
226      ((WORD32)0x0471 << 16) | ((WORD32)0x0650 & 0xFFFF),
227      ((WORD32)0x05e2 << 16) | ((WORD32)0x07b7 & 0xFFFF),
228      ((WORD32)0xfd87 << 16) | ((WORD32)0xf98c & 0xFFFF),
229      ((WORD32)0x0049 << 16) | ((WORD32)0xf837 & 0xFFFF),
230      ((WORD32)0x07e6 << 16) | ((WORD32)0x03df & 0xFFFF),
231      ((WORD32)0xf977 << 16) | ((WORD32)0xf8bc & 0xFFFF),
232      ((WORD32)0x056e << 16) | ((WORD32)0x0681 & 0xFFFF),
233      ((WORD32)0xfebc << 16) | ((WORD32)0x06d3 & 0xFFFF),
234      ((WORD32)0x0675 << 16) | ((WORD32)0xfe06 & 0xFFFF),
235      ((WORD32)0x03d3 << 16) | ((WORD32)0xfc4b & 0xFFFF),
236      ((WORD32)0x07b6 << 16) | ((WORD32)0x0314 & 0xFFFF),
237      ((WORD32)0xf812 << 16) | ((WORD32)0xfe01 & 0xFFFF),
238      ((WORD32)0x06a6 << 16) | ((WORD32)0xf86b & 0xFFFF),
239      ((WORD32)0xfb4d << 16) | ((WORD32)0x001a & 0xFFFF),
240      ((WORD32)0x07a5 << 16) | ((WORD32)0xf928 & 0xFFFF),
241      ((WORD32)0xf848 << 16) | ((WORD32)0xfae1 & 0xFFFF),
242      ((WORD32)0xf837 << 16) | ((WORD32)0x00fe & 0xFFFF),
243      ((WORD32)0x0750 << 16) | ((WORD32)0x04a3 & 0xFFFF),
244      ((WORD32)0xf802 << 16) | ((WORD32)0x05b0 & 0xFFFF),
245      ((WORD32)0xf90d << 16) | ((WORD32)0xfe60 & 0xFFFF),
246      ((WORD32)0xfde7 << 16) | ((WORD32)0xfa8a & 0xFFFF),
247      ((WORD32)0xfe07 << 16) | ((WORD32)0xf8fd & 0xFFFF),
248      ((WORD32)0x0031 << 16) | ((WORD32)0x022d & 0xFFFF),
249      ((WORD32)0x0691 << 16) | ((WORD32)0xf931 & 0xFFFF),
250      ((WORD32)0x0715 << 16) | ((WORD32)0xf8d4 & 0xFFFF),
251      ((WORD32)0xfe8c << 16) | ((WORD32)0xfde8 & 0xFFFF),
252      ((WORD32)0x00c0 << 16) | ((WORD32)0x0463 & 0xFFFF),
253      ((WORD32)0xfba0 << 16) | ((WORD32)0x07ae & 0xFFFF),
254      ((WORD32)0x02f7 << 16) | ((WORD32)0xfb35 & 0xFFFF),
255      ((WORD32)0xfa5f << 16) | ((WORD32)0x074c & 0xFFFF),
256      ((WORD32)0xfd3b << 16) | ((WORD32)0xf80b & 0xFFFF),
257      ((WORD32)0xfa7f << 16) | ((WORD32)0xfd95 & 0xFFFF),
258      ((WORD32)0xfdda << 16) | ((WORD32)0x06a6 & 0xFFFF),
259      ((WORD32)0x03ed << 16) | ((WORD32)0xfc5f & 0xFFFF),
260      ((WORD32)0x031e << 16) | ((WORD32)0x07a4 & 0xFFFF),
261      ((WORD32)0xf82e << 16) | ((WORD32)0x006d & 0xFFFF),
262      ((WORD32)0xfe9d << 16) | ((WORD32)0xf894 & 0xFFFF),
263      ((WORD32)0x07ff << 16) | ((WORD32)0x04aa & 0xFFFF),
264      ((WORD32)0xface << 16) | ((WORD32)0x057e & 0xFFFF),
265      ((WORD32)0xff0a << 16) | ((WORD32)0xfb6e & 0xFFFF),
266      ((WORD32)0xfb49 << 16) | ((WORD32)0xfd36 & 0xFFFF),
267      ((WORD32)0xfca8 << 16) | ((WORD32)0x014d & 0xFFFF),
268      ((WORD32)0x07fe << 16) | ((WORD32)0x00e4 & 0xFFFF),
269      ((WORD32)0xfb78 << 16) | ((WORD32)0xf8c3 & 0xFFFF),
270      ((WORD32)0x0788 << 16) | ((WORD32)0x02d3 & 0xFFFF),
271      ((WORD32)0xf9f1 << 16) | ((WORD32)0x044b & 0xFFFF),
272      ((WORD32)0x01a5 << 16) | ((WORD32)0xf872 & 0xFFFF),
273      ((WORD32)0x0800 << 16) | ((WORD32)0x0663 & 0xFFFF),
274      ((WORD32)0x0254 << 16) | ((WORD32)0x02d5 & 0xFFFF),
275      ((WORD32)0xfaf9 << 16) | ((WORD32)0x031a & 0xFFFF),
276      ((WORD32)0x037a << 16) | ((WORD32)0xf81e & 0xFFFF),
277      ((WORD32)0xf823 << 16) | ((WORD32)0x01af & 0xFFFF),
278      ((WORD32)0x0190 << 16) | ((WORD32)0xf876 & 0xFFFF),
279      ((WORD32)0xf85d << 16) | ((WORD32)0x07df & 0xFFFF),
280      ((WORD32)0x0778 << 16) | ((WORD32)0xfa54 & 0xFFFF),
281      ((WORD32)0xf92e << 16) | ((WORD32)0xff55 & 0xFFFF),
282      ((WORD32)0xf916 << 16) | ((WORD32)0xfc56 & 0xFFFF),
283      ((WORD32)0x031c << 16) | ((WORD32)0x07c8 & 0xFFFF),
284      ((WORD32)0x075d << 16) | ((WORD32)0xfb01 & 0xFFFF),
285      ((WORD32)0x0722 << 16) | ((WORD32)0x0465 & 0xFFFF),
286      ((WORD32)0xfd0e << 16) | ((WORD32)0x07b7 & 0xFFFF),
287      ((WORD32)0x0783 << 16) | ((WORD32)0xf8cd & 0xFFFF),
288      ((WORD32)0x07f1 << 16) | ((WORD32)0xffb3 & 0xFFFF),
289      ((WORD32)0xf87a << 16) | ((WORD32)0x034e & 0xFFFF),
290      ((WORD32)0x07fb << 16) | ((WORD32)0xfea7 & 0xFFFF),
291      ((WORD32)0xfd21 << 16) | ((WORD32)0xfc45 & 0xFFFF),
292      ((WORD32)0x006b << 16) | ((WORD32)0xfdf3 & 0xFFFF),
293      ((WORD32)0x02f0 << 16) | ((WORD32)0xfce8 & 0xFFFF),
294      ((WORD32)0x0755 << 16) | ((WORD32)0xfd8e & 0xFFFF),
295      ((WORD32)0x0585 << 16) | ((WORD32)0x0747 & 0xFFFF),
296      ((WORD32)0xfce8 << 16) | ((WORD32)0x07f6 & 0xFFFF),
297      ((WORD32)0xfda9 << 16) | ((WORD32)0x02ff & 0xFFFF),
298      ((WORD32)0xfb2f << 16) | ((WORD32)0x06f1 & 0xFFFF),
299      ((WORD32)0xf835 << 16) | ((WORD32)0x07b8 & 0xFFFF),
300      ((WORD32)0x0714 << 16) | ((WORD32)0x049a & 0xFFFF),
301      ((WORD32)0x006a << 16) | ((WORD32)0x01b4 & 0xFFFF),
302      ((WORD32)0xfbb8 << 16) | ((WORD32)0x07c8 & 0xFFFF),
303      ((WORD32)0xfc0c << 16) | ((WORD32)0x07db & 0xFFFF),
304      ((WORD32)0xf816 << 16) | ((WORD32)0xfcc8 & 0xFFFF),
305      ((WORD32)0xf827 << 16) | ((WORD32)0xfa2c & 0xFFFF),
306      ((WORD32)0xfdd0 << 16) | ((WORD32)0x07ff & 0xFFFF),
307      ((WORD32)0x0081 << 16) | ((WORD32)0xfba3 & 0xFFFF),
308      ((WORD32)0xfe5d << 16) | ((WORD32)0xfedd & 0xFFFF),
309      ((WORD32)0x054c << 16) | ((WORD32)0x05cd & 0xFFFF),
310      ((WORD32)0xf938 << 16) | ((WORD32)0x0031 & 0xFFFF),
311      ((WORD32)0xf8e0 << 16) | ((WORD32)0x071c & 0xFFFF),
312      ((WORD32)0x07ac << 16) | ((WORD32)0x0624 & 0xFFFF),
313      ((WORD32)0x05e1 << 16) | ((WORD32)0xffb3 & 0xFFFF),
314      ((WORD32)0xfd76 << 16) | ((WORD32)0xfd0e & 0xFFFF),
315      ((WORD32)0xfd45 << 16) | ((WORD32)0x0338 & 0xFFFF),
316      ((WORD32)0x03d3 << 16) | ((WORD32)0xfcd9 & 0xFFFF),
317      ((WORD32)0x07dd << 16) | ((WORD32)0x0029 & 0xFFFF),
318      ((WORD32)0xfd86 << 16) | ((WORD32)0xfe8e & 0xFFFF),
319      ((WORD32)0x0800 << 16) | ((WORD32)0xfde6 & 0xFFFF),
320      ((WORD32)0xf88c << 16) | ((WORD32)0xf823 & 0xFFFF),
321      ((WORD32)0x07fe << 16) | ((WORD32)0xf997 & 0xFFFF),
322      ((WORD32)0xfdeb << 16) | ((WORD32)0xf9ec & 0xFFFF),
323      ((WORD32)0xfd25 << 16) | ((WORD32)0x018b & 0xFFFF),
324      ((WORD32)0xf802 << 16) | ((WORD32)0x05f9 & 0xFFFF),
325      ((WORD32)0x06ed << 16) | ((WORD32)0x0473 & 0xFFFF),
326      ((WORD32)0x02ac << 16) | ((WORD32)0x06e5 & 0xFFFF),
327      ((WORD32)0x07ec << 16) | ((WORD32)0x005e & 0xFFFF),
328      ((WORD32)0xfaaa << 16) | ((WORD32)0xf8ab & 0xFFFF),
329      ((WORD32)0x051f << 16) | ((WORD32)0x0141 & 0xFFFF),
330      ((WORD32)0x07f7 << 16) | ((WORD32)0x03ab & 0xFFFF),
331      ((WORD32)0xfaed << 16) | ((WORD32)0x01b0 & 0xFFFF),
332      ((WORD32)0xff62 << 16) | ((WORD32)0xf8d5 & 0xFFFF),
333      ((WORD32)0x07e3 << 16) | ((WORD32)0x070f & 0xFFFF),
334      ((WORD32)0x0668 << 16) | ((WORD32)0xfd0d & 0xFFFF),
335      ((WORD32)0x0645 << 16) | ((WORD32)0x03a4 & 0xFFFF),
336      ((WORD32)0x00b2 << 16) | ((WORD32)0x067a & 0xFFFF),
337      ((WORD32)0xf90e << 16) | ((WORD32)0x0326 & 0xFFFF),
338      ((WORD32)0xfcd8 << 16) | ((WORD32)0xfaa8 & 0xFFFF),
339      ((WORD32)0x07d4 << 16) | ((WORD32)0xfa34 & 0xFFFF),
340      ((WORD32)0xf866 << 16) | ((WORD32)0x072a & 0xFFFF),
341      ((WORD32)0x015c << 16) | ((WORD32)0x0460 & 0xFFFF),
342      ((WORD32)0xf9d9 << 16) | ((WORD32)0xf84d & 0xFFFF),
343      ((WORD32)0x07fb << 16) | ((WORD32)0x036a & 0xFFFF),
344      ((WORD32)0x07a3 << 16) | ((WORD32)0x07c3 & 0xFFFF),
345      ((WORD32)0x07f7 << 16) | ((WORD32)0xfbac & 0xFFFF),
346      ((WORD32)0x023f << 16) | ((WORD32)0xf92c & 0xFFFF),
347      ((WORD32)0x06d2 << 16) | ((WORD32)0xfad6 & 0xFFFF),
348      ((WORD32)0xfbf4 << 16) | ((WORD32)0xfabb & 0xFFFF),
349      ((WORD32)0xf839 << 16) | ((WORD32)0xfe27 & 0xFFFF),
350      ((WORD32)0x07a2 << 16) | ((WORD32)0xf810 & 0xFFFF),
351      ((WORD32)0xf83f << 16) | ((WORD32)0x05e7 & 0xFFFF),
352      ((WORD32)0x0278 << 16) | ((WORD32)0x0352 & 0xFFFF),
353      ((WORD32)0xfe0a << 16) | ((WORD32)0x050e & 0xFFFF),
354      ((WORD32)0xfd4c << 16) | ((WORD32)0xfce8 & 0xFFFF),
355      ((WORD32)0xff89 << 16) | ((WORD32)0xff72 & 0xFFFF),
356      ((WORD32)0xfe2b << 16) | ((WORD32)0x07c4 & 0xFFFF),
357      ((WORD32)0xfe85 << 16) | ((WORD32)0x03ce & 0xFFFF),
358      ((WORD32)0xff29 << 16) | ((WORD32)0xf8fa & 0xFFFF),
359      ((WORD32)0xfa40 << 16) | ((WORD32)0x063e & 0xFFFF),
360      ((WORD32)0x07fc << 16) | ((WORD32)0x0734 & 0xFFFF),
361      ((WORD32)0x049b << 16) | ((WORD32)0xf8b8 & 0xFFFF),
362      ((WORD32)0x0250 << 16) | ((WORD32)0x07b4 & 0xFFFF),
363      ((WORD32)0x0360 << 16) | ((WORD32)0x03da & 0xFFFF),
364      ((WORD32)0x0778 << 16) | ((WORD32)0xfc84 & 0xFFFF),
365      ((WORD32)0xf83c << 16) | ((WORD32)0x06ee & 0xFFFF),
366      ((WORD32)0x02f0 << 16) | ((WORD32)0x0539 & 0xFFFF),
367      ((WORD32)0xf983 << 16) | ((WORD32)0x00b4 & 0xFFFF),
368      ((WORD32)0xfde7 << 16) | ((WORD32)0xf894 & 0xFFFF),
369      ((WORD32)0x06b8 << 16) | ((WORD32)0x0478 & 0xFFFF),
370      ((WORD32)0xf802 << 16) | ((WORD32)0xf851 & 0xFFFF),
371      ((WORD32)0x05f9 << 16) | ((WORD32)0x00f9 & 0xFFFF),
372      ((WORD32)0xfa05 << 16) | ((WORD32)0xfdd9 & 0xFFFF),
373      ((WORD32)0x07aa << 16) | ((WORD32)0xf9ad & 0xFFFF),
374      ((WORD32)0x07a3 << 16) | ((WORD32)0xff50 & 0xFFFF),
375      ((WORD32)0x03e6 << 16) | ((WORD32)0x0800 & 0xFFFF),
376      ((WORD32)0x03b5 << 16) | ((WORD32)0x00e1 & 0xFFFF),
377      ((WORD32)0xf9e1 << 16) | ((WORD32)0x0723 & 0xFFFF),
378      ((WORD32)0x0497 << 16) | ((WORD32)0x02d3 & 0xFFFF),
379      ((WORD32)0x0608 << 16) | ((WORD32)0x07bd & 0xFFFF),
380      ((WORD32)0xfb44 << 16) | ((WORD32)0xf8d9 & 0xFFFF),
381      ((WORD32)0x0602 << 16) | ((WORD32)0xfda2 & 0xFFFF),
382      ((WORD32)0xf81d << 16) | ((WORD32)0x0201 & 0xFFFF),
383      ((WORD32)0xfcbd << 16) | ((WORD32)0xf8cc & 0xFFFF),
384      ((WORD32)0x055b << 16) | ((WORD32)0x07e4 & 0xFFFF),
385      ((WORD32)0xf834 << 16) | ((WORD32)0xfffc & 0xFFFF),
386      ((WORD32)0x0736 << 16) | ((WORD32)0x07fc & 0xFFFF),
387      ((WORD32)0xf905 << 16) | ((WORD32)0x07f0 & 0xFFFF),
388      ((WORD32)0xf8ad << 16) | ((WORD32)0xfebe & 0xFFFF),
389      ((WORD32)0xffbc << 16) | ((WORD32)0xfd06 & 0xFFFF),
390      ((WORD32)0x0094 << 16) | ((WORD32)0xf8e5 & 0xFFFF),
391      ((WORD32)0x07f6 << 16) | ((WORD32)0x07c4 & 0xFFFF),
392      ((WORD32)0xfa02 << 16) | ((WORD32)0x0800 & 0xFFFF),
393      ((WORD32)0x005e << 16) | ((WORD32)0x07fc & 0xFFFF),
394      ((WORD32)0xf8e0 << 16) | ((WORD32)0xfd75 & 0xFFFF),
395      ((WORD32)0xf94c << 16) | ((WORD32)0x07d0 & 0xFFFF),
396      ((WORD32)0x02ad << 16) | ((WORD32)0xf91a & 0xFFFF),
397      ((WORD32)0xf806 << 16) | ((WORD32)0x0776 & 0xFFFF),
398      ((WORD32)0xfe2c << 16) | ((WORD32)0x0183 & 0xFFFF),
399      ((WORD32)0x0561 << 16) | ((WORD32)0xffb5 & 0xFFFF),
400      ((WORD32)0xff97 << 16) | ((WORD32)0xf898 & 0xFFFF),
401      ((WORD32)0x07ff << 16) | ((WORD32)0x077d & 0xFFFF),
402      ((WORD32)0x055b << 16) | ((WORD32)0x07ea & 0xFFFF),
403      ((WORD32)0xf808 << 16) | ((WORD32)0xfc6d & 0xFFFF),
404      ((WORD32)0x0692 << 16) | ((WORD32)0x07f7 & 0xFFFF),
405      ((WORD32)0x07ef << 16) | ((WORD32)0x05c3 & 0xFFFF),
406      ((WORD32)0xfac7 << 16) | ((WORD32)0x042d & 0xFFFF),
407      ((WORD32)0x0783 << 16) | ((WORD32)0xfa02 & 0xFFFF),
408      ((WORD32)0x07bd << 16) | ((WORD32)0x0745 & 0xFFFF),
409      ((WORD32)0xfe39 << 16) | ((WORD32)0x0492 & 0xFFFF),
410      ((WORD32)0xfc78 << 16) | ((WORD32)0xf896 & 0xFFFF),
411      ((WORD32)0xf925 << 16) | ((WORD32)0x071c & 0xFFFF),
412      ((WORD32)0x0758 << 16) | ((WORD32)0xfc4b & 0xFFFF),
413      ((WORD32)0x05ce << 16) | ((WORD32)0xf802 & 0xFFFF),
414      ((WORD32)0xf806 << 16) | ((WORD32)0x04a8 & 0xFFFF),
415      ((WORD32)0x0636 << 16) | ((WORD32)0x078c & 0xFFFF),
416      ((WORD32)0x009e << 16) | ((WORD32)0x04b1 & 0xFFFF),
417      ((WORD32)0xfb84 << 16) | ((WORD32)0x069a & 0xFFFF),
418      ((WORD32)0x07df << 16) | ((WORD32)0x0328 & 0xFFFF),
419      ((WORD32)0x03ce << 16) | ((WORD32)0x057d & 0xFFFF),
420      ((WORD32)0x0541 << 16) | ((WORD32)0x0177 & 0xFFFF),
421      ((WORD32)0x0043 << 16) | ((WORD32)0xfa01 & 0xFFFF),
422      ((WORD32)0xfce8 << 16) | ((WORD32)0x041b & 0xFFFF),
423      ((WORD32)0xf836 << 16) | ((WORD32)0xf847 & 0xFFFF),
424      ((WORD32)0xfbbd << 16) | ((WORD32)0xf8b0 & 0xFFFF),
425      ((WORD32)0x07fc << 16) | ((WORD32)0x04e4 & 0xFFFF),
426      ((WORD32)0xfbfb << 16) | ((WORD32)0xf8e5 & 0xFFFF),
427      ((WORD32)0x0029 << 16) | ((WORD32)0x06d1 & 0xFFFF),
428      ((WORD32)0x07ff << 16) | ((WORD32)0x0791 & 0xFFFF),
429      ((WORD32)0x06a2 << 16) | ((WORD32)0xff7e & 0xFFFF),
430      ((WORD32)0xfb4f << 16) | ((WORD32)0x07bf & 0xFFFF),
431      ((WORD32)0xfe98 << 16) | ((WORD32)0xfc26 & 0xFFFF),
432      ((WORD32)0x06ad << 16) | ((WORD32)0xfef5 & 0xFFFF),
433      ((WORD32)0x007a << 16) | ((WORD32)0x01a4 & 0xFFFF),
434      ((WORD32)0x0685 << 16) | ((WORD32)0xf86d & 0xFFFF),
435      ((WORD32)0xfc67 << 16) | ((WORD32)0x0346 & 0xFFFF),
436      ((WORD32)0xf8d2 << 16) | ((WORD32)0x07fd & 0xFFFF),
437      ((WORD32)0x032d << 16) | ((WORD32)0xfa03 & 0xFFFF),
438      ((WORD32)0xff65 << 16) | ((WORD32)0x05ed & 0xFFFF),
439      ((WORD32)0x061c << 16) | ((WORD32)0x0357 & 0xFFFF),
440      ((WORD32)0xfa0a << 16) | ((WORD32)0x0794 & 0xFFFF),
441      ((WORD32)0x0531 << 16) | ((WORD32)0x034f & 0xFFFF),
442      ((WORD32)0x04fc << 16) | ((WORD32)0xf88d & 0xFFFF),
443      ((WORD32)0x0361 << 16) | ((WORD32)0xff62 & 0xFFFF),
444      ((WORD32)0x0037 << 16) | ((WORD32)0xff91 & 0xFFFF),
445      ((WORD32)0x0666 << 16) | ((WORD32)0x0753 & 0xFFFF),
446      ((WORD32)0xf9a7 << 16) | ((WORD32)0xfd1a & 0xFFFF),
447      ((WORD32)0x051c << 16) | ((WORD32)0x00a6 & 0xFFFF),
448      ((WORD32)0x043b << 16) | ((WORD32)0x04ce & 0xFFFF),
449      ((WORD32)0x05f0 << 16) | ((WORD32)0x005c & 0xFFFF),
450      ((WORD32)0x07ed << 16) | ((WORD32)0xfe72 & 0xFFFF),
451      ((WORD32)0xf991 << 16) | ((WORD32)0xf8eb & 0xFFFF),
452      ((WORD32)0xfad5 << 16) | ((WORD32)0x05c7 & 0xFFFF),
453      ((WORD32)0x00ef << 16) | ((WORD32)0xf94f & 0xFFFF),
454      ((WORD32)0xf865 << 16) | ((WORD32)0xf83f & 0xFFFF),
455      ((WORD32)0xfb06 << 16) | ((WORD32)0x069f & 0xFFFF),
456      ((WORD32)0x003e << 16) | ((WORD32)0xf805 & 0xFFFF),
457      ((WORD32)0xf829 << 16) | ((WORD32)0x02ec & 0xFFFF),
458      ((WORD32)0xf800 << 16) | ((WORD32)0xfd1e & 0xFFFF),
459      ((WORD32)0x0721 << 16) | ((WORD32)0xf82b & 0xFFFF),
460      ((WORD32)0x00d5 << 16) | ((WORD32)0x0630 & 0xFFFF),
461      ((WORD32)0x07ad << 16) | ((WORD32)0xfd2a & 0xFFFF),
462      ((WORD32)0x0411 << 16) | ((WORD32)0x07b0 & 0xFFFF),
463      ((WORD32)0x015c << 16) | ((WORD32)0xf9da & 0xFFFF),
464      ((WORD32)0x0212 << 16) | ((WORD32)0x07fe & 0xFFFF),
465      ((WORD32)0xffe9 << 16) | ((WORD32)0x07e1 & 0xFFFF),
466      ((WORD32)0xf9a2 << 16) | ((WORD32)0x07c5 & 0xFFFF),
467      ((WORD32)0xf80f << 16) | ((WORD32)0xf809 & 0xFFFF),
468      ((WORD32)0xf803 << 16) | ((WORD32)0x0026 & 0xFFFF),
469      ((WORD32)0xfa56 << 16) | ((WORD32)0x02b2 & 0xFFFF),
470      ((WORD32)0xfa5d << 16) | ((WORD32)0x0776 & 0xFFFF),
471      ((WORD32)0x07fd << 16) | ((WORD32)0xf81a & 0xFFFF),
472      ((WORD32)0xfaee << 16) | ((WORD32)0xfeaf & 0xFFFF),
473      ((WORD32)0xfeb3 << 16) | ((WORD32)0xf853 & 0xFFFF),
474      ((WORD32)0xfc82 << 16) | ((WORD32)0xf86a & 0xFFFF),
475      ((WORD32)0xf803 << 16) | ((WORD32)0x07b3 & 0xFFFF),
476      ((WORD32)0xfea8 << 16) | ((WORD32)0xf815 & 0xFFFF),
477      ((WORD32)0xf8f6 << 16) | ((WORD32)0xfa43 & 0xFFFF),
478      ((WORD32)0x0389 << 16) | ((WORD32)0xf884 & 0xFFFF),
479      ((WORD32)0x0777 << 16) | ((WORD32)0xf802 & 0xFFFF),
480      ((WORD32)0xf87c << 16) | ((WORD32)0xfb7d & 0xFFFF),
481      ((WORD32)0xf8ea << 16) | ((WORD32)0x03cf & 0xFFFF),
482      ((WORD32)0x07ff << 16) | ((WORD32)0xf94a & 0xFFFF),
483      ((WORD32)0xf9f8 << 16) | ((WORD32)0x0011 & 0xFFFF),
484      ((WORD32)0x0783 << 16) | ((WORD32)0xff19 & 0xFFFF),
485      ((WORD32)0x06cf << 16) | ((WORD32)0x0430 & 0xFFFF),
486      ((WORD32)0x032d << 16) | ((WORD32)0x068b & 0xFFFF),
487      ((WORD32)0xfd0a << 16) | ((WORD32)0xf909 & 0xFFFF),
488      ((WORD32)0xfd1e << 16) | ((WORD32)0x02c6 & 0xFFFF),
489      ((WORD32)0xf887 << 16) | ((WORD32)0xf93e & 0xFFFF),
490      ((WORD32)0xfac7 << 16) | ((WORD32)0xfe86 & 0xFFFF),
491      ((WORD32)0x00f5 << 16) | ((WORD32)0x07fe & 0xFFFF),
492      ((WORD32)0x078b << 16) | ((WORD32)0x06a7 & 0xFFFF),
493      ((WORD32)0x0602 << 16) | ((WORD32)0xfd28 & 0xFFFF),
494      ((WORD32)0x048a << 16) | ((WORD32)0xfe13 & 0xFFFF),
495      ((WORD32)0x03c0 << 16) | ((WORD32)0xfd97 & 0xFFFF),
496      ((WORD32)0x07c9 << 16) | ((WORD32)0xf809 & 0xFFFF),
497      ((WORD32)0xfcf0 << 16) | ((WORD32)0x07e2 & 0xFFFF),
498      ((WORD32)0x0348 << 16) | ((WORD32)0x002b & 0xFFFF),
499      ((WORD32)0x00c5 << 16) | ((WORD32)0x005a & 0xFFFF),
500      ((WORD32)0xf92d << 16) | ((WORD32)0x0751 & 0xFFFF),
501      ((WORD32)0x071c << 16) | ((WORD32)0xf805 & 0xFFFF),
502      ((WORD32)0xfc25 << 16) | ((WORD32)0xf841 & 0xFFFF),
503      ((WORD32)0x0235 << 16) | ((WORD32)0x04b1 & 0xFFFF),
504      ((WORD32)0xfabb << 16) | ((WORD32)0x04b5 & 0xFFFF),
505      ((WORD32)0x07e8 << 16) | ((WORD32)0x0800 & 0xFFFF),
506      ((WORD32)0xfe59 << 16) | ((WORD32)0x045e & 0xFFFF),
507      ((WORD32)0xfb08 << 16) | ((WORD32)0xfb35 & 0xFFFF),
508      ((WORD32)0x01a0 << 16) | ((WORD32)0xf90d & 0xFFFF),
509      ((WORD32)0xf82d << 16) | ((WORD32)0x07b4 & 0xFFFF),
510      ((WORD32)0x00e4 << 16) | ((WORD32)0x01b8 & 0xFFFF),
511      ((WORD32)0xfcb1 << 16) | ((WORD32)0x0242 & 0xFFFF),
512      ((WORD32)0x01ee << 16) | ((WORD32)0x041b & 0xFFFF),
513      ((WORD32)0xfab0 << 16) | ((WORD32)0xff57 & 0xFFFF),
514      ((WORD32)0xfbb4 << 16) | ((WORD32)0xf830 & 0xFFFF),
515      ((WORD32)0xf839 << 16) | ((WORD32)0x01c4 & 0xFFFF),
516      ((WORD32)0x06fe << 16) | ((WORD32)0xfefa & 0xFFFF),
517      ((WORD32)0x0186 << 16) | ((WORD32)0x0021 & 0xFFFF),
518      ((WORD32)0xfc4b << 16) | ((WORD32)0xf861 & 0xFFFF),
519      ((WORD32)0xff6f << 16) | ((WORD32)0xf871 & 0xFFFF),
520      ((WORD32)0xf89b << 16) | ((WORD32)0xff2a & 0xFFFF),
521      ((WORD32)0xf94b << 16) | ((WORD32)0xffdd & 0xFFFF),
522      ((WORD32)0x0604 << 16) | ((WORD32)0xf801 & 0xFFFF),
523      ((WORD32)0xfca2 << 16) | ((WORD32)0x07fa & 0xFFFF),
524      ((WORD32)0xfa3b << 16) | ((WORD32)0xfd33 & 0xFFFF),
525      ((WORD32)0x064f << 16) | ((WORD32)0x043a & 0xFFFF),
526      ((WORD32)0x07cb << 16) | ((WORD32)0xfddd & 0xFFFF),
527      ((WORD32)0x07f0 << 16) | ((WORD32)0xfb70 & 0xFFFF),
528      ((WORD32)0x0625 << 16) | ((WORD32)0xf9e1 & 0xFFFF),
529      ((WORD32)0xf971 << 16) | ((WORD32)0xfa1e & 0xFFFF),
530      ((WORD32)0x068e << 16) | ((WORD32)0x07fa & 0xFFFF),
531      ((WORD32)0xfddd << 16) | ((WORD32)0x0583 & 0xFFFF),
532      ((WORD32)0xfc89 << 16) | ((WORD32)0x06d3 & 0xFFFF),
533      ((WORD32)0x07f0 << 16) | ((WORD32)0x075a & 0xFFFF),
534      ((WORD32)0xf98b << 16) | ((WORD32)0xfd64 & 0xFFFF),
535      ((WORD32)0x0372 << 16) | ((WORD32)0xfe3f & 0xFFFF),
536      ((WORD32)0x056b << 16) | ((WORD32)0xf85d & 0xFFFF),
537      ((WORD32)0x047e << 16) | ((WORD32)0xfa58 & 0xFFFF),
538      ((WORD32)0x00de << 16) | ((WORD32)0xff4f & 0xFFFF),
539      ((WORD32)0x074c << 16) | ((WORD32)0xfab9 & 0xFFFF),
540      ((WORD32)0xfc15 << 16) | ((WORD32)0x0481 & 0xFFFF),
541      ((WORD32)0xf8e1 << 16) | ((WORD32)0xfa44 & 0xFFFF),
542      ((WORD32)0x0539 << 16) | ((WORD32)0x0546 & 0xFFFF),
543      ((WORD32)0x0565 << 16) | ((WORD32)0xf977 & 0xFFFF),
544      ((WORD32)0xfc2e << 16) | ((WORD32)0xfea8 & 0xFFFF),
545      ((WORD32)0xf806 << 16) | ((WORD32)0xf884 & 0xFFFF),
546      ((WORD32)0xf8bb << 16) | ((WORD32)0x04f6 & 0xFFFF),
547      ((WORD32)0xff78 << 16) | ((WORD32)0xfe18 & 0xFFFF),
548      ((WORD32)0x07f4 << 16) | ((WORD32)0x0181 & 0xFFFF),
549      ((WORD32)0x07d1 << 16) | ((WORD32)0xfdb5 & 0xFFFF),
550      ((WORD32)0x0796 << 16) | ((WORD32)0xf833 & 0xFFFF),
551      ((WORD32)0xf85e << 16) | ((WORD32)0xf9a2 & 0xFFFF),
552      ((WORD32)0xfc12 << 16) | ((WORD32)0x02a2 & 0xFFFF),
553      ((WORD32)0x07fe << 16) | ((WORD32)0x071f & 0xFFFF),
554      ((WORD32)0x0409 << 16) | ((WORD32)0xf91f & 0xFFFF),
555      ((WORD32)0x03c6 << 16) | ((WORD32)0xfe81 & 0xFFFF),
556      ((WORD32)0xfb09 << 16) | ((WORD32)0x0600 & 0xFFFF),
557      ((WORD32)0xfc7e << 16) | ((WORD32)0x0800 & 0xFFFF),
558      ((WORD32)0x07e4 << 16) | ((WORD32)0xfbb7 & 0xFFFF),
559      ((WORD32)0xfb14 << 16) | ((WORD32)0xf8d7 & 0xFFFF),
560      ((WORD32)0xffb1 << 16) | ((WORD32)0xfa69 & 0xFFFF),
561      ((WORD32)0xfd98 << 16) | ((WORD32)0xff63 & 0xFFFF),
562      ((WORD32)0x035a << 16) | ((WORD32)0x002d & 0xFFFF),
563      ((WORD32)0xf91c << 16) | ((WORD32)0x07ea & 0xFFFF),
564      ((WORD32)0x0561 << 16) | ((WORD32)0xfeec & 0xFFFF),
565      ((WORD32)0xfa57 << 16) | ((WORD32)0xf9e0 & 0xFFFF),
566      ((WORD32)0x0786 << 16) | ((WORD32)0x00b9 & 0xFFFF),
567      ((WORD32)0xf969 << 16) | ((WORD32)0x00b7 & 0xFFFF),
568      ((WORD32)0xfd6f << 16) | ((WORD32)0x0403 & 0xFFFF),
569      ((WORD32)0x049c << 16) | ((WORD32)0xf815 & 0xFFFF),
570      ((WORD32)0xfd18 << 16) | ((WORD32)0x0098 & 0xFFFF),
571      ((WORD32)0x0800 << 16) | ((WORD32)0xfedf & 0xFFFF),
572      ((WORD32)0xf89c << 16) | ((WORD32)0xf829 & 0xFFFF),
573      ((WORD32)0xfc6e << 16) | ((WORD32)0xfba9 & 0xFFFF),
574      ((WORD32)0x038a << 16) | ((WORD32)0x05b5 & 0xFFFF),
575      ((WORD32)0x004b << 16) | ((WORD32)0x0517 & 0xFFFF),
576      ((WORD32)0x042d << 16) | ((WORD32)0xf92b & 0xFFFF),
577      ((WORD32)0xf86d << 16) | ((WORD32)0xffdb & 0xFFFF),
578      ((WORD32)0xf819 << 16) | ((WORD32)0x0695 & 0xFFFF),
579      ((WORD32)0x06ff << 16) | ((WORD32)0x0727 & 0xFFFF),
580      ((WORD32)0xf887 << 16) | ((WORD32)0x034f & 0xFFFF),
581      ((WORD32)0x07af << 16) | ((WORD32)0x0773 & 0xFFFF),
582      ((WORD32)0x07ce << 16) | ((WORD32)0x06e4 & 0xFFFF),
583      ((WORD32)0x07f9 << 16) | ((WORD32)0x059d & 0xFFFF),
584      ((WORD32)0xf86c << 16) | ((WORD32)0xfda2 & 0xFFFF),
585      ((WORD32)0x0754 << 16) | ((WORD32)0xf826 & 0xFFFF),
586 
587      ((WORD32)0xf801 << 16) | ((WORD32)0xfb3e & 0xFFFF),
588      ((WORD32)0x07c5 << 16) | ((WORD32)0xfa99 & 0xFFFF),
589      ((WORD32)0x0121 << 16) | ((WORD32)0xf865 & 0xFFFF),
590      ((WORD32)0xfc3d << 16) | ((WORD32)0xfd03 & 0xFFFF),
591      ((WORD32)0x0675 << 16) | ((WORD32)0x025f & 0xFFFF),
592      ((WORD32)0xfce2 << 16) | ((WORD32)0x072a & 0xFFFF),
593      ((WORD32)0xffea << 16) | ((WORD32)0xfaa5 & 0xFFFF),
594      ((WORD32)0xf8b3 << 16) | ((WORD32)0xff14 & 0xFFFF),
595      ((WORD32)0x0463 << 16) | ((WORD32)0x0605 & 0xFFFF),
596      ((WORD32)0x0333 << 16) | ((WORD32)0xf816 & 0xFFFF),
597      ((WORD32)0xf803 << 16) | ((WORD32)0xf8f3 & 0xFFFF),
598      ((WORD32)0xf85c << 16) | ((WORD32)0x0746 & 0xFFFF),
599      ((WORD32)0xfc58 << 16) | ((WORD32)0xfb76 & 0xFFFF),
600      ((WORD32)0xfa2a << 16) | ((WORD32)0xf829 & 0xFFFF),
601      ((WORD32)0x060d << 16) | ((WORD32)0x01ad & 0xFFFF),
602      ((WORD32)0x0091 << 16) | ((WORD32)0xf9bd & 0xFFFF),
603      ((WORD32)0x05f6 << 16) | ((WORD32)0xf8b5 & 0xFFFF),
604      ((WORD32)0xf849 << 16) | ((WORD32)0xf86c & 0xFFFF),
605      ((WORD32)0x026f << 16) | ((WORD32)0xfc0c & 0xFFFF),
606      ((WORD32)0x0553 << 16) | ((WORD32)0x052c & 0xFFFF),
607      ((WORD32)0x0756 << 16) | ((WORD32)0x0167 & 0xFFFF),
608      ((WORD32)0xfa57 << 16) | ((WORD32)0x0434 & 0xFFFF),
609      ((WORD32)0xfa65 << 16) | ((WORD32)0xfc5f & 0xFFFF),
610      ((WORD32)0xf80a << 16) | ((WORD32)0xf8cb & 0xFFFF),
611      ((WORD32)0x07da << 16) | ((WORD32)0xf9ce & 0xFFFF),
612      ((WORD32)0xfba0 << 16) | ((WORD32)0xffcb & 0xFFFF),
613      ((WORD32)0xffdd << 16) | ((WORD32)0x0006 & 0xFFFF),
614      ((WORD32)0xf91c << 16) | ((WORD32)0x0367 & 0xFFFF),
615      ((WORD32)0xf817 << 16) | ((WORD32)0xf8f8 & 0xFFFF),
616      ((WORD32)0x0424 << 16) | ((WORD32)0x055b & 0xFFFF),
617      ((WORD32)0xf807 << 16) | ((WORD32)0xfb5a & 0xFFFF),
618      ((WORD32)0xf801 << 16) | ((WORD32)0x07df & 0xFFFF),
619      ((WORD32)0x046c << 16) | ((WORD32)0x04c2 & 0xFFFF),
620      ((WORD32)0x02c4 << 16) | ((WORD32)0x0797 & 0xFFFF),
621      ((WORD32)0x0503 << 16) | ((WORD32)0xfa0c & 0xFFFF),
622      ((WORD32)0xf9d4 << 16) | ((WORD32)0xfd4a & 0xFFFF),
623      ((WORD32)0xf8ac << 16) | ((WORD32)0x004c & 0xFFFF),
624      ((WORD32)0xf9e6 << 16) | ((WORD32)0xf8b1 & 0xFFFF),
625      ((WORD32)0x0662 << 16) | ((WORD32)0xf88c & 0xFFFF),
626      ((WORD32)0x045c << 16) | ((WORD32)0xff0c & 0xFFFF),
627      ((WORD32)0xf926 << 16) | ((WORD32)0x0365 & 0xFFFF),
628      ((WORD32)0xf892 << 16) | ((WORD32)0x023b & 0xFFFF),
629      ((WORD32)0xff10 << 16) | ((WORD32)0xf804 & 0xFFFF),
630      ((WORD32)0x01b5 << 16) | ((WORD32)0xf8be & 0xFFFF),
631      ((WORD32)0xf9e8 << 16) | ((WORD32)0x07fb & 0xFFFF),
632      ((WORD32)0x07d9 << 16) | ((WORD32)0xf855 & 0xFFFF),
633      ((WORD32)0xf920 << 16) | ((WORD32)0x07a9 & 0xFFFF),
634      ((WORD32)0xf889 << 16) | ((WORD32)0x03f4 & 0xFFFF)}
635 
636 };
637 
638 const ia_qmf_dec_tables_struct ixheaacd_aac_qmf_dec_tables = {
639 
640     // const WORD16 w_32[2 * 30] =
641     {0,      32767,  0,      32767,  0,      32767,  6393,   32138, 12540,
642      30274,  18205,  27246,  12540,  30274,  23170,  23170,  30274, 12540,
643      18205,  27246,  30274,  12540,  32138,  -6393,  23170,  23170, 32767,
644      0,      23170,  -23170, 27246,  18205,  30274,  -12540, 6393,  -32138,
645      30274,  12540,  23170,  -23170, -12540, -30274, 32138,  6393,  12540,
646      -30274, -27246, -18205, 0,      32767,  0,      32767,  0,     32767,
647      23170,  23170,  32767,  0,      23170,  -23170},
648 
649     // const WORD16 w_16[2 * 12] =
650     {0,     32767,  0,     32767, 0,     32767,  12540,  30274,
651      23170, 23170,  30274, 12540, 23170, 23170,  32767,  0,
652      23170, -23170, 30274, 12540, 23170, -23170, -12540, -30274},
653 
654     // const WORD32 ixheaacd_dig_rev_table2_32[4]=
655     {0, 64, 16, 80},
656 
657     // const WORD32 ixheaacd_dig_rev_table4_16[2]=
658     {0, 16},
659 
660     // const WORD16 ixheaacd_sbr_sin_twiddle_l64 and
661     // ixheaacd_sbr_cos_twiddle_l64 [32] =
662     {
663         (WORD16)0x0192, (WORD16)0x7ffe, (WORD16)0x7fea, (WORD16)0x04b6,
664         (WORD16)0x07d9, (WORD16)0x7fc2, (WORD16)0x7f87, (WORD16)0x0afb,
665         (WORD16)0x0e1c, (WORD16)0x7f38, (WORD16)0x7ed6, (WORD16)0x113a,
666         (WORD16)0x1455, (WORD16)0x7e60, (WORD16)0x7dd6, (WORD16)0x176e,
667         (WORD16)0x1a83, (WORD16)0x7d3a, (WORD16)0x7c89, (WORD16)0x1d93,
668         (WORD16)0x209f, (WORD16)0x7bc6, (WORD16)0x7aef, (WORD16)0x23a7,
669         (WORD16)0x26a8, (WORD16)0x7a06, (WORD16)0x790a, (WORD16)0x29a4,
670         (WORD16)0x2c99, (WORD16)0x77fb, (WORD16)0x76d9, (WORD16)0x2f87,
671         (WORD16)0x326e, (WORD16)0x75a6, (WORD16)0x7460, (WORD16)0x354e,
672         (WORD16)0x3825, (WORD16)0x7308, (WORD16)0x719e, (WORD16)0x3af3,
673         (WORD16)0x3db8, (WORD16)0x7023, (WORD16)0x6e97, (WORD16)0x4074,
674         (WORD16)0x4326, (WORD16)0x6cf9, (WORD16)0x6b4b, (WORD16)0x45cd,
675         (WORD16)0x486a, (WORD16)0x698c, (WORD16)0x67bd, (WORD16)0x4afb,
676         (WORD16)0x4d81, (WORD16)0x65de, (WORD16)0x63ef, (WORD16)0x4ffb,
677         (WORD16)0x5269, (WORD16)0x61f1, (WORD16)0x5fe4, (WORD16)0x54ca,
678         (WORD16)0x571e, (WORD16)0x5dc8, (WORD16)0x5b9d, (WORD16)0x5964,
679 
680     },
681     // WORD16 sbr_alt_sin_twiddle_l64[32];
682     {
683         // (WORD16)0x0000,  (WORD16)0x7fff,
684         (WORD16)0x0648, (WORD16)0x7fd9, (WORD16)0x0c8c, (WORD16)0x7f62,
685         (WORD16)0x12c8, (WORD16)0x7e9d, (WORD16)0x18f9, (WORD16)0x7d8a,
686         (WORD16)0x1f1a, (WORD16)0x7c2a, (WORD16)0x2528, (WORD16)0x7a7d,
687         (WORD16)0x2b1f, (WORD16)0x7885, (WORD16)0x30fc, (WORD16)0x7642,
688         (WORD16)0x36ba, (WORD16)0x73b6, (WORD16)0x3c57, (WORD16)0x70e3,
689         (WORD16)0x41ce, (WORD16)0x6dca, (WORD16)0x471d, (WORD16)0x6a6e,
690         (WORD16)0x4c40, (WORD16)0x66d0, (WORD16)0x5134, (WORD16)0x62f2,
691         (WORD16)0x55f6, (WORD16)0x5ed7, (WORD16)0x5a82, (WORD16)0x5a82,
692 
693     },
694 
695     // const WORD16 ixheaacd_sbr_cos_sin_twiddle_ds_l32[32+32] =
696     {(WORD16)0x7ffe, (WORD16)0x0192, (WORD16)0x7fea, (WORD16)0x04b6,
697      (WORD16)0x7fc2, (WORD16)0x07d9, (WORD16)0x7f87, (WORD16)0x0afb,
698      (WORD16)0x7f38, (WORD16)0x0e1c, (WORD16)0x7ed6, (WORD16)0x113a,
699      (WORD16)0x7e60, (WORD16)0x1455, (WORD16)0x7dd6, (WORD16)0x176e,
700      (WORD16)0x7d3a, (WORD16)0x1a83, (WORD16)0x7c89, (WORD16)0x1d93,
701      (WORD16)0x7bc6, (WORD16)0x209f, (WORD16)0x7aef, (WORD16)0x23a7,
702      (WORD16)0x7a06, (WORD16)0x26a8, (WORD16)0x790a, (WORD16)0x29a4,
703      (WORD16)0x77fb, (WORD16)0x2c99, (WORD16)0x76d9, (WORD16)0x2f87,
704      (WORD16)0x75a6, (WORD16)0x326e, (WORD16)0x7460, (WORD16)0x354e,
705      (WORD16)0x7308, (WORD16)0x3825, (WORD16)0x719e, (WORD16)0x3af3,
706      (WORD16)0x7023, (WORD16)0x3db8, (WORD16)0x6e97, (WORD16)0x4074,
707      (WORD16)0x6cf9, (WORD16)0x4326, (WORD16)0x6b4b, (WORD16)0x45cd,
708      (WORD16)0x698c, (WORD16)0x486a, (WORD16)0x67bd, (WORD16)0x4afb,
709      (WORD16)0x65de, (WORD16)0x4d81, (WORD16)0x63ef, (WORD16)0x4ffb,
710      (WORD16)0x61f1, (WORD16)0x5269, (WORD16)0x5fe4, (WORD16)0x54ca,
711      (WORD16)0x5dc8, (WORD16)0x571e, (WORD16)0x5b9d, (WORD16)0x5964},
712 
713     // const WORD16 ixheaacd_sbr_cos_twiddle_l32 and
714     // ixheaacd_sbr_sin_twiddle_l32[16]=
715     {
716         (WORD16)0x0324, (WORD16)0x7ff6, (WORD16)0x7fa7, (WORD16)0x096b,
717         (WORD16)0x0fab, (WORD16)0x7f0a, (WORD16)0x7e1e, (WORD16)0x15e2,
718         (WORD16)0x1c0c, (WORD16)0x7ce4, (WORD16)0x7b5d, (WORD16)0x2224,
719         (WORD16)0x2827, (WORD16)0x798a, (WORD16)0x776c, (WORD16)0x2e11,
720         (WORD16)0x33df, (WORD16)0x7505, (WORD16)0x7255, (WORD16)0x398d,
721         (WORD16)0x3f17, (WORD16)0x6f5f, (WORD16)0x6c24, (WORD16)0x447b,
722         (WORD16)0x49b4, (WORD16)0x68a7, (WORD16)0x64e9, (WORD16)0x4ec0,
723         (WORD16)0x539b, (WORD16)0x60ec, (WORD16)0x5cb4, (WORD16)0x5843,
724 
725     },
726     // const WORD16 ixheaacd_sbr_alt_sin_twiddle_l32[17] =
727     {
728         //(WORD16)0x0000, (WORD16)0x7fff,
729         (WORD16)0x0c8c, (WORD16)0x7f62, (WORD16)0x18f9, (WORD16)0x7d8a,
730         (WORD16)0x2528, (WORD16)0x7a7d, (WORD16)0x30fc, (WORD16)0x7642,
731         (WORD16)0x3c57, (WORD16)0x70e3, (WORD16)0x471d, (WORD16)0x6a6e,
732         (WORD16)0x5134, (WORD16)0x62f2, (WORD16)0x5a82, (WORD16)0x5a82,
733 
734     },
735     // const WORD16 ixheaacd_sbr_t_cos_sin_l32[32+32] = //exp[-i * pi/32* 3/4 *
736     // (k +0.5)]
737     {(WORD16)0x7fea,  (WORD16)0x04b6, (WORD16)0x7f38,  (WORD16)0x0e1c,
738      (WORD16)0x7dd6,  (WORD16)0x176e, (WORD16)0x7bc6,  (WORD16)0x209f,
739      (WORD16)0x790a,  (WORD16)0x29a4, (WORD16)0x75a6,  (WORD16)0x326e,
740      (WORD16)0x719e,  (WORD16)0x3af3, (WORD16)0x6cf9,  (WORD16)0x4326,
741      (WORD16)0x67bd,  (WORD16)0x4afb, (WORD16)0x61f1,  (WORD16)0x5269,
742      (WORD16)0x5b9d,  (WORD16)0x5964, (WORD16)0x54ca,  (WORD16)0x5fe4,
743      (WORD16)0x4d81,  (WORD16)0x65de, (WORD16)0x45cd,  (WORD16)0x6b4b,
744      (WORD16)0x3db8,  (WORD16)0x7023, (WORD16)0x354e,  (WORD16)0x7460,
745      (WORD16)0x2c99,  (WORD16)0x77fb, (WORD16)0x23a7,  (WORD16)0x7aef,
746      (WORD16)0x1a83,  (WORD16)0x7d3a, (WORD16)0x113a,  (WORD16)0x7ed6,
747      (WORD16)0x07d9,  (WORD16)0x7fc2, (WORD16)-0x0192, (WORD16)0x7ffe,
748      (WORD16)-0x0afb, (WORD16)0x7f87, (WORD16)-0x1455, (WORD16)0x7e60,
749      (WORD16)-0x1d93, (WORD16)0x7c89, (WORD16)-0x26a8, (WORD16)0x7a06,
750      (WORD16)-0x2f87, (WORD16)0x76d9, (WORD16)-0x3825, (WORD16)0x7308,
751      (WORD16)-0x4074, (WORD16)0x6e97, (WORD16)-0x486a, (WORD16)0x698c,
752      (WORD16)-0x4ffb, (WORD16)0x63ef, (WORD16)-0x571e, (WORD16)0x5dc8},
753 
754     // const WORD16 ixheeaacd_post_fft_tw_tab[17] =
755     {32767, 32610, 32138, 31357, 30274, 28899, 27246, 25330, 23170, 20788,
756      18205, 15447, 12540, 9512, 6393, 3212, 0},
757 
758     // const WORD16 ixheaacd_dct23_tw[66] =
759     {0,     0,     32758, 804,   32729, 1608,  32679, 2411,  32610, 3212,
760      32522, 4011,  32413, 4808,  32286, 5602,  32138, 6393,  31972, 7180,
761      31786, 7962,  31581, 8740,  31357, 9512,  31114, 10279, 30853, 11039,
762      30572, 11793, 30274, 12540, 29957, 13279, 29622, 14010, 29269, 14733,
763      28899, 15447, 28511, 16151, 28106, 16846, 27684, 17531, 27246, 18205,
764      26791, 18868, 26320, 19520, 25833, 20160, 25330, 20788, 24812, 21403,
765      24279, 22006, 23732, 22595, 23170, 23170},
766 
767     // const WORD16 qmf_c[1280] =
768     {0,      -18,    -18,    -16,    -16,    -16,   -17,    -17,    -18,
769      -19,    -19,    -20,    -21,    -21,    -22,   -23,    -23,    -24,
770      -24,    -25,    -25,    -25,    -26,    -25,   -26,    -26,    -25,
771      -25,    -25,    -24,    -24,    -23,    -22,   -21,    -19,    -18,
772      -17,    -15,    -13,    -11,    -9,     -7,    -5,     -2,     0,
773      4,      7,      10,     13,     17,     20,    24,     28,     32,
774      37,     41,     46,     51,     55,     60,    65,     70,     75,
775      81,     86,     91,     97,     102,    107,   113,    118,    123,
776      128,    134,    138,    143,    148,    153,   157,    161,    165,
777      168,    172,    175,    178,    180,    182,   183,    184,    185,
778      185,    184,    183,    182,    179,    176,   173,    168,    163,
779      158,    151,    144,    135,    126,    116,   105,    93,     80,
780      66,     52,     36,     19,     1,      -18,   -38,    -59,    -81,
781      -105,   -129,   -155,   -181,   -209,   -238,  -268,   -299,   -331,
782      -365,   -399,   435,    472,    509,    548,   588,    629,    670,
783      713,    756,    800,    845,    891,    937,   985,    1032,   1081,
784      1129,   1179,   1228,   1278,   1328,   1378,  1429,   1479,   1530,
785      1580,   1630,   1680,   1729,   1778,   1826,  1873,   1920,   1966,
786      2010,   2054,   2096,   2137,   2177,   2215,  2251,   2286,   2319,
787      2349,   2378,   2404,   2428,   2449,   2468,  2484,   2497,   2507,
788      2514,   2517,   2517,   2514,   2507,   2496,  2482,   2463,   2440,
789      2413,   2381,   2346,   2305,   2260,   2210,  2155,   2095,   2030,
790      1960,   1885,   1804,   1717,   1625,   1528,  1425,   1315,   1201,
791      1080,   953,    820,    682,    536,    385,   228,    65,     -105,
792      -281,   -463,   -652,   -846,   -1047,  -1254, -1467,  -1687,  -1913,
793      -2144,  -2382,  -2626,  -2876,  -3131,  -3393, -3660,  -3932,  -4211,
794      -4494,  -4783,  -5078,  -5377,  -5681,  -5991, -6304,  -6623,  -6946,
795      -7273,  -7604,  -7940,  -8279,  -8621,  -8967, -9317,  -9669,  -10024,
796      -10382, -10742, -11104, -11469, 11834,  12202, 12571,  12941,  13311,
797      13683,  14055,  14426,  14798,  15169,  15540, 15910,  16278,  16646,
798      17011,  17374,  17736,  18095,  18451,  18804, 19154,  19501,  19844,
799      20182,  20517,  20847,  21172,  21493,  21808, 22117,  22421,  22719,
800      23011,  23296,  23575,  23847,  24111,  24369, 24619,  24861,  25096,
801      25322,  25540,  25750,  25951,  26144,  26327, 26502,  26667,  26823,
802      26969,  27107,  27234,  27351,  27459,  27556, 27644,  27721,  27788,
803      27846,  27892,  27928,  27954,  27970,  27975, 27970,  27954,  27928,
804      27892,  27846,  27788,  27721,  27644,  27556, 27459,  27351,  27234,
805      27107,  26969,  26823,  26667,  26502,  26327, 26144,  25951,  25750,
806      25540,  25322,  25096,  24861,  24619,  24369, 24111,  23847,  23575,
807      23296,  23011,  22719,  22421,  22117,  21808, 21493,  21172,  20847,
808      20517,  20182,  19844,  19501,  19154,  18804, 18451,  18095,  17736,
809      17374,  17011,  16646,  16278,  15910,  15540, 15169,  14798,  14426,
810      14055,  13683,  13311,  12941,  12571,  12202, -11834, -11469, -11104,
811      -10742, -10382, -10024, -9669,  -9317,  -8967, -8621,  -8279,  -7940,
812      -7604,  -7273,  -6946,  -6623,  -6304,  -5991, -5681,  -5377,  -5078,
813      -4783,  -4494,  -4211,  -3932,  -3660,  -3393, -3131,  -2876,  -2626,
814      -2382,  -2144,  -1913,  -1687,  -1467,  -1254, -1047,  -846,   -652,
815      -463,   -281,   -105,   65,     228,    385,   536,    682,    820,
816      953,    1080,   1201,   1315,   1425,   1528,  1625,   1717,   1804,
817      1885,   1960,   2030,   2095,   2155,   2210,  2260,   2305,   2346,
818      2381,   2413,   2440,   2463,   2482,   2496,  2507,   2514,   2517,
819      2517,   2514,   2507,   2497,   2484,   2468,  2449,   2428,   2404,
820      2378,   2349,   2319,   2286,   2251,   2215,  2177,   2137,   2096,
821      2054,   2010,   1966,   1920,   1873,   1826,  1778,   1729,   1680,
822      1630,   1580,   1530,   1479,   1429,   1378,  1328,   1278,   1228,
823      1179,   1129,   1081,   1032,   985,    937,   891,    845,    800,
824      756,    713,    670,    629,    588,    548,   509,    472,    -435,
825      -399,   -365,   -331,   -299,   -268,   -238,  -209,   -181,   -155,
826      -129,   -105,   -81,    -59,    -38,    -18,   1,      19,     36,
827      52,     66,     80,     93,     105,    116,   126,    135,    144,
828      151,    158,    163,    168,    173,    176,   179,    182,    183,
829      184,    185,    185,    184,    183,    182,   180,    178,    175,
830      172,    168,    165,    161,    157,    153,   148,    143,    138,
831      134,    128,    123,    118,    113,    107,   102,    97,     91,
832      86,     81,     75,     70,     65,     60,    55,     51,     46,
833      41,     37,     32,     28,     24,     20,    17,     13,     10,
834      7,      4,      0,      -2,     -5,     -7,    -9,     -11,    -13,
835      -15,    -17,    -18,    -19,    -21,    -22,   -23,    -24,    -24,
836      -25,    -25,    -25,    -26,    -26,    -25,   -26,    -25,    -25,
837      -25,    -24,    -24,    -23,    -23,    -22,   -21,    -21,    -20,
838      -19,    -19,    -18,    -17,    -17,    -16,   -16,    -16,    -18,
839      -18,    0,      -18,    -18,    -16,    -16,   -16,    -17,    -17,
840      -18,    -19,    -19,    -20,    -21,    -21,   -22,    -23,    -23,
841      -24,    -24,    -25,    -25,    -25,    -26,   -25,    -26,    -26,
842      -25,    -25,    -25,    -24,    -24,    -23,   -22,    -21,    -19,
843      -18,    -17,    -15,    -13,    -11,    -9,    -7,     -5,     -2,
844      0,      4,      7,      10,     13,     17,    20,     24,     28,
845      32,     37,     41,     46,     51,     55,    60,     65,     70,
846      75,     81,     86,     91,     97,     102,   107,    113,    118,
847      123,    128,    134,    138,    143,    148,   153,    157,    161,
848      165,    168,    172,    175,    178,    180,   182,    183,    184,
849      185,    185,    184,    183,    182,    179,   176,    173,    168,
850      163,    158,    151,    144,    135,    126,   116,    105,    93,
851      80,     66,     52,     36,     19,     1,     -18,    -38,    -59,
852      -81,    -105,   -129,   -155,   -181,   -209,  -238,   -268,   -299,
853      -331,   -365,   -399,   435,    472,    509,   548,    588,    629,
854      670,    713,    756,    800,    845,    891,   937,    985,    1032,
855      1081,   1129,   1179,   1228,   1278,   1328,  1378,   1429,   1479,
856      1530,   1580,   1630,   1680,   1729,   1778,  1826,   1873,   1920,
857      1966,   2010,   2054,   2096,   2137,   2177,  2215,   2251,   2286,
858      2319,   2349,   2378,   2404,   2428,   2449,  2468,   2484,   2497,
859      2507,   2514,   2517,   2517,   2514,   2507,  2496,   2482,   2463,
860      2440,   2413,   2381,   2346,   2305,   2260,  2210,   2155,   2095,
861      2030,   1960,   1885,   1804,   1717,   1625,  1528,   1425,   1315,
862      1201,   1080,   953,    820,    682,    536,   385,    228,    65,
863      -105,   -281,   -463,   -652,   -846,   -1047, -1254,  -1467,  -1687,
864      -1913,  -2144,  -2382,  -2626,  -2876,  -3131, -3393,  -3660,  -3932,
865      -4211,  -4494,  -4783,  -5078,  -5377,  -5681, -5991,  -6304,  -6623,
866      -6946,  -7273,  -7604,  -7940,  -8279,  -8621, -8967,  -9317,  -9669,
867      -10024, -10382, -10742, -11104, -11469, 11834, 12202,  12571,  12941,
868      13311,  13683,  14055,  14426,  14798,  15169, 15540,  15910,  16278,
869      16646,  17011,  17374,  17736,  18095,  18451, 18804,  19154,  19501,
870      19844,  20182,  20517,  20847,  21172,  21493, 21808,  22117,  22421,
871      22719,  23011,  23296,  23575,  23847,  24111, 24369,  24619,  24861,
872      25096,  25322,  25540,  25750,  25951,  26144, 26327,  26502,  26667,
873      26823,  26969,  27107,  27234,  27351,  27459, 27556,  27644,  27721,
874      27788,  27846,  27892,  27928,  27954,  27970, 27975,  27970,  27954,
875      27928,  27892,  27846,  27788,  27721,  27644, 27556,  27459,  27351,
876      27234,  27107,  26969,  26823,  26667,  26502, 26327,  26144,  25951,
877      25750,  25540,  25322,  25096,  24861,  24619, 24369,  24111,  23847,
878      23575,  23296,  23011,  22719,  22421,  22117, 21808,  21493,  21172,
879      20847,  20517,  20182,  19844,  19501,  19154, 18804,  18451,  18095,
880      17736,  17374,  17011,  16646,  16278,  15910, 15540,  15169,  14798,
881      14426,  14055,  13683,  13311,  12941,  12571, 12202,  -11834, -11469,
882      -11104, -10742, -10382, -10024, -9669,  -9317, -8967,  -8621,  -8279,
883      -7940,  -7604,  -7273,  -6946,  -6623,  -6304, -5991,  -5681,  -5377,
884      -5078,  -4783,  -4494,  -4211,  -3932,  -3660, -3393,  -3131,  -2876,
885      -2626,  -2382,  -2144,  -1913,  -1687,  -1467, -1254,  -1047,  -846,
886      -652,   -463,   -281,   -105,   65,     228,   385,    536,    682,
887      820,    953,    1080,   1201,   1315,   1425,  1528,   1625,   1717,
888      1804,   1885,   1960,   2030,   2095,   2155,  2210,   2260,   2305,
889      2346,   2381,   2413,   2440,   2463,   2482,  2496,   2507,   2514,
890      2517,   2517,   2514,   2507,   2497,   2484,  2468,   2449,   2428,
891      2404,   2378,   2349,   2319,   2286,   2251,  2215,   2177,   2137,
892      2096,   2054,   2010,   1966,   1920,   1873,  1826,   1778,   1729,
893      1680,   1630,   1580,   1530,   1479,   1429,  1378,   1328,   1278,
894      1228,   1179,   1129,   1081,   1032,   985,   937,    891,    845,
895      800,    756,    713,    670,    629,    588,   548,    509,    472,
896      -435,   -399,   -365,   -331,   -299,   -268,  -238,   -209,   -181,
897      -155,   -129,   -105,   -81,    -59,    -38,   -18,    1,      19,
898      36,     52,     66,     80,     93,     105,   116,    126,    135,
899      144,    151,    158,    163,    168,    173,   176,    179,    182,
900      183,    184,    185,    185,    184,    183,   182,    180,    178,
901      175,    172,    168,    165,    161,    157,   153,    148,    143,
902      138,    134,    128,    123,    118,    113,   107,    102,    97,
903      91,     86,     81,     75,     70,     65,    60,     55,     51,
904      46,     41,     37,     32,     28,     24,    20,     17,     13,
905      10,     7,      4,      0,      -2,     -5,    -7,     -9,     -11,
906      -13,    -15,    -17,    -18,    -19,    -21,   -22,    -23,    -24,
907      -24,    -25,    -25,    -25,    -26,    -26,   -25,    -26,    -25,
908      -25,    -25,    -24,    -24,    -23,    -23,   -22,    -21,    -21,
909      -20,    -19,    -19,    -18,    -17,    -17,   -16,    -16,    -16,
910      -18,    -18},
911 
912     {
913         0x00, 0x01, 0x02, 0x03,
914     },
915 
916     // w1024[1536];
917     {
918         0x00007fff, 0xff377fff, 0xfe6e7ffe, 0xfda57ffa, 0xfcdc7ff6, 0xfc137ff1,
919         0xfb4a7fea, 0xfa817fe2, 0xf9b87fd9, 0xf8ef7fce, 0xf8277fc2, 0xf75e7fb5,
920         0xf6957fa7, 0xf5cd7f98, 0xf5057f87, 0xf43c7f75, 0xf3747f62, 0xf2ac7f4e,
921         0xf1e47f38, 0xf11c7f22, 0xf0557f0a, 0xef8d7ef0, 0xeec67ed6, 0xedff7eba,
922         0xed387e9d, 0xec717e7f, 0xebab7e60, 0xeae47e3f, 0xea1e7e1e, 0xe9587dfb,
923         0xe8927dd6, 0xe7cd7db1, 0xe7077d8a, 0xe6427d63, 0xe57d7d3a, 0xe4b97d0f,
924         0xe3f47ce4, 0xe3307cb7, 0xe26d7c89, 0xe1a97c5a, 0xe0e67c2a, 0xe0237bf9,
925         0xdf617bc6, 0xde9e7b92, 0xdddc7b5d, 0xdd1b7b27, 0xdc597aef, 0xdb997ab7,
926         0xdad87a7d, 0xda187a42, 0xd9587a06, 0xd89879c9, 0xd7d9798a, 0xd71b794a,
927         0xd65c790a, 0xd59e78c8, 0xd4e17885, 0xd4247840, 0xd36777fb, 0xd2ab77b4,
928         0xd1ef776c, 0xd1347723, 0xd07976d9, 0xcfbe768e, 0xcf047642, 0xce4b75f4,
929         0xcd9275a6, 0xccd97556, 0xcc217505, 0xcb6974b3, 0xcab27460, 0xc9fc740b,
930         0xc94673b6, 0xc890735f, 0xc7db7308, 0xc72772af, 0xc6737255, 0xc5c071fa,
931         0xc50d719e, 0xc45b7141, 0xc3a970e3, 0xc2f87083, 0xc2487023, 0xc1986fc2,
932         0xc0e96f5f, 0xc03a6efb, 0xbf8c6e97, 0xbedf6e31, 0xbe326dca, 0xbd866d62,
933         0xbcda6cf9, 0xbc2f6c8f, 0xbb856c24, 0xbadc6bb8, 0xba336b4b, 0xb98b6add,
934         0xb8e36a6e, 0xb83c69fd, 0xb796698c, 0xb6f1691a, 0xb64c68a7, 0xb5a86832,
935         0xb50567bd, 0xb4626747, 0xb3c066d0, 0xb31f6657, 0xb27f65de, 0xb1df6564,
936         0xb14064e9, 0xb0a2646c, 0xb00563ef, 0xaf686371, 0xaecc62f2, 0xae316272,
937         0xad9761f1, 0xacfd616f, 0xac6560ec, 0xabcd6068, 0xab365fe4, 0xaaa05f5e,
938         0xaa0a5ed7, 0xa9765e50, 0xa8e25dc8, 0xa84f5d3e, 0xa7bd5cb4, 0xa72c5c29,
939         0xa69c5b9d, 0xa60c5b10, 0xa57e5a82, 0xa4f059f4, 0xa4635964, 0xa3d758d4,
940         0xa34c5843, 0xa2c257b1, 0xa238571e, 0xa1b0568a, 0xa12955f6, 0xa0a25560,
941         0xa01c54ca, 0x9f985433, 0x9f14539b, 0x9e915303, 0x9e0f5269, 0x9d8e51cf,
942         0x9d0e5134, 0x9c8f5098, 0x9c114ffb, 0x9b944f5e, 0x9b174ec0, 0x9a9c4e21,
943         0x9a224d81, 0x99a94ce1, 0x99304c40, 0x98b94b9e, 0x98434afb, 0x97ce4a58,
944         0x975949b4, 0x96e6490f, 0x9674486a, 0x960347c4, 0x9592471d, 0x95234675,
945         0x94b545cd, 0x94484524, 0x93dc447b, 0x937143d1, 0x93074326, 0x929e427a,
946         0x923641ce, 0x91cf4121, 0x91694074, 0x91053fc6, 0x90a13f17, 0x903e3e68,
947         0x8fdd3db8, 0x8f7d3d08, 0x8f1d3c57, 0x8ebf3ba5, 0x8e623af3, 0x8e063a40,
948         0x8dab398d, 0x8d5138d9, 0x8cf83825, 0x8ca13770, 0x8c4a36ba, 0x8bf53604,
949         0x8ba0354e, 0x8b4d3497, 0x8afb33df, 0x8aaa3327, 0x8a5a326e, 0x8a0c31b5,
950         0x89be30fc, 0x89723042, 0x89272f87, 0x88dd2ecc, 0x88942e11, 0x884c2d55,
951         0x88052c99, 0x87c02bdc, 0x877b2b1f, 0x87382a62, 0x86f629a4, 0x86b628e5,
952         0x86762827, 0x86372768, 0x85fa26a8, 0x85be25e8, 0x85832528, 0x85492467,
953         0x851123a7, 0x84d922e5, 0x84a32224, 0x846e2162, 0x843a209f, 0x84071fdd,
954         0x83d61f1a, 0x83a61e57, 0x83771d93, 0x83491cd0, 0x831c1c0c, 0x82f11b47,
955         0x82c61a83, 0x829d19be, 0x827618f9, 0x824f1833, 0x822a176e, 0x820516a8,
956         0x81e215e2, 0x81c1151c, 0x81a01455, 0x8181138f, 0x816312c8, 0x81461201,
957         0x812a113a, 0x81101073, 0x80f60fab, 0x80de0ee4, 0x80c80e1c, 0x80b20d54,
958         0x809e0c8c, 0x808b0bc4, 0x80790afb, 0x80680a33, 0x8059096b, 0x804b08a2,
959         0x803e07d9, 0x80320711, 0x80270648, 0x801e057f, 0x801604b6, 0x800f03ed,
960         0x800a0324, 0x8006025b, 0x80020192, 0x800100c9, 0x80000000, 0x8001ff37,
961         0x8002fe6e, 0x8006fda5, 0x800afcdc, 0x800ffc13, 0x8016fb4a, 0x801efa81,
962         0x8027f9b8, 0x8032f8ef, 0x803ef827, 0x804bf75e, 0x8059f695, 0x8068f5cd,
963         0x8079f505, 0x808bf43c, 0x809ef374, 0x80b2f2ac, 0x80c8f1e4, 0x80def11c,
964         0x80f6f055, 0x8110ef8d, 0x812aeec6, 0x8146edff, 0x8163ed38, 0x8181ec71,
965         0x81a0ebab, 0x81c1eae4, 0x81e2ea1e, 0x8205e958, 0x822ae892, 0x824fe7cd,
966         0x8276e707, 0x829de642, 0x82c6e57d, 0x82f1e4b9, 0x831ce3f4, 0x8349e330,
967         0x8377e26d, 0x83a6e1a9, 0x83d6e0e6, 0x8407e023, 0x843adf61, 0x846ede9e,
968         0x84a3dddc, 0x84d9dd1b, 0x8511dc59, 0x8549db99, 0x8583dad8, 0x85beda18,
969         0x85fad958, 0x8637d898, 0x8676d7d9, 0x86b6d71b, 0x86f6d65c, 0x8738d59e,
970         0x877bd4e1, 0x87c0d424, 0x8805d367, 0x884cd2ab, 0x8894d1ef, 0x88ddd134,
971         0x8927d079, 0x8972cfbe, 0x89becf04, 0x8a0cce4b, 0x8a5acd92, 0x8aaaccd9,
972         0x8afbcc21, 0x8b4dcb69, 0x8ba0cab2, 0x8bf5c9fc, 0x8c4ac946, 0x8ca1c890,
973         0x8cf8c7db, 0x8d51c727, 0x8dabc673, 0x8e06c5c0, 0x8e62c50d, 0x8ebfc45b,
974         0x8f1dc3a9, 0x8f7dc2f8, 0x8fddc248, 0x903ec198, 0x90a1c0e9, 0x9105c03a,
975         0x9169bf8c, 0x91cfbedf, 0x9236be32, 0x929ebd86, 0x9307bcda, 0x9371bc2f,
976         0x93dcbb85, 0x9448badc, 0x94b5ba33, 0x9523b98b, 0x9592b8e3, 0x9603b83c,
977         0x9674b796, 0x96e6b6f1, 0x9759b64c, 0x97ceb5a8, 0x9843b505, 0x98b9b462,
978         0x9930b3c0, 0x99a9b31f, 0x9a22b27f, 0x9a9cb1df, 0x9b17b140, 0x9b94b0a2,
979         0x9c11b005, 0x9c8faf68, 0x9d0eaecc, 0x9d8eae31, 0x9e0fad97, 0x9e91acfd,
980         0x9f14ac65, 0x9f98abcd, 0xa01cab36, 0xa0a2aaa0, 0xa129aa0a, 0xa1b0a976,
981         0xa238a8e2, 0xa2c2a84f, 0xa34ca7bd, 0xa3d7a72c, 0xa463a69c, 0xa4f0a60c,
982         0xa57ea57e, 0xa60ca4f0, 0xa69ca463, 0xa72ca3d7, 0xa7bda34c, 0xa84fa2c2,
983         0xa8e2a238, 0xa976a1b0, 0xaa0aa129, 0xaaa0a0a2, 0xab36a01c, 0xabcd9f98,
984         0xac659f14, 0xacfd9e91, 0xad979e0f, 0xae319d8e, 0xaecc9d0e, 0xaf689c8f,
985         0xb0059c11, 0xb0a29b94, 0xb1409b17, 0xb1df9a9c, 0xb27f9a22, 0xb31f99a9,
986         0xb3c09930, 0xb46298b9, 0xb5059843, 0xb5a897ce, 0xb64c9759, 0xb6f196e6,
987         0xb7969674, 0xb83c9603, 0xb8e39592, 0xb98b9523, 0xba3394b5, 0xbadc9448,
988         0xbb8593dc, 0xbc2f9371, 0xbcda9307, 0xbd86929e, 0xbe329236, 0xbedf91cf,
989         0xbf8c9169, 0xc03a9105, 0xc0e990a1, 0xc198903e, 0xc2488fdd, 0xc2f88f7d,
990         0xc3a98f1d, 0xc45b8ebf, 0xc50d8e62, 0xc5c08e06, 0xc6738dab, 0xc7278d51,
991         0xc7db8cf8, 0xc8908ca1, 0xc9468c4a, 0xc9fc8bf5, 0xcab28ba0, 0xcb698b4d,
992         0xcc218afb, 0xccd98aaa, 0xcd928a5a, 0xce4b8a0c, 0xcf0489be, 0xcfbe8972,
993         0xd0798927, 0xd13488dd, 0xd1ef8894, 0xd2ab884c, 0xd3678805, 0xd42487c0,
994         0xd4e1877b, 0xd59e8738, 0xd65c86f6, 0xd71b86b6, 0xd7d98676, 0xd8988637,
995         0xd95885fa, 0xda1885be, 0xdad88583, 0xdb998549, 0xdc598511, 0xdd1b84d9,
996         0xdddc84a3, 0xde9e846e, 0xdf61843a, 0xe0238407, 0xe0e683d6, 0xe1a983a6,
997         0xe26d8377, 0xe3308349, 0xe3f4831c, 0xe4b982f1, 0xe57d82c6, 0xe642829d,
998         0xe7078276, 0xe7cd824f, 0xe892822a, 0xe9588205, 0xea1e81e2, 0xeae481c1,
999         0xebab81a0, 0xec718181, 0xed388163, 0xedff8146, 0xeec6812a, 0xef8d8110,
1000         0xf05580f6, 0xf11c80de, 0xf1e480c8, 0xf2ac80b2, 0xf374809e, 0xf43c808b,
1001         0xf5058079, 0xf5cd8068, 0xf6958059, 0xf75e804b, 0xf827803e, 0xf8ef8032,
1002         0xf9b88027, 0xfa81801e, 0xfb4a8016, 0xfc13800f, 0xfcdc800a, 0xfda58006,
1003         0xfe6e8002, 0xff378001, 0x00008000, 0x00c98001, 0x01928002, 0x025b8006,
1004         0x0324800a, 0x03ed800f, 0x04b68016, 0x057f801e, 0x06488027, 0x07118032,
1005         0x07d9803e, 0x08a2804b, 0x096b8059, 0x0a338068, 0x0afb8079, 0x0bc4808b,
1006         0x0c8c809e, 0x0d5480b2, 0x0e1c80c8, 0x0ee480de, 0x0fab80f6, 0x10738110,
1007         0x113a812a, 0x12018146, 0x12c88163, 0x138f8181, 0x145581a0, 0x151c81c1,
1008         0x15e281e2, 0x16a88205, 0x176e822a, 0x1833824f, 0x18f98276, 0x19be829d,
1009         0x1a8382c6, 0x1b4782f1, 0x1c0c831c, 0x1cd08349, 0x1d938377, 0x1e5783a6,
1010         0x1f1a83d6, 0x1fdd8407, 0x209f843a, 0x2162846e, 0x222484a3, 0x22e584d9,
1011         0x23a78511, 0x24678549, 0x25288583, 0x25e885be, 0x26a885fa, 0x27688637,
1012         0x28278676, 0x28e586b6, 0x29a486f6, 0x2a628738, 0x2b1f877b, 0x2bdc87c0,
1013         0x2c998805, 0x2d55884c, 0x2e118894, 0x2ecc88dd, 0x2f878927, 0x30428972,
1014         0x30fc89be, 0x31b58a0c, 0x326e8a5a, 0x33278aaa, 0x33df8afb, 0x34978b4d,
1015         0x354e8ba0, 0x36048bf5, 0x36ba8c4a, 0x37708ca1, 0x38258cf8, 0x38d98d51,
1016         0x398d8dab, 0x3a408e06, 0x3af38e62, 0x3ba58ebf, 0x3c578f1d, 0x3d088f7d,
1017         0x3db88fdd, 0x3e68903e, 0x3f1790a1, 0x3fc69105, 0x40749169, 0x412191cf,
1018         0x41ce9236, 0x427a929e, 0x43269307, 0x43d19371, 0x447b93dc, 0x45249448,
1019         0x45cd94b5, 0x46759523, 0x471d9592, 0x47c49603, 0x486a9674, 0x490f96e6,
1020         0x49b49759, 0x4a5897ce, 0x4afb9843, 0x4b9e98b9, 0x4c409930, 0x4ce199a9,
1021         0x4d819a22, 0x4e219a9c, 0x4ec09b17, 0x4f5e9b94, 0x4ffb9c11, 0x50989c8f,
1022         0x51349d0e, 0x51cf9d8e, 0x52699e0f, 0x53039e91, 0x539b9f14, 0x54339f98,
1023         0x54caa01c, 0x5560a0a2, 0x55f6a129, 0x568aa1b0, 0x571ea238, 0x57b1a2c2,
1024         0x5843a34c, 0x58d4a3d7, 0x5964a463, 0x59f4a4f0, 0x5a82a57e, 0x5b10a60c,
1025         0x5b9da69c, 0x5c29a72c, 0x5cb4a7bd, 0x5d3ea84f, 0x5dc8a8e2, 0x5e50a976,
1026         0x5ed7aa0a, 0x5f5eaaa0, 0x5fe4ab36, 0x6068abcd, 0x60ecac65, 0x616facfd,
1027         0x61f1ad97, 0x6272ae31, 0x62f2aecc, 0x6371af68, 0x63efb005, 0x646cb0a2,
1028         0x64e9b140, 0x6564b1df, 0x65deb27f, 0x6657b31f, 0x66d0b3c0, 0x6747b462,
1029         0x67bdb505, 0x6832b5a8, 0x68a7b64c, 0x691ab6f1, 0x698cb796, 0x69fdb83c,
1030         0x6a6eb8e3, 0x6addb98b, 0x6b4bba33, 0x6bb8badc, 0x6c24bb85, 0x6c8fbc2f,
1031         0x6cf9bcda, 0x6d62bd86, 0x6dcabe32, 0x6e31bedf, 0x6e97bf8c, 0x6efbc03a,
1032         0x6f5fc0e9, 0x6fc2c198, 0x7023c248, 0x7083c2f8, 0x70e3c3a9, 0x7141c45b,
1033         0x719ec50d, 0x71fac5c0, 0x7255c673, 0x72afc727, 0x7308c7db, 0x735fc890,
1034         0x73b6c946, 0x740bc9fc, 0x7460cab2, 0x74b3cb69, 0x7505cc21, 0x7556ccd9,
1035         0x75a6cd92, 0x75f4ce4b, 0x7642cf04, 0x768ecfbe, 0x76d9d079, 0x7723d134,
1036         0x776cd1ef, 0x77b4d2ab, 0x77fbd367, 0x7840d424, 0x7885d4e1, 0x78c8d59e,
1037         0x790ad65c, 0x794ad71b, 0x798ad7d9, 0x79c9d898, 0x7a06d958, 0x7a42da18,
1038         0x7a7ddad8, 0x7ab7db99, 0x7aefdc59, 0x7b27dd1b, 0x7b5ddddc, 0x7b92de9e,
1039         0x7bc6df61, 0x7bf9e023, 0x7c2ae0e6, 0x7c5ae1a9, 0x7c89e26d, 0x7cb7e330,
1040         0x7ce4e3f4, 0x7d0fe4b9, 0x7d3ae57d, 0x7d63e642, 0x7d8ae707, 0x7db1e7cd,
1041         0x7dd6e892, 0x7dfbe958, 0x7e1eea1e, 0x7e3feae4, 0x7e60ebab, 0x7e7fec71,
1042         0x7e9ded38, 0x7ebaedff, 0x7ed6eec6, 0x7ef0ef8d, 0x7f0af055, 0x7f22f11c,
1043         0x7f38f1e4, 0x7f4ef2ac, 0x7f62f374, 0x7f75f43c, 0x7f87f505, 0x7f98f5cd,
1044         0x7fa7f695, 0x7fb5f75e, 0x7fc2f827, 0x7fcef8ef, 0x7fd9f9b8, 0x7fe2fa81,
1045         0x7feafb4a, 0x7ff1fc13, 0x7ff6fcdc, 0x7ffafda5, 0x7ffefe6e, 0x7fffff37,
1046     },
1047 
1048     // WORD32 esbr_qmf_c[1280] =
1049     {0,          -1186546,   -1206390,   -1062471,   -1046947,   -1050933,
1050      -1082485,   -1122396,   -1173936,   -1219298,   -1260772,   -1316997,
1051      -1355597,   -1404525,   -1455498,   -1490700,   -1537112,   -1558008,
1052      -1597930,   -1608593,   -1649562,   -1658898,   -1682410,   -1670714,
1053      -1675824,   -1675348,   -1666012,   -1638700,   -1617055,   -1571819,
1054      -1549493,   -1485615,   -1428165,   -1361847,   -1276919,   -1194983,
1055      -1105003,   -989200,    -879420,    -751871,    -622121,    -450614,
1056      -310607,    -132571,    28980,      235016,     438734,     633406,
1057      864692,     1096803,    1339895,    1601598,    1848649,    2122999,
1058      2415952,    2701080,    2985538,    3316406,    3622393,    3940259,
1059      4260852,    4608839,    4942917,    5288310,    5626784,    5985136,
1060      6328515,    6684133,    7030778,    7391396,    7732716,    8075380,
1061      8419731,    8765975,    9076182,    9391100,    9708741,    10008661,
1062      10293439,   10552220,   10821819,   11039645,   11265949,   11482956,
1063      11638669,   11784539,   11913318,   12012598,   12073291,   12123661,
1064      12109488,   12083056,   12008111,   11897996,   11758285,   11561832,
1065      11320622,   11034259,   10702991,   10331429,   9886913,    9406378,
1066      8858722,    8258450,    7602359,    6891679,    6108894,    5263168,
1067      4353846,    3389734,    2341257,    1252469,    59280,      -1173445,
1068      -2484238,   -3873947,   -5331498,   -6857726,   -8461326,   -10140975,
1069      -11883575,  -13699290,  -15594127,  -17566036,  -19611965,  -21721843,
1070      -23904831,  -26167087,  28501020,   30903291,   33373088,   35932708,
1071      38533025,   41204290,   43922868,   46700800,   49538189,   52433173,
1072      55378416,   58381367,   61433531,   64532454,   67649516,   70814149,
1073      74006785,   77244462,   80490446,   83763389,   87048071,   90333705,
1074      93651234,   96956396,   100253776,  103544299,  106812777,  110070596,
1075      113307839,  116490844,  119652129,  122753697,  125824434,  128814117,
1076      131738494,  134616689,  137377942,  140068999,  142671836,  145186212,
1077      147541538,  149814954,  151962108,  153975151,  155839148,  157543750,
1078      159129320,  160514214,  161735011,  162781055,  163636638,  164280817,
1079      164732072,  164964105,  164976138,  164756002,  164293390,  163584206,
1080      162630172,  161399771,  159915461,  158141985,  156073666,  153722541,
1081      151082577,  148104219,  144853145,  141237995,  137319726,  133058683,
1082      128455292,  123513100,  118210392,  112548291,  106510609,  100137872,
1083      93365884,   86212508,   78687691,   70777610,   62453979,   53753139,
1084      44667031,   35154577,   25259525,   14954402,   4244630,    -6890608,
1085      -18406457,  -30341544,  -42699304,  -55453887,  -68618818,  -82200642,
1086      -96165782,  -110553355, -125349764, -140533445, -156109885, -172093527,
1087      -188451898, -205199224, -222335323, -239836757, -257714784, -275952260,
1088      -294538497, -313482466, -332775584, -352393230, -372332469, -392597065,
1089      -413168712, -434060170, -455209808, -476666786, -498364569, -520338913,
1090      -542557514, -565014393, -587687684, -610575597, -633661589, -656936416,
1091      -680382715, -703969562, -727722656, -751600834, 775583025,  799679004,
1092      823849891,  848086767,  872376077,  896724080,  921081488,  945441219,
1093      969802871,  994136341,  1018434072, 1042657661, 1066807223, 1090882501,
1094      1114809220, 1138647561, 1162337001, 1185851477, 1209202759, 1232338673,
1095      1255290785, 1277993950, 1300469611, 1322658785, 1344591629, 1366224824,
1096      1387547101, 1408538024, 1429180406, 1449479132, 1469384180, 1488911052,
1097      1508046493, 1526734263, 1544999085, 1562820250, 1580163942, 1597046622,
1098      1613433982, 1629313186, 1644687903, 1659528307, 1673810498, 1687568481,
1099      1700750320, 1713362615, 1725392676, 1736819276, 1747663266, 1757882010,
1100      1767469212, 1776457603, 1784781917, 1792491148, 1799530594, 1805935261,
1101      1811668375, 1816732182, 1821133945, 1824889769, 1827931965, 1830310413,
1102      1832022798, 1833032034, 1833389596, 1833032034, 1832022798, 1830310413,
1103      1827931965, 1824889769, 1821133945, 1816732182, 1811668375, 1805935261,
1104      1799530594, 1792491148, 1784781917, 1776457603, 1767469212, 1757882010,
1105      1747663266, 1736819276, 1725392676, 1713362615, 1700750320, 1687568481,
1106      1673810498, 1659528307, 1644687903, 1629313186, 1613433982, 1597046622,
1107      1580163942, 1562820250, 1544999085, 1526734263, 1508046493, 1488911052,
1108      1469384180, 1449479132, 1429180406, 1408538024, 1387547101, 1366224824,
1109      1344591629, 1322658785, 1300469611, 1277993950, 1255290785, 1232338673,
1110      1209202759, 1185851477, 1162337001, 1138647561, 1114809220, 1090882501,
1111      1066807223, 1042657661, 1018434072, 994136341,  969802871,  945441219,
1112      921081488,  896724080,  872376077,  848086767,  823849891,  799679004,
1113      -775583025, -751600834, -727722656, -703969562, -680382715, -656936416,
1114      -633661589, -610575597, -587687684, -565014393, -542557514, -520338913,
1115      -498364569, -476666786, -455209808, -434060170, -413168712, -392597065,
1116      -372332469, -352393230, -332775584, -313482466, -294538497, -275952260,
1117      -257714784, -239836757, -222335323, -205199224, -188451898, -172093527,
1118      -156109885, -140533445, -125349764, -110553355, -96165782,  -82200642,
1119      -68618818,  -55453887,  -42699304,  -30341544,  -18406457,  -6890608,
1120      4244630,    14954402,   25259525,   35154577,   44667031,   53753139,
1121      62453979,   70777610,   78687691,   86212508,   93365884,   100137872,
1122      106510609,  112548291,  118210392,  123513100,  128455292,  133058683,
1123      137319726,  141237995,  144853145,  148104219,  151082577,  153722541,
1124      156073666,  158141985,  159915461,  161399771,  162630172,  163584206,
1125      164293390,  164756002,  164976138,  164964105,  164732072,  164280817,
1126      163636638,  162781055,  161735011,  160514214,  159129320,  157543750,
1127      155839148,  153975151,  151962108,  149814954,  147541538,  145186212,
1128      142671836,  140068999,  137377942,  134616689,  131738494,  128814117,
1129      125824434,  122753697,  119652129,  116490844,  113307839,  110070596,
1130      106812777,  103544299,  100253776,  96956396,   93651234,   90333705,
1131      87048071,   83763389,   80490446,   77244462,   74006785,   70814149,
1132      67649516,   64532454,   61433531,   58381367,   55378416,   52433173,
1133      49538189,   46700800,   43922868,   41204290,   38533025,   35932708,
1134      33373088,   30903291,   -28501020,  -26167087,  -23904831,  -21721843,
1135      -19611965,  -17566036,  -15594127,  -13699290,  -11883575,  -10140975,
1136      -8461326,   -6857726,   -5331498,   -3873947,   -2484238,   -1173445,
1137      59280,      1252469,    2341257,    3389734,    4353846,    5263168,
1138      6108894,    6891679,    7602359,    8258450,    8858722,    9406378,
1139      9886913,    10331429,   10702991,   11034259,   11320622,   11561832,
1140      11758285,   11897996,   12008111,   12083056,   12109488,   12123661,
1141      12073291,   12012598,   11913318,   11784539,   11638669,   11482956,
1142      11265949,   11039645,   10821819,   10552220,   10293439,   10008661,
1143      9708741,    9391100,    9076182,    8765975,    8419731,    8075380,
1144      7732716,    7391396,    7030778,    6684133,    6328515,    5985136,
1145      5626784,    5288310,    4942917,    4608839,    4260852,    3940259,
1146      3622393,    3316406,    2985538,    2701080,    2415952,    2122999,
1147      1848649,    1601598,    1339895,    1096803,    864692,     633406,
1148      438734,     235016,     28980,      -132571,    -310607,    -450614,
1149      -622121,    -751871,    -879420,    -989200,    -1105003,   -1194983,
1150      -1276919,   -1361847,   -1428165,   -1485615,   -1549493,   -1571819,
1151      -1617055,   -1638700,   -1666012,   -1675348,   -1675824,   -1670714,
1152      -1682410,   -1658898,   -1649562,   -1608593,   -1597930,   -1558008,
1153      -1537112,   -1490700,   -1455498,   -1404525,   -1355597,   -1316997,
1154      -1260772,   -1219298,   -1173936,   -1122396,   -1082485,   -1050933,
1155      -1046947,   -1062471,   -1206390,   -1186546,
1156 
1157      0,          -1186546,   -1206390,   -1062471,   -1046947,   -1050933,
1158      -1082485,   -1122396,   -1173936,   -1219298,   -1260772,   -1316997,
1159      -1355597,   -1404525,   -1455498,   -1490700,   -1537112,   -1558008,
1160      -1597930,   -1608593,   -1649562,   -1658898,   -1682410,   -1670714,
1161      -1675824,   -1675348,   -1666012,   -1638700,   -1617055,   -1571819,
1162      -1549493,   -1485615,   -1428165,   -1361847,   -1276919,   -1194983,
1163      -1105003,   -989200,    -879420,    -751871,    -622121,    -450614,
1164      -310607,    -132571,    28980,      235016,     438734,     633406,
1165      864692,     1096803,    1339895,    1601598,    1848649,    2122999,
1166      2415952,    2701080,    2985538,    3316406,    3622393,    3940259,
1167      4260852,    4608839,    4942917,    5288310,    5626784,    5985136,
1168      6328515,    6684133,    7030778,    7391396,    7732716,    8075380,
1169      8419731,    8765975,    9076182,    9391100,    9708741,    10008661,
1170      10293439,   10552220,   10821819,   11039645,   11265949,   11482956,
1171      11638669,   11784539,   11913318,   12012598,   12073291,   12123661,
1172      12109488,   12083056,   12008111,   11897996,   11758285,   11561832,
1173      11320622,   11034259,   10702991,   10331429,   9886913,    9406378,
1174      8858722,    8258450,    7602359,    6891679,    6108894,    5263168,
1175      4353846,    3389734,    2341257,    1252469,    59280,      -1173445,
1176      -2484238,   -3873947,   -5331498,   -6857726,   -8461326,   -10140975,
1177      -11883575,  -13699290,  -15594127,  -17566036,  -19611965,  -21721843,
1178      -23904831,  -26167087,  28501020,   30903291,   33373088,   35932708,
1179      38533025,   41204290,   43922868,   46700800,   49538189,   52433173,
1180      55378416,   58381367,   61433531,   64532454,   67649516,   70814149,
1181      74006785,   77244462,   80490446,   83763389,   87048071,   90333705,
1182      93651234,   96956396,   100253776,  103544299,  106812777,  110070596,
1183      113307839,  116490844,  119652129,  122753697,  125824434,  128814117,
1184      131738494,  134616689,  137377942,  140068999,  142671836,  145186212,
1185      147541538,  149814954,  151962108,  153975151,  155839148,  157543750,
1186      159129320,  160514214,  161735011,  162781055,  163636638,  164280817,
1187      164732072,  164964105,  164976138,  164756002,  164293390,  163584206,
1188      162630172,  161399771,  159915461,  158141985,  156073666,  153722541,
1189      151082577,  148104219,  144853145,  141237995,  137319726,  133058683,
1190      128455292,  123513100,  118210392,  112548291,  106510609,  100137872,
1191      93365884,   86212508,   78687691,   70777610,   62453979,   53753139,
1192      44667031,   35154577,   25259525,   14954402,   4244630,    -6890608,
1193      -18406457,  -30341544,  -42699304,  -55453887,  -68618818,  -82200642,
1194      -96165782,  -110553355, -125349764, -140533445, -156109885, -172093527,
1195      -188451898, -205199224, -222335323, -239836757, -257714784, -275952260,
1196      -294538497, -313482466, -332775584, -352393230, -372332469, -392597065,
1197      -413168712, -434060170, -455209808, -476666786, -498364569, -520338913,
1198      -542557514, -565014393, -587687684, -610575597, -633661589, -656936416,
1199      -680382715, -703969562, -727722656, -751600834, 775583025,  799679004,
1200      823849891,  848086767,  872376077,  896724080,  921081488,  945441219,
1201      969802871,  994136341,  1018434072, 1042657661, 1066807223, 1090882501,
1202      1114809220, 1138647561, 1162337001, 1185851477, 1209202759, 1232338673,
1203      1255290785, 1277993950, 1300469611, 1322658785, 1344591629, 1366224824,
1204      1387547101, 1408538024, 1429180406, 1449479132, 1469384180, 1488911052,
1205      1508046493, 1526734263, 1544999085, 1562820250, 1580163942, 1597046622,
1206      1613433982, 1629313186, 1644687903, 1659528307, 1673810498, 1687568481,
1207      1700750320, 1713362615, 1725392676, 1736819276, 1747663266, 1757882010,
1208      1767469212, 1776457603, 1784781917, 1792491148, 1799530594, 1805935261,
1209      1811668375, 1816732182, 1821133945, 1824889769, 1827931965, 1830310413,
1210      1832022798, 1833032034, 1833389596, 1833032034, 1832022798, 1830310413,
1211      1827931965, 1824889769, 1821133945, 1816732182, 1811668375, 1805935261,
1212      1799530594, 1792491148, 1784781917, 1776457603, 1767469212, 1757882010,
1213      1747663266, 1736819276, 1725392676, 1713362615, 1700750320, 1687568481,
1214      1673810498, 1659528307, 1644687903, 1629313186, 1613433982, 1597046622,
1215      1580163942, 1562820250, 1544999085, 1526734263, 1508046493, 1488911052,
1216      1469384180, 1449479132, 1429180406, 1408538024, 1387547101, 1366224824,
1217      1344591629, 1322658785, 1300469611, 1277993950, 1255290785, 1232338673,
1218      1209202759, 1185851477, 1162337001, 1138647561, 1114809220, 1090882501,
1219      1066807223, 1042657661, 1018434072, 994136341,  969802871,  945441219,
1220      921081488,  896724080,  872376077,  848086767,  823849891,  799679004,
1221      -775583025, -751600834, -727722656, -703969562, -680382715, -656936416,
1222      -633661589, -610575597, -587687684, -565014393, -542557514, -520338913,
1223      -498364569, -476666786, -455209808, -434060170, -413168712, -392597065,
1224      -372332469, -352393230, -332775584, -313482466, -294538497, -275952260,
1225      -257714784, -239836757, -222335323, -205199224, -188451898, -172093527,
1226      -156109885, -140533445, -125349764, -110553355, -96165782,  -82200642,
1227      -68618818,  -55453887,  -42699304,  -30341544,  -18406457,  -6890608,
1228      4244630,    14954402,   25259525,   35154577,   44667031,   53753139,
1229      62453979,   70777610,   78687691,   86212508,   93365884,   100137872,
1230      106510609,  112548291,  118210392,  123513100,  128455292,  133058683,
1231      137319726,  141237995,  144853145,  148104219,  151082577,  153722541,
1232      156073666,  158141985,  159915461,  161399771,  162630172,  163584206,
1233      164293390,  164756002,  164976138,  164964105,  164732072,  164280817,
1234      163636638,  162781055,  161735011,  160514214,  159129320,  157543750,
1235      155839148,  153975151,  151962108,  149814954,  147541538,  145186212,
1236      142671836,  140068999,  137377942,  134616689,  131738494,  128814117,
1237      125824434,  122753697,  119652129,  116490844,  113307839,  110070596,
1238      106812777,  103544299,  100253776,  96956396,   93651234,   90333705,
1239      87048071,   83763389,   80490446,   77244462,   74006785,   70814149,
1240      67649516,   64532454,   61433531,   58381367,   55378416,   52433173,
1241      49538189,   46700800,   43922868,   41204290,   38533025,   35932708,
1242      33373088,   30903291,   -28501020,  -26167087,  -23904831,  -21721843,
1243      -19611965,  -17566036,  -15594127,  -13699290,  -11883575,  -10140975,
1244      -8461326,   -6857726,   -5331498,   -3873947,   -2484238,   -1173445,
1245      59280,      1252469,    2341257,    3389734,    4353846,    5263168,
1246      6108894,    6891679,    7602359,    8258450,    8858722,    9406378,
1247      9886913,    10331429,   10702991,   11034259,   11320622,   11561832,
1248      11758285,   11897996,   12008111,   12083056,   12109488,   12123661,
1249      12073291,   12012598,   11913318,   11784539,   11638669,   11482956,
1250      11265949,   11039645,   10821819,   10552220,   10293439,   10008661,
1251      9708741,    9391100,    9076182,    8765975,    8419731,    8075380,
1252      7732716,    7391396,    7030778,    6684133,    6328515,    5985136,
1253      5626784,    5288310,    4942917,    4608839,    4260852,    3940259,
1254      3622393,    3316406,    2985538,    2701080,    2415952,    2122999,
1255      1848649,    1601598,    1339895,    1096803,    864692,     633406,
1256      438734,     235016,     28980,      -132571,    -310607,    -450614,
1257      -622121,    -751871,    -879420,    -989200,    -1105003,   -1194983,
1258      -1276919,   -1361847,   -1428165,   -1485615,   -1549493,   -1571819,
1259      -1617055,   -1638700,   -1666012,   -1675348,   -1675824,   -1670714,
1260      -1682410,   -1658898,   -1649562,   -1608593,   -1597930,   -1558008,
1261      -1537112,   -1490700,   -1455498,   -1404525,   -1355597,   -1316997,
1262      -1260772,   -1219298,   -1173936,   -1122396,   -1082485,   -1050933,
1263      -1046947,   -1062471,   -1206390,   -1186546},
1264 
1265     // WORD32 esbr_qmf_c_24[480] =
1266     {0,          -1110444,   -1061450,   -1173936,   -1298255,   -1421516,
1267      -1537112,   -1605039,   -1666735,   -1675824,   -1647804,   -1564377,
1268      -1428165,   -1222295,   -952607,    -622121,    -191917,    302922,
1269      864692,     1514364,    2220650,    2985538,    3834304,    4720199,
1270      5626784,    6565594,    7505170,    8419731,    9286127,    10103587,
1271      10821819,   11410620,   11827466,   12073291,   12091866,   11851426,
1272      11320622,   10455283,   9223826,    7602359,    5545077,    3040242,
1273      59280,      -3410710,   -7392260,   -11883575,  -16908733,  -22449506,
1274      28501020,   35079501,   42110483,   49538189,   57380384,   65571474,
1275      74006785,   82672408,   91439548,   100253776,  108984656,  117544606,
1276      125824434,  133657291,  140936611,  147541538,  153304137,  158072273,
1277      161735011,  164066091,  164968116,  164293390,  161809905,  157452545,
1278      151082577,  142443045,  131524220,  118210392,  102262118,  83704236,
1279      62453979,   38325395,   11384478,   -18406457,  -51202360,  -86855689,
1280      -125349764, -166765646, -210911257, -257714784, -307167810, -359039643,
1281      -413168712, -469514460, -527745114, -587687684, -649178140, -711887260,
1282      775583025,  840007809,  904843216,  969802871,  1034583131, 1098858074,
1283      1162337001, 1224626701, 1285485837, 1344591629, 1401541050, 1456114148,
1284      1508046493, 1556879862, 1602509075, 1644687903, 1682982487, 1717372635,
1285      1747663266, 1773461472, 1794837630, 1811668375, 1823637828, 1830881208,
1286      1833389596, 1830881208, 1823637828, 1811668375, 1794837630, 1773461472,
1287      1747663266, 1717372635, 1682982487, 1644687903, 1602509075, 1556879862,
1288      1508046493, 1456114148, 1401541050, 1344591629, 1285485837, 1224626701,
1289      1162337001, 1098858074, 1034583131, 969802871,  904843216,  840007809,
1290      -775583025, -711887260, -649178140, -587687684, -527745114, -469514460,
1291      -413168712, -359039643, -307167810, -257714784, -210911257, -166765646,
1292      -125349764, -86855689,  -51202360,  -18406457,  11384478,   38325395,
1293      62453979,   83704236,   102262118,  118210392,  131524220,  142443045,
1294      151082577,  157452545,  161809905,  164293390,  164968116,  164066091,
1295      161735011,  158072273,  153304137,  147541538,  140936611,  133657291,
1296      125824434,  117544606,  108984656,  100253776,  91439548,   82672408,
1297      74006785,   65571474,   57380384,   49538189,   42110483,   35079501,
1298      -28501020,  -22449506,  -16908733,  -11883575,  -7392260,   -3410710,
1299      59280,      3040242,    5545077,    7602359,    9223826,    10455283,
1300      11320622,   11851426,   12091866,   12073291,   11827466,   11410620,
1301      10821819,   10103587,   9286127,    8419731,    7505170,    6565594,
1302      5626784,    4720199,    3834304,    2985538,    2220650,    1514364,
1303      864692,     302922,     -191917,    -622121,    -952607,    -1222295,
1304      -1428165,   -1564377,   -1647804,   -1675824,   -1666735,   -1605039,
1305      -1537112,   -1421516,   -1298255,   -1173936,   -1061450,   -1110444,
1306 
1307      0,          -1110444,   -1061450,   -1173936,   -1298255,   -1421516,
1308      -1537112,   -1605039,   -1666735,   -1675824,   -1647804,   -1564377,
1309      -1428165,   -1222295,   -952607,    -622121,    -191917,    302922,
1310      864692,     1514364,    2220650,    2985538,    3834304,    4720199,
1311      5626784,    6565594,    7505170,    8419731,    9286127,    10103587,
1312      10821819,   11410620,   11827466,   12073291,   12091866,   11851426,
1313      11320622,   10455283,   9223826,    7602359,    5545077,    3040242,
1314      59280,      -3410710,   -7392260,   -11883575,  -16908733,  -22449506,
1315      28501020,   35079501,   42110483,   49538189,   57380384,   65571474,
1316      74006785,   82672408,   91439548,   100253776,  108984656,  117544606,
1317      125824434,  133657291,  140936611,  147541538,  153304137,  158072273,
1318      161735011,  164066091,  164968116,  164293390,  161809905,  157452545,
1319      151082577,  142443045,  131524220,  118210392,  102262118,  83704236,
1320      62453979,   38325395,   11384478,   -18406457,  -51202360,  -86855689,
1321      -125349764, -166765646, -210911257, -257714784, -307167810, -359039643,
1322      -413168712, -469514460, -527745114, -587687684, -649178140, -711887260,
1323      775583025,  840007809,  904843216,  969802871,  1034583131, 1098858074,
1324      1162337001, 1224626701, 1285485837, 1344591629, 1401541050, 1456114148,
1325      1508046493, 1556879862, 1602509075, 1644687903, 1682982487, 1717372635,
1326      1747663266, 1773461472, 1794837630, 1811668375, 1823637828, 1830881208,
1327      1833389596, 1830881208, 1823637828, 1811668375, 1794837630, 1773461472,
1328      1747663266, 1717372635, 1682982487, 1644687903, 1602509075, 1556879862,
1329      1508046493, 1456114148, 1401541050, 1344591629, 1285485837, 1224626701,
1330      1162337001, 1098858074, 1034583131, 969802871,  904843216,  840007809,
1331      -775583025, -711887260, -649178140, -587687684, -527745114, -469514460,
1332      -413168712, -359039643, -307167810, -257714784, -210911257, -166765646,
1333      -125349764, -86855689,  -51202360,  -18406457,  11384478,   38325395,
1334      62453979,   83704236,   102262118,  118210392,  131524220,  142443045,
1335      151082577,  157452545,  161809905,  164293390,  164968116,  164066091,
1336      161735011,  158072273,  153304137,  147541538,  140936611,  133657291,
1337      125824434,  117544606,  108984656,  100253776,  91439548,   82672408,
1338      74006785,   65571474,   57380384,   49538189,   42110483,   35079501,
1339      -28501020,  -22449506,  -16908733,  -11883575,  -7392260,   -3410710,
1340      59280,      3040242,    5545077,    7602359,    9223826,    10455283,
1341      11320622,   11851426,   12091866,   12073291,   11827466,   11410620,
1342      10821819,   10103587,   9286127,    8419731,    7505170,    6565594,
1343      5626784,    4720199,    3834304,    2985538,    2220650,    1514364,
1344      864692,     302922,     -191917,    -622121,    -952607,    -1222295,
1345      -1428165,   -1564377,   -1647804,   -1675824,   -1666735,   -1605039,
1346      -1537112,   -1421516,   -1298255,   -1173936,   -1061450,   -1110444},
1347 
1348     // const WORD32 esbr_w_32[2 * 30] =
1349     {0,          2147483647, 0,          2147483647,  0,           2147483647,
1350      418953276,  2106220350, 821806413,  1984016188,  1193077990,  1785567395,
1351      821806413,  1984016188, 1518500249, 1518500249,  1984016188,  821806413,
1352      1193077990, 1785567395, 1984016188, 821806413,   2106220350,  -418953276,
1353      1518500249, 1518500249, 2147483647, 0,           1518500249,  -1518500249,
1354      1785567395, 1193077990, 1984016188, -821806413,  418953276,   -2106220350,
1355      1984016188, 821806413,  1518500249, -1518500249, -821806413,  -1984016188,
1356      2106220350, 418953276,  821806413,  -1984016188, -1785567395, -1193077990,
1357      0,          2147483647, 0,          2147483647,  0,           2147483647,
1358      1518500249, 1518500249, 2147483647, 0,           1518500249,  -1518500249},
1359 
1360     // const WORD32 esbr_w_16[2 * 12] =
1361     {0,          2147483647, 0,          2147483647,  0,          2147483647,
1362      821806413,  1984016188, 1518500249, 1518500249,  1984016188, 821806413,
1363      1518500249, 1518500249, 2147483647, 0,           1518500249, -1518500249,
1364      1984016188, 821806413,  1518500249, -1518500249, -821806413, -1984016188},
1365 
1366     // WORD32 ixheaacd_esbr_sin_cos_twiddle_l64[64] =
1367     {(WORD32)0x1921d1f,  (WORD32)0x7ffd8859, (WORD32)0x7fe9cbbe,
1368      (WORD32)0x4b6195d,  (WORD32)0x7d95b9e,  (WORD32)0x7fc25595,
1369      (WORD32)0x7f872bf1, (WORD32)0xafb6805,  (WORD32)0xe1bc2e3,
1370      (WORD32)0x7f3857f4, (WORD32)0x7ed5e5c5, (WORD32)0x1139f0ce,
1371      (WORD32)0x145576b1, (WORD32)0x7e5fe492, (WORD32)0x7dd6668d,
1372      (WORD32)0x176dd9de, (WORD32)0x1a82a025, (WORD32)0x7d3980eb,
1373      (WORD32)0x7c894bdc, (WORD32)0x1d934fe5, (WORD32)0x209f701c,
1374      (WORD32)0x7bc5e28e, (WORD32)0x7aef6322, (WORD32)0x23a6887e,
1375      (WORD32)0x26a82185, (WORD32)0x7a05eeac, (WORD32)0x7909a92b,
1376      (WORD32)0x29a3c484, (WORD32)0x2c98fbba, (WORD32)0x77fab987,
1377      (WORD32)0x76d94987, (WORD32)0x2f875261, (WORD32)0x326e54c7,
1378      (WORD32)0x75a585ce, (WORD32)0x745f9dd0, (WORD32)0x354d9056,
1379      (WORD32)0x382493af, (WORD32)0x7307c3cf, (WORD32)0x719e2cd1,
1380      (WORD32)0x3af2eeb6, (WORD32)0x3db832a5, (WORD32)0x70231098,
1381      (WORD32)0x6e96a99b, (WORD32)0x4073f21c, (WORD32)0x4325c134,
1382      (WORD32)0x6cf934fa, (WORD32)0x6b4af277, (WORD32)0x45cd358e,
1383      (WORD32)0x4869e664, (WORD32)0x698c246b, (WORD32)0x67bd0fbb,
1384      (WORD32)0x4afb6c97, (WORD32)0x4d8162c3, (WORD32)0x65ddfbd2,
1385      (WORD32)0x63ef328e, (WORD32)0x4ffb654c, (WORD32)0x5269126d,
1386      (WORD32)0x61f1003e, (WORD32)0x5fe3b38c, (WORD32)0x54ca0a49,
1387      (WORD32)0x571deef8, (WORD32)0x5dc79d7b, (WORD32)0x5b9d1152,
1388      (WORD32)0x59646497},
1389 
1390     // WORD32 ixheaacd_esbr_alt_sin_twiddle_l64[32]=
1391     {
1392         (WORD32)0x647d97c,  (WORD32)0x7fd8878c, (WORD32)0xc8bd35d,
1393         (WORD32)0x7f62368e, (WORD32)0x12c8106e, (WORD32)0x7e9d55fb,
1394         (WORD32)0x18f8b83c, (WORD32)0x7d8a5f3e, (WORD32)0x1f19f97a,
1395         (WORD32)0x7c29fbed, (WORD32)0x25280c5d, (WORD32)0x7a7d055a,
1396         (WORD32)0x2b1f34eb, (WORD32)0x78848412, (WORD32)0x30fbc54c,
1397         (WORD32)0x7641af3b, (WORD32)0x36ba2013, (WORD32)0x73b5ebd0,
1398         (WORD32)0x3c56ba6f, (WORD32)0x70e2cbc5, (WORD32)0x41ce1e64,
1399         (WORD32)0x6dca0d13, (WORD32)0x471cece6, (WORD32)0x6a6d98a3,
1400         (WORD32)0x4c3fdff2, (WORD32)0x66cf811f, (WORD32)0x5133cc93,
1401         (WORD32)0x62f201ab, (WORD32)0x55f5a4d1, (WORD32)0x5ed77c88,
1402         (WORD32)0x5a827999, (WORD32)0x5a827999,
1403     },
1404 
1405     // const WORD32 ixheaacd_esbr_sin_cos_twiddle_l32[32] =
1406     {(WORD32)0x3242abf,  (WORD32)0x7ff62181, (WORD32)0x7fa736b3,
1407      (WORD32)0x96a9049,  (WORD32)0xfab272b,  (WORD32)0x7f0991c3,
1408      (WORD32)0x7e1d93e9, (WORD32)0x15e21444, (WORD32)0x1c0b826a,
1409      (WORD32)0x7ce3ceb1, (WORD32)0x7b5d039d, (WORD32)0x2223a4c5,
1410      (WORD32)0x2826b928, (WORD32)0x798a23b0, (WORD32)0x776c4eda,
1411      (WORD32)0x2e110a62, (WORD32)0x33def287, (WORD32)0x7504d344,
1412      (WORD32)0x72552c84, (WORD32)0x398cdd32, (WORD32)0x3f1749b7,
1413      (WORD32)0x6f5f02b1, (WORD32)0x6c24295f, (WORD32)0x447acd50,
1414      (WORD32)0x49b41533, (WORD32)0x68a69e80, (WORD32)0x64e88925,
1415      (WORD32)0x4ebfe8a4, (WORD32)0x539b2aef, (WORD32)0x60ec382f,
1416      (WORD32)0x5cb420df, (WORD32)0x5842dd54},
1417 
1418     // const WORD32 ixheaacd_esbr_alt_sin_twiddle_l32[16] =
1419     {(WORD32)0xc8bd35e, (WORD32)0x7f62368e, (WORD32)0x18f8b83c,
1420      (WORD32)0x7d8a5f3f, (WORD32)0x25280c5d, (WORD32)0x7a7d055a,
1421      (WORD32)0x30fbc54d, (WORD32)0x7641af3c, (WORD32)0x3c56ba70,
1422      (WORD32)0x70e2cbc5, (WORD32)0x471cece6, (WORD32)0x6a6d98a3,
1423      (WORD32)0x5133cc94, (WORD32)0x62f201ac, (WORD32)0x5a827999,
1424      (WORD32)0x5a827999},
1425 
1426     // const WORD32 ixheaacd_esbr_t_cos_sin_l32[32+32] = //exp[-i * pi/32* 3/4 *
1427     // (k
1428     // +0.5)]
1429     {(WORD32)0x7fe9cbbe, (WORD32)0x4b6195d,  (WORD32)0x7f3857f4,
1430      (WORD32)0xe1bc2e3,  (WORD32)0x7dd6668d, (WORD32)0x176dd9de,
1431      (WORD32)0x7bc5e28e, (WORD32)0x209f701c, (WORD32)0x7909a92b,
1432      (WORD32)0x29a3c484, (WORD32)0x75a585ce, (WORD32)0x326e54c7,
1433      (WORD32)0x719e2cd1, (WORD32)0x3af2eeb6, (WORD32)0x6cf934fa,
1434      (WORD32)0x4325c134, (WORD32)0x67bd0fbb, (WORD32)0x4afb6c97,
1435      (WORD32)0x61f1003e, (WORD32)0x5269126d, (WORD32)0x5b9d1152,
1436      (WORD32)0x59646497, (WORD32)0x54ca0a49, (WORD32)0x5fe3b38c,
1437      (WORD32)0x4d8162c3, (WORD32)0x65ddfbd2, (WORD32)0x45cd358e,
1438      (WORD32)0x6b4af277, (WORD32)0x3db832a5, (WORD32)0x70231098,
1439      (WORD32)0x354d9056, (WORD32)0x745f9dd0, (WORD32)0x2c98fbba,
1440      (WORD32)0x77fab987, (WORD32)0x23a6887e, (WORD32)0x7aef6322,
1441      (WORD32)0x1a82a025, (WORD32)0x7d3980eb, (WORD32)0x1139f0ce,
1442      (WORD32)0x7ed5e5c5, (WORD32)0x7d95b9e,  (WORD32)0x7fc25595,
1443      (WORD32)0xfe6de2e1, (WORD32)0x7ffd8859, (WORD32)0xf50497fb,
1444      (WORD32)0x7f872bf1, (WORD32)0xebaa894f, (WORD32)0x7e5fe492,
1445      (WORD32)0xe26cb01b, (WORD32)0x7c894bdc, (WORD32)0xd957de7b,
1446      (WORD32)0x7a05eeac, (WORD32)0xd078ad9f, (WORD32)0x76d94987,
1447      (WORD32)0xc7db6c51, (WORD32)0x7307c3cf, (WORD32)0xbf8c0de4,
1448      (WORD32)0x6e96a99b, (WORD32)0xb796199c, (WORD32)0x698c246b,
1449      (WORD32)0xb0049ab4, (WORD32)0x63ef328e, (WORD32)0xa8e21108,
1450      (WORD32)0x5dc79d7b},
1451 
1452     // const WORD32 ixheaacd_esbr_sin_cos_twiddle_l24[24] =
1453     {(WORD32)0x430238f,  (WORD32)0x7fee74a1, (WORD32)0x7f62368e,
1454      (WORD32)0xc8bd35e,  (WORD32)0x14d9c245, (WORD32)0x7e4a5425,
1455      (WORD32)0x7ca80037, (WORD32)0x1d10d5c1, (WORD32)0x25280c5d,
1456      (WORD32)0x7a7d055a, (WORD32)0x77cbc3f1, (WORD32)0x2d168792,
1457      (WORD32)0x34d3957e, (WORD32)0x74972f91, (WORD32)0x70e2cbc5,
1458      (WORD32)0x3c56ba70, (WORD32)0x4397ba32, (WORD32)0x6cb2a836,
1459      (WORD32)0x680b5c33, (WORD32)0x4a8ea111, (WORD32)0x5133cc94,
1460      (WORD32)0x62f201ac, (WORD32)0x5d6c2f99, (WORD32)0x577ff3da},
1461 
1462     // const WORD32 ixheaacd_esbr_alt_sin_twiddle_l24[12] =
1463     {(WORD32)0x10b5150f, (WORD32)0x7ee7aa4b, (WORD32)0x2120fb83,
1464      (WORD32)0x7ba3751c, (WORD32)0x30fbc54d, (WORD32)0x7641af3c,
1465      (WORD32)0x3fffffff, (WORD32)0x6ed9eba1, (WORD32)0x4debe4fe,
1466      (WORD32)0x658c9a2d, (WORD32)0x5a827999, (WORD32)0x5a827999},
1467 
1468     // const WORD32 ixheaacd_esbr_t_cos_sin_l24[24+24] = //exp[-i * pi/24* 11/8
1469     // * (k
1470     // +0.5)]
1471     {(WORD32)0x7fded52e, (WORD32)0x5c1f4e6,  (WORD32)0x7ed5e5c5,
1472      (WORD32)0x1139f0ce, (WORD32)0x7cc62bde, (WORD32)0x1c8e3bbe,
1473      (WORD32)0x79b3ecde, (WORD32)0x27a75c94, (WORD32)0x75a585ce,
1474      (WORD32)0x326e54c7, (WORD32)0x70a35e24, (WORD32)0x3cccd003,
1475      (WORD32)0x6ab7d661, (WORD32)0x46ad5277, (WORD32)0x63ef328e,
1476      (WORD32)0x4ffb654c, (WORD32)0x5c5780d1, (WORD32)0x58a3c117,
1477      (WORD32)0x54007c50, (WORD32)0x609475c2, (WORD32)0x4afb6c97,
1478      (WORD32)0x67bd0fbb, (WORD32)0x415b01cd, (WORD32)0x6e0eba0a,
1479      (WORD32)0x37332dfc, (WORD32)0x737c5d0a, (WORD32)0x2c98fbba,
1480      (WORD32)0x77fab987, (WORD32)0x21a26295, (WORD32)0x7b808014,
1481      (WORD32)0x1666198d, (WORD32)0x7e06644a, (WORD32)0xafb6805,
1482      (WORD32)0x7f872bf1, (WORD32)0xff79f587, (WORD32)0x7fffb9cf,
1483      (WORD32)0xf3f998c1, (WORD32)0x7f6f141d, (WORD32)0xe8922622,
1484      (WORD32)0x7dd6668d, (WORD32)0xdd5b3e7c, (WORD32)0x7b38ffdc,
1485      (WORD32)0xd26c1e09, (WORD32)0x779c4afa, (WORD32)0xc7db6c51,
1486      (WORD32)0x7307c3cf, (WORD32)0xbdbf0d30, (WORD32)0x6d84e7b6},
1487 
1488     // const WORD32 ixheaacd_esbr_sin_cos_twiddle_l16[16] =
1489     {(WORD32)0x647d97c, (WORD32)0x7fd8878d, (WORD32)0x7e9d55fb,
1490      (WORD32)0x12c8106e, (WORD32)0x1f19f97b, (WORD32)0x7c29fbed,
1491      (WORD32)0x78848413, (WORD32)0x2b1f34eb, (WORD32)0x36ba2013,
1492      (WORD32)0x73b5ebd0, (WORD32)0x6dca0d14, (WORD32)0x41ce1e64,
1493      (WORD32)0x4c3fdff3, (WORD32)0x66cf811f, (WORD32)0x5ed77c89,
1494      (WORD32)0x55f5a4d2},
1495 
1496     // const WORD32 ixheaacd_esbr_alt_sin_twiddle_l16[8] =
1497     {(WORD32)0x18f8b83c, (WORD32)0x7d8a5f3f, (WORD32)0x30fbc54d,
1498      (WORD32)0x7641af3c, (WORD32)0x471cece6, (WORD32)0x6a6d98a3,
1499      (WORD32)0x5a827999, (WORD32)0x5a827999},
1500 
1501     // const WORD32 ixheaacd_esbr_t_cos_sin_l16[16+16] = //exp[-i * pi/16* 5/4 *
1502     // (k
1503     // +0.5)]
1504     {(WORD32)0x7fc25595, (WORD32)0x7d95b9e,  (WORD32)0x7dd6668d,
1505      (WORD32)0x176dd9de, (WORD32)0x7a05eeac, (WORD32)0x26a82185,
1506      (WORD32)0x745f9dd0, (WORD32)0x354d9056, (WORD32)0x6cf934fa,
1507      (WORD32)0x4325c134, (WORD32)0x63ef328e, (WORD32)0x4ffb654c,
1508      (WORD32)0x59646497, (WORD32)0x5b9d1152, (WORD32)0x4d8162c3,
1509      (WORD32)0x65ddfbd2, (WORD32)0x4073f21c, (WORD32)0x6e96a99b,
1510      (WORD32)0x326e54c7, (WORD32)0x75a585ce, (WORD32)0x23a6887e,
1511      (WORD32)0x7aef6322, (WORD32)0x145576b1, (WORD32)0x7e5fe492,
1512      (WORD32)0x4b6195d,  (WORD32)0x7fe9cbbe, (WORD32)0xf50497fb,
1513      (WORD32)0x7f872bf1, (WORD32)0xe57d5fdb, (WORD32)0x7d3980eb,
1514      (WORD32)0xd65c3b7c, (WORD32)0x7909a92b},
1515 
1516     // WORD16 ixheaacd_sbr_t_cos_sin_l32_eld[32+32];
1517     {
1518         (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)0x5a82,
1519         (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)-0x5a82,
1520         (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)0x5a82,
1521         (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)-0x5a82,
1522         (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)0x5a82,
1523         (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)-0x5a82,
1524         (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)0x5a82,
1525         (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)-0x5a82,
1526         (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)0x5a82,
1527         (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)-0x5a82,
1528         (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)0x5a82,
1529         (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)-0x5a82,
1530         (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)0x5a82,
1531         (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)-0x5a82,
1532         (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)0x5a82,
1533         (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)-0x5a82,
1534     },
1535 
1536     // WORD16 qmf_c_eld[640];
1537     {185,   386,   565,   759,   970,   1200,  1447,  1707,  1977,  2255,
1538      2535,  2818,  3099,  3379,  3657,  3933,  4208,  4481,  4754,  5027,
1539      5301,  5576,  5852,  6129,  6407,  6685,  6963,  7242,  7520,  7797,
1540      8073,  8349,  8624,  8898,  9172,  9445,  9717,  9989,  10259, 10528,
1541      10796, 11061, 11325, 11586, 11845, 12102, 12357, 12611, 12863, 13114,
1542      13364, 13612, 13858, 14103, 14344, 14581, 14813, 15040, 15260, 15473,
1543      15678, 15876, 16069, 16265, 16408, 16497, 16589, 16674, 16752, 16820,
1544      16879, 16928, 16969, 17001, 17027, 17045, 17057, 17063, 17063, 17056,
1545      17044, 17024, 16997, 16963, 16920, 16869, 16809, 16741, 16664, 16578,
1546      16484, 16381, 16270, 16150, 16023, 15887, 15743, 15590, 15430, 15262,
1547      15087, 14903, 14713, 14515, 14310, 14099, 13882, 13659, 13431, 13197,
1548      12958, 12715, 12467, 12214, 11958, 11698, 11435, 11168, 10899, 10627,
1549      10354, 10078, 9801,  9522,  9243,  8963,  8683,  8403,  -8120, -7836,
1550      -7553, -7270, -6989, -6710, -6431, -6155, -5881, -5610, -5341, -5076,
1551      -4813, -4554, -4299, -4047, -3799, -3555, -3315, -3080, -2848, -2622,
1552      -2399, -2182, -1969, -1761, -1558, -1360, -1167, -979,  -796,  -619,
1553      -447,  -280,  -120,  36,    186,   330,   468,   601,   727,   848,
1554      964,   1073,  1177,  1275,  1368,  1454,  1535,  1610,  1679,  1742,
1555      1800,  1852,  1898,  1939,  1974,  2004,  2030,  2050,  2066,  2078,
1556      2085,  2087,  2088,  2090,  2087,  2080,  2069,  2056,  2039,  2019,
1557      1996,  1970,  1942,  1911,  1878,  1842,  1804,  1765,  1723,  1680,
1558      1636,  1590,  1544,  1496,  1449,  1400,  1352,  1303,  1255,  1206,
1559      1158,  1109,  1062,  1015,  969,   924,   880,   837,   795,   754,
1560      714,   676,   640,   606,   572,   540,   510,   480,   452,   426,
1561      400,   376,   353,   332,   311,   291,   273,   255,   239,   223,
1562      208,   194,   181,   169,   158,   147,   -138,  -129,  -121,  -113,
1563      -107,  -100,  -94,   -88,   -83,   -78,   -73,   -68,   -62,   -57,
1564      -53,   -48,   -43,   -39,   -35,   -32,   -28,   -24,   -21,   -19,
1565      -16,   -13,   -9,    -5,    -1,    2,     7,     10,    10,    15,
1566      20,    24,    28,    33,    36,    30,    22,    15,    9,     3,
1567      -3,    -10,   -17,   -26,   -35,   -43,   -50,   -57,   -62,   -67,
1568      -72,   -75,   -76,   -77,   -77,   -76,   -74,   -71,   -68,   -63,
1569      -59,   -54,   -49,   -44,   -38,   -31,   -25,   -19,   -13,   -7,
1570      -2,    2,     5,     8,     10,    11,    11,    11,    11,    12,
1571      12,    12,    11,    9,     5,     2,     11,    20,    26,    31,
1572      36,    41,    45,    45,    44,    43,    40,    37,    33,    32,
1573      28,    23,    18,    13,    8,     1,     -5,    -8,    -9,    -11,
1574      -13,   -16,   -20,   -21,   -19,   -17,   -16,   -15,   -16,   -17,
1575      -18,   -19,   -20,   -20,   21,    21,    20,    19,    18,    18,
1576      17,    15,    13,    10,    5,     4,     4,     4,     3,     3,
1577      2,     1,     1,     0,     0,     0,     -2,    1,     2,     0,
1578      1,     1,     -1,    -2,    -3,    -6,    0,     3,     2,     1,
1579      1,     1,     1,     1,     0,     2,     2,     2,     1,     1,
1580      0,     0,     0,     0,     0,     1,     0,     0,     1,     1,
1581      1,     0,     0,     0,     0,     0,     0,     -1,    -3,    -3,
1582      -3,    -3,    -3,    -3,    -3,    -3,    -4,    -4,    -2,    -1,
1583      -1,    -1,    -1,    -1,    -1,    0,     0,     0,     0,     0,
1584      3,     1,     -1,    0,     -1,    -1,    1,     1,     1,     10,
1585      4,     1,     1,     1,     1,     1,     1,     1,     1,     -1,
1586      1,     1,     1,     0,     0,     0,     0,     0,     0,     0,
1587      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1588      0,     0,     -1,    -1,    -1,    0,     0,     0,     0,     0,
1589      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1590      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1591      0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
1592      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1593      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1594      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1595      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1596      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1597      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1598      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1599      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1600      0,     0,     0,     0,     0,     0,     0,     0,     0,     0},
1601 
1602     // WORD16 qmf_c_eld2[640];
1603 
1604     {185,   386,   565,   759,   970,   1200,  1447,  1707,  1977,  2255,
1605      2535,  2818,  3099,  3379,  3657,  3933,  4208,  4481,  4754,  5027,
1606      5301,  5576,  5852,  6129,  6407,  6685,  6963,  7242,  7520,  7797,
1607      8073,  8349,  8624,  8898,  9172,  9445,  9717,  9989,  10259, 10528,
1608      10796, 11061, 11325, 11586, 11845, 12102, 12357, 12611, 12863, 13114,
1609      13364, 13612, 13858, 14103, 14344, 14581, 14813, 15040, 15260, 15473,
1610      15678, 15876, 16069, 16265, 16408, 16497, 16589, 16674, 16752, 16820,
1611      16879, 16928, 16969, 17001, 17027, 17045, 17057, 17063, 17063, 17056,
1612      17044, 17024, 16997, 16963, 16920, 16869, 16809, 16741, 16664, 16578,
1613      16484, 16381, 16270, 16150, 16023, 15887, 15743, 15590, 15430, 15262,
1614      15087, 14903, 14713, 14515, 14310, 14099, 13882, 13659, 13431, 13197,
1615      12958, 12715, 12467, 12214, 11958, 11698, 11435, 11168, 10899, 10627,
1616      10354, 10078, 9801,  9522,  9243,  8963,  8683,  8403,  -8120, -7836,
1617      -7553, -7270, -6989, -6710, -6431, -6155, -5881, -5610, -5341, -5076,
1618      -4813, -4554, -4299, -4047, -3799, -3555, -3315, -3080, -2848, -2622,
1619      -2399, -2182, -1969, -1761, -1558, -1360, -1167, -979,  -796,  -619,
1620      -447,  -280,  -120,  36,    186,   330,   468,   601,   727,   848,
1621      964,   1073,  1177,  1275,  1368,  1454,  1535,  1610,  1679,  1742,
1622      1800,  1852,  1898,  1939,  1974,  2004,  2030,  2050,  2066,  2078,
1623      2085,  2087,  2088,  2090,  2087,  2080,  2069,  2056,  2039,  2019,
1624      1996,  1970,  1942,  1911,  1878,  1842,  1804,  1765,  1723,  1680,
1625      1636,  1590,  1544,  1496,  1449,  1400,  1352,  1303,  1255,  1206,
1626      1158,  1109,  1062,  1015,  969,   924,   880,   837,   795,   754,
1627      714,   676,   640,   606,   572,   540,   510,   480,   452,   426,
1628      400,   376,   353,   332,   311,   291,   273,   255,   239,   223,
1629      208,   194,   181,   169,   158,   147,   -138,  -129,  -121,  -113,
1630      -107,  -100,  -94,   -88,   -83,   -78,   -73,   -68,   -62,   -57,
1631      -53,   -48,   -43,   -39,   -35,   -32,   -28,   -24,   -21,   -19,
1632      -16,   -13,   -9,    -5,    -1,    2,     7,     10,    10,    15,
1633      20,    24,    28,    33,    36,    30,    22,    15,    9,     3,
1634      -3,    -10,   -17,   -26,   -35,   -43,   -50,   -57,   -62,   -67,
1635      -72,   -75,   -76,   -77,   -77,   -76,   -74,   -71,   -68,   -63,
1636      -59,   -54,   -49,   -44,   -38,   -31,   -25,   -19,   -13,   -7,
1637      -2,    2,     5,     8,     10,    11,    11,    11,    11,    12,
1638      12,    12,    11,    9,     5,     2,     11,    20,    26,    31,
1639      36,    41,    45,    45,    44,    43,    40,    37,    33,    32,
1640      28,    23,    18,    13,    8,     1,     -5,    -8,    -9,    -11,
1641      -13,   -16,   -20,   -21,   -19,   -17,   -16,   -15,   -16,   -17,
1642      -18,   -19,   -20,   -20,   21,    21,    20,    19,    18,    18,
1643      17,    15,    13,    10,    5,     4,     4,     4,     3,     3,
1644      2,     1,     1,     0,     0,     0,     -2,    1,     2,     0,
1645      1,     1,     -1,    -2,    -3,    -6,    0,     3,     2,     1,
1646      1,     1,     1,     1,     0,     2,     2,     2,     1,     1,
1647      0,     0,     0,     0,     0,     1,     0,     0,     1,     1,
1648      1,     0,     0,     0,     0,     0,     0,     -1,    -3,    -3,
1649      -3,    -3,    -3,    -3,    -3,    -3,    -4,    -4,    -2,    -1,
1650      -1,    -1,    -1,    -1,    -1,    0,     0,     0,     0,     0,
1651      3,     1,     -1,    0,     -1,    -1,    1,     1,     1,     10,
1652      4,     1,     1,     1,     1,     1,     1,     1,     1,     -1,
1653      1,     1,     1,     0,     0,     0,     0,     0,     0,     0,
1654      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1655      0,     0,     -1,    -1,    -1,    0,     0,     0,     0,     0,
1656      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1657      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1658      0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
1659      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1660      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1662      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1664      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1665      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1666      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1667      0,     0,     0,     0,     0,     0,     0,     0,     0,     0},
1668 
1669     // WORD16 qmf_c_eld3[640];
1670     {
1671         285,   662,   1085,  1577,  2116,  2676,  3239,  3795,  4344,  4890,
1672         5438,  5990,  6546,  7102,  7658,  8211,  8761,  9308,  9853,  10393,
1673         10928, 11455, 11973, 12484, 12988, 13488, 13980, 14462, 14926, 15366,
1674         15777, 16167, 16452, 16631, 16786, 16903, 16985, 17036, 17060, 17059,
1675         17034, 16980, 16894, 16775, 16621, 16432, 16210, 15955, 15666, 15346,
1676         14995, 14614, 14204, 13770, 13314, 12836, 12340, 11828, 11301, 10763,
1677         10216, 9661,  9103,  8543,  -7978, -7412, -6850, -6293, -5746, -5209,
1678         -4684, -4173, -3677, -3198, -2735, -2291, -1865, -1459, -1073, -708,
1679         -364,  -42,   258,   534,   787,   1018,  1226,  1411,  1572,  1710,
1680         1826,  1918,  1989,  2040,  2072,  2086,  2089,  2083,  2062,  2029,
1681         1983,  1926,  1860,  1784,  1701,  1613,  1520,  1424,  1327,  1230,
1682         1133,  1038,  946,   858,   774,   695,   623,   556,   495,   439,
1683         388,   342,   301,   264,   231,   201,   175,   152,   -134,  -117,
1684         -104,  -91,   -81,   -71,   -60,   -51,   -41,   -34,   -26,   -20,
1685         -15,   -7,    0,     8,     12,    22,    30,    33,    18,    6,
1686         -7,    -22,   -39,   -54,   -65,   -74,   -77,   -77,   -73,   -66,
1687         -57,   -47,   -35,   -22,   -10,   0,     6,     10,    11,    11,
1688         12,    10,    3,     15,    28,    38,    45,    43,    38,    32,
1689         25,    15,    4,     -7,    -10,   -15,   -21,   -18,   -16,   -17,
1690         -19,   -20,   21,    19,    18,    16,    11,    4,     4,     3,
1691         1,     0,     0,     -1,    1,     1,     -2,    -5,    1,     1,
1692         1,     1,     1,     2,     1,     0,     0,     0,     0,     1,
1693         0,     0,     0,     -1,    -3,    -3,    -3,    -3,    -4,    -2,
1694         -1,    -1,    -1,    0,     0,     2,     -1,    -1,    1,     5,
1695         2,     1,     1,     1,     0,     1,     0,     0,     0,     0,
1696         0,     0,     0,     0,     0,     0,     -1,    -1,    0,     0,
1697         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1698         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1699         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1700         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1701         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1703         285,   662,   1085,  1577,  2116,  2676,  3239,  3795,  4344,  4890,
1704         5438,  5990,  6546,  7102,  7658,  8211,  8761,  9308,  9853,  10393,
1705         10928, 11455, 11973, 12484, 12988, 13488, 13980, 14462, 14926, 15366,
1706         15777, 16167, 16452, 16631, 16786, 16903, 16985, 17036, 17060, 17059,
1707         17034, 16980, 16894, 16775, 16621, 16432, 16210, 15955, 15666, 15346,
1708         14995, 14614, 14204, 13770, 13314, 12836, 12340, 11828, 11301, 10763,
1709         10216, 9661,  9103,  8543,  -7978, -7412, -6850, -6293, -5746, -5209,
1710         -4684, -4173, -3677, -3198, -2735, -2291, -1865, -1459, -1073, -708,
1711         -364,  -42,   258,   534,   787,   1018,  1226,  1411,  1572,  1710,
1712         1826,  1918,  1989,  2040,  2072,  2086,  2089,  2083,  2062,  2029,
1713         1983,  1926,  1860,  1784,  1701,  1613,  1520,  1424,  1327,  1230,
1714         1133,  1038,  946,   858,   774,   695,   623,   556,   495,   439,
1715         388,   342,   301,   264,   231,   201,   175,   152,   -134,  -117,
1716         -104,  -91,   -81,   -71,   -60,   -51,   -41,   -34,   -26,   -20,
1717         -15,   -7,    0,     8,     12,    22,    30,    33,    18,    6,
1718         -7,    -22,   -39,   -54,   -65,   -74,   -77,   -77,   -73,   -66,
1719         -57,   -47,   -35,   -22,   -10,   0,     6,     10,    11,    11,
1720         12,    10,    3,     15,    28,    38,    45,    43,    38,    32,
1721         25,    15,    4,     -7,    -10,   -15,   -21,   -18,   -16,   -17,
1722         -19,   -20,   21,    19,    18,    16,    11,    4,     4,     3,
1723         1,     0,     0,     -1,    1,     1,     -2,    -5,    1,     1,
1724         1,     1,     1,     2,     1,     0,     0,     0,     0,     1,
1725         0,     0,     0,     -1,    -3,    -3,    -3,    -3,    -4,    -2,
1726         -1,    -1,    -1,    0,     0,     2,     -1,    -1,    1,     5,
1727         2,     1,     1,     1,     0,     1,     0,     0,     0,     0,
1728         0,     0,     0,     0,     0,     0,     -1,    -1,    0,     0,
1729         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1730         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1731         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1732         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1733         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1734         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735     },
1736     // const WORD16 ixheaacd_sbr_synth_cos_sin_l32[64+64] = //exp[-i * pi/4* (2k
1737     // + 1)]
1738     {
1739         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1740         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1741 
1742         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1743         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1744 
1745         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1746         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1747 
1748         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1749         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1750 
1751         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1752         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1753 
1754         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1755         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1756 
1757         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1758         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1759 
1760         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1761         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1762 
1763         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1764         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1765 
1766         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1767         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1768 
1769         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1770         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1771 
1772         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1773         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1774 
1775         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1776         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1777 
1778         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1779         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1780 
1781         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1782         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1783 
1784         (WORD16)0x5a82,  (WORD16)0x5a82,  (WORD16)-0x5a82, (WORD16)0x5a82,
1785         (WORD16)-0x5a82, (WORD16)-0x5a82, (WORD16)0x5a82,  (WORD16)-0x5a82,
1786 
1787     },
1788 
1789 };
1790 
1791 const ia_env_extr_tables_struct ixheaacd_aac_dec_env_extr_tables = {
1792     {
1793         // const ia_frame_info_struct sbr_frame_info1_16 =
1794         {0,
1795          1,
1796          -1,
1797          1,
1798          {0, 16, 0, 0, 0, 0, 0, 0, 0},
1799          {1, 0, 0, 0, 0, 0, 0, 0},
1800          {0, 16, 0}},
1801 
1802         // const ia_frame_info_struct sbr_frame_info2_16 =
1803         {0,
1804          2,
1805          -1,
1806          2,
1807          {0, 8, 16, 0, 0, 0, 0, 0, 0},
1808          {1, 1, 0, 0, 0, 0, 0, 0},
1809          {0, 8, 16}},
1810 
1811         // const ia_frame_info_struct sbr_frame_info4_16 =
1812         {0,
1813          4,
1814          -1,
1815          2,
1816          {0, 4, 8, 12, 16, 0, 0, 0, 0},
1817          {1, 1, 1, 1, 0, 0, 0, 0},
1818          {0, 8, 16}},
1819 
1820         // const ia_frame_info_struct sbr_frame_info8_16 =
1821         {0,
1822          8,
1823          -1,
1824          2,
1825          {0, 2, 4, 6, 8, 10, 12, 14, 16},
1826          {1, 1, 1, 1, 1, 1, 1, 1},
1827          {0, 8, 16}},
1828 
1829     },
1830 
1831     // const ia_sbr_header_data_struct sbr_default_header =
1832     {SBR_NOT_INITIALIZED,
1833      0,
1834      0,
1835      16,
1836      2,
1837      1024,
1838      44100,
1839 
1840      0,
1841      SBR_AMPLITUDE_RESOLUTION_3_0,
1842 
1843      15,
1844      6,
1845      0,
1846      SBR_SAMP_FEQ_LVL_DEF,
1847      SBR_CHANGE_LVL_DEF,
1848      SBR_NOISE_BND_DEF,
1849 
1850      SBR_BND_LIMIT_DEF,
1851      SBR_GAIN_LIMIT_DEF,
1852      SBR_INTERPOL_SAMP_FEQ_DEF,
1853      SBR_SMOOTH_LEN_DEF,
1854 
1855      NULL,
1856      0,
1857      0,
1858      0,
1859      0,
1860      0,
1861      0,
1862      0,
1863      0,
1864      0,
1865      0,
1866      0,
1867      0,
1868      0,
1869      0,
1870      0},
1871 
1872     // WORD16 ixheaacd_t_huffman_env_bal_1_5db_inp_table[50];
1873     {0x0011, 0x0301, 0x0322, 0x02e3, 0x0344, 0x02c5, 0x0366, 0x02a7, 0x0388,
1874      0x0289, 0x026b, 0x03ab, 0x024c, 0x03cc, 0x03ef, 0x0230, 0x0410, 0x0010,
1875      0x0030, 0x0050, 0x0070, 0x0090, 0x00b0, 0x00d0, 0x00f0, 0x0110, 0x0130,
1876      0x0150, 0x0170, 0x0190, 0x01b0, 0x01d0, 0x01f0, 0x0210, 0x0430, 0x0450,
1877      0x0470, 0x0490, 0x04b0, 0x04d0, 0x04f1, 0x0511, 0x0531, 0x0551, 0x0571,
1878      0x0591, 0x05b1, 0x05d1, 0x05f1, 0x0611},
1879     // WORD16 ixheaacd_f_huffman_env_bal_1_5db_inp_table[50];
1880     {0x0013, 0x0301, 0x02e2, 0x0323, 0x02c4, 0x0345, 0x0366, 0x02a7, 0x0288,
1881      0x0389, 0x026b, 0x03ab, 0x024b, 0x03cc, 0x022e, 0x03ef, 0x0410, 0x01f0,
1882      0x0211, 0x0012, 0x0032, 0x0052, 0x0072, 0x0092, 0x00b2, 0x00d2, 0x00f2,
1883      0x0112, 0x0132, 0x0152, 0x0172, 0x0192, 0x01b2, 0x01d2, 0x0432, 0x0452,
1884      0x0472, 0x0492, 0x04b2, 0x04d2, 0x04f2, 0x0512, 0x0532, 0x0552, 0x0572,
1885      0x0592, 0x05b2, 0x05d2, 0x05f3, 0x0613},
1886     // WORD16 ixheaacd_t_huffman_env_bal_3_0db_inp_table[26];
1887     {0x000e, 0x0181, 0x01a2, 0x0163, 0x0144, 0x01c5, 0x01e6, 0x0127, 0x0108,
1888      0x0209, 0x00ec, 0x000d, 0x002d, 0x004d, 0x006d, 0x008d, 0x00ad, 0x00cd,
1889      0x022d, 0x024d, 0x026d, 0x028d, 0x02ad, 0x02cd, 0x02ee, 0x030e},
1890     // WORD16 ixheaacd_f_huffman_env_bal_3_0db_inp_table[26];
1891     {0x000e, 0x0181, 0x0162, 0x01a3, 0x0144, 0x01c5, 0x01e6, 0x0127, 0x0108,
1892      0x0209, 0x00eb, 0x022c, 0x024d, 0x000d, 0x002d, 0x004d, 0x006d, 0x008d,
1893      0x00ae, 0x00ce, 0x026e, 0x028e, 0x02ae, 0x02ce, 0x02ee, 0x030e},
1894     // WORD16 ixheaacd_t_huffman_noise_3_0db_inp_table[64];
1895     {0x000e, 0x03e1, 0x0402, 0x03c3, 0x03a4, 0x0425, 0x0386, 0x0448,
1896      0x0368, 0x046a, 0x034b, 0x048d, 0x054d, 0x000d, 0x002d, 0x004d,
1897      0x006d, 0x008d, 0x00ad, 0x00cd, 0x00ed, 0x010d, 0x012d, 0x014d,
1898      0x016d, 0x018d, 0x01ad, 0x01cd, 0x01ed, 0x020d, 0x022d, 0x024d,
1899      0x026d, 0x028d, 0x02ad, 0x02cd, 0x02ed, 0x030d, 0x032d, 0x04ad,
1900      0x04cd, 0x04ed, 0x050d, 0x052d, 0x056d, 0x058d, 0x05ad, 0x05cd,
1901      0x05ed, 0x060d, 0x062d, 0x064d, 0x066d, 0x068d, 0x06ad, 0x06cd,
1902      0x06ed, 0x070d, 0x072d, 0x074d, 0x076d, 0x078d, 0x07ae, 0x07ce},
1903     // WORD16 ixheaacd_t_huffman_noise_bal_3_0db_inp_table[26];
1904     {0x0008, 0x0181, 0x0162, 0x01a3, 0x0145, 0x01c6, 0x0008, 0x0028, 0x0048,
1905      0x0068, 0x0088, 0x00a8, 0x00c8, 0x00e8, 0x0108, 0x0128, 0x01e8, 0x0208,
1906      0x0228, 0x0248, 0x0268, 0x0288, 0x02a8, 0x02c8, 0x02e8, 0x0308},
1907     // WORD16 ixheaacd_t_huffman_env_1_5db_inp_table[122];
1908     {0x0013, 0x0782, 0x0762, 0x07a3, 0x0743, 0x07c4, 0x0724, 0x07e5, 0x0705,
1909      0x0806, 0x06e6, 0x0827, 0x06c7, 0x0848, 0x06a8, 0x0869, 0x0689, 0x066a,
1910      0x088a, 0x064b, 0x08ac, 0x062c, 0x08cd, 0x060d, 0x05ed, 0x08ee, 0x05ce,
1911      0x090e, 0x05ae, 0x058f, 0x092f, 0x0530, 0x0550, 0x0570, 0x0950, 0x0490,
1912      0x0510, 0x0990, 0x0451, 0x04f1, 0x0971, 0x04b1, 0x0472, 0x04d2, 0x0012,
1913      0x0032, 0x0052, 0x0072, 0x0092, 0x00b2, 0x00d3, 0x00f3, 0x0113, 0x0133,
1914      0x0153, 0x0173, 0x0193, 0x01b3, 0x01d3, 0x01f3, 0x0213, 0x0233, 0x0253,
1915      0x0273, 0x0293, 0x02b3, 0x02d3, 0x02f3, 0x0313, 0x0333, 0x0353, 0x0373,
1916      0x0393, 0x03b3, 0x03d3, 0x03f3, 0x0413, 0x0433, 0x09b3, 0x09d3, 0x09f3,
1917      0x0a13, 0x0a33, 0x0a53, 0x0a73, 0x0a93, 0x0ab3, 0x0ad3, 0x0af3, 0x0b13,
1918      0x0b33, 0x0b53, 0x0b73, 0x0b93, 0x0bb3, 0x0bd3, 0x0bf3, 0x0c13, 0x0c33,
1919      0x0c53, 0x0c73, 0x0c93, 0x0cb3, 0x0cd3, 0x0cf3, 0x0d13, 0x0d33, 0x0d53,
1920      0x0d73, 0x0d93, 0x0db3, 0x0dd3, 0x0df3, 0x0e13, 0x0e33, 0x0e53, 0x0e73,
1921      0x0e93, 0x0eb3, 0x0ed3, 0x0ef3, 0x0f13},
1922     // WORD16 ixheaacd_f_huffman_env_1_5db_inp_table[122];
1923     {0x0014, 0x0782, 0x0762, 0x07a3, 0x0743, 0x0724, 0x07c4, 0x0705, 0x07e5,
1924      0x06e6, 0x0806, 0x06c7, 0x0828, 0x06a8, 0x0848, 0x0689, 0x0869, 0x0669,
1925      0x088a, 0x064a, 0x08ab, 0x062b, 0x08cb, 0x08eb, 0x060c, 0x090c, 0x05ec,
1926      0x092c, 0x094d, 0x05cd, 0x05ad, 0x096d, 0x098e, 0x09ae, 0x058e, 0x056f,
1927      0x054f, 0x0530, 0x09d0, 0x09f0, 0x0510, 0x04f0, 0x0a11, 0x0a31, 0x0491,
1928      0x04b1, 0x04d1, 0x0451, 0x0412, 0x0a52, 0x0a72, 0x0ab2, 0x0272, 0x0472,
1929      0x0ad2, 0x0af2, 0x03d2, 0x0432, 0x0a92, 0x0b12, 0x0d12, 0x0133, 0x01d3,
1930      0x0213, 0x0233, 0x02f3, 0x0373, 0x03b3, 0x03f3, 0x0b53, 0x0c33, 0x0cd3,
1931      0x0d73, 0x0d93, 0x0013, 0x0033, 0x0054, 0x0074, 0x0094, 0x00b4, 0x00d4,
1932      0x00f4, 0x0114, 0x0154, 0x0174, 0x0194, 0x01b4, 0x01f4, 0x0254, 0x0294,
1933      0x02b4, 0x02d4, 0x0314, 0x0334, 0x0354, 0x0394, 0x0b34, 0x0b74, 0x0b94,
1934      0x0bb4, 0x0bd4, 0x0bf4, 0x0c14, 0x0c54, 0x0c74, 0x0c94, 0x0cb4, 0x0cf4,
1935      0x0d34, 0x0d54, 0x0db4, 0x0dd4, 0x0df4, 0x0e14, 0x0e34, 0x0e54, 0x0e74,
1936      0x0e94, 0x0eb4, 0x0ed4, 0x0ef4, 0x0f14},
1937     // WORD16 ixheaacd_t_huffman_env_3_0db_inp_table[64];
1938     {0x0013, 0x03e1, 0x03c2, 0x0403, 0x03a4, 0x0425, 0x0386, 0x0447,
1939      0x0368, 0x0469, 0x034b, 0x048b, 0x032c, 0x030d, 0x04ad, 0x02ee,
1940      0x04ce, 0x02ce, 0x02ae, 0x04ee, 0x050f, 0x0530, 0x0250, 0x0290,
1941      0x0270, 0x0231, 0x0551, 0x0572, 0x0012, 0x0032, 0x0053, 0x0073,
1942      0x0093, 0x00b3, 0x00d3, 0x00f3, 0x0113, 0x0133, 0x0153, 0x0173,
1943      0x0193, 0x01b3, 0x01d3, 0x01f3, 0x0213, 0x0593, 0x05b3, 0x05d3,
1944      0x05f3, 0x0613, 0x0633, 0x0653, 0x0673, 0x0693, 0x06b3, 0x06d3,
1945      0x06f3, 0x0713, 0x0733, 0x0753, 0x0773, 0x0793, 0x07b3, 0x07d3},
1946     // WORD16 ixheaacd_f_huffman_env_3_0db_inp_table[64];
1947     {0x0014, 0x03e1, 0x03c2, 0x0403, 0x03a4, 0x0425, 0x0386, 0x0448,
1948      0x0368, 0x0469, 0x0349, 0x048a, 0x032a, 0x04ab, 0x030b, 0x04cc,
1949      0x02ec, 0x04ed, 0x050e, 0x02ce, 0x02af, 0x052f, 0x054f, 0x0290,
1950      0x0270, 0x0570, 0x0590, 0x0251, 0x0211, 0x05b1, 0x05d1, 0x0232,
1951      0x0632, 0x01b2, 0x00f2, 0x0192, 0x05f2, 0x0612, 0x0133, 0x0153,
1952      0x01f3, 0x0673, 0x0693, 0x06b3, 0x0713, 0x0113, 0x0173, 0x06f3,
1953      0x0014, 0x0034, 0x0054, 0x0074, 0x0094, 0x00b4, 0x00d4, 0x01d4,
1954      0x0654, 0x06d4, 0x0734, 0x0754, 0x0774, 0x0794, 0x07b4, 0x07d4},
1955     // WORD32 ixheaacd_t_huffman_env_bal_1_5db_idx_table[20];
1956     {0x00000000, 0x00100002, 0x00200006, 0x0030000e, 0x0040001e,
1957      0x0050003e, 0x0060007e, 0x007000fe, 0x008001fe, 0x00a007fd,
1958      0x00c00ffd, 0x10d07ff0, 0x0230fff7, 0x2260fffa, 0x02c1fffb,
1959      0x02e1fffd, 0x02f1fffe, 0x0301ffff, 0x01b0ffef, 0x0281fff7},
1960     // WORD32 ixheaacd_f_huffman_env_bal_1_5db_idx_table[23];
1961     {0x00000000, 0x00100002, 0x00200006, 0x0030000e, 0x0040001e, 0x0050003e,
1962      0x0060007e, 0x007000fe, 0x008001fe, 0x00a007fd, 0x00b007fe, 0x00c00ffe,
1963      0x10d03ffc, 0x2111fff0, 0x0273fff7, 0x02b3fffb, 0x02d3fffd, 0x02e3fffe,
1964      0x02f7fffe, 0x0307ffff, 0x20e07ffa, 0x01f3ffef, 0x0100fff7},
1965     // WORD32 ixheaacd_t_huffman_env_bal_3_0db_idx_table[16];
1966     {0x00000000, 0x00100002, 0x00200006, 0x0030000e, 0x0040001e, 0x0050003e,
1967      0x0060007e, 0x007000fe, 0x008001fe, 0x10900ff8, 0x01301ffb, 0x01501ffd,
1968      0x01601ffe, 0x01703ffe, 0x01803fff, 0x00f01ff7},
1969     // WORD32 ixheaacd_f_huffman_env_bal_3_0db_idx_table[17];
1970     {0x00000000, 0x00100002, 0x00200006, 0x0030000e, 0x0040001e, 0x0050003e,
1971      0x0060007e, 0x007000fe, 0x008001fe, 0x109007fc, 0x01001ffb, 0x01403ffb,
1972      0x01603ffd, 0x01703ffe, 0x01803fff, 0x10a00ffa, 0x00c01ff7},
1973     // WORD32 ixheaacd_t_huffman_noise_3_0db_idx_table[17];
1974     {0x00000000, 0x00100002, 0x00200006, 0x0030000e, 0x0040001e, 0x0050003e,
1975      0x007000fd, 0x108003f8, 0x02d01fef, 0x03501ff7, 0x03901ffb, 0x03b01ffd,
1976      0x03c01ffe, 0x03d03ffe, 0x03e03fff, 0x109007f2, 0x01d01fdf},
1977     // WORD32 ixheaacd_t_huffman_noise_bal_3_0db_idx_table[11];
1978     {0x00000000, 0x00100002, 0x00200006, 0x1030001c, 0x010000f7, 0x014000fb,
1979      0x016000fd, 0x017000fe, 0x018000ff, 0x1040003a, 0x008000ef},
1980     // WORD32 ixheaacd_t_huffman_env_1_5db_idx_table[27];
1981     {0x00100001, 0x00300005, 0x0050000d, 0x0070001d, 0x0090003d, 0x00b0007d,
1982      0x00d000fd, 0x00f001fd, 0x011003fd, 0x112007fc, 0x21701ffa, 0x31b03ff9,
1983      0x4240fff2, 0x0587ffdf, 0x0687ffef, 0x0707fff7, 0x0747fffb, 0x0767fffd,
1984      0x0777fffe, 0x0787ffff, 0x01400ffb, 0x01903ff7, 0x21d07ff5, 0x2281ffe9,
1985      0x0210ffef, 0x1303ffdb, 0x0387ffbf},
1986     // WORD32 ixheaacd_f_huffman_env_1_5db_idx_table[28];
1987     {0x00100001, 0x00300005, 0x0050000d, 0x0070001d, 0x0090003d, 0x10a0007c,
1988      0x20d000fc, 0x310001fc, 0x016007fb, 0x01a00ffb, 0x01e01ffb, 0x42103ffa,
1989      0x5280fff4, 0x63b3ffec, 0x74a7ffe8, 0x068fffef, 0x070ffff7, 0x074ffffb,
1990      0x076ffffd, 0x077ffffe, 0x078fffff, 0x00c000fb, 0x00f001fb, 0x012003fb,
1991      0x02307ff7, 0x02e1ffef, 0x0417ffdf, 0x058fffdf},
1992     // WORD32 ixheaacd_t_huffman_env_3_0db_idx_table[26];
1993     {0x00000000, 0x00100002, 0x00200006, 0x0030000e, 0x0040001e, 0x0050003e,
1994      0x0060007e, 0x007000fe, 0x008001fe, 0x00a007fd, 0x10b00ffc, 0x01103ffb,
1995      0x21203ffc, 0x3170fff9, 0x02e7ffef, 0x0367fff7, 0x03a7fffb, 0x03c7fffd,
1996      0x03d7fffe, 0x03e7ffff, 0x00d01ffb, 0x21307ffa, 0x2191fff5, 0x0150fff7,
1997      0x11c3ffee, 0x01e7ffdf},
1998     // WORD32 ixheaacd_f_huffman_env_3_0db_idx_table[25];
1999     {0x00000000, 0x00100002, 0x00200006, 0x0030000e, 0x0040001e,
2000      0x0050003e, 0x007000fd, 0x009001fd, 0x00b003fd, 0x00d007fd,
2001      0x00f00ffd, 0x11001ffc, 0x21507ffa, 0x3190fff9, 0x4243fff6,
2002      0x02e7fff7, 0x036ffff7, 0x03affffb, 0x03cffffd, 0x03dffffe,
2003      0x03efffff, 0x01203ffb, 0x0170fff7, 0x01d1fff7, 0x0267ffef},
2004 
2005     // const WORD8 start_min[12] =
2006     {7, 7, 10, 11, 12, 16, 16, 17, 24, 32, 35, 48},
2007 
2008     // const WORD8 offset_idx[12] =
2009     {5, 5, 4, 4, 4, 3, 2, 1, 0, 6, 6, 6},
2010 
2011     // const WORD8 ixheaacd_drc_offset[7][16] =
2012     {{-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7},
2013      {-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13},
2014      {-5, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16},
2015      {-6, -4, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16},
2016      {-4, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20},
2017      {-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20, 24},
2018      {0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 20, 24, 28, 33}},
2019 
2020     // const WORD8 stop_min[12] =
2021     {13, 15, 20, 21, 23, 32, 32, 35, 48, 64, 70, 96},
2022 
2023     // const WORD8 stop_off[12][14] =
2024     {{0, 2, 4, 6, 8, 11, 14, 18, 22, 26, 31, 37, 44, 51},
2025      {0, 2, 4, 6, 8, 11, 14, 18, 22, 26, 31, 36, 42, 49},
2026      {0, 2, 4, 6, 8, 11, 14, 17, 21, 25, 29, 34, 39, 44},
2027      {0, 2, 4, 6, 8, 11, 14, 17, 20, 24, 28, 33, 38, 43},
2028      {0, 2, 4, 6, 8, 11, 14, 17, 20, 24, 28, 32, 36, 41},
2029      {0, 2, 4, 6, 8, 10, 12, 14, 17, 20, 23, 26, 29, 32},
2030      {0, 2, 4, 6, 8, 10, 12, 14, 17, 20, 23, 26, 29, 32},
2031      {0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 20, 23, 26, 29},
2032      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16},
2033      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2034      {0, -1, -2, -3, -4, -5, -6, -6, -6, -6, -6, -6, -6, -6},
2035      {0, -3, -6, -9, -12, -15, -18, -20, -22, -24, -26, -28, -30, -32}}
2036 
2037 };
2038 
2039 const ia_ps_tables_struct ixheaacd_aac_dec_ps_tables = {
2040     {
2041         // const WORD16 decay_scale_factor[70]=
2042 
2043         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2044         0x5361, 0x4848, 0x3ea8, 0x4f36, 0x44ab, 0x3b86, 0x4b0b, 0x410e, 0x3864,
2045         0x46e0, 0x3d71, 0x3542, 0x42b5, 0x39d4, 0x3221, 0x3e8a, 0x3637, 0x2eff,
2046         0x3a5f, 0x329a, 0x2bdd, 0x3634, 0x2efd, 0x28bb, 0x3209, 0x2b60, 0x2599,
2047         0x2ddd, 0x27c3, 0x2277, 0x29b2, 0x2426, 0x1f55, 0x2587, 0x2089, 0x1c34,
2048         0x215c, 0x1cec, 0x1912, 0x1d31, 0x194f, 0x15f0, 0x1906, 0x15b2, 0x12ce,
2049         0x14db, 0x1215, 0x0fac, 0x10b0, 0x0e78, 0x0c8a, 0x0c85, 0x0adb, 0x0968,
2050         0x085a, 0x073e, 0x0647, 0x042f, 0x03a0, 0x0325, 0x0000, 0x0000, 0x0000,
2051     }
2052 
2053     ,
2054     // const WORD16 hyb_resol[3] =
2055     {8, 2, 2},
2056 
2057     // const WORD16 rev_link_decay_ser[NO_SERIAL_ALLPASS_LINKS]=
2058     {0x5362, 0x4849, 0x3ea9},
2059 
2060     // const WORD16 rev_link_delay_ser[3] =
2061     {3, 4, 5},
2062 
2063     // const WORD16 borders_group[NO_IID_GROUPS + 1] =
2064     {4, 5, 0, 1, 2, 3, 7, 6, 8, 9, 3, 4, 5, 6, 7, 8, 9, 11, 14, 18, 23, 35, 64},
2065 
2066     // const WORD16 group_shift[6] =
2067     {0, 1, 1, 2, 3, 4},
2068 
2069     // const WORD16 group_to_bin[NO_IID_GROUPS] =
2070     {0, 1,  2,  3,  1,  0,  5,  4,  6,  7,  8,
2071      9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19},
2072 
2073     // const WORD16 hybrid_to_bin[SUBQMF_GROUPS] =
2074     {0, 1, 2, 3, 1, 0, 5, 4, 6, 7},
2075 
2076     // const WORD16 delay_to_bin[32] =
2077     {20, 20, 20, 8,  9,  10, 11, 12, 13, 14, 14, 15, 15, 15, 16, 16, 16,
2078      16, 17, 17, 17, 17, 17, 20, 20, 20, 20, 20, 20, 20, 20, 20
2079 
2080     },
2081 
2082     // const WORD16 frac_delay_phase_fac_qmf_re_im[24*2]=
2083     {
2084         0,
2085         0,
2086         0,
2087         0,
2088         0,
2089         0,
2090         (WORD16)-0x34ac,
2091         (WORD16)0x74a9,
2092         (WORD16)0x5bec,
2093         (WORD16)0x5914,
2094         (WORD16)0x72f3,
2095         (WORD16)-0x3850,
2096         (WORD16)-0x0e0c,
2097         (WORD16)-0x7f3a,
2098         (WORD16)-0x7c77,
2099         (WORD16)-0x1de2,
2100         (WORD16)-0x4646,
2101         (WORD16)0x6afc,
2102         (WORD16)0x4cdb,
2103         (WORD16)0x665c,
2104         (WORD16)0x7a57,
2105         (WORD16)-0x25a3,
2106         (WORD16)0x0608,
2107         (WORD16)-0x7fdc,
2108         (WORD16)-0x7642,
2109         (WORD16)-0x30fc,
2110         (WORD16)-0x5625,
2111         (WORD16)0x5eac,
2112         (WORD16)0x3be5,
2113         (WORD16)0x711f,
2114         (WORD16)0x7eb9,
2115         (WORD16)-0x1209,
2116         (WORD16)0x19f5,
2117         (WORD16)-0x7d57,
2118         (WORD16)-0x6d23,
2119         (WORD16)-0x42e1,
2120         (WORD16)-0x63e5,
2121         (WORD16)0x5008,
2122         (WORD16)0x2976,
2123         (WORD16)0x7919,
2124         (WORD16)0x7ffc,
2125         (WORD16)0x0203,
2126         (WORD16)0x2d3f,
2127         (WORD16)-0x77bd,
2128         (WORD16)-0x6155,
2129         (WORD16)-0x5321,
2130     },
2131 
2132     // const WORD16 frac_delay_phase_fac_qmf_sub_re_im[16*2]=
2133     {
2134         (WORD16)0x7e80,  (WORD16)-0x1387, (WORD16)0x72ba,  (WORD16)-0x38c3,
2135         (WORD16)0x5c45,  (WORD16)-0x58b7, (WORD16)0x3d39,  (WORD16)-0x7069,
2136         (WORD16)0x72ba,  (WORD16)0x38c3,  (WORD16)0x7e80,  (WORD16)0x1387,
2137         (WORD16)-0x456f, (WORD16)-0x6b88, (WORD16)0x0506,  (WORD16)-0x7fe7,
2138         (WORD16)-0x76a3, (WORD16)-0x300e, (WORD16)-0x7cb2, (WORD16)0x1ce7,
2139     },
2140 
2141     // const WORD16 frac_delay_phase_fac_qmf_ser_re_im[3][32]=
2142     {
2143         // const WORD16
2144         {
2145             0,
2146             0,
2147             0,
2148             0,
2149             0,
2150             0,
2151             (WORD16)0x0203,
2152             (WORD16)0x7ffc,
2153             (WORD16)0x7d57,
2154             (WORD16)0x19f5,
2155             (WORD16)0x34ac,
2156             (WORD16)-0x74a9,
2157             (WORD16)-0x665c,
2158             (WORD16)-0x4cdb,
2159             (WORD16)-0x6155,
2160             (WORD16)0x5321,
2161             (WORD16)0x3be5,
2162             (WORD16)0x711f,
2163             (WORD16)0x7b77,
2164             (WORD16)-0x21c7,
2165             (WORD16)-0x0608,
2166             (WORD16)-0x7fdc,
2167             (WORD16)-0x7e18,
2168             (WORD16)-0x1602,
2169             (WORD16)-0x30fc,
2170             (WORD16)0x7642,
2171             (WORD16)0x68b9,
2172             (WORD16)0x499a,
2173             (WORD16)0x5eac,
2174             (WORD16)-0x5625,
2175             (WORD16)-0x3f6b,
2176             (WORD16)-0x6f2f,
2177             (WORD16)-0x7a57,
2178             (WORD16)0x25a3,
2179             (WORD16)0x0a0b,
2180             (WORD16)0x7f9b,
2181             (WORD16)0x7eb9,
2182             (WORD16)0x1209,
2183             (WORD16)0x2d3f,
2184             (WORD16)-0x77bd,
2185             (WORD16)-0x6afc,
2186             (WORD16)-0x4646,
2187             (WORD16)-0x5bec,
2188             (WORD16)0x5914,
2189             (WORD16)0x42e1,
2190             (WORD16)0x6d23,
2191         },
2192 
2193         // const WORD16
2194         {
2195             0,
2196             0,
2197             0,
2198             0,
2199             0,
2200             0,
2201             (WORD16)-0x30fc,
2202             (WORD16)-0x7642,
2203             (WORD16)-0x30fc,
2204             (WORD16)0x7642,
2205             (WORD16)0x7642,
2206             (WORD16)-0x30fc,
2207             (WORD16)-0x7642,
2208             (WORD16)-0x30fc,
2209             (WORD16)0x30fc,
2210             (WORD16)0x7642,
2211             (WORD16)0x30fc,
2212             (WORD16)-0x7642,
2213             (WORD16)-0x7642,
2214             (WORD16)0x30fc,
2215             (WORD16)0x7642,
2216             (WORD16)0x30fc,
2217             (WORD16)-0x30fc,
2218             (WORD16)-0x7642,
2219             (WORD16)-0x30fc,
2220             (WORD16)0x7642,
2221             (WORD16)0x7642,
2222             (WORD16)-0x30fc,
2223             (WORD16)-0x7642,
2224             (WORD16)-0x30fc,
2225             (WORD16)0x30fc,
2226             (WORD16)0x7642,
2227             (WORD16)0x30fc,
2228             (WORD16)-0x7642,
2229             (WORD16)-0x7642,
2230             (WORD16)0x30fc,
2231             (WORD16)0x7642,
2232             (WORD16)0x30fc,
2233             (WORD16)-0x30fc,
2234             (WORD16)-0x7642,
2235             (WORD16)-0x30fc,
2236             (WORD16)0x7642,
2237             (WORD16)0x7642,
2238             (WORD16)-0x30fc,
2239             (WORD16)-0x7642,
2240             (WORD16)-0x30fc,
2241         },
2242 
2243         // const WORD16
2244         {
2245             0,
2246             0,
2247             0,
2248             0,
2249             0,
2250             0,
2251             (WORD16)-0x6405,
2252             (WORD16)0x4fe0,
2253             (WORD16)0x1894,
2254             (WORD16)0x7d9e,
2255             (WORD16)0x7abf,
2256             (WORD16)0x244a,
2257             (WORD16)0x58ef,
2258             (WORD16)-0x5c0f,
2259             (WORD16)-0x2882,
2260             (WORD16)-0x796c,
2261             (WORD16)-0x7e64,
2262             (WORD16)-0x1439,
2263             (WORD16)-0x4c5f,
2264             (WORD16)0x66b8,
2265             (WORD16)0x37c5,
2266             (WORD16)0x7336,
2267             (WORD16)0x7ff1,
2268             (WORD16)0x03d2,
2269             (WORD16)0x3e8b,
2270             (WORD16)-0x6fae,
2271             (WORD16)-0x461b,
2272             (WORD16)-0x6b18,
2273             (WORD16)-0x7f60,
2274             (WORD16)0x0ca5,
2275             (WORD16)-0x2fae,
2276             (WORD16)0x76ca,
2277             (WORD16)0x5348,
2278             (WORD16)0x6134,
2279             (WORD16)0x7cb2,
2280             (WORD16)-0x1ce7,
2281             (WORD16)0x2007,
2282             (WORD16)-0x7bee,
2283             (WORD16)-0x5f14,
2284             (WORD16)-0x55b3,
2285             (WORD16)-0x77f3,
2286             (WORD16)0x2cae,
2287             (WORD16)-0x0fd8,
2288             (WORD16)0x7f04,
2289             (WORD16)0x694c,
2290             (WORD16)0x48c7,
2291         },
2292 
2293     },
2294     // const WORD16 frac_delay_phase_fac_qmf_sub_ser_re_im[3][16]=
2295     {
2296         {
2297             (WORD16)0x7e2e,  (WORD16)-0x1583, (WORD16)0x6fed,  (WORD16)-0x3e1b,
2298             (WORD16)0x5506,  (WORD16)-0x5fae, (WORD16)0x3085,  (WORD16)-0x7673,
2299             (WORD16)0x6fed,  (WORD16)0x3e1b,  (WORD16)0x7e2e,  (WORD16)0x1583,
2300             (WORD16)-0x5b38, (WORD16)-0x59cc, (WORD16)-0x0f0b, (WORD16)-0x7f1d,
2301             (WORD16)-0x7f55, (WORD16)-0x0d0c, (WORD16)-0x6b88, (WORD16)0x456f,
2302         },
2303         {
2304             (WORD16)0x7a7d,  (WORD16)-0x2528, (WORD16)0x5134,  (WORD16)-0x62f2,
2305             (WORD16)0x0c8c,  (WORD16)-0x7f62, (WORD16)-0x3c57, (WORD16)-0x70e3,
2306             (WORD16)0x5134,  (WORD16)0x62f2,  (WORD16)0x7a7d,  (WORD16)0x2528,
2307             (WORD16)-0x471d, (WORD16)0x6a6e,  (WORD16)-0x7d8a, (WORD16)-0x18f9,
2308             (WORD16)0x471d,  (WORD16)0x6a6e,  (WORD16)0x7d8a,  (WORD16)-0x18f9,
2309         },
2310         {
2311             (WORD16)0x7ed0,  (WORD16)-0x1163, (WORD16)0x7574,  (WORD16)-0x32e2,
2312             (WORD16)0x636c,  (WORD16)-0x509e, (WORD16)0x4a0d,  (WORD16)-0x6867,
2313             (WORD16)0x7574,  (WORD16)0x32e2,  (WORD16)0x7ed0,  (WORD16)0x1163,
2314             (WORD16)-0x2a51, (WORD16)-0x78ce, (WORD16)0x1a73,  (WORD16)-0x7d3d,
2315             (WORD16)-0x62d1, (WORD16)-0x515c, (WORD16)-0x7eae, (WORD16)-0x1255,
2316         },
2317 
2318     },
2319     // const WORD16 scale_factors[NO_IID_LEVELS]=
2320     {(WORD16)0x5a5e, (WORD16)0x59cd, (WORD16)0x58c3, (WORD16)0x564c,
2321      (WORD16)0x52a4, (WORD16)0x4c8c, (WORD16)0x46df, (WORD16)0x4000,
2322      (WORD16)0x384c, (WORD16)0x304c, (WORD16)0x24ea, (WORD16)0x1b4a,
2323      (WORD16)0x11b6, (WORD16)0x0b4e, (WORD16)0x0515},
2324 
2325     // const WORD16 scale_factors_fine[NO_IID_LEVELS_FINE] =
2326     {(WORD16)0x5a82, (WORD16)0x5a82, (WORD16)0x5a81, (WORD16)0x5a7f,
2327      (WORD16)0x5a77, (WORD16)0x5a5e, (WORD16)0x5a3a, (WORD16)0x59f2,
2328      (WORD16)0x5965, (WORD16)0x5853, (WORD16)0x564c, (WORD16)0x5417,
2329      (WORD16)0x50ea, (WORD16)0x4c8c, (WORD16)0x46df, (WORD16)0x4000,
2330      (WORD16)0x384c, (WORD16)0x304c, (WORD16)0x288e, (WORD16)0x217a,
2331      (WORD16)0x1b4a, (WORD16)0x13c6, (WORD16)0x0e2b, (WORD16)0x0a18,
2332      (WORD16)0x072b, (WORD16)0x0515, (WORD16)0x02dc, (WORD16)0x019c,
2333      (WORD16)0x00e8, (WORD16)0x0082, (WORD16)0x0049},
2334 
2335     // const WORD16 alpha_values[NO_ICC_LEVELS]=
2336     {(WORD16)0x0000, (WORD16)0x0b6b, (WORD16)0x1248, (WORD16)0x1da3,
2337      (WORD16)0x2638, (WORD16)0x3244, (WORD16)0x466b, (WORD16)0x6488},
2338 
2339     // const WORD32 p2_6[6] =
2340     {
2341         (WORD32)0x026e, (WORD32)-0x0956, (WORD32)0x272a, (WORD32)0x272a,
2342         (WORD32)-0x0956, (WORD32)0x026e,
2343     },
2344 
2345     // const WORD32 p8_13[13] =
2346     {
2347         (WORD32)-0x00f4, (WORD32)-0x02e8, (WORD32)-0x05d2, (WORD32)-0x094d,
2348         (WORD32)-0x0ca7, (WORD32)0x0f19, (WORD32)0x1000, (WORD32)0x0f19,
2349         (WORD32)0x0ca7, (WORD32)0x094d, (WORD32)0x05d2, (WORD32)0x02e8,
2350         (WORD32)0x00f4,
2351     },
2352 
2353     // const WORD16 huff_iid_dt[28] =
2354     {
2355         (WORD16)-0x3fff, (WORD16)-0x40fe, (WORD16)-0x3efd, (WORD16)-0x41fc,
2356         (WORD16)-0x3dfb, (WORD16)-0x42fa, (WORD16)-0x3cf9, (WORD16)-0x43f8,
2357         (WORD16)-0x3bf7, (WORD16)-0x44f6, (WORD16)-0x3af5, (WORD16)-0x45f4,
2358         (WORD16)-0x39f3, (WORD16)-0x38f2, (WORD16)-0x46f1, (WORD16)0x1011,
2359         (WORD16)-0x3748, (WORD16)0x1215,  (WORD16)0x1314,  (WORD16)-0x364e,
2360         (WORD16)-0x4c4c, (WORD16)0x1619,  (WORD16)0x1718,  (WORD16)-0x4a4a,
2361         (WORD16)-0x4836, (WORD16)0x1a1b,  (WORD16)-0x3434, (WORD16)-0x3232,
2362     },
2363 
2364     // const WORD16 huff_iid_df[28] =
2365     {
2366         (WORD16)-0x3fff, (WORD16)0x0203,  (WORD16)-0x3e41, (WORD16)0x0405,
2367         (WORD16)-0x3d42, (WORD16)0x0607,  (WORD16)-0x3c43, (WORD16)0x0809,
2368         (WORD16)-0x433c, (WORD16)-0x3af6, (WORD16)-0x44f5, (WORD16)-0x39f4,
2369         (WORD16)-0x45f3, (WORD16)-0x46f2, (WORD16)-0x38f1, (WORD16)0x1011,
2370         (WORD16)-0x3748, (WORD16)0x1213,  (WORD16)-0x3636, (WORD16)0x1415,
2371         (WORD16)-0x4835, (WORD16)0x1618,  (WORD16)-0x49e9, (WORD16)-0x4a4e,
2372         (WORD16)0x191a,  (WORD16)-0x4c4c, (WORD16)-0x33e5, (WORD16)-0x3232,
2373     },
2374 
2375     // const WORD16 huff_icc_dt[14] =
2376     {
2377         (WORD16)-0x3fff, (WORD16)-0x3efe, (WORD16)-0x40fd, (WORD16)-0x3dfc,
2378         (WORD16)-0x41fb, (WORD16)-0x3cfa, (WORD16)-0x42f9, (WORD16)-0x3bf8,
2379         (WORD16)-0x43f7, (WORD16)-0x3af6, (WORD16)-0x44f5, (WORD16)-0x39f4,
2380         (WORD16)-0x45f3, (WORD16)-0x4639,
2381     },
2382 
2383     // const WORD16 huff_icc_df[14] =
2384     {
2385         (WORD16)-0x3fff, (WORD16)-0x3efe, (WORD16)-0x40fd, (WORD16)-0x3dfc,
2386         (WORD16)-0x41fb, (WORD16)-0x3cfa, (WORD16)-0x42f9, (WORD16)-0x3bf8,
2387         (WORD16)-0x3af7, (WORD16)-0x43f6, (WORD16)-0x39f5, (WORD16)-0x44f4,
2388         (WORD16)-0x38f3, (WORD16)-0x4547,
2389     },
2390 
2391     // const WORD16 huff_iid_dt_fine[60] =
2392     {
2393         (WORD16)0x01c0,  (WORD16)-0x3efe, (WORD16)0x03bf,  (WORD16)0x043b,
2394         (WORD16)0x0507,  (WORD16)0x06bd,  (WORD16)-0x433c, (WORD16)-0x3cf8,
2395         (WORD16)0x090b,  (WORD16)-0x3af6, (WORD16)-0x453a, (WORD16)0x0c29,
2396         (WORD16)0x0d14,  (WORD16)0x0eb9,  (WORD16)-0x36f1, (WORD16)-0x34f0,
2397         (WORD16)0x11b3,  (WORD16)0x1213,  (WORD16)-0x5454, (WORD16)-0x2d2d,
2398         (WORD16)-0x38eb, (WORD16)0x1628,  (WORD16)0x171d,  (WORD16)-0x32e8,
2399         (WORD16)0x191a,  (WORD16)-0x5252, (WORD16)0x1b1c,  (WORD16)-0x5926,
2400         (WORD16)-0x5b5b, (WORD16)0x1e25,  (WORD16)0x1f22,  (WORD16)0x2021,
2401         (WORD16)-0x2222, (WORD16)-0x2424, (WORD16)0x2324,  (WORD16)-0x5d5d,
2402         (WORD16)-0x5827, (WORD16)0x26b1,  (WORD16)0x27af,  (WORD16)-0x5728,
2403         (WORD16)-0x4936, (WORD16)0x2abb,  (WORD16)0x2b2c,  (WORD16)-0x4738,
2404         (WORD16)0x2d34,  (WORD16)0x2e32,  (WORD16)0x2fb4,  (WORD16)-0x30d0,
2405         (WORD16)-0x2ecf, (WORD16)-0x5629, (WORD16)-0x33cd, (WORD16)-0x4d32,
2406         (WORD16)0x35b7,  (WORD16)0x36b5,  (WORD16)0x3739,  (WORD16)0x38b0,
2407         (WORD16)-0x552a, (WORD16)-0x2fc6, (WORD16)-0x2b2b, (WORD16)-0x413e,
2408     },
2409 
2410     // const WORD16 huff_iid_df_fine[60] =
2411     {
2412         (WORD16)0x01c0,  (WORD16)0x0204,  (WORD16)0x03bf,  (WORD16)-0x413e,
2413         (WORD16)-0x3efb, (WORD16)0x0607,  (WORD16)-0x423d, (WORD16)0x0809,
2414         (WORD16)-0x433c, (WORD16)0x0a0b,  (WORD16)-0x443b, (WORD16)0x0c0d,
2415         (WORD16)-0x453a, (WORD16)0x0e12,  (WORD16)-0x38f1, (WORD16)0x10b8,
2416         (WORD16)-0x35ef, (WORD16)-0x4a35, (WORD16)0x1325,  (WORD16)-0x37ec,
2417         (WORD16)0x15b7,  (WORD16)0x161d,  (WORD16)0x17b4,  (WORD16)0x18b2,
2418         (WORD16)0x191c,  (WORD16)0x1a1b,  (WORD16)-0x542b, (WORD16)-0x522d,
2419         (WORD16)-0x502f, (WORD16)-0x33e2, (WORD16)-0x31e1, (WORD16)0x20b1,
2420         (WORD16)0x2122,  (WORD16)-0x512e, (WORD16)0x2324,  (WORD16)-0x5959,
2421         (WORD16)-0x5b5b, (WORD16)0x26b9,  (WORD16)-0x36d9, (WORD16)0x28b6,
2422         (WORD16)0x2932,  (WORD16)0x2ab3,  (WORD16)-0x30d5, (WORD16)0x2c2f,
2423         (WORD16)0x2d2e,  (WORD16)-0x552a, (WORD16)-0x5757, (WORD16)0x3031,
2424         (WORD16)-0x2626, (WORD16)-0x2828, (WORD16)-0x32cd, (WORD16)0x343b,
2425         (WORD16)0x3538,  (WORD16)0x3637,  (WORD16)-0x2222, (WORD16)-0x2424,
2426         (WORD16)0x393a,  (WORD16)-0x5d5d, (WORD16)-0x532c, (WORD16)-0x4f30,
2427     },
2428     0};
2429