Line data Source code
1 : /******************************************************************************************************
2 :
3 : (C) 2022-2025 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB,
4 : Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD.,
5 : Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange,
6 : Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other
7 : contributors to this repository. All Rights Reserved.
8 :
9 : This software is protected by copyright law and by international treaties.
10 : The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB,
11 : Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD.,
12 : Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange,
13 : Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other
14 : contributors to this repository retain full ownership rights in their respective contributions in
15 : the software. This notice grants no license of any kind, including but not limited to patent
16 : license, nor is any license granted by implication, estoppel or otherwise.
17 :
18 : Contributors are required to enter into the IVAS codec Public Collaboration agreement before making
19 : contributions.
20 :
21 : This software is provided "AS IS", without any express or implied warranties. The software is in the
22 : development stage. It is intended exclusively for experts who have experience with such software and
23 : solely for the purpose of inspection. All implied warranties of non-infringement, merchantability
24 : and fitness for a particular purpose are hereby disclaimed and excluded.
25 :
26 : Any dispute, controversy or claim arising under or in relation to providing this software shall be
27 : submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in
28 : accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and
29 : the United Nations Convention on Contracts on the International Sales of Goods.
30 :
31 : *******************************************************************************************************/
32 :
33 : #include "rom_basop_util.h"
34 : #include "stl.h"
35 : #include <assert.h>
36 : #include <stdlib.h>
37 : #include "options.h"
38 :
39 : #define STC( x ) WORD322WORD16( x )
40 :
41 : #define STCP( a, b ) \
42 : { \
43 : { \
44 : STC( a ), STC( b ) \
45 : } \
46 : }
47 :
48 : const PWord16 SineTable512[] = {
49 : // Q15
50 : STCP( 0x7fffffff, 0x00000000 ),
51 : STCP( 0x7fffd886, 0x006487e3 ),
52 : STCP( 0x7fff6216, 0x00c90f88 ),
53 : STCP( 0x7ffe9cb2, 0x012d96b1 ),
54 : STCP( 0x7ffd885a, 0x01921d20 ),
55 : STCP( 0x7ffc250f, 0x01f6a297 ),
56 : STCP( 0x7ffa72d1, 0x025b26d7 ),
57 : STCP( 0x7ff871a2, 0x02bfa9a4 ),
58 : STCP( 0x7ff62182, 0x03242abf ),
59 : STCP( 0x7ff38274, 0x0388a9ea ),
60 : STCP( 0x7ff09478, 0x03ed26e6 ),
61 : STCP( 0x7fed5791, 0x0451a177 ),
62 : STCP( 0x7fe9cbc0, 0x04b6195d ),
63 : STCP( 0x7fe5f108, 0x051a8e5c ),
64 : STCP( 0x7fe1c76b, 0x057f0035 ),
65 : STCP( 0x7fdd4eec, 0x05e36ea9 ),
66 : STCP( 0x7fd8878e, 0x0647d97c ),
67 : STCP( 0x7fd37153, 0x06ac406f ),
68 : STCP( 0x7fce0c3e, 0x0710a345 ),
69 : STCP( 0x7fc85854, 0x077501be ),
70 : STCP( 0x7fc25596, 0x07d95b9e ),
71 : STCP( 0x7fbc040a, 0x083db0a7 ),
72 : STCP( 0x7fb563b3, 0x08a2009a ),
73 : STCP( 0x7fae7495, 0x09064b3a ),
74 : STCP( 0x7fa736b4, 0x096a9049 ),
75 : STCP( 0x7f9faa15, 0x09cecf89 ),
76 : STCP( 0x7f97cebd, 0x0a3308bd ),
77 : STCP( 0x7f8fa4b0, 0x0a973ba5 ),
78 : STCP( 0x7f872bf3, 0x0afb6805 ),
79 : STCP( 0x7f7e648c, 0x0b5f8d9f ),
80 : STCP( 0x7f754e80, 0x0bc3ac35 ),
81 : STCP( 0x7f6be9d4, 0x0c27c389 ),
82 : STCP( 0x7f62368f, 0x0c8bd35e ),
83 : STCP( 0x7f5834b7, 0x0cefdb76 ),
84 : STCP( 0x7f4de451, 0x0d53db92 ),
85 : STCP( 0x7f434563, 0x0db7d376 ),
86 : STCP( 0x7f3857f6, 0x0e1bc2e4 ),
87 : STCP( 0x7f2d1c0e, 0x0e7fa99e ),
88 : STCP( 0x7f2191b4, 0x0ee38766 ),
89 : STCP( 0x7f15b8ee, 0x0f475bff ),
90 : STCP( 0x7f0991c4, 0x0fab272b ),
91 : STCP( 0x7efd1c3c, 0x100ee8ad ),
92 : STCP( 0x7ef05860, 0x1072a048 ),
93 : STCP( 0x7ee34636, 0x10d64dbd ),
94 : STCP( 0x7ed5e5c6, 0x1139f0cf ),
95 : STCP( 0x7ec8371a, 0x119d8941 ),
96 : STCP( 0x7eba3a39, 0x120116d5 ),
97 : STCP( 0x7eabef2c, 0x1264994e ),
98 : STCP( 0x7e9d55fc, 0x12c8106f ),
99 : STCP( 0x7e8e6eb2, 0x132b7bf9 ),
100 : STCP( 0x7e7f3957, 0x138edbb1 ),
101 : STCP( 0x7e6fb5f4, 0x13f22f58 ),
102 : STCP( 0x7e5fe493, 0x145576b1 ),
103 : STCP( 0x7e4fc53e, 0x14b8b17f ),
104 : STCP( 0x7e3f57ff, 0x151bdf86 ),
105 : STCP( 0x7e2e9cdf, 0x157f0086 ),
106 : STCP( 0x7e1d93ea, 0x15e21445 ),
107 : STCP( 0x7e0c3d29, 0x16451a83 ),
108 : STCP( 0x7dfa98a8, 0x16a81305 ),
109 : STCP( 0x7de8a670, 0x170afd8d ),
110 : STCP( 0x7dd6668f, 0x176dd9de ),
111 : STCP( 0x7dc3d90d, 0x17d0a7bc ),
112 : STCP( 0x7db0fdf8, 0x183366e9 ),
113 : STCP( 0x7d9dd55a, 0x18961728 ),
114 : STCP( 0x7d8a5f40, 0x18f8b83c ),
115 : STCP( 0x7d769bb5, 0x195b49ea ),
116 : STCP( 0x7d628ac6, 0x19bdcbf3 ),
117 : STCP( 0x7d4e2c7f, 0x1a203e1b ),
118 : STCP( 0x7d3980ec, 0x1a82a026 ),
119 : STCP( 0x7d24881b, 0x1ae4f1d6 ),
120 : STCP( 0x7d0f4218, 0x1b4732ef ),
121 : STCP( 0x7cf9aef0, 0x1ba96335 ),
122 : STCP( 0x7ce3ceb2, 0x1c0b826a ),
123 : STCP( 0x7ccda169, 0x1c6d9053 ),
124 : STCP( 0x7cb72724, 0x1ccf8cb3 ),
125 : STCP( 0x7ca05ff1, 0x1d31774d ),
126 : STCP( 0x7c894bde, 0x1d934fe5 ),
127 : STCP( 0x7c71eaf9, 0x1df5163f ),
128 : STCP( 0x7c5a3d50, 0x1e56ca1e ),
129 : STCP( 0x7c4242f2, 0x1eb86b46 ),
130 : STCP( 0x7c29fbee, 0x1f19f97b ),
131 : STCP( 0x7c116853, 0x1f7b7481 ),
132 : STCP( 0x7bf88830, 0x1fdcdc1b ),
133 : STCP( 0x7bdf5b94, 0x203e300d ),
134 : STCP( 0x7bc5e290, 0x209f701c ),
135 : STCP( 0x7bac1d31, 0x21009c0c ),
136 : STCP( 0x7b920b89, 0x2161b3a0 ),
137 : STCP( 0x7b77ada8, 0x21c2b69c ),
138 : STCP( 0x7b5d039e, 0x2223a4c5 ),
139 : STCP( 0x7b420d7a, 0x22847de0 ),
140 : STCP( 0x7b26cb4f, 0x22e541af ),
141 : STCP( 0x7b0b3d2c, 0x2345eff8 ),
142 : STCP( 0x7aef6323, 0x23a6887f ),
143 : STCP( 0x7ad33d45, 0x24070b08 ),
144 : STCP( 0x7ab6cba4, 0x24677758 ),
145 : STCP( 0x7a9a0e50, 0x24c7cd33 ),
146 : STCP( 0x7a7d055b, 0x25280c5e ),
147 : STCP( 0x7a5fb0d8, 0x2588349d ),
148 : STCP( 0x7a4210d8, 0x25e845b6 ),
149 : STCP( 0x7a24256f, 0x26483f6c ),
150 : STCP( 0x7a05eead, 0x26a82186 ),
151 : STCP( 0x79e76ca7, 0x2707ebc7 ),
152 : STCP( 0x79c89f6e, 0x27679df4 ),
153 : STCP( 0x79a98715, 0x27c737d3 ),
154 : STCP( 0x798a23b1, 0x2826b928 ),
155 : STCP( 0x796a7554, 0x288621b9 ),
156 : STCP( 0x794a7c12, 0x28e5714b ),
157 : STCP( 0x792a37fe, 0x2944a7a2 ),
158 : STCP( 0x7909a92d, 0x29a3c485 ),
159 : STCP( 0x78e8cfb2, 0x2a02c7b8 ),
160 : STCP( 0x78c7aba2, 0x2a61b101 ),
161 : STCP( 0x78a63d11, 0x2ac08026 ),
162 : STCP( 0x78848414, 0x2b1f34eb ),
163 : STCP( 0x786280bf, 0x2b7dcf17 ),
164 : STCP( 0x78403329, 0x2bdc4e6f ),
165 : STCP( 0x781d9b65, 0x2c3ab2b9 ),
166 : STCP( 0x77fab989, 0x2c98fbba ),
167 : STCP( 0x77d78daa, 0x2cf72939 ),
168 : STCP( 0x77b417df, 0x2d553afc ),
169 : STCP( 0x7790583e, 0x2db330c7 ),
170 : STCP( 0x776c4edb, 0x2e110a62 ),
171 : STCP( 0x7747fbce, 0x2e6ec792 ),
172 : STCP( 0x77235f2d, 0x2ecc681e ),
173 : STCP( 0x76fe790e, 0x2f29ebcc ),
174 : STCP( 0x76d94989, 0x2f875262 ),
175 : STCP( 0x76b3d0b4, 0x2fe49ba7 ),
176 : STCP( 0x768e0ea6, 0x3041c761 ),
177 : STCP( 0x76680376, 0x309ed556 ),
178 : STCP( 0x7641af3d, 0x30fbc54d ),
179 : STCP( 0x761b1211, 0x3158970e ),
180 : STCP( 0x75f42c0b, 0x31b54a5e ),
181 : STCP( 0x75ccfd42, 0x3211df04 ),
182 : STCP( 0x75a585cf, 0x326e54c7 ),
183 : STCP( 0x757dc5ca, 0x32caab6f ),
184 : STCP( 0x7555bd4c, 0x3326e2c3 ),
185 : STCP( 0x752d6c6c, 0x3382fa88 ),
186 : STCP( 0x7504d345, 0x33def287 ),
187 : STCP( 0x74dbf1ef, 0x343aca87 ),
188 : STCP( 0x74b2c884, 0x34968250 ),
189 : STCP( 0x7489571c, 0x34f219a8 ),
190 : STCP( 0x745f9dd1, 0x354d9057 ),
191 : STCP( 0x74359cbd, 0x35a8e625 ),
192 : STCP( 0x740b53fb, 0x36041ad9 ),
193 : STCP( 0x73e0c3a3, 0x365f2e3b ),
194 : STCP( 0x73b5ebd1, 0x36ba2014 ),
195 : STCP( 0x738acc9e, 0x3714f02a ),
196 : STCP( 0x735f6626, 0x376f9e46 ),
197 : STCP( 0x7333b883, 0x37ca2a30 ),
198 : STCP( 0x7307c3d0, 0x382493b0 ),
199 : STCP( 0x72db8828, 0x387eda8e ),
200 : STCP( 0x72af05a7, 0x38d8fe93 ),
201 : STCP( 0x72823c67, 0x3932ff87 ),
202 : STCP( 0x72552c85, 0x398cdd32 ),
203 : STCP( 0x7227d61c, 0x39e6975e ),
204 : STCP( 0x71fa3949, 0x3a402dd2 ),
205 : STCP( 0x71cc5626, 0x3a99a057 ),
206 : STCP( 0x719e2cd2, 0x3af2eeb7 ),
207 : STCP( 0x716fbd68, 0x3b4c18ba ),
208 : STCP( 0x71410805, 0x3ba51e29 ),
209 : STCP( 0x71120cc5, 0x3bfdfecd ),
210 : STCP( 0x70e2cbc6, 0x3c56ba70 ),
211 : STCP( 0x70b34525, 0x3caf50da ),
212 : STCP( 0x708378ff, 0x3d07c1d6 ),
213 : STCP( 0x70536771, 0x3d600d2c ),
214 : STCP( 0x7023109a, 0x3db832a6 ),
215 : STCP( 0x6ff27497, 0x3e10320d ),
216 : STCP( 0x6fc19385, 0x3e680b2c ),
217 : STCP( 0x6f906d84, 0x3ebfbdcd ),
218 : STCP( 0x6f5f02b2, 0x3f1749b8 ),
219 : STCP( 0x6f2d532c, 0x3f6eaeb8 ),
220 : STCP( 0x6efb5f12, 0x3fc5ec98 ),
221 : STCP( 0x6ec92683, 0x401d0321 ),
222 : STCP( 0x6e96a99d, 0x4073f21d ),
223 : STCP( 0x6e63e87f, 0x40cab958 ),
224 : STCP( 0x6e30e34a, 0x4121589b ),
225 : STCP( 0x6dfd9a1c, 0x4177cfb1 ),
226 : STCP( 0x6dca0d14, 0x41ce1e65 ),
227 : STCP( 0x6d963c54, 0x42244481 ),
228 : STCP( 0x6d6227fa, 0x427a41d0 ),
229 : STCP( 0x6d2dd027, 0x42d0161e ),
230 : STCP( 0x6cf934fc, 0x4325c135 ),
231 : STCP( 0x6cc45698, 0x437b42e1 ),
232 : STCP( 0x6c8f351c, 0x43d09aed ),
233 : STCP( 0x6c59d0a9, 0x4425c923 ),
234 : STCP( 0x6c242960, 0x447acd50 ),
235 : STCP( 0x6bee3f62, 0x44cfa740 ),
236 : STCP( 0x6bb812d1, 0x452456bd ),
237 : STCP( 0x6b81a3cd, 0x4578db93 ),
238 : STCP( 0x6b4af279, 0x45cd358f ),
239 : STCP( 0x6b13fef5, 0x4621647d ),
240 : STCP( 0x6adcc964, 0x46756828 ),
241 : STCP( 0x6aa551e9, 0x46c9405c ),
242 : STCP( 0x6a6d98a4, 0x471cece7 ),
243 : STCP( 0x6a359db9, 0x47706d93 ),
244 : STCP( 0x69fd614a, 0x47c3c22f ),
245 : STCP( 0x69c4e37a, 0x4816ea86 ),
246 : STCP( 0x698c246c, 0x4869e665 ),
247 : STCP( 0x69532442, 0x48bcb599 ),
248 : STCP( 0x6919e320, 0x490f57ee ),
249 : STCP( 0x68e06129, 0x4961cd33 ),
250 : STCP( 0x68a69e81, 0x49b41533 ),
251 : STCP( 0x686c9b4b, 0x4a062fbd ),
252 : STCP( 0x683257ab, 0x4a581c9e ),
253 : STCP( 0x67f7d3c5, 0x4aa9dba2 ),
254 : STCP( 0x67bd0fbd, 0x4afb6c98 ),
255 : STCP( 0x67820bb7, 0x4b4ccf4d ),
256 : STCP( 0x6746c7d8, 0x4b9e0390 ),
257 : STCP( 0x670b4444, 0x4bef092d ),
258 : STCP( 0x66cf8120, 0x4c3fdff4 ),
259 : STCP( 0x66937e91, 0x4c9087b1 ),
260 : STCP( 0x66573cbb, 0x4ce10034 ),
261 : STCP( 0x661abbc5, 0x4d31494b ),
262 : STCP( 0x65ddfbd3, 0x4d8162c4 ),
263 : STCP( 0x65a0fd0b, 0x4dd14c6e ),
264 : STCP( 0x6563bf92, 0x4e210617 ),
265 : STCP( 0x6526438f, 0x4e708f8f ),
266 : STCP( 0x64e88926, 0x4ebfe8a5 ),
267 : STCP( 0x64aa907f, 0x4f0f1126 ),
268 : STCP( 0x646c59bf, 0x4f5e08e3 ),
269 : STCP( 0x642de50d, 0x4faccfab ),
270 : STCP( 0x63ef3290, 0x4ffb654d ),
271 : STCP( 0x63b0426d, 0x5049c999 ),
272 : STCP( 0x637114cc, 0x5097fc5e ),
273 : STCP( 0x6331a9d4, 0x50e5fd6d ),
274 : STCP( 0x62f201ac, 0x5133cc94 ),
275 : STCP( 0x62b21c7b, 0x518169a5 ),
276 : STCP( 0x6271fa69, 0x51ced46e ),
277 : STCP( 0x62319b9d, 0x521c0cc2 ),
278 : STCP( 0x61f1003f, 0x5269126e ),
279 : STCP( 0x61b02876, 0x52b5e546 ),
280 : STCP( 0x616f146c, 0x53028518 ),
281 : STCP( 0x612dc447, 0x534ef1b5 ),
282 : STCP( 0x60ec3830, 0x539b2af0 ),
283 : STCP( 0x60aa7050, 0x53e73097 ),
284 : STCP( 0x60686ccf, 0x5433027d ),
285 : STCP( 0x60262dd6, 0x547ea073 ),
286 : STCP( 0x5fe3b38d, 0x54ca0a4b ),
287 : STCP( 0x5fa0fe1f, 0x55153fd4 ),
288 : STCP( 0x5f5e0db3, 0x556040e2 ),
289 : STCP( 0x5f1ae274, 0x55ab0d46 ),
290 : STCP( 0x5ed77c8a, 0x55f5a4d2 ),
291 : STCP( 0x5e93dc1f, 0x56400758 ),
292 : STCP( 0x5e50015d, 0x568a34a9 ),
293 : STCP( 0x5e0bec6e, 0x56d42c99 ),
294 : STCP( 0x5dc79d7c, 0x571deefa ),
295 : STCP( 0x5d8314b1, 0x57677b9d ),
296 : STCP( 0x5d3e5237, 0x57b0d256 ),
297 : STCP( 0x5cf95638, 0x57f9f2f8 ),
298 : STCP( 0x5cb420e0, 0x5842dd54 ),
299 : STCP( 0x5c6eb258, 0x588b9140 ),
300 : STCP( 0x5c290acc, 0x58d40e8c ),
301 : STCP( 0x5be32a67, 0x591c550e ),
302 : STCP( 0x5b9d1154, 0x59646498 ),
303 : STCP( 0x5b56bfbd, 0x59ac3cfd ),
304 : STCP( 0x5b1035cf, 0x59f3de12 ),
305 : STCP( 0x5ac973b5, 0x5a3b47ab ),
306 : STCP( 0x5a82799a, 0x5a82799a ),
307 : };
308 :
309 : const PWord16 SineTable320[] = { // Q15
310 : STCP( 0x7fffffff, 0x00000000 ), STCP( 0x7fff9aef, 0x00a0d951 ),
311 : STCP( 0x7ffe6bbf, 0x0141b1a5 ), STCP( 0x7ffc726f, 0x01e287fc ),
312 : STCP( 0x7ff9af04, 0x02835b5a ), STCP( 0x7ff62182, 0x03242abf ),
313 : STCP( 0x7ff1c9ef, 0x03c4f52f ), STCP( 0x7feca851, 0x0465b9aa ),
314 : STCP( 0x7fe6bcb0, 0x05067734 ), STCP( 0x7fe00716, 0x05a72ccf ),
315 : STCP( 0x7fd8878e, 0x0647d97c ), STCP( 0x7fd03e23, 0x06e87c3f ),
316 : STCP( 0x7fc72ae2, 0x07891418 ), STCP( 0x7fbd4dda, 0x0829a00c ),
317 : STCP( 0x7fb2a71b, 0x08ca1f1b ), STCP( 0x7fa736b4, 0x096a9049 ),
318 : STCP( 0x7f9afcb9, 0x0a0af299 ), STCP( 0x7f8df93c, 0x0aab450d ),
319 : STCP( 0x7f802c52, 0x0b4b86a8 ), STCP( 0x7f719611, 0x0bebb66c ),
320 : STCP( 0x7f62368f, 0x0c8bd35e ), STCP( 0x7f520de6, 0x0d2bdc80 ),
321 : STCP( 0x7f411c2f, 0x0dcbd0d5 ), STCP( 0x7f2f6183, 0x0e6baf61 ),
322 : STCP( 0x7f1cde01, 0x0f0b7727 ), STCP( 0x7f0991c4, 0x0fab272b ),
323 : STCP( 0x7ef57cea, 0x104abe71 ), STCP( 0x7ee09f95, 0x10ea3bfd ),
324 : STCP( 0x7ecaf9e5, 0x11899ed3 ), STCP( 0x7eb48bfb, 0x1228e5f8 ),
325 : STCP( 0x7e9d55fc, 0x12c8106f ), STCP( 0x7e85580c, 0x13671d3d ),
326 : STCP( 0x7e6c9251, 0x14060b68 ), STCP( 0x7e5304f2, 0x14a4d9f4 ),
327 : STCP( 0x7e38b017, 0x154387e6 ), STCP( 0x7e1d93ea, 0x15e21445 ),
328 : STCP( 0x7e01b096, 0x16807e15 ), STCP( 0x7de50646, 0x171ec45c ),
329 : STCP( 0x7dc79529, 0x17bce621 ), STCP( 0x7da95d6c, 0x185ae269 ),
330 : STCP( 0x7d8a5f40, 0x18f8b83c ), STCP( 0x7d6a9ad5, 0x199666a0 ),
331 : STCP( 0x7d4a105d, 0x1a33ec9c ), STCP( 0x7d28c00c, 0x1ad14938 ),
332 : STCP( 0x7d06aa16, 0x1b6e7b7a ), STCP( 0x7ce3ceb2, 0x1c0b826a ),
333 : STCP( 0x7cc02e15, 0x1ca85d12 ), STCP( 0x7c9bc87a, 0x1d450a78 ),
334 : STCP( 0x7c769e18, 0x1de189a6 ), STCP( 0x7c50af2b, 0x1e7dd9a4 ),
335 : STCP( 0x7c29fbee, 0x1f19f97b ), STCP( 0x7c02849f, 0x1fb5e836 ),
336 : STCP( 0x7bda497d, 0x2051a4dd ), STCP( 0x7bb14ac5, 0x20ed2e7b ),
337 : STCP( 0x7b8788ba, 0x2188841a ), STCP( 0x7b5d039e, 0x2223a4c5 ),
338 : STCP( 0x7b31bbb2, 0x22be8f87 ), STCP( 0x7b05b13d, 0x2359436c ),
339 : STCP( 0x7ad8e482, 0x23f3bf7e ), STCP( 0x7aab55ca, 0x248e02cb ),
340 : STCP( 0x7a7d055b, 0x25280c5e ), STCP( 0x7a4df380, 0x25c1db44 ),
341 : STCP( 0x7a1e2082, 0x265b6e8a ), STCP( 0x79ed8cad, 0x26f4c53e ),
342 : STCP( 0x79bc384d, 0x278dde6e ), STCP( 0x798a23b1, 0x2826b928 ),
343 : STCP( 0x79574f28, 0x28bf547b ), STCP( 0x7923bb01, 0x2957af74 ),
344 : STCP( 0x78ef678f, 0x29efc925 ), STCP( 0x78ba5524, 0x2a87a09d ),
345 : STCP( 0x78848414, 0x2b1f34eb ), STCP( 0x784df4b3, 0x2bb68522 ),
346 : STCP( 0x7816a759, 0x2c4d9050 ), STCP( 0x77de9c5b, 0x2ce45589 ),
347 : STCP( 0x77a5d413, 0x2d7ad3de ), STCP( 0x776c4edb, 0x2e110a62 ),
348 : STCP( 0x77320d0d, 0x2ea6f827 ), STCP( 0x76f70f05, 0x2f3c9c40 ),
349 : STCP( 0x76bb5521, 0x2fd1f5c1 ), STCP( 0x767edfbe, 0x306703bf ),
350 : STCP( 0x7641af3d, 0x30fbc54d ), STCP( 0x7603c3fd, 0x31903982 ),
351 : STCP( 0x75c51e61, 0x32245f72 ), STCP( 0x7585becb, 0x32b83634 ),
352 : STCP( 0x7545a5a0, 0x334bbcde ), STCP( 0x7504d345, 0x33def287 ),
353 : STCP( 0x74c34820, 0x3471d647 ), STCP( 0x74810499, 0x35046736 ),
354 : STCP( 0x743e0918, 0x3596a46c ), STCP( 0x73fa5607, 0x36288d03 ),
355 : STCP( 0x73b5ebd1, 0x36ba2014 ), STCP( 0x7370cae2, 0x374b5cb9 ),
356 : STCP( 0x732af3a7, 0x37dc420c ), STCP( 0x72e4668f, 0x386ccf2a ),
357 : STCP( 0x729d2409, 0x38fd032d ), STCP( 0x72552c85, 0x398cdd32 ),
358 : STCP( 0x720c8075, 0x3a1c5c57 ), STCP( 0x71c3204c, 0x3aab7fb7 ),
359 : STCP( 0x71790c7e, 0x3b3a4672 ), STCP( 0x712e457f, 0x3bc8afa5 ),
360 : STCP( 0x70e2cbc6, 0x3c56ba70 ), STCP( 0x70969fca, 0x3ce465f3 ),
361 : STCP( 0x7049c203, 0x3d71b14d ), STCP( 0x6ffc32eb, 0x3dfe9ba1 ),
362 : STCP( 0x6fadf2fc, 0x3e8b240e ), STCP( 0x6f5f02b2, 0x3f1749b8 ),
363 : STCP( 0x6f0f6289, 0x3fa30bc1 ), STCP( 0x6ebf12ff, 0x402e694c ),
364 : STCP( 0x6e6e1492, 0x40b9617d ), STCP( 0x6e1c67c4, 0x4143f379 ),
365 : STCP( 0x6dca0d14, 0x41ce1e65 ), STCP( 0x6d770506, 0x4257e166 ),
366 : STCP( 0x6d23501b, 0x42e13ba4 ), STCP( 0x6cceeed8, 0x436a2c45 ),
367 : STCP( 0x6c79e1c2, 0x43f2b271 ), STCP( 0x6c242960, 0x447acd50 ),
368 : STCP( 0x6bcdc639, 0x45027c0c ), STCP( 0x6b76b8d6, 0x4589bdcf ),
369 : STCP( 0x6b1f01c0, 0x461091c2 ), STCP( 0x6ac6a180, 0x4696f710 ),
370 : STCP( 0x6a6d98a4, 0x471cece7 ), STCP( 0x6a13e7b8, 0x47a27271 ),
371 : STCP( 0x69b98f48, 0x482786dc ), STCP( 0x695e8fe5, 0x48ac2957 ),
372 : STCP( 0x6902ea1d, 0x4930590f ), STCP( 0x68a69e81, 0x49b41533 ),
373 : STCP( 0x6849ada3, 0x4a375cf5 ), STCP( 0x67ec1817, 0x4aba2f84 ),
374 : STCP( 0x678dde6e, 0x4b3c8c12 ), STCP( 0x672f013f, 0x4bbe71d1 ),
375 : STCP( 0x66cf8120, 0x4c3fdff4 ), STCP( 0x666f5ea6, 0x4cc0d5ae ),
376 : STCP( 0x660e9a6a, 0x4d415234 ), STCP( 0x65ad3505, 0x4dc154bb ),
377 : STCP( 0x654b2f10, 0x4e40dc79 ), STCP( 0x64e88926, 0x4ebfe8a5 ),
378 : STCP( 0x648543e4, 0x4f3e7875 ), STCP( 0x64215fe5, 0x4fbc8b22 ),
379 : STCP( 0x63bcddc7, 0x503a1fe5 ), STCP( 0x6357be2a, 0x50b735f8 ),
380 : STCP( 0x62f201ac, 0x5133cc94 ), STCP( 0x628ba8ef, 0x51afe2f6 ),
381 : STCP( 0x6224b495, 0x522b7859 ), STCP( 0x61bd253f, 0x52a68bfb ),
382 : STCP( 0x6154fb91, 0x53211d18 ), STCP( 0x60ec3830, 0x539b2af0 ),
383 : STCP( 0x6082dbc1, 0x5414b4c1 ), STCP( 0x6018e6eb, 0x548db9cb ),
384 : STCP( 0x5fae5a55, 0x55063951 ), STCP( 0x5f4336a7, 0x557e3292 ),
385 : STCP( 0x5ed77c8a, 0x55f5a4d2 ), STCP( 0x5e6b2ca8, 0x566c8f55 ),
386 : STCP( 0x5dfe47ad, 0x56e2f15d ), STCP( 0x5d90ce45, 0x5758ca31 ),
387 : STCP( 0x5d22c11c, 0x57ce1917 ), STCP( 0x5cb420e0, 0x5842dd54 ),
388 : STCP( 0x5c44ee40, 0x58b71632 ), STCP( 0x5bd529eb, 0x592ac2f7 ),
389 : STCP( 0x5b64d492, 0x599de2ee ), STCP( 0x5af3eee6, 0x5a107561 ),
390 : STCP( 0x5a82799a, 0x5a82799a )
391 : };
392 :
393 : #define WTC( x ) WORD322WORD16( x )
394 :
395 : #define WTCP( a, b ) \
396 : { \
397 : { \
398 : WTC( a ), WTC( b ) \
399 : } \
400 : }
401 :
402 : const PWord16 SineWindow10[5] = {
403 : // Q15
404 : WTCP( 0x7f9afcb9, 0x0a0af299 ),
405 : WTCP( 0x7c769e18, 0x1de189a6 ),
406 : WTCP( 0x7641af3d, 0x30fbc54d ),
407 : WTCP( 0x6d23501b, 0x42e13ba4 ),
408 : WTCP( 0x6154fb91, 0x53211d18 ),
409 : };
410 :
411 : const PWord16 SineWindow16[8] = {
412 : // Q15
413 : WTCP( 0x7fd8878e, 0x0647d97c ),
414 : WTCP( 0x7e9d55fc, 0x12c8106f ),
415 : WTCP( 0x7c29fbee, 0x1f19f97b ),
416 : WTCP( 0x78848414, 0x2b1f34eb ),
417 : WTCP( 0x73b5ebd1, 0x36ba2014 ),
418 : WTCP( 0x6dca0d14, 0x41ce1e65 ),
419 : WTCP( 0x66cf8120, 0x4c3fdff4 ),
420 : WTCP( 0x5ed77c8a, 0x55f5a4d2 ),
421 : };
422 :
423 : const PWord16 SineWindow20[10] = {
424 : // Q15
425 : WTCP( 0x7fe6bcb0, 0x05067734 ),
426 : WTCP( 0x7f1cde01, 0x0f0b7727 ),
427 : WTCP( 0x7d8a5f40, 0x18f8b83c ),
428 : WTCP( 0x7b31bbb2, 0x22be8f87 ),
429 : WTCP( 0x7816a759, 0x2c4d9050 ),
430 : WTCP( 0x743e0918, 0x3596a46c ),
431 : WTCP( 0x6fadf2fc, 0x3e8b240e ),
432 : WTCP( 0x6a6d98a4, 0x471cece7 ),
433 : WTCP( 0x648543e4, 0x4f3e7875 ),
434 : WTCP( 0x5dfe47ad, 0x56e2f15d ),
435 : };
436 :
437 : const PWord16 SineWindow30[15] = {
438 : // Q15
439 : WTCP( 0x7ff4c56f, 0x0359c428 ),
440 : WTCP( 0x7f9afcb9, 0x0a0af299 ),
441 : WTCP( 0x7ee7aa4c, 0x10b5150f ),
442 : WTCP( 0x7ddb4bfc, 0x17537e63 ),
443 : WTCP( 0x7c769e18, 0x1de189a6 ),
444 : WTCP( 0x7aba9ae6, 0x245a9d65 ),
445 : WTCP( 0x78a879f4, 0x2aba2ee4 ),
446 : WTCP( 0x7641af3d, 0x30fbc54d ),
447 : WTCP( 0x7387ea23, 0x371afcd5 ),
448 : WTCP( 0x707d1443, 0x3d1389cb ),
449 : WTCP( 0x6d23501b, 0x42e13ba4 ),
450 : WTCP( 0x697cf78a, 0x487fffe4 ),
451 : WTCP( 0x658c9a2d, 0x4debe4fe ),
452 : WTCP( 0x6154fb91, 0x53211d18 ),
453 : WTCP( 0x5cd91140, 0x581c00b3 ),
454 : };
455 :
456 : const PWord16 SineWindow32[16] = { // Q15
457 : WTCP( 0x7ff62182, 0x03242abf ), WTCP( 0x7fa736b4, 0x096a9049 ), WTCP( 0x7f0991c4, 0x0fab272b ), WTCP( 0x7e1d93ea, 0x15e21445 ),
458 : WTCP( 0x7ce3ceb2, 0x1c0b826a ), WTCP( 0x7b5d039e, 0x2223a4c5 ), WTCP( 0x798a23b1, 0x2826b928 ), WTCP( 0x776c4edb, 0x2e110a62 ),
459 : WTCP( 0x7504d345, 0x33def287 ), WTCP( 0x72552c85, 0x398cdd32 ), WTCP( 0x6f5f02b2, 0x3f1749b8 ), WTCP( 0x6c242960, 0x447acd50 ),
460 : WTCP( 0x68a69e81, 0x49b41533 ), WTCP( 0x64e88926, 0x4ebfe8a5 ), WTCP( 0x60ec3830, 0x539b2af0 ), WTCP( 0x5cb420e0, 0x5842dd54 )
461 : };
462 :
463 : const PWord16 SineWindow40[20] = {
464 : // Q15
465 : WTCP( 0x7ff9af04, 0x02835b5a ),
466 : WTCP( 0x7fc72ae2, 0x07891418 ),
467 : WTCP( 0x7f62368f, 0x0c8bd35e ),
468 : WTCP( 0x7ecaf9e5, 0x11899ed3 ),
469 : WTCP( 0x7e01b096, 0x16807e15 ),
470 : WTCP( 0x7d06aa16, 0x1b6e7b7a ),
471 : WTCP( 0x7bda497d, 0x2051a4dd ),
472 : WTCP( 0x7a7d055b, 0x25280c5e ),
473 : WTCP( 0x78ef678f, 0x29efc925 ),
474 : WTCP( 0x77320d0d, 0x2ea6f827 ),
475 : WTCP( 0x7545a5a0, 0x334bbcde ),
476 : WTCP( 0x732af3a7, 0x37dc420c ),
477 : WTCP( 0x70e2cbc6, 0x3c56ba70 ),
478 : WTCP( 0x6e6e1492, 0x40b9617d ),
479 : WTCP( 0x6bcdc639, 0x45027c0c ),
480 : WTCP( 0x6902ea1d, 0x4930590f ),
481 : WTCP( 0x660e9a6a, 0x4d415234 ),
482 : WTCP( 0x62f201ac, 0x5133cc94 ),
483 : WTCP( 0x5fae5a55, 0x55063951 ),
484 : WTCP( 0x5c44ee40, 0x58b71632 ),
485 : };
486 :
487 : const PWord16 SineWindow48[24] = { // Q15
488 : WTCP( 0x7ffb9d15, 0x02182427 ), WTCP( 0x7fd8878e, 0x0647d97c ), WTCP( 0x7f92661d, 0x0a75d60e ), WTCP( 0x7f294bfd, 0x0ea0f48c ),
489 : WTCP( 0x7e9d55fc, 0x12c8106f ), WTCP( 0x7deeaa7a, 0x16ea0646 ), WTCP( 0x7d1d7958, 0x1b05b40f ), WTCP( 0x7c29fbee, 0x1f19f97b ),
490 : WTCP( 0x7b1474fd, 0x2325b847 ), WTCP( 0x79dd3098, 0x2727d486 ), WTCP( 0x78848414, 0x2b1f34eb ), WTCP( 0x770acdec, 0x2f0ac320 ),
491 : WTCP( 0x757075ac, 0x32e96c09 ), WTCP( 0x73b5ebd1, 0x36ba2014 ), WTCP( 0x71dba9ab, 0x3a7bd382 ), WTCP( 0x6fe2313c, 0x3e2d7eb1 ),
492 : WTCP( 0x6dca0d14, 0x41ce1e65 ), WTCP( 0x6b93d02e, 0x455cb40c ), WTCP( 0x694015c3, 0x48d84609 ), WTCP( 0x66cf8120, 0x4c3fdff4 ),
493 : WTCP( 0x6442bd7e, 0x4f9292dc ), WTCP( 0x619a7dce, 0x52cf758f ), WTCP( 0x5ed77c8a, 0x55f5a4d2 ), WTCP( 0x5bfa7b82, 0x590443a7 )
494 : };
495 :
496 : const PWord16 SineWindow60[60] = {
497 : // Q15
498 : WTCP( 0x7ffd3154, 0x01aceb7c ),
499 : WTCP( 0x7fe6bcb0, 0x05067734 ),
500 : WTCP( 0x7fb9d759, 0x085f2137 ),
501 : WTCP( 0x7f76892f, 0x0bb65336 ),
502 : WTCP( 0x7f1cde01, 0x0f0b7727 ),
503 : WTCP( 0x7eace58a, 0x125df75b ),
504 : WTCP( 0x7e26b371, 0x15ad3e9a ),
505 : WTCP( 0x7d8a5f40, 0x18f8b83c ),
506 : WTCP( 0x7cd80464, 0x1c3fd045 ),
507 : WTCP( 0x7c0fc22a, 0x1f81f37c ),
508 : WTCP( 0x7b31bbb2, 0x22be8f87 ),
509 : WTCP( 0x7a3e17f2, 0x25f51307 ),
510 : WTCP( 0x793501a9, 0x2924edac ),
511 : WTCP( 0x7816a759, 0x2c4d9050 ),
512 : WTCP( 0x76e33b3f, 0x2f6e6d16 ),
513 : WTCP( 0x759af34c, 0x3286f779 ),
514 : WTCP( 0x743e0918, 0x3596a46c ),
515 : WTCP( 0x72ccb9db, 0x389cea72 ),
516 : WTCP( 0x71474660, 0x3b9941b1 ),
517 : WTCP( 0x6fadf2fc, 0x3e8b240e ),
518 : WTCP( 0x6e010780, 0x41720d46 ),
519 : WTCP( 0x6c40cf2c, 0x444d7aff ),
520 : WTCP( 0x6a6d98a4, 0x471cece7 ),
521 : WTCP( 0x6887b5e2, 0x49dfe4c2 ),
522 : WTCP( 0x668f7c25, 0x4c95e688 ),
523 : WTCP( 0x648543e4, 0x4f3e7875 ),
524 : WTCP( 0x626968be, 0x51d92321 ),
525 : WTCP( 0x603c496c, 0x54657194 ),
526 : WTCP( 0x5dfe47ad, 0x56e2f15d ),
527 : WTCP( 0x5bafc837, 0x595132a2 ),
528 : };
529 :
530 : const PWord16 SineWindow64[32] = {
531 : // Q15
532 : WTCP( 0x7ffd885a, 0x01921d20 ),
533 : WTCP( 0x7fe9cbc0, 0x04b6195d ),
534 : WTCP( 0x7fc25596, 0x07d95b9e ),
535 : WTCP( 0x7f872bf3, 0x0afb6805 ),
536 : WTCP( 0x7f3857f6, 0x0e1bc2e4 ),
537 : WTCP( 0x7ed5e5c6, 0x1139f0cf ),
538 : WTCP( 0x7e5fe493, 0x145576b1 ),
539 : WTCP( 0x7dd6668f, 0x176dd9de ),
540 : WTCP( 0x7d3980ec, 0x1a82a026 ),
541 : WTCP( 0x7c894bde, 0x1d934fe5 ),
542 : WTCP( 0x7bc5e290, 0x209f701c ),
543 : WTCP( 0x7aef6323, 0x23a6887f ),
544 : WTCP( 0x7a05eead, 0x26a82186 ),
545 : WTCP( 0x7909a92d, 0x29a3c485 ),
546 : WTCP( 0x77fab989, 0x2c98fbba ),
547 : WTCP( 0x76d94989, 0x2f875262 ),
548 : WTCP( 0x75a585cf, 0x326e54c7 ),
549 : WTCP( 0x745f9dd1, 0x354d9057 ),
550 : WTCP( 0x7307c3d0, 0x382493b0 ),
551 : WTCP( 0x719e2cd2, 0x3af2eeb7 ),
552 : WTCP( 0x7023109a, 0x3db832a6 ),
553 : WTCP( 0x6e96a99d, 0x4073f21d ),
554 : WTCP( 0x6cf934fc, 0x4325c135 ),
555 : WTCP( 0x6b4af279, 0x45cd358f ),
556 : WTCP( 0x698c246c, 0x4869e665 ),
557 : WTCP( 0x67bd0fbd, 0x4afb6c98 ),
558 : WTCP( 0x65ddfbd3, 0x4d8162c4 ),
559 : WTCP( 0x63ef3290, 0x4ffb654d ),
560 : WTCP( 0x61f1003f, 0x5269126e ),
561 : WTCP( 0x5fe3b38d, 0x54ca0a4b ),
562 : WTCP( 0x5dc79d7c, 0x571deefa ),
563 : WTCP( 0x5b9d1154, 0x59646498 ),
564 : };
565 :
566 : const PWord16 SineWindow80[40] = {
567 : // Q15
568 : WTCP( 0x7ffe6bbf, 0x0141b1a5 ),
569 : WTCP( 0x7ff1c9ef, 0x03c4f52f ),
570 : WTCP( 0x7fd8878e, 0x0647d97c ),
571 : WTCP( 0x7fb2a71b, 0x08ca1f1b ),
572 : WTCP( 0x7f802c52, 0x0b4b86a8 ),
573 : WTCP( 0x7f411c2f, 0x0dcbd0d5 ),
574 : WTCP( 0x7ef57cea, 0x104abe71 ),
575 : WTCP( 0x7e9d55fc, 0x12c8106f ),
576 : WTCP( 0x7e38b017, 0x154387e6 ),
577 : WTCP( 0x7dc79529, 0x17bce621 ),
578 : WTCP( 0x7d4a105d, 0x1a33ec9c ),
579 : WTCP( 0x7cc02e15, 0x1ca85d12 ),
580 : WTCP( 0x7c29fbee, 0x1f19f97b ),
581 : WTCP( 0x7b8788ba, 0x2188841a ),
582 : WTCP( 0x7ad8e482, 0x23f3bf7e ),
583 : WTCP( 0x7a1e2082, 0x265b6e8a ),
584 : WTCP( 0x79574f28, 0x28bf547b ),
585 : WTCP( 0x78848414, 0x2b1f34eb ),
586 : WTCP( 0x77a5d413, 0x2d7ad3de ),
587 : WTCP( 0x76bb5521, 0x2fd1f5c1 ),
588 : WTCP( 0x75c51e61, 0x32245f72 ),
589 : WTCP( 0x74c34820, 0x3471d647 ),
590 : WTCP( 0x73b5ebd1, 0x36ba2014 ),
591 : WTCP( 0x729d2409, 0x38fd032d ),
592 : WTCP( 0x71790c7e, 0x3b3a4672 ),
593 : WTCP( 0x7049c203, 0x3d71b14d ),
594 : WTCP( 0x6f0f6289, 0x3fa30bc1 ),
595 : WTCP( 0x6dca0d14, 0x41ce1e65 ),
596 : WTCP( 0x6c79e1c2, 0x43f2b271 ),
597 : WTCP( 0x6b1f01c0, 0x461091c2 ),
598 : WTCP( 0x69b98f48, 0x482786dc ),
599 : WTCP( 0x6849ada3, 0x4a375cf5 ),
600 : WTCP( 0x66cf8120, 0x4c3fdff4 ),
601 : WTCP( 0x654b2f10, 0x4e40dc79 ),
602 : WTCP( 0x63bcddc7, 0x503a1fe5 ),
603 : WTCP( 0x6224b495, 0x522b7859 ),
604 : WTCP( 0x6082dbc1, 0x5414b4c1 ),
605 : WTCP( 0x5ed77c8a, 0x55f5a4d2 ),
606 : WTCP( 0x5d22c11c, 0x57ce1917 ),
607 : WTCP( 0x5b64d492, 0x599de2ee ),
608 : };
609 :
610 : const PWord16 SineWindow70[35] = { // Q15
611 : WTCP( 0x7ffdeffe, 0x016fa5fd ), WTCP( 0x7fed7058, 0x044ec292 ), WTCP( 0x7fcc732b, 0x072d5101 ), WTCP( 0x7f9afcb9, 0x0a0af299 ),
612 : WTCP( 0x7f591361, 0x0ce748ca ), WTCP( 0x7f06bfa3, 0x0fc1f52d ), WTCP( 0x7ea40c1b, 0x129a9991 ), WTCP( 0x7e310583, 0x1570d80b ),
613 : WTCP( 0x7dadbaaf, 0x184452fd ), WTCP( 0x7d1a3c8a, 0x1b14ad24 ), WTCP( 0x7c769e18, 0x1de189a6 ), WTCP( 0x7bc2f470, 0x20aa8c19 ),
614 : WTCP( 0x7aff56bc, 0x236f5896 ), WTCP( 0x7a2bde32, 0x262f93be ), WTCP( 0x7948a614, 0x28eae2cb ), WTCP( 0x7855cbae, 0x2ba0eb97 ),
615 : WTCP( 0x77536e4c, 0x2e5154ac ), WTCP( 0x7641af3d, 0x30fbc54d ), WTCP( 0x7520b1ca, 0x339fe582 ), WTCP( 0x73f09b33, 0x363d5e23 ),
616 : WTCP( 0x72b192ac, 0x38d3d8e3 ), WTCP( 0x7163c154, 0x3b63005e ), WTCP( 0x70075233, 0x3dea8020 ), WTCP( 0x6e9c7233, 0x406a04b2 ),
617 : WTCP( 0x6d23501b, 0x42e13ba4 ), WTCP( 0x6b9c1c87, 0x454fd398 ), WTCP( 0x6a0709e6, 0x47b57c4e ), WTCP( 0x68644c6e, 0x4a11e6aa ),
618 : WTCP( 0x66b41a1a, 0x4c64c4c4 ), WTCP( 0x64f6aa9f, 0x4eadc9ee ), WTCP( 0x632c3769, 0x50ecaabd ), WTCP( 0x6154fb91, 0x53211d18 ),
619 : WTCP( 0x5f7133d4, 0x554ad83c ), WTCP( 0x5d811e90, 0x576994c8 ), WTCP( 0x5b84fbb6, 0x597d0cc7 )
620 : };
621 :
622 : const PWord16 SineWindow96[48] = { // Q15
623 : WTCP( 0x7ffee744, 0x010c1460 ), WTCP( 0x7ff62182, 0x03242abf ), WTCP( 0x7fe49698, 0x053c0a01 ), WTCP( 0x7fca47b9, 0x07538d6b ),
624 : WTCP( 0x7fa736b4, 0x096a9049 ), WTCP( 0x7f7b65ef, 0x0b80edf1 ), WTCP( 0x7f46d86c, 0x0d9681c2 ), WTCP( 0x7f0991c4, 0x0fab272b ),
625 : WTCP( 0x7ec3962a, 0x11beb9aa ), WTCP( 0x7e74ea6a, 0x13d114d0 ), WTCP( 0x7e1d93ea, 0x15e21445 ), WTCP( 0x7dbd98a4, 0x17f193c5 ),
626 : WTCP( 0x7d54ff2e, 0x19ff6f2a ), WTCP( 0x7ce3ceb2, 0x1c0b826a ), WTCP( 0x7c6a0ef2, 0x1e15a99a ), WTCP( 0x7be7c847, 0x201dc0ef ),
627 : WTCP( 0x7b5d039e, 0x2223a4c5 ), WTCP( 0x7ac9ca7a, 0x2427319d ), WTCP( 0x7a2e26f2, 0x26284422 ), WTCP( 0x798a23b1, 0x2826b928 ),
628 : WTCP( 0x78ddcbf5, 0x2a226db5 ), WTCP( 0x78292b8d, 0x2c1b3efb ), WTCP( 0x776c4edb, 0x2e110a62 ), WTCP( 0x76a742d1, 0x3003ad85 ),
629 : WTCP( 0x75da14ef, 0x31f30638 ), WTCP( 0x7504d345, 0x33def287 ), WTCP( 0x74278c72, 0x35c750bc ), WTCP( 0x73424fa0, 0x37abff5d ),
630 : WTCP( 0x72552c85, 0x398cdd32 ), WTCP( 0x71603361, 0x3b69c947 ), WTCP( 0x706374ff, 0x3d42a2ec ), WTCP( 0x6f5f02b2, 0x3f1749b8 ),
631 : WTCP( 0x6e52ee52, 0x40e79d8c ), WTCP( 0x6d3f4a40, 0x42b37e96 ), WTCP( 0x6c242960, 0x447acd50 ), WTCP( 0x6b019f1a, 0x463d6a87 ),
632 : WTCP( 0x69d7bf57, 0x47fb3757 ), WTCP( 0x68a69e81, 0x49b41533 ), WTCP( 0x676e5183, 0x4b67e5e4 ), WTCP( 0x662eedc3, 0x4d168b8b ),
633 : WTCP( 0x64e88926, 0x4ebfe8a5 ), WTCP( 0x639b3a0b, 0x5063e008 ), WTCP( 0x62471749, 0x520254ef ), WTCP( 0x60ec3830, 0x539b2af0 ),
634 : WTCP( 0x5f8ab487, 0x552e4605 ), WTCP( 0x5e22a487, 0x56bb8a90 ), WTCP( 0x5cb420e0, 0x5842dd54 ), WTCP( 0x5b3f42ae, 0x59c42381 )
635 : };
636 :
637 : const PWord16 SineWindow112[56] = { // Q15
638 : WTCP( 0x7fff31bf, 0x00e5c87e ), WTCP( 0x7ff8bfc7, 0x02b14de9 ), WTCP( 0x7febdc2a, 0x047cb09e ), WTCP( 0x7fd8878e, 0x0647d97c ),
639 : WTCP( 0x7fbec2ec, 0x0812b164 ), WTCP( 0x7f9e8f91, 0x09dd213a ), WTCP( 0x7f77ef1c, 0x0ba711ea ), WTCP( 0x7f4ae37e, 0x0d706c64 ),
640 : WTCP( 0x7f176efc, 0x0f3919a0 ), WTCP( 0x7edd942d, 0x110102a0 ), WTCP( 0x7e9d55fc, 0x12c8106f ), WTCP( 0x7e56b7a4, 0x148e2c22 ),
641 : WTCP( 0x7e09bcb4, 0x16533edc ), WTCP( 0x7db6690c, 0x181731cd ), WTCP( 0x7d5cc0df, 0x19d9ee32 ), WTCP( 0x7cfcc8af, 0x1b9b5d5a ),
642 : WTCP( 0x7c968552, 0x1d5b68a2 ), WTCP( 0x7c29fbee, 0x1f19f97b ), WTCP( 0x7bb731fb, 0x20d6f969 ), WTCP( 0x7b3e2d40, 0x22925203 ),
643 : WTCP( 0x7abef3d5, 0x244becf6 ), WTCP( 0x7a398c22, 0x2603b406 ), WTCP( 0x79adfcdf, 0x27b9910e ), WTCP( 0x791c4d13, 0x296d6e00 ),
644 : WTCP( 0x78848414, 0x2b1f34eb ), WTCP( 0x77e6a986, 0x2ccecff7 ), WTCP( 0x7742c55c, 0x2e7c2969 ), WTCP( 0x7698dfd8, 0x30272ba0 ),
645 : WTCP( 0x75e90186, 0x31cfc11e ), WTCP( 0x75333343, 0x3375d481 ), WTCP( 0x74777e35, 0x35195088 ), WTCP( 0x73b5ebd1, 0x36ba2014 ),
646 : WTCP( 0x72ee85d5, 0x38582e27 ), WTCP( 0x7221564d, 0x39f365e9 ), WTCP( 0x714e678c, 0x3b8bb2a3 ), WTCP( 0x7075c433, 0x3d20ffc8 ),
647 : WTCP( 0x6f977729, 0x3eb338ef ), WTCP( 0x6eb38ba1, 0x404249d5 ), WTCP( 0x6dca0d14, 0x41ce1e65 ), WTCP( 0x6cdb0745, 0x4356a2ad ),
648 : WTCP( 0x6be6863c, 0x44dbc2ec ), WTCP( 0x6aec9649, 0x465d6b89 ), WTCP( 0x69ed4403, 0x47db8918 ), WTCP( 0x68e89c43, 0x4956085b ),
649 : WTCP( 0x67deac2c, 0x4accd644 ), WTCP( 0x66cf8120, 0x4c3fdff4 ), WTCP( 0x65bb28c7, 0x4daf12ba ), WTCP( 0x64a1b10b, 0x4f1a5c1a ),
650 : WTCP( 0x6383281a, 0x5081a9c9 ), WTCP( 0x625f9c5f, 0x51e4e9ae ), WTCP( 0x61371c8b, 0x534409e8 ), WTCP( 0x6009b78a, 0x549ef8c6 ),
651 : WTCP( 0x5ed77c8a, 0x55f5a4d2 ), WTCP( 0x5da07af6, 0x5747fcca ), WTCP( 0x5c64c278, 0x5895efa4 ), WTCP( 0x5b2462f5, 0x59df6c8f )
652 : };
653 :
654 : const PWord16 SineWindow120[60] = {
655 : // Q15
656 : WTCP( 0x7fff4c54, 0x00d676eb ),
657 : WTCP( 0x7ff9af04, 0x02835b5a ),
658 : WTCP( 0x7fee74a2, 0x0430238f ),
659 : WTCP( 0x7fdd9dad, 0x05dcbcbe ),
660 : WTCP( 0x7fc72ae2, 0x07891418 ),
661 : WTCP( 0x7fab1d3d, 0x093516d4 ),
662 : WTCP( 0x7f8975f9, 0x0ae0b22c ),
663 : WTCP( 0x7f62368f, 0x0c8bd35e ),
664 : WTCP( 0x7f3560b9, 0x0e3667ad ),
665 : WTCP( 0x7f02f66f, 0x0fe05c64 ),
666 : WTCP( 0x7ecaf9e5, 0x11899ed3 ),
667 : WTCP( 0x7e8d6d91, 0x13321c53 ),
668 : WTCP( 0x7e4a5426, 0x14d9c245 ),
669 : WTCP( 0x7e01b096, 0x16807e15 ),
670 : WTCP( 0x7db3860f, 0x18263d36 ),
671 : WTCP( 0x7d5fd801, 0x19caed29 ),
672 : WTCP( 0x7d06aa16, 0x1b6e7b7a ),
673 : WTCP( 0x7ca80038, 0x1d10d5c2 ),
674 : WTCP( 0x7c43de8e, 0x1eb1e9a7 ),
675 : WTCP( 0x7bda497d, 0x2051a4dd ),
676 : WTCP( 0x7b6b45a5, 0x21eff528 ),
677 : WTCP( 0x7af6d7e6, 0x238cc85d ),
678 : WTCP( 0x7a7d055b, 0x25280c5e ),
679 : WTCP( 0x79fdd35c, 0x26c1af22 ),
680 : WTCP( 0x7979477d, 0x28599eb0 ),
681 : WTCP( 0x78ef678f, 0x29efc925 ),
682 : WTCP( 0x7860399e, 0x2b841caf ),
683 : WTCP( 0x77cbc3f2, 0x2d168792 ),
684 : WTCP( 0x77320d0d, 0x2ea6f827 ),
685 : WTCP( 0x76931bae, 0x30355cdd ),
686 : WTCP( 0x75eef6ce, 0x31c1a43b ),
687 : WTCP( 0x7545a5a0, 0x334bbcde ),
688 : WTCP( 0x74972f92, 0x34d3957e ),
689 : WTCP( 0x73e39c49, 0x36591cea ),
690 : WTCP( 0x732af3a7, 0x37dc420c ),
691 : WTCP( 0x726d3dc6, 0x395cf3e9 ),
692 : WTCP( 0x71aa82f7, 0x3adb21a1 ),
693 : WTCP( 0x70e2cbc6, 0x3c56ba70 ),
694 : WTCP( 0x701620f5, 0x3dcfadb0 ),
695 : WTCP( 0x6f448b7e, 0x3f45ead8 ),
696 : WTCP( 0x6e6e1492, 0x40b9617d ),
697 : WTCP( 0x6d92c59b, 0x422a0154 ),
698 : WTCP( 0x6cb2a837, 0x4397ba32 ),
699 : WTCP( 0x6bcdc639, 0x45027c0c ),
700 : WTCP( 0x6ae429ae, 0x466a36f9 ),
701 : WTCP( 0x69f5dcd3, 0x47cedb31 ),
702 : WTCP( 0x6902ea1d, 0x4930590f ),
703 : WTCP( 0x680b5c33, 0x4a8ea111 ),
704 : WTCP( 0x670f3df3, 0x4be9a3db ),
705 : WTCP( 0x660e9a6a, 0x4d415234 ),
706 : WTCP( 0x65097cdb, 0x4e959d08 ),
707 : WTCP( 0x63fff0ba, 0x4fe6756a ),
708 : WTCP( 0x62f201ac, 0x5133cc94 ),
709 : WTCP( 0x61dfbb8a, 0x527d93e6 ),
710 : WTCP( 0x60c92a5a, 0x53c3bcea ),
711 : WTCP( 0x5fae5a55, 0x55063951 ),
712 : WTCP( 0x5e8f57e2, 0x5644faf4 ),
713 : WTCP( 0x5d6c2f99, 0x577ff3da ),
714 : WTCP( 0x5c44ee40, 0x58b71632 ),
715 : WTCP( 0x5b19a0c8, 0x59ea5454 ),
716 : };
717 :
718 : const PWord16 SineWindow128[64] = {
719 : // Q15
720 : WTCP( 0x7fff6216, 0x00c90f88 ),
721 : WTCP( 0x7ffa72d1, 0x025b26d7 ),
722 : WTCP( 0x7ff09478, 0x03ed26e6 ),
723 : WTCP( 0x7fe1c76b, 0x057f0035 ),
724 : WTCP( 0x7fce0c3e, 0x0710a345 ),
725 : WTCP( 0x7fb563b3, 0x08a2009a ),
726 : WTCP( 0x7f97cebd, 0x0a3308bd ),
727 : WTCP( 0x7f754e80, 0x0bc3ac35 ),
728 : WTCP( 0x7f4de451, 0x0d53db92 ),
729 : WTCP( 0x7f2191b4, 0x0ee38766 ),
730 : WTCP( 0x7ef05860, 0x1072a048 ),
731 : WTCP( 0x7eba3a39, 0x120116d5 ),
732 : WTCP( 0x7e7f3957, 0x138edbb1 ),
733 : WTCP( 0x7e3f57ff, 0x151bdf86 ),
734 : WTCP( 0x7dfa98a8, 0x16a81305 ),
735 : WTCP( 0x7db0fdf8, 0x183366e9 ),
736 : WTCP( 0x7d628ac6, 0x19bdcbf3 ),
737 : WTCP( 0x7d0f4218, 0x1b4732ef ),
738 : WTCP( 0x7cb72724, 0x1ccf8cb3 ),
739 : WTCP( 0x7c5a3d50, 0x1e56ca1e ),
740 : WTCP( 0x7bf88830, 0x1fdcdc1b ),
741 : WTCP( 0x7b920b89, 0x2161b3a0 ),
742 : WTCP( 0x7b26cb4f, 0x22e541af ),
743 : WTCP( 0x7ab6cba4, 0x24677758 ),
744 : WTCP( 0x7a4210d8, 0x25e845b6 ),
745 : WTCP( 0x79c89f6e, 0x27679df4 ),
746 : WTCP( 0x794a7c12, 0x28e5714b ),
747 : WTCP( 0x78c7aba2, 0x2a61b101 ),
748 : WTCP( 0x78403329, 0x2bdc4e6f ),
749 : WTCP( 0x77b417df, 0x2d553afc ),
750 : WTCP( 0x77235f2d, 0x2ecc681e ),
751 : WTCP( 0x768e0ea6, 0x3041c761 ),
752 : WTCP( 0x75f42c0b, 0x31b54a5e ),
753 : WTCP( 0x7555bd4c, 0x3326e2c3 ),
754 : WTCP( 0x74b2c884, 0x34968250 ),
755 : WTCP( 0x740b53fb, 0x36041ad9 ),
756 : WTCP( 0x735f6626, 0x376f9e46 ),
757 : WTCP( 0x72af05a7, 0x38d8fe93 ),
758 : WTCP( 0x71fa3949, 0x3a402dd2 ),
759 : WTCP( 0x71410805, 0x3ba51e29 ),
760 : WTCP( 0x708378ff, 0x3d07c1d6 ),
761 : WTCP( 0x6fc19385, 0x3e680b2c ),
762 : WTCP( 0x6efb5f12, 0x3fc5ec98 ),
763 : WTCP( 0x6e30e34a, 0x4121589b ),
764 : WTCP( 0x6d6227fa, 0x427a41d0 ),
765 : WTCP( 0x6c8f351c, 0x43d09aed ),
766 : WTCP( 0x6bb812d1, 0x452456bd ),
767 : WTCP( 0x6adcc964, 0x46756828 ),
768 : WTCP( 0x69fd614a, 0x47c3c22f ),
769 : WTCP( 0x6919e320, 0x490f57ee ),
770 : WTCP( 0x683257ab, 0x4a581c9e ),
771 : WTCP( 0x6746c7d8, 0x4b9e0390 ),
772 : WTCP( 0x66573cbb, 0x4ce10034 ),
773 : WTCP( 0x6563bf92, 0x4e210617 ),
774 : WTCP( 0x646c59bf, 0x4f5e08e3 ),
775 : WTCP( 0x637114cc, 0x5097fc5e ),
776 : WTCP( 0x6271fa69, 0x51ced46e ),
777 : WTCP( 0x616f146c, 0x53028518 ),
778 : WTCP( 0x60686ccf, 0x5433027d ),
779 : WTCP( 0x5f5e0db3, 0x556040e2 ),
780 : WTCP( 0x5e50015d, 0x568a34a9 ),
781 : WTCP( 0x5d3e5237, 0x57b0d256 ),
782 : WTCP( 0x5c290acc, 0x58d40e8c ),
783 : WTCP( 0x5b1035cf, 0x59f3de12 ),
784 : };
785 :
786 : const PWord16 SineWindow140[70] = { // Q15
787 : WTCP( 0x7fff7bff, 0x00b7d3bc ), WTCP( 0x7ffb5c00, 0x02277547 ), WTCP( 0x7ff31c25, 0x0397050d ), WTCP( 0x7fe6bcb0, 0x05067734 ),
788 : WTCP( 0x7fd63e09, 0x0675bfe7 ), WTCP( 0x7fc1a0b6, 0x07e4d34d ), WTCP( 0x7fa8e564, 0x0953a594 ), WTCP( 0x7f8c0cdc, 0x0ac22ae8 ),
789 : WTCP( 0x7f6b180f, 0x0c30577a ), WTCP( 0x7f46080a, 0x0d9e1f7d ), WTCP( 0x7f1cde01, 0x0f0b7727 ), WTCP( 0x7eef9b46, 0x107852b2 ),
790 : WTCP( 0x7ebe414f, 0x11e4a65c ), WTCP( 0x7e88d1b4, 0x13506668 ), WTCP( 0x7e4f4e2c, 0x14bb871b ), WTCP( 0x7e11b894, 0x1625fcc3 ),
791 : WTCP( 0x7dd012e6, 0x178fbbb1 ), WTCP( 0x7d8a5f40, 0x18f8b83c ), WTCP( 0x7d409fe1, 0x1a60e6c3 ), WTCP( 0x7cf2d72b, 0x1bc83baa ),
792 : WTCP( 0x7ca1079d, 0x1d2eab5d ), WTCP( 0x7c4b33dc, 0x1e942a4d ), WTCP( 0x7bf15eac, 0x1ff8acf7 ), WTCP( 0x7b938af1, 0x215c27dc ),
793 : WTCP( 0x7b31bbb2, 0x22be8f87 ), WTCP( 0x7acbf416, 0x241fd88e ), WTCP( 0x7a623764, 0x257ff78e ), WTCP( 0x79f48904, 0x26dee12c ),
794 : WTCP( 0x7982ec80, 0x283c8a1b ), WTCP( 0x790d6581, 0x2998e716 ), WTCP( 0x7893f7d1, 0x2af3ece2 ), WTCP( 0x7816a759, 0x2c4d9050 ),
795 : WTCP( 0x77957822, 0x2da5c63e ), WTCP( 0x77106e58, 0x2efc8393 ), WTCP( 0x76878e43, 0x3051bd43 ), WTCP( 0x75fadc4d, 0x31a56850 ),
796 : WTCP( 0x756a5cff, 0x32f779c7 ), WTCP( 0x74d61500, 0x3447e6c3 ), WTCP( 0x743e0918, 0x3596a46c ), WTCP( 0x73a23e2d, 0x36e3a7fa ),
797 : WTCP( 0x7302b945, 0x382ee6b0 ), WTCP( 0x725f7f84, 0x397855e1 ), WTCP( 0x71b8962b, 0x3abfeaf1 ), WTCP( 0x710e029e, 0x3c059b4f ),
798 : WTCP( 0x705fca59, 0x3d495c7e ), WTCP( 0x6fadf2fc, 0x3e8b240e ), WTCP( 0x6ef88241, 0x3fcae7a1 ), WTCP( 0x6e3f7e01, 0x41089ce8 ),
799 : WTCP( 0x6d82ec32, 0x424439a6 ), WTCP( 0x6cc2d2e9, 0x437db3b0 ), WTCP( 0x6bff3855, 0x44b500eb ), WTCP( 0x6b3822c6, 0x45ea1750 ),
800 : WTCP( 0x6a6d98a4, 0x471cece7 ), WTCP( 0x699fa078, 0x484d77ce ), WTCP( 0x68ce40e4, 0x497bae33 ), WTCP( 0x67f980a8, 0x4aa7865b ),
801 : WTCP( 0x6721669f, 0x4bd0f69b ), WTCP( 0x6645f9c0, 0x4cf7f55d ), WTCP( 0x6567411d, 0x4e1c791f ), WTCP( 0x648543e4, 0x4f3e7875 ),
802 : WTCP( 0x63a0095c, 0x505dea05 ), WTCP( 0x62b798ea, 0x517ac48c ), WTCP( 0x61cbfa0b, 0x5294fedd ), WTCP( 0x60dd3457, 0x53ac8fde ),
803 : WTCP( 0x5feb4f7f, 0x54c16e8e ), WTCP( 0x5ef6534f, 0x55d391ff ), WTCP( 0x5dfe47ad, 0x56e2f15d ), WTCP( 0x5d033497, 0x57ef83e9 ),
804 : WTCP( 0x5c052224, 0x58f940fa ), WTCP( 0x5b041885, 0x5a002001 )
805 : };
806 :
807 : const PWord16 SineWindow160[80] = {
808 : // Q15
809 : WTCP( 0x7fff9aef, 0x00a0d951 ),
810 : WTCP( 0x7ffc726f, 0x01e287fc ),
811 : WTCP( 0x7ff62182, 0x03242abf ),
812 : WTCP( 0x7feca851, 0x0465b9aa ),
813 : WTCP( 0x7fe00716, 0x05a72ccf ),
814 : WTCP( 0x7fd03e23, 0x06e87c3f ),
815 : WTCP( 0x7fbd4dda, 0x0829a00c ),
816 : WTCP( 0x7fa736b4, 0x096a9049 ),
817 : WTCP( 0x7f8df93c, 0x0aab450d ),
818 : WTCP( 0x7f719611, 0x0bebb66c ),
819 : WTCP( 0x7f520de6, 0x0d2bdc80 ),
820 : WTCP( 0x7f2f6183, 0x0e6baf61 ),
821 : WTCP( 0x7f0991c4, 0x0fab272b ),
822 : WTCP( 0x7ee09f95, 0x10ea3bfd ),
823 : WTCP( 0x7eb48bfb, 0x1228e5f8 ),
824 : WTCP( 0x7e85580c, 0x13671d3d ),
825 : WTCP( 0x7e5304f2, 0x14a4d9f4 ),
826 : WTCP( 0x7e1d93ea, 0x15e21445 ),
827 : WTCP( 0x7de50646, 0x171ec45c ),
828 : WTCP( 0x7da95d6c, 0x185ae269 ),
829 : WTCP( 0x7d6a9ad5, 0x199666a0 ),
830 : WTCP( 0x7d28c00c, 0x1ad14938 ),
831 : WTCP( 0x7ce3ceb2, 0x1c0b826a ),
832 : WTCP( 0x7c9bc87a, 0x1d450a78 ),
833 : WTCP( 0x7c50af2b, 0x1e7dd9a4 ),
834 : WTCP( 0x7c02849f, 0x1fb5e836 ),
835 : WTCP( 0x7bb14ac5, 0x20ed2e7b ),
836 : WTCP( 0x7b5d039e, 0x2223a4c5 ),
837 : WTCP( 0x7b05b13d, 0x2359436c ),
838 : WTCP( 0x7aab55ca, 0x248e02cb ),
839 : WTCP( 0x7a4df380, 0x25c1db44 ),
840 : WTCP( 0x79ed8cad, 0x26f4c53e ),
841 : WTCP( 0x798a23b1, 0x2826b928 ),
842 : WTCP( 0x7923bb01, 0x2957af74 ),
843 : WTCP( 0x78ba5524, 0x2a87a09d ),
844 : WTCP( 0x784df4b3, 0x2bb68522 ),
845 : WTCP( 0x77de9c5b, 0x2ce45589 ),
846 : WTCP( 0x776c4edb, 0x2e110a62 ),
847 : WTCP( 0x76f70f05, 0x2f3c9c40 ),
848 : WTCP( 0x767edfbe, 0x306703bf ),
849 : WTCP( 0x7603c3fd, 0x31903982 ),
850 : WTCP( 0x7585becb, 0x32b83634 ),
851 : WTCP( 0x7504d345, 0x33def287 ),
852 : WTCP( 0x74810499, 0x35046736 ),
853 : WTCP( 0x73fa5607, 0x36288d03 ),
854 : WTCP( 0x7370cae2, 0x374b5cb9 ),
855 : WTCP( 0x72e4668f, 0x386ccf2a ),
856 : WTCP( 0x72552c85, 0x398cdd32 ),
857 : WTCP( 0x71c3204c, 0x3aab7fb7 ),
858 : WTCP( 0x712e457f, 0x3bc8afa5 ),
859 : WTCP( 0x70969fca, 0x3ce465f3 ),
860 : WTCP( 0x6ffc32eb, 0x3dfe9ba1 ),
861 : WTCP( 0x6f5f02b2, 0x3f1749b8 ),
862 : WTCP( 0x6ebf12ff, 0x402e694c ),
863 : WTCP( 0x6e1c67c4, 0x4143f379 ),
864 : WTCP( 0x6d770506, 0x4257e166 ),
865 : WTCP( 0x6cceeed8, 0x436a2c45 ),
866 : WTCP( 0x6c242960, 0x447acd50 ),
867 : WTCP( 0x6b76b8d6, 0x4589bdcf ),
868 : WTCP( 0x6ac6a180, 0x4696f710 ),
869 : WTCP( 0x6a13e7b8, 0x47a27271 ),
870 : WTCP( 0x695e8fe5, 0x48ac2957 ),
871 : WTCP( 0x68a69e81, 0x49b41533 ),
872 : WTCP( 0x67ec1817, 0x4aba2f84 ),
873 : WTCP( 0x672f013f, 0x4bbe71d1 ),
874 : WTCP( 0x666f5ea6, 0x4cc0d5ae ),
875 : WTCP( 0x65ad3505, 0x4dc154bb ),
876 : WTCP( 0x64e88926, 0x4ebfe8a5 ),
877 : WTCP( 0x64215fe5, 0x4fbc8b22 ),
878 : WTCP( 0x6357be2a, 0x50b735f8 ),
879 : WTCP( 0x628ba8ef, 0x51afe2f6 ),
880 : WTCP( 0x61bd253f, 0x52a68bfb ),
881 : WTCP( 0x60ec3830, 0x539b2af0 ),
882 : WTCP( 0x6018e6eb, 0x548db9cb ),
883 : WTCP( 0x5f4336a7, 0x557e3292 ),
884 : WTCP( 0x5e6b2ca8, 0x566c8f55 ),
885 : WTCP( 0x5d90ce45, 0x5758ca31 ),
886 : WTCP( 0x5cb420e0, 0x5842dd54 ),
887 : WTCP( 0x5bd529eb, 0x592ac2f7 ),
888 : WTCP( 0x5af3eee6, 0x5a107561 ),
889 : };
890 :
891 : const PWord16 SineWindow180[90] = {
892 : // Q15
893 : WTCP( 0x7fffb026, 0x008efa17 ),
894 : WTCP( 0x7ffd3154, 0x01aceb7c ),
895 : WTCP( 0x7ff833bd, 0x02cad485 ),
896 : WTCP( 0x7ff0b77a, 0x03e8af9e ),
897 : WTCP( 0x7fe6bcb0, 0x05067734 ),
898 : WTCP( 0x7fda4391, 0x062425b6 ),
899 : WTCP( 0x7fcb4c5b, 0x0741b592 ),
900 : WTCP( 0x7fb9d759, 0x085f2137 ),
901 : WTCP( 0x7fa5e4e1, 0x097c6313 ),
902 : WTCP( 0x7f8f7559, 0x0a997598 ),
903 : WTCP( 0x7f76892f, 0x0bb65336 ),
904 : WTCP( 0x7f5b20df, 0x0cd2f660 ),
905 : WTCP( 0x7f3d3cf4, 0x0def598a ),
906 : WTCP( 0x7f1cde01, 0x0f0b7727 ),
907 : WTCP( 0x7efa04a8, 0x102749af ),
908 : WTCP( 0x7ed4b198, 0x1142cb98 ),
909 : WTCP( 0x7eace58a, 0x125df75b ),
910 : WTCP( 0x7e82a146, 0x1378c774 ),
911 : WTCP( 0x7e55e59e, 0x1493365f ),
912 : WTCP( 0x7e26b371, 0x15ad3e9a ),
913 : WTCP( 0x7df50bab, 0x16c6daa6 ),
914 : WTCP( 0x7dc0ef44, 0x17e00505 ),
915 : WTCP( 0x7d8a5f40, 0x18f8b83c ),
916 : WTCP( 0x7d515caf, 0x1a10eed3 ),
917 : WTCP( 0x7d15e8ad, 0x1b28a351 ),
918 : WTCP( 0x7cd80464, 0x1c3fd045 ),
919 : WTCP( 0x7c97b109, 0x1d56703c ),
920 : WTCP( 0x7c54efdc, 0x1e6c7dc7 ),
921 : WTCP( 0x7c0fc22a, 0x1f81f37c ),
922 : WTCP( 0x7bc8294d, 0x2096cbf1 ),
923 : WTCP( 0x7b7e26aa, 0x21ab01c0 ),
924 : WTCP( 0x7b31bbb2, 0x22be8f87 ),
925 : WTCP( 0x7ae2e9e4, 0x23d16fe8 ),
926 : WTCP( 0x7a91b2c7, 0x24e39d85 ),
927 : WTCP( 0x7a3e17f2, 0x25f51307 ),
928 : WTCP( 0x79e81b06, 0x2705cb19 ),
929 : WTCP( 0x798fbdb0, 0x2815c06a ),
930 : WTCP( 0x793501a9, 0x2924edac ),
931 : WTCP( 0x78d7e8b6, 0x2a334d96 ),
932 : WTCP( 0x787874a7, 0x2b40dae2 ),
933 : WTCP( 0x7816a759, 0x2c4d9050 ),
934 : WTCP( 0x77b282b3, 0x2d5968a3 ),
935 : WTCP( 0x774c08ab, 0x2e645ea1 ),
936 : WTCP( 0x76e33b3f, 0x2f6e6d16 ),
937 : WTCP( 0x76781c7a, 0x30778ed2 ),
938 : WTCP( 0x760aae73, 0x317fbeab ),
939 : WTCP( 0x759af34c, 0x3286f779 ),
940 : WTCP( 0x7528ed32, 0x338d341b ),
941 : WTCP( 0x74b49e5f, 0x34926f74 ),
942 : WTCP( 0x743e0918, 0x3596a46c ),
943 : WTCP( 0x73c52fab, 0x3699cdf2 ),
944 : WTCP( 0x734a1475, 0x379be6f6 ),
945 : WTCP( 0x72ccb9db, 0x389cea72 ),
946 : WTCP( 0x724d224f, 0x399cd362 ),
947 : WTCP( 0x71cb504e, 0x3a9b9cca ),
948 : WTCP( 0x71474660, 0x3b9941b1 ),
949 : WTCP( 0x70c10718, 0x3c95bd26 ),
950 : WTCP( 0x70389514, 0x3d910a3c ),
951 : WTCP( 0x6fadf2fc, 0x3e8b240e ),
952 : WTCP( 0x6f212385, 0x3f8405bc ),
953 : WTCP( 0x6e92296e, 0x407baa6a ),
954 : WTCP( 0x6e010780, 0x41720d46 ),
955 : WTCP( 0x6d6dc08f, 0x42672981 ),
956 : WTCP( 0x6cd8577a, 0x435afa54 ),
957 : WTCP( 0x6c40cf2c, 0x444d7aff ),
958 : WTCP( 0x6ba72a98, 0x453ea6c7 ),
959 : WTCP( 0x6b0b6cbd, 0x462e78f9 ),
960 : WTCP( 0x6a6d98a4, 0x471cece7 ),
961 : WTCP( 0x69cdb162, 0x4809fdeb ),
962 : WTCP( 0x692bba14, 0x48f5a767 ),
963 : WTCP( 0x6887b5e2, 0x49dfe4c2 ),
964 : WTCP( 0x67e1a7ff, 0x4ac8b16b ),
965 : WTCP( 0x673993a9, 0x4bb008d9 ),
966 : WTCP( 0x668f7c25, 0x4c95e688 ),
967 : WTCP( 0x65e364c4, 0x4d7a45fe ),
968 : WTCP( 0x653550e2, 0x4e5d22c6 ),
969 : WTCP( 0x648543e4, 0x4f3e7875 ),
970 : WTCP( 0x63d34137, 0x501e42a5 ),
971 : WTCP( 0x631f4c54, 0x50fc7cfb ),
972 : WTCP( 0x626968be, 0x51d92321 ),
973 : WTCP( 0x61b19a00, 0x52b430c9 ),
974 : WTCP( 0x60f7e3b0, 0x538da1ae ),
975 : WTCP( 0x603c496c, 0x54657194 ),
976 : WTCP( 0x5f7ecedd, 0x553b9c45 ),
977 : WTCP( 0x5ebf77b5, 0x56101d94 ),
978 : WTCP( 0x5dfe47ad, 0x56e2f15d ),
979 : WTCP( 0x5d3b428c, 0x57b41384 ),
980 : WTCP( 0x5c766c1c, 0x58837ff4 ),
981 : WTCP( 0x5bafc837, 0x595132a2 ),
982 : WTCP( 0x5ae75ab9, 0x5a1d278d ),
983 : };
984 :
985 :
986 : const PWord16 SineWindow224[112] = { // Q15
987 : WTCP( 0x7fffcc70, 0x0072e46e ), WTCP( 0x7ffe2fee, 0x0158abd6 ), WTCP( 0x7ffaf6f1, 0x023e6ee8 ), WTCP( 0x7ff62182, 0x03242abf ),
988 : WTCP( 0x7fefafb1, 0x0409dc76 ), WTCP( 0x7fe7a192, 0x04ef8129 ), WTCP( 0x7fddf741, 0x05d515f5 ), WTCP( 0x7fd2b0da, 0x06ba97f4 ),
989 : WTCP( 0x7fc5ce84, 0x07a00445 ), WTCP( 0x7fb75068, 0x08855802 ), WTCP( 0x7fa736b4, 0x096a9049 ), WTCP( 0x7f95819c, 0x0a4faa38 ),
990 : WTCP( 0x7f82315a, 0x0b34a2ec ), WTCP( 0x7f6d462b, 0x0c197784 ), WTCP( 0x7f56c053, 0x0cfe251d ), WTCP( 0x7f3ea01a, 0x0de2a8d7 ),
991 : WTCP( 0x7f24e5cf, 0x0ec6ffd1 ), WTCP( 0x7f0991c4, 0x0fab272b ), WTCP( 0x7eeca451, 0x108f1c07 ), WTCP( 0x7ece1dd3, 0x1172db86 ),
992 : WTCP( 0x7eadfeae, 0x125662c9 ), WTCP( 0x7e8c4748, 0x1339aef3 ), WTCP( 0x7e68f80e, 0x141cbd28 ), WTCP( 0x7e441171, 0x14ff8a8c ),
993 : WTCP( 0x7e1d93ea, 0x15e21445 ), WTCP( 0x7df57ff3, 0x16c45777 ), WTCP( 0x7dcbd60e, 0x17a6514a ), WTCP( 0x7da096c2, 0x1887fee6 ),
994 : WTCP( 0x7d73c299, 0x19695d74 ), WTCP( 0x7d455a24, 0x1a4a6a1c ), WTCP( 0x7d155df9, 0x1b2b220b ), WTCP( 0x7ce3ceb2, 0x1c0b826a ),
995 : WTCP( 0x7cb0acef, 0x1ceb8869 ), WTCP( 0x7c7bf954, 0x1dcb3134 ), WTCP( 0x7c45b48d, 0x1eaa79fa ), WTCP( 0x7c0ddf47, 0x1f895fed ),
996 : WTCP( 0x7bd47a36, 0x2067e03e ), WTCP( 0x7b998614, 0x2145f81f ), WTCP( 0x7b5d039e, 0x2223a4c5 ), WTCP( 0x7b1ef397, 0x2300e366 ),
997 : WTCP( 0x7adf56c8, 0x23ddb139 ), WTCP( 0x7a9e2dfd, 0x24ba0b76 ), WTCP( 0x7a5b7a09, 0x2595ef56 ), WTCP( 0x7a173bc2, 0x26715a16 ),
998 : WTCP( 0x79d17405, 0x274c48f2 ), WTCP( 0x798a23b1, 0x2826b928 ), WTCP( 0x79414bae, 0x2900a7f9 ), WTCP( 0x78f6ece5, 0x29da12a7 ),
999 : WTCP( 0x78ab0847, 0x2ab2f674 ), WTCP( 0x785d9ec8, 0x2b8b50a5 ), WTCP( 0x780eb161, 0x2c631e82 ), WTCP( 0x77be4111, 0x2d3a5d53 ),
1000 : WTCP( 0x776c4edb, 0x2e110a62 ), WTCP( 0x7718dbc8, 0x2ee722fb ), WTCP( 0x76c3e8e3, 0x2fbca46d ), WTCP( 0x766d773f, 0x30918c08 ),
1001 : WTCP( 0x761587f3, 0x3165d71c ), WTCP( 0x75bc1c1a, 0x323982ff ), WTCP( 0x756134d4, 0x330c8d05 ), WTCP( 0x7504d345, 0x33def287 ),
1002 : WTCP( 0x74a6f899, 0x34b0b0df ), WTCP( 0x7447a5fc, 0x3581c569 ), WTCP( 0x73e6dca3, 0x36522d83 ), WTCP( 0x73849dc5, 0x3721e68d ),
1003 : WTCP( 0x7320ea9f, 0x37f0edea ), WTCP( 0x72bbc472, 0x38bf40ff ), WTCP( 0x72552c85, 0x398cdd32 ), WTCP( 0x71ed2421, 0x3a59bfee ),
1004 : WTCP( 0x7183ac96, 0x3b25e69e ), WTCP( 0x7118c739, 0x3bf14eaf ), WTCP( 0x70ac7560, 0x3cbbf594 ), WTCP( 0x703eb86a, 0x3d85d8bd ),
1005 : WTCP( 0x6fcf91b9, 0x3e4ef5a1 ), WTCP( 0x6f5f02b2, 0x3f1749b8 ), WTCP( 0x6eed0cc0, 0x3fded27c ), WTCP( 0x6e79b152, 0x40a58d69 ),
1006 : WTCP( 0x6e04f1dd, 0x416b7801 ), WTCP( 0x6d8ecfd8, 0x42308fc4 ), WTCP( 0x6d174cc0, 0x42f4d237 ), WTCP( 0x6c9e6a16, 0x43b83ce3 ),
1007 : WTCP( 0x6c242960, 0x447acd50 ), WTCP( 0x6ba88c28, 0x453c810d ), WTCP( 0x6b2b93fd, 0x45fd55a9 ), WTCP( 0x6aad4270, 0x46bd48b7 ),
1008 : WTCP( 0x6a2d9919, 0x477c57cb ), WTCP( 0x69ac9994, 0x483a807f ), WTCP( 0x692a4580, 0x48f7c06d ), WTCP( 0x68a69e81, 0x49b41533 ),
1009 : WTCP( 0x6821a640, 0x4a6f7c74 ), WTCP( 0x679b5e68, 0x4b29f3d1 ), WTCP( 0x6713c8ac, 0x4be378f4 ), WTCP( 0x668ae6bf, 0x4c9c0985 ),
1010 : WTCP( 0x6600ba5b, 0x4d53a332 ), WTCP( 0x6575453d, 0x4e0a43ab ), WTCP( 0x64e88926, 0x4ebfe8a5 ), WTCP( 0x645a87dd, 0x4f748fd4 ),
1011 : WTCP( 0x63cb432a, 0x502836f4 ), WTCP( 0x633abcdc, 0x50dadbc1 ), WTCP( 0x62a8f6c4, 0x518c7bfb ), WTCP( 0x6215f2b9, 0x523d1567 ),
1012 : WTCP( 0x6181b292, 0x52eca5ca ), WTCP( 0x60ec3830, 0x539b2af0 ), WTCP( 0x60558573, 0x5448a2a5 ), WTCP( 0x5fbd9c41, 0x54f50abb ),
1013 : WTCP( 0x5f247e83, 0x55a06106 ), WTCP( 0x5e8a2e27, 0x564aa35d ), WTCP( 0x5deead1f, 0x56f3cf9d ), WTCP( 0x5d51fd5e, 0x579be3a4 ),
1014 : WTCP( 0x5cb420e0, 0x5842dd54 ), WTCP( 0x5c15199f, 0x58e8ba94 ), WTCP( 0x5b74e99d, 0x598d794c ), WTCP( 0x5ad392de, 0x5a31176a )
1015 : };
1016 :
1017 :
1018 : const PWord16 SineWindow256[128] = {
1019 : // Q15
1020 : WTCP( 0x7fffd886, 0x006487e3 ),
1021 : WTCP( 0x7ffe9cb2, 0x012d96b1 ),
1022 : WTCP( 0x7ffc250f, 0x01f6a297 ),
1023 : WTCP( 0x7ff871a2, 0x02bfa9a4 ),
1024 : WTCP( 0x7ff38274, 0x0388a9ea ),
1025 : WTCP( 0x7fed5791, 0x0451a177 ),
1026 : WTCP( 0x7fe5f108, 0x051a8e5c ),
1027 : WTCP( 0x7fdd4eec, 0x05e36ea9 ),
1028 : WTCP( 0x7fd37153, 0x06ac406f ),
1029 : WTCP( 0x7fc85854, 0x077501be ),
1030 : WTCP( 0x7fbc040a, 0x083db0a7 ),
1031 : WTCP( 0x7fae7495, 0x09064b3a ),
1032 : WTCP( 0x7f9faa15, 0x09cecf89 ),
1033 : WTCP( 0x7f8fa4b0, 0x0a973ba5 ),
1034 : WTCP( 0x7f7e648c, 0x0b5f8d9f ),
1035 : WTCP( 0x7f6be9d4, 0x0c27c389 ),
1036 : WTCP( 0x7f5834b7, 0x0cefdb76 ),
1037 : WTCP( 0x7f434563, 0x0db7d376 ),
1038 : WTCP( 0x7f2d1c0e, 0x0e7fa99e ),
1039 : WTCP( 0x7f15b8ee, 0x0f475bff ),
1040 : WTCP( 0x7efd1c3c, 0x100ee8ad ),
1041 : WTCP( 0x7ee34636, 0x10d64dbd ),
1042 : WTCP( 0x7ec8371a, 0x119d8941 ),
1043 : WTCP( 0x7eabef2c, 0x1264994e ),
1044 : WTCP( 0x7e8e6eb2, 0x132b7bf9 ),
1045 : WTCP( 0x7e6fb5f4, 0x13f22f58 ),
1046 : WTCP( 0x7e4fc53e, 0x14b8b17f ),
1047 : WTCP( 0x7e2e9cdf, 0x157f0086 ),
1048 : WTCP( 0x7e0c3d29, 0x16451a83 ),
1049 : WTCP( 0x7de8a670, 0x170afd8d ),
1050 : WTCP( 0x7dc3d90d, 0x17d0a7bc ),
1051 : WTCP( 0x7d9dd55a, 0x18961728 ),
1052 : WTCP( 0x7d769bb5, 0x195b49ea ),
1053 : WTCP( 0x7d4e2c7f, 0x1a203e1b ),
1054 : WTCP( 0x7d24881b, 0x1ae4f1d6 ),
1055 : WTCP( 0x7cf9aef0, 0x1ba96335 ),
1056 : WTCP( 0x7ccda169, 0x1c6d9053 ),
1057 : WTCP( 0x7ca05ff1, 0x1d31774d ),
1058 : WTCP( 0x7c71eaf9, 0x1df5163f ),
1059 : WTCP( 0x7c4242f2, 0x1eb86b46 ),
1060 : WTCP( 0x7c116853, 0x1f7b7481 ),
1061 : WTCP( 0x7bdf5b94, 0x203e300d ),
1062 : WTCP( 0x7bac1d31, 0x21009c0c ),
1063 : WTCP( 0x7b77ada8, 0x21c2b69c ),
1064 : WTCP( 0x7b420d7a, 0x22847de0 ),
1065 : WTCP( 0x7b0b3d2c, 0x2345eff8 ),
1066 : WTCP( 0x7ad33d45, 0x24070b08 ),
1067 : WTCP( 0x7a9a0e50, 0x24c7cd33 ),
1068 : WTCP( 0x7a5fb0d8, 0x2588349d ),
1069 : WTCP( 0x7a24256f, 0x26483f6c ),
1070 : WTCP( 0x79e76ca7, 0x2707ebc7 ),
1071 : WTCP( 0x79a98715, 0x27c737d3 ),
1072 : WTCP( 0x796a7554, 0x288621b9 ),
1073 : WTCP( 0x792a37fe, 0x2944a7a2 ),
1074 : WTCP( 0x78e8cfb2, 0x2a02c7b8 ),
1075 : WTCP( 0x78a63d11, 0x2ac08026 ),
1076 : WTCP( 0x786280bf, 0x2b7dcf17 ),
1077 : WTCP( 0x781d9b65, 0x2c3ab2b9 ),
1078 : WTCP( 0x77d78daa, 0x2cf72939 ),
1079 : WTCP( 0x7790583e, 0x2db330c7 ),
1080 : WTCP( 0x7747fbce, 0x2e6ec792 ),
1081 : WTCP( 0x76fe790e, 0x2f29ebcc ),
1082 : WTCP( 0x76b3d0b4, 0x2fe49ba7 ),
1083 : WTCP( 0x76680376, 0x309ed556 ),
1084 : WTCP( 0x761b1211, 0x3158970e ),
1085 : WTCP( 0x75ccfd42, 0x3211df04 ),
1086 : WTCP( 0x757dc5ca, 0x32caab6f ),
1087 : WTCP( 0x752d6c6c, 0x3382fa88 ),
1088 : WTCP( 0x74dbf1ef, 0x343aca87 ),
1089 : WTCP( 0x7489571c, 0x34f219a8 ),
1090 : WTCP( 0x74359cbd, 0x35a8e625 ),
1091 : WTCP( 0x73e0c3a3, 0x365f2e3b ),
1092 : WTCP( 0x738acc9e, 0x3714f02a ),
1093 : WTCP( 0x7333b883, 0x37ca2a30 ),
1094 : WTCP( 0x72db8828, 0x387eda8e ),
1095 : WTCP( 0x72823c67, 0x3932ff87 ),
1096 : WTCP( 0x7227d61c, 0x39e6975e ),
1097 : WTCP( 0x71cc5626, 0x3a99a057 ),
1098 : WTCP( 0x716fbd68, 0x3b4c18ba ),
1099 : WTCP( 0x71120cc5, 0x3bfdfecd ),
1100 : WTCP( 0x70b34525, 0x3caf50da ),
1101 : WTCP( 0x70536771, 0x3d600d2c ),
1102 : WTCP( 0x6ff27497, 0x3e10320d ),
1103 : WTCP( 0x6f906d84, 0x3ebfbdcd ),
1104 : WTCP( 0x6f2d532c, 0x3f6eaeb8 ),
1105 : WTCP( 0x6ec92683, 0x401d0321 ),
1106 : WTCP( 0x6e63e87f, 0x40cab958 ),
1107 : WTCP( 0x6dfd9a1c, 0x4177cfb1 ),
1108 : WTCP( 0x6d963c54, 0x42244481 ),
1109 : WTCP( 0x6d2dd027, 0x42d0161e ),
1110 : WTCP( 0x6cc45698, 0x437b42e1 ),
1111 : WTCP( 0x6c59d0a9, 0x4425c923 ),
1112 : WTCP( 0x6bee3f62, 0x44cfa740 ),
1113 : WTCP( 0x6b81a3cd, 0x4578db93 ),
1114 : WTCP( 0x6b13fef5, 0x4621647d ),
1115 : WTCP( 0x6aa551e9, 0x46c9405c ),
1116 : WTCP( 0x6a359db9, 0x47706d93 ),
1117 : WTCP( 0x69c4e37a, 0x4816ea86 ),
1118 : WTCP( 0x69532442, 0x48bcb599 ),
1119 : WTCP( 0x68e06129, 0x4961cd33 ),
1120 : WTCP( 0x686c9b4b, 0x4a062fbd ),
1121 : WTCP( 0x67f7d3c5, 0x4aa9dba2 ),
1122 : WTCP( 0x67820bb7, 0x4b4ccf4d ),
1123 : WTCP( 0x670b4444, 0x4bef092d ),
1124 : WTCP( 0x66937e91, 0x4c9087b1 ),
1125 : WTCP( 0x661abbc5, 0x4d31494b ),
1126 : WTCP( 0x65a0fd0b, 0x4dd14c6e ),
1127 : WTCP( 0x6526438f, 0x4e708f8f ),
1128 : WTCP( 0x64aa907f, 0x4f0f1126 ),
1129 : WTCP( 0x642de50d, 0x4faccfab ),
1130 : WTCP( 0x63b0426d, 0x5049c999 ),
1131 : WTCP( 0x6331a9d4, 0x50e5fd6d ),
1132 : WTCP( 0x62b21c7b, 0x518169a5 ),
1133 : WTCP( 0x62319b9d, 0x521c0cc2 ),
1134 : WTCP( 0x61b02876, 0x52b5e546 ),
1135 : WTCP( 0x612dc447, 0x534ef1b5 ),
1136 : WTCP( 0x60aa7050, 0x53e73097 ),
1137 : WTCP( 0x60262dd6, 0x547ea073 ),
1138 : WTCP( 0x5fa0fe1f, 0x55153fd4 ),
1139 : WTCP( 0x5f1ae274, 0x55ab0d46 ),
1140 : WTCP( 0x5e93dc1f, 0x56400758 ),
1141 : WTCP( 0x5e0bec6e, 0x56d42c99 ),
1142 : WTCP( 0x5d8314b1, 0x57677b9d ),
1143 : WTCP( 0x5cf95638, 0x57f9f2f8 ),
1144 : WTCP( 0x5c6eb258, 0x588b9140 ),
1145 : WTCP( 0x5be32a67, 0x591c550e ),
1146 : WTCP( 0x5b56bfbd, 0x59ac3cfd ),
1147 : WTCP( 0x5ac973b5, 0x5a3b47ab ),
1148 : };
1149 :
1150 : const PWord16 SineWindow280[140] = { // Q15
1151 : WTCP( 0x7fffdf00, 0x005be9f6 ), WTCP( 0x7ffed6ff, 0x0113bd23 ), WTCP( 0x7ffcc6ff, 0x01cb8e18 ), WTCP( 0x7ff9af04, 0x02835b5a ),
1152 : WTCP( 0x7ff58f15, 0x033b236c ), WTCP( 0x7ff0673a, 0x03f2e4d4 ), WTCP( 0x7fea377e, 0x04aa9e17 ), WTCP( 0x7fe2ffee, 0x05624dba ),
1153 : WTCP( 0x7fdac098, 0x0619f243 ), WTCP( 0x7fd1798e, 0x06d18a36 ), WTCP( 0x7fc72ae2, 0x07891418 ), WTCP( 0x7fbbd4aa, 0x08408e70 ),
1154 : WTCP( 0x7faf76fe, 0x08f7f7c3 ), WTCP( 0x7fa211f6, 0x09af4e96 ), WTCP( 0x7f93a5af, 0x0a66916f ), WTCP( 0x7f843246, 0x0b1dbed5 ),
1155 : WTCP( 0x7f73b7da, 0x0bd4d54d ), WTCP( 0x7f62368f, 0x0c8bd35e ), WTCP( 0x7f4fae88, 0x0d42b78f ), WTCP( 0x7f3c1fec, 0x0df98066 ),
1156 : WTCP( 0x7f278ae1, 0x0eb02c6a ), WTCP( 0x7f11ef95, 0x0f66ba22 ), WTCP( 0x7efb4e31, 0x101d2817 ), WTCP( 0x7ee3a6e7, 0x10d374cf ),
1157 : WTCP( 0x7ecaf9e5, 0x11899ed3 ), WTCP( 0x7eb1475f, 0x123fa4ab ), WTCP( 0x7e968f8b, 0x12f584e0 ), WTCP( 0x7e7ad29e, 0x13ab3dfa ),
1158 : WTCP( 0x7e5e10d3, 0x1460ce82 ), WTCP( 0x7e404a65, 0x15163503 ), WTCP( 0x7e217f90, 0x15cb7006 ), WTCP( 0x7e01b096, 0x16807e15 ),
1159 : WTCP( 0x7de0ddb6, 0x17355dba ), WTCP( 0x7dbf0736, 0x17ea0d81 ), WTCP( 0x7d9c2d5a, 0x189e8bf6 ), WTCP( 0x7d78506a, 0x1952d7a3 ),
1160 : WTCP( 0x7d5370b2, 0x1a06ef15 ), WTCP( 0x7d2d8e7b, 0x1abad0d8 ), WTCP( 0x7d06aa16, 0x1b6e7b7a ), WTCP( 0x7cdec3d2, 0x1c21ed87 ),
1161 : WTCP( 0x7cb5dc00, 0x1cd5258f ), WTCP( 0x7c8bf2f7, 0x1d88221e ), WTCP( 0x7c61090b, 0x1e3ae1c5 ), WTCP( 0x7c351e96, 0x1eed6311 ),
1162 : WTCP( 0x7c0833f3, 0x1f9fa494 ), WTCP( 0x7bda497d, 0x2051a4dd ), WTCP( 0x7bab5f93, 0x2103627d ), WTCP( 0x7b7b7697, 0x21b4dc06 ),
1163 : WTCP( 0x7b4a8eeb, 0x2266100a ), WTCP( 0x7b18a8f4, 0x2316fd1b ), WTCP( 0x7ae5c518, 0x23c7a1cc ), WTCP( 0x7ab1e3c2, 0x2477fcb1 ),
1164 : WTCP( 0x7a7d055b, 0x25280c5e ), WTCP( 0x7a472a51, 0x25d7cf68 ), WTCP( 0x7a105313, 0x26874464 ), WTCP( 0x79d88013, 0x273669e9 ),
1165 : WTCP( 0x799fb1c2, 0x27e53e8e ), WTCP( 0x7965e897, 0x2893c0e9 ), WTCP( 0x792b2508, 0x2941ef93 ), WTCP( 0x78ef678f, 0x29efc925 ),
1166 : WTCP( 0x78b2b0a7, 0x2a9d4c38 ), WTCP( 0x787500ce, 0x2b4a7766 ), WTCP( 0x78365881, 0x2bf7494a ), WTCP( 0x77f6b844, 0x2ca3c07f ),
1167 : WTCP( 0x77b62098, 0x2d4fdba2 ), WTCP( 0x77749203, 0x2dfb9950 ), WTCP( 0x77320d0d, 0x2ea6f827 ), WTCP( 0x76ee923e, 0x2f51f6c4 ),
1168 : WTCP( 0x76aa2222, 0x2ffc93c9 ), WTCP( 0x7664bd46, 0x30a6cdd3 ), WTCP( 0x761e6439, 0x3150a385 ), WTCP( 0x75d7178c, 0x31fa1381 ),
1169 : WTCP( 0x758ed7d2, 0x32a31c68 ), WTCP( 0x7545a5a0, 0x334bbcde ), WTCP( 0x74fb818e, 0x33f3f387 ), WTCP( 0x74b06c33, 0x349bbf09 ),
1170 : WTCP( 0x7464662c, 0x35431e09 ), WTCP( 0x74177014, 0x35ea0f2e ), WTCP( 0x73c98a8a, 0x36909120 ), WTCP( 0x737ab630, 0x3736a287 ),
1171 : WTCP( 0x732af3a7, 0x37dc420c ), WTCP( 0x72da4395, 0x38816e5b ), WTCP( 0x7288a69f, 0x3926261e ), WTCP( 0x72361d6e, 0x39ca6802 ),
1172 : WTCP( 0x71e2a8ad, 0x3a6e32b4 ), WTCP( 0x718e4907, 0x3b1184e2 ), WTCP( 0x7138ff2a, 0x3bb45d3b ), WTCP( 0x70e2cbc6, 0x3c56ba70 ),
1173 : WTCP( 0x708baf8d, 0x3cf89b31 ), WTCP( 0x7033ab34, 0x3d99fe31 ), WTCP( 0x6fdabf6e, 0x3e3ae223 ), WTCP( 0x6f80ecf4, 0x3edb45ba ),
1174 : WTCP( 0x6f26347f, 0x3f7b27ac ), WTCP( 0x6eca96ca, 0x401a86b0 ), WTCP( 0x6e6e1492, 0x40b9617d ), WTCP( 0x6e10ae96, 0x4157b6ca ),
1175 : WTCP( 0x6db26597, 0x41f58552 ), WTCP( 0x6d533a56, 0x4292cbcf ), WTCP( 0x6cf32d99, 0x432f88fc ), WTCP( 0x6c924024, 0x43cbbb97 ),
1176 : WTCP( 0x6c3072c1, 0x4467625d ), WTCP( 0x6bcdc639, 0x45027c0c ), WTCP( 0x6b6a3b58, 0x459d0766 ), WTCP( 0x6b05d2ea, 0x4637032c ),
1177 : WTCP( 0x6aa08dbf, 0x46d06e1f ), WTCP( 0x6a3a6ca8, 0x47694703 ), WTCP( 0x69d37078, 0x48018c9e ), WTCP( 0x696b9a02, 0x48993db5 ),
1178 : WTCP( 0x6902ea1d, 0x4930590f ), WTCP( 0x689961a1, 0x49c6dd74 ), WTCP( 0x682f0167, 0x4a5cc9af ), WTCP( 0x67c3ca4c, 0x4af21c89 ),
1179 : WTCP( 0x6757bd2b, 0x4b86d4cf ), WTCP( 0x66eadae5, 0x4c1af14f ), WTCP( 0x667d2459, 0x4cae70d6 ), WTCP( 0x660e9a6a, 0x4d415234 ),
1180 : WTCP( 0x659f3dfc, 0x4dd3943b ), WTCP( 0x652f0ff4, 0x4e6535bd ), WTCP( 0x64be113a, 0x4ef6358d ), WTCP( 0x644c42b8, 0x4f869280 ),
1181 : WTCP( 0x63d9a556, 0x50164b6d ), WTCP( 0x63663a03, 0x50a55f2c ), WTCP( 0x62f201ac, 0x5133cc94 ), WTCP( 0x627cfd41, 0x51c19281 ),
1182 : WTCP( 0x62072db3, 0x524eafce ), WTCP( 0x619093f5, 0x52db2357 ), WTCP( 0x611930fc, 0x5366ebfc ), WTCP( 0x60a105be, 0x53f2089b ),
1183 : WTCP( 0x60281333, 0x547c7817 ), WTCP( 0x5fae5a55, 0x55063951 ), WTCP( 0x5f33dc1d, 0x558f4b2d ), WTCP( 0x5eb8998a, 0x5617ac90 ),
1184 : WTCP( 0x5e3c9399, 0x569f5c62 ), WTCP( 0x5dbfcb4a, 0x5726598b ), WTCP( 0x5d42419f, 0x57aca2f3 ), WTCP( 0x5cc3f79a, 0x58323787 ),
1185 : WTCP( 0x5c44ee40, 0x58b71632 ), WTCP( 0x5bc52696, 0x593b3de2 ), WTCP( 0x5b44a1a5, 0x59bead87 ), WTCP( 0x5ac36076, 0x5a416413 )
1186 : };
1187 :
1188 : const PWord16 SineWindow320[160] = {
1189 : // Q15
1190 : WTCP( 0x7fffe6bc, 0x00506cb9 ),
1191 : WTCP( 0x7fff1c9b, 0x00f145ab ),
1192 : WTCP( 0x7ffd885a, 0x01921d20 ),
1193 : WTCP( 0x7ffb29fd, 0x0232f21a ),
1194 : WTCP( 0x7ff80186, 0x02d3c39b ),
1195 : WTCP( 0x7ff40efa, 0x037490a5 ),
1196 : WTCP( 0x7fef5260, 0x0415583b ),
1197 : WTCP( 0x7fe9cbc0, 0x04b6195d ),
1198 : WTCP( 0x7fe37b22, 0x0556d30f ),
1199 : WTCP( 0x7fdc608f, 0x05f78453 ),
1200 : WTCP( 0x7fd47c14, 0x06982c2b ),
1201 : WTCP( 0x7fcbcdbc, 0x0738c998 ),
1202 : WTCP( 0x7fc25596, 0x07d95b9e ),
1203 : WTCP( 0x7fb813b0, 0x0879e140 ),
1204 : WTCP( 0x7fad081b, 0x091a597e ),
1205 : WTCP( 0x7fa132e8, 0x09bac35d ),
1206 : WTCP( 0x7f949429, 0x0a5b1dde ),
1207 : WTCP( 0x7f872bf3, 0x0afb6805 ),
1208 : WTCP( 0x7f78fa5b, 0x0b9ba0d5 ),
1209 : WTCP( 0x7f69ff76, 0x0c3bc74f ),
1210 : WTCP( 0x7f5a3b5e, 0x0cdbda79 ),
1211 : WTCP( 0x7f49ae2a, 0x0d7bd954 ),
1212 : WTCP( 0x7f3857f6, 0x0e1bc2e4 ),
1213 : WTCP( 0x7f2638db, 0x0ebb962c ),
1214 : WTCP( 0x7f1350f8, 0x0f5b5231 ),
1215 : WTCP( 0x7effa069, 0x0ffaf5f6 ),
1216 : WTCP( 0x7eeb274d, 0x109a807e ),
1217 : WTCP( 0x7ed5e5c6, 0x1139f0cf ),
1218 : WTCP( 0x7ebfdbf5, 0x11d945eb ),
1219 : WTCP( 0x7ea909fc, 0x12787ed8 ),
1220 : WTCP( 0x7e917000, 0x13179a9b ),
1221 : WTCP( 0x7e790e25, 0x13b69836 ),
1222 : WTCP( 0x7e5fe493, 0x145576b1 ),
1223 : WTCP( 0x7e45f371, 0x14f43510 ),
1224 : WTCP( 0x7e2b3ae8, 0x1592d257 ),
1225 : WTCP( 0x7e0fbb22, 0x16314d8e ),
1226 : WTCP( 0x7df3744b, 0x16cfa5b9 ),
1227 : WTCP( 0x7dd6668f, 0x176dd9de ),
1228 : WTCP( 0x7db8921c, 0x180be904 ),
1229 : WTCP( 0x7d99f721, 0x18a9d231 ),
1230 : WTCP( 0x7d7a95cf, 0x1947946c ),
1231 : WTCP( 0x7d5a6e57, 0x19e52ebb ),
1232 : WTCP( 0x7d3980ec, 0x1a82a026 ),
1233 : WTCP( 0x7d17cdc2, 0x1b1fe7b3 ),
1234 : WTCP( 0x7cf5550e, 0x1bbd046c ),
1235 : WTCP( 0x7cd21707, 0x1c59f557 ),
1236 : WTCP( 0x7cae13e4, 0x1cf6b97c ),
1237 : WTCP( 0x7c894bde, 0x1d934fe5 ),
1238 : WTCP( 0x7c63bf2f, 0x1e2fb79a ),
1239 : WTCP( 0x7c3d6e13, 0x1ecbefa4 ),
1240 : WTCP( 0x7c1658c5, 0x1f67f70b ),
1241 : WTCP( 0x7bee7f85, 0x2003ccdb ),
1242 : WTCP( 0x7bc5e290, 0x209f701c ),
1243 : WTCP( 0x7b9c8226, 0x213adfda ),
1244 : WTCP( 0x7b725e8a, 0x21d61b1e ),
1245 : WTCP( 0x7b4777fe, 0x227120f3 ),
1246 : WTCP( 0x7b1bcec4, 0x230bf065 ),
1247 : WTCP( 0x7aef6323, 0x23a6887f ),
1248 : WTCP( 0x7ac23561, 0x2440e84d ),
1249 : WTCP( 0x7a9445c5, 0x24db0edb ),
1250 : WTCP( 0x7a659496, 0x2574fb36 ),
1251 : WTCP( 0x7a362220, 0x260eac6a ),
1252 : WTCP( 0x7a05eead, 0x26a82186 ),
1253 : WTCP( 0x79d4fa89, 0x27415996 ),
1254 : WTCP( 0x79a34602, 0x27da53a9 ),
1255 : WTCP( 0x7970d165, 0x28730ecd ),
1256 : WTCP( 0x793d9d03, 0x290b8a12 ),
1257 : WTCP( 0x7909a92d, 0x29a3c485 ),
1258 : WTCP( 0x78d4f634, 0x2a3bbd37 ),
1259 : WTCP( 0x789f846b, 0x2ad37338 ),
1260 : WTCP( 0x78695428, 0x2b6ae598 ),
1261 : WTCP( 0x783265c0, 0x2c021369 ),
1262 : WTCP( 0x77fab989, 0x2c98fbba ),
1263 : WTCP( 0x77c24fdb, 0x2d2f9d9f ),
1264 : WTCP( 0x77892910, 0x2dc5f829 ),
1265 : WTCP( 0x774f4581, 0x2e5c0a6b ),
1266 : WTCP( 0x7714a58b, 0x2ef1d377 ),
1267 : WTCP( 0x76d94989, 0x2f875262 ),
1268 : WTCP( 0x769d31d9, 0x301c863f ),
1269 : WTCP( 0x76605edb, 0x30b16e23 ),
1270 : WTCP( 0x7622d0ef, 0x31460922 ),
1271 : WTCP( 0x75e48874, 0x31da5651 ),
1272 : WTCP( 0x75a585cf, 0x326e54c7 ),
1273 : WTCP( 0x7565c962, 0x3302039b ),
1274 : WTCP( 0x75255392, 0x339561e1 ),
1275 : WTCP( 0x74e424c5, 0x34286eb3 ),
1276 : WTCP( 0x74a23d62, 0x34bb2927 ),
1277 : WTCP( 0x745f9dd1, 0x354d9057 ),
1278 : WTCP( 0x741c467b, 0x35dfa35a ),
1279 : WTCP( 0x73d837ca, 0x3671614b ),
1280 : WTCP( 0x7393722a, 0x3702c942 ),
1281 : WTCP( 0x734df607, 0x3793da5b ),
1282 : WTCP( 0x7307c3d0, 0x382493b0 ),
1283 : WTCP( 0x72c0dbf3, 0x38b4f45d ),
1284 : WTCP( 0x72793edf, 0x3944fb7e ),
1285 : WTCP( 0x7230ed07, 0x39d4a82f ),
1286 : WTCP( 0x71e7e6dc, 0x3a63f98d ),
1287 : WTCP( 0x719e2cd2, 0x3af2eeb7 ),
1288 : WTCP( 0x7153bf5d, 0x3b8186ca ),
1289 : WTCP( 0x71089ef2, 0x3c0fc0e6 ),
1290 : WTCP( 0x70bccc09, 0x3c9d9c28 ),
1291 : WTCP( 0x70704718, 0x3d2b17b3 ),
1292 : WTCP( 0x7023109a, 0x3db832a6 ),
1293 : WTCP( 0x6fd52907, 0x3e44ec22 ),
1294 : WTCP( 0x6f8690db, 0x3ed14349 ),
1295 : WTCP( 0x6f374891, 0x3f5d373e ),
1296 : WTCP( 0x6ee750a8, 0x3fe8c724 ),
1297 : WTCP( 0x6e96a99d, 0x4073f21d ),
1298 : WTCP( 0x6e4553ef, 0x40feb74f ),
1299 : WTCP( 0x6df35020, 0x418915de ),
1300 : WTCP( 0x6da09eb1, 0x42130cf0 ),
1301 : WTCP( 0x6d4d4023, 0x429c9bab ),
1302 : WTCP( 0x6cf934fc, 0x4325c135 ),
1303 : WTCP( 0x6ca47dbf, 0x43ae7cb7 ),
1304 : WTCP( 0x6c4f1af2, 0x4436cd58 ),
1305 : WTCP( 0x6bf90d1d, 0x44beb240 ),
1306 : WTCP( 0x6ba254c7, 0x45462a9a ),
1307 : WTCP( 0x6b4af279, 0x45cd358f ),
1308 : WTCP( 0x6af2e6bc, 0x4653d24b ),
1309 : WTCP( 0x6a9a321d, 0x46d9fff8 ),
1310 : WTCP( 0x6a40d527, 0x475fbdc3 ),
1311 : WTCP( 0x69e6d067, 0x47e50ad8 ),
1312 : WTCP( 0x698c246c, 0x4869e665 ),
1313 : WTCP( 0x6930d1c4, 0x48ee4f98 ),
1314 : WTCP( 0x68d4d900, 0x497245a1 ),
1315 : WTCP( 0x68783ab1, 0x49f5c7ae ),
1316 : WTCP( 0x681af76a, 0x4a78d4f0 ),
1317 : WTCP( 0x67bd0fbd, 0x4afb6c98 ),
1318 : WTCP( 0x675e843e, 0x4b7d8dd8 ),
1319 : WTCP( 0x66ff5584, 0x4bff37e2 ),
1320 : WTCP( 0x669f8425, 0x4c8069ea ),
1321 : WTCP( 0x663f10b7, 0x4d012324 ),
1322 : WTCP( 0x65ddfbd3, 0x4d8162c4 ),
1323 : WTCP( 0x657c4613, 0x4e012800 ),
1324 : WTCP( 0x6519f010, 0x4e80720e ),
1325 : WTCP( 0x64b6fa66, 0x4eff4025 ),
1326 : WTCP( 0x645365b2, 0x4f7d917c ),
1327 : WTCP( 0x63ef3290, 0x4ffb654d ),
1328 : WTCP( 0x638a619e, 0x5078bad1 ),
1329 : WTCP( 0x6324f37d, 0x50f59141 ),
1330 : WTCP( 0x62bee8cc, 0x5171e7d9 ),
1331 : WTCP( 0x6258422c, 0x51edbdd4 ),
1332 : WTCP( 0x61f1003f, 0x5269126e ),
1333 : WTCP( 0x618923a9, 0x52e3e4e6 ),
1334 : WTCP( 0x6120ad0d, 0x535e3479 ),
1335 : WTCP( 0x60b79d10, 0x53d80065 ),
1336 : WTCP( 0x604df459, 0x545147eb ),
1337 : WTCP( 0x5fe3b38d, 0x54ca0a4b ),
1338 : WTCP( 0x5f78db56, 0x554246c6 ),
1339 : WTCP( 0x5f0d6c5b, 0x55b9fc9e ),
1340 : WTCP( 0x5ea16747, 0x56312b17 ),
1341 : WTCP( 0x5e34ccc3, 0x56a7d174 ),
1342 : WTCP( 0x5dc79d7c, 0x571deefa ),
1343 : WTCP( 0x5d59da1e, 0x579382ee ),
1344 : WTCP( 0x5ceb8355, 0x58088c96 ),
1345 : WTCP( 0x5c7c99d1, 0x587d0b3b ),
1346 : WTCP( 0x5c0d1e41, 0x58f0fe23 ),
1347 : WTCP( 0x5b9d1154, 0x59646498 ),
1348 : WTCP( 0x5b2c73bb, 0x59d73de3 ),
1349 : WTCP( 0x5abb4629, 0x5a498950 ),
1350 : };
1351 :
1352 :
1353 : const PWord16 SineWindow420[210] = { // Q15
1354 : WTCP( 0x7ffff155, 0x003d46a7 ), WTCP( 0x7fff7bff, 0x00b7d3bc ), WTCP( 0x7ffe9154, 0x01326029 ), WTCP( 0x7ffd3154, 0x01aceb7c ),
1355 : WTCP( 0x7ffb5c00, 0x02277547 ), WTCP( 0x7ff9115b, 0x02a1fd18 ), WTCP( 0x7ff65166, 0x031c8280 ), WTCP( 0x7ff31c25, 0x0397050d ),
1356 : WTCP( 0x7fef7199, 0x0411844f ), WTCP( 0x7feb51c6, 0x048bffd7 ), WTCP( 0x7fe6bcb0, 0x05067734 ), WTCP( 0x7fe1b25b, 0x0580e9f6 ),
1357 : WTCP( 0x7fdc32cc, 0x05fb57ac ), WTCP( 0x7fd63e09, 0x0675bfe7 ), WTCP( 0x7fcfd415, 0x06f02235 ), WTCP( 0x7fc8f4f7, 0x076a7e27 ),
1358 : WTCP( 0x7fc1a0b6, 0x07e4d34d ), WTCP( 0x7fb9d759, 0x085f2137 ), WTCP( 0x7fb198e5, 0x08d96773 ), WTCP( 0x7fa8e564, 0x0953a594 ),
1359 : WTCP( 0x7f9fbcdc, 0x09cddb27 ), WTCP( 0x7f961f57, 0x0a4807be ), WTCP( 0x7f8c0cdc, 0x0ac22ae8 ), WTCP( 0x7f818577, 0x0b3c4435 ),
1360 : WTCP( 0x7f76892f, 0x0bb65336 ), WTCP( 0x7f6b180f, 0x0c30577a ), WTCP( 0x7f5f3221, 0x0caa5092 ), WTCP( 0x7f52d771, 0x0d243e0d ),
1361 : WTCP( 0x7f46080a, 0x0d9e1f7d ), WTCP( 0x7f38c3f7, 0x0e17f471 ), WTCP( 0x7f2b0b45, 0x0e91bc79 ), WTCP( 0x7f1cde01, 0x0f0b7727 ),
1362 : WTCP( 0x7f0e3c36, 0x0f85240a ), WTCP( 0x7eff25f3, 0x0ffec2b3 ), WTCP( 0x7eef9b46, 0x107852b2 ), WTCP( 0x7edf9c3c, 0x10f1d398 ),
1363 : WTCP( 0x7ecf28e5, 0x116b44f6 ), WTCP( 0x7ebe414f, 0x11e4a65c ), WTCP( 0x7eace58a, 0x125df75b ), WTCP( 0x7e9b15a6, 0x12d73784 ),
1364 : WTCP( 0x7e88d1b4, 0x13506668 ), WTCP( 0x7e7619c3, 0x13c98397 ), WTCP( 0x7e62ede5, 0x14428ea2 ), WTCP( 0x7e4f4e2c, 0x14bb871b ),
1365 : WTCP( 0x7e3b3aaa, 0x15346c93 ), WTCP( 0x7e26b371, 0x15ad3e9a ), WTCP( 0x7e11b894, 0x1625fcc3 ), WTCP( 0x7dfc4a26, 0x169ea69e ),
1366 : WTCP( 0x7de6683a, 0x17173bbd ), WTCP( 0x7dd012e6, 0x178fbbb1 ), WTCP( 0x7db94a3c, 0x1808260c ), WTCP( 0x7da20e53, 0x18807a5f ),
1367 : WTCP( 0x7d8a5f40, 0x18f8b83c ), WTCP( 0x7d723d18, 0x1970df36 ), WTCP( 0x7d59a7f1, 0x19e8eedd ), WTCP( 0x7d409fe1, 0x1a60e6c3 ),
1368 : WTCP( 0x7d272501, 0x1ad8c67c ), WTCP( 0x7d0d3767, 0x1b508d98 ), WTCP( 0x7cf2d72b, 0x1bc83baa ), WTCP( 0x7cd80464, 0x1c3fd045 ),
1369 : WTCP( 0x7cbcbf2d, 0x1cb74afa ), WTCP( 0x7ca1079d, 0x1d2eab5d ), WTCP( 0x7c84ddcf, 0x1da5f0ff ), WTCP( 0x7c6841db, 0x1e1d1b73 ),
1370 : WTCP( 0x7c4b33dc, 0x1e942a4d ), WTCP( 0x7c2db3ee, 0x1f0b1d1f ), WTCP( 0x7c0fc22a, 0x1f81f37c ), WTCP( 0x7bf15eac, 0x1ff8acf7 ),
1371 : WTCP( 0x7bd28991, 0x206f4923 ), WTCP( 0x7bb342f3, 0x20e5c793 ), WTCP( 0x7b938af1, 0x215c27dc ), WTCP( 0x7b7361a7, 0x21d2698f ),
1372 : WTCP( 0x7b52c733, 0x22488c42 ), WTCP( 0x7b31bbb2, 0x22be8f87 ), WTCP( 0x7b103f43, 0x233472f3 ), WTCP( 0x7aee5205, 0x23aa361a ),
1373 : WTCP( 0x7acbf416, 0x241fd88e ), WTCP( 0x7aa92596, 0x249559e6 ), WTCP( 0x7a85e6a5, 0x250ab9b4 ), WTCP( 0x7a623764, 0x257ff78e ),
1374 : WTCP( 0x7a3e17f2, 0x25f51307 ), WTCP( 0x7a198872, 0x266a0bb5 ), WTCP( 0x79f48904, 0x26dee12c ), WTCP( 0x79cf19cb, 0x27539302 ),
1375 : WTCP( 0x79a93ae9, 0x27c820ca ), WTCP( 0x7982ec80, 0x283c8a1b ), WTCP( 0x795c2eb5, 0x28b0ce8a ), WTCP( 0x793501a9, 0x2924edac ),
1376 : WTCP( 0x790d6581, 0x2998e716 ), WTCP( 0x78e55a62, 0x2a0cba5e ), WTCP( 0x78bce070, 0x2a80671b ), WTCP( 0x7893f7d1, 0x2af3ece2 ),
1377 : WTCP( 0x786aa0a9, 0x2b674b49 ), WTCP( 0x7840db1f, 0x2bda81e6 ), WTCP( 0x7816a759, 0x2c4d9050 ), WTCP( 0x77ec057d, 0x2cc0761e ),
1378 : WTCP( 0x77c0f5b3, 0x2d3332e5 ), WTCP( 0x77957822, 0x2da5c63e ), WTCP( 0x77698cf3, 0x2e182fbe ), WTCP( 0x773d344d, 0x2e8a6efd ),
1379 : WTCP( 0x77106e58, 0x2efc8393 ), WTCP( 0x76e33b3f, 0x2f6e6d16 ), WTCP( 0x76b59b2a, 0x2fe02b1e ), WTCP( 0x76878e43, 0x3051bd43 ),
1380 : WTCP( 0x765914b5, 0x30c3231d ), WTCP( 0x762a2eaa, 0x31345c44 ), WTCP( 0x75fadc4d, 0x31a56850 ), WTCP( 0x75cb1dca, 0x321646d9 ),
1381 : WTCP( 0x759af34c, 0x3286f779 ), WTCP( 0x756a5cff, 0x32f779c7 ), WTCP( 0x75395b10, 0x3367cd5d ), WTCP( 0x7507edac, 0x33d7f1d3 ),
1382 : WTCP( 0x74d61500, 0x3447e6c3 ), WTCP( 0x74a3d13a, 0x34b7abc6 ), WTCP( 0x74712288, 0x35274076 ), WTCP( 0x743e0918, 0x3596a46c ),
1383 : WTCP( 0x740a8519, 0x3605d743 ), WTCP( 0x73d696bb, 0x3674d894 ), WTCP( 0x73a23e2d, 0x36e3a7fa ), WTCP( 0x736d7b9f, 0x3752450f ),
1384 : WTCP( 0x73384f41, 0x37c0af6d ), WTCP( 0x7302b945, 0x382ee6b0 ), WTCP( 0x72ccb9db, 0x389cea72 ), WTCP( 0x72965134, 0x390aba4f ),
1385 : WTCP( 0x725f7f84, 0x397855e1 ), WTCP( 0x722844fb, 0x39e5bcc5 ), WTCP( 0x71f0a1cc, 0x3a52ee96 ), WTCP( 0x71b8962b, 0x3abfeaf1 ),
1386 : WTCP( 0x7180224b, 0x3b2cb170 ), WTCP( 0x71474660, 0x3b9941b1 ), WTCP( 0x710e029e, 0x3c059b4f ), WTCP( 0x70d45738, 0x3c71bde8 ),
1387 : WTCP( 0x709a4465, 0x3cdda919 ), WTCP( 0x705fca59, 0x3d495c7e ), WTCP( 0x7024e94b, 0x3db4d7b5 ), WTCP( 0x6fe9a16f, 0x3e201a5b ),
1388 : WTCP( 0x6fadf2fc, 0x3e8b240e ), WTCP( 0x6f71de2a, 0x3ef5f46c ), WTCP( 0x6f35632e, 0x3f608b13 ), WTCP( 0x6ef88241, 0x3fcae7a1 ),
1389 : WTCP( 0x6ebb3b9a, 0x403509b4 ), WTCP( 0x6e7d8f72, 0x409ef0ed ), WTCP( 0x6e3f7e01, 0x41089ce8 ), WTCP( 0x6e010780, 0x41720d46 ),
1390 : WTCP( 0x6dc22c28, 0x41db41a5 ), WTCP( 0x6d82ec32, 0x424439a6 ), WTCP( 0x6d4347da, 0x42acf4e8 ), WTCP( 0x6d033f58, 0x4315730c ),
1391 : WTCP( 0x6cc2d2e9, 0x437db3b0 ), WTCP( 0x6c8202c6, 0x43e5b676 ), WTCP( 0x6c40cf2c, 0x444d7aff ), WTCP( 0x6bff3855, 0x44b500eb ),
1392 : WTCP( 0x6bbd3e7f, 0x451c47dc ), WTCP( 0x6b7ae1e6, 0x45834f72 ), WTCP( 0x6b3822c6, 0x45ea1750 ), WTCP( 0x6af5015c, 0x46509f16 ),
1393 : WTCP( 0x6ab17de7, 0x46b6e668 ), WTCP( 0x6a6d98a4, 0x471cece7 ), WTCP( 0x6a2951d2, 0x4782b236 ), WTCP( 0x69e4a9ae, 0x47e835f7 ),
1394 : WTCP( 0x699fa078, 0x484d77ce ), WTCP( 0x695a366f, 0x48b2775d ), WTCP( 0x69146bd3, 0x49173448 ), WTCP( 0x68ce40e4, 0x497bae33 ),
1395 : WTCP( 0x6887b5e2, 0x49dfe4c2 ), WTCP( 0x6840cb0e, 0x4a43d799 ), WTCP( 0x67f980a8, 0x4aa7865b ), WTCP( 0x67b1d6f3, 0x4b0af0ae ),
1396 : WTCP( 0x6769ce2f, 0x4b6e1637 ), WTCP( 0x6721669f, 0x4bd0f69b ), WTCP( 0x66d8a085, 0x4c33917f ), WTCP( 0x668f7c25, 0x4c95e688 ),
1397 : WTCP( 0x6645f9c0, 0x4cf7f55d ), WTCP( 0x65fc199a, 0x4d59bda3 ), WTCP( 0x65b1dbf8, 0x4dbb3f02 ), WTCP( 0x6567411d, 0x4e1c791f ),
1398 : WTCP( 0x651c494d, 0x4e7d6ba2 ), WTCP( 0x64d0f4ce, 0x4ede1631 ), WTCP( 0x648543e4, 0x4f3e7875 ), WTCP( 0x643936d4, 0x4f9e9214 ),
1399 : WTCP( 0x63eccde5, 0x4ffe62b6 ), WTCP( 0x63a0095c, 0x505dea05 ), WTCP( 0x6352e980, 0x50bd27a7 ), WTCP( 0x63056e98, 0x511c1b47 ),
1400 : WTCP( 0x62b798ea, 0x517ac48c ), WTCP( 0x626968be, 0x51d92321 ), WTCP( 0x621ade5c, 0x523736ae ), WTCP( 0x61cbfa0b, 0x5294fedd ),
1401 : WTCP( 0x617cbc14, 0x52f27b58 ), WTCP( 0x612d24c0, 0x534fabcb ), WTCP( 0x60dd3457, 0x53ac8fde ), WTCP( 0x608ceb22, 0x5409273e ),
1402 : WTCP( 0x603c496c, 0x54657194 ), WTCP( 0x5feb4f7f, 0x54c16e8e ), WTCP( 0x5f99fda4, 0x551d1dd5 ), WTCP( 0x5f485426, 0x55787f17 ),
1403 : WTCP( 0x5ef6534f, 0x55d391ff ), WTCP( 0x5ea3fb6c, 0x562e563a ), WTCP( 0x5e514cc8, 0x5688cb75 ), WTCP( 0x5dfe47ad, 0x56e2f15d ),
1404 : WTCP( 0x5daaec6a, 0x573cc79f ), WTCP( 0x5d573b49, 0x57964de9 ), WTCP( 0x5d033497, 0x57ef83e9 ), WTCP( 0x5caed8a2, 0x5848694d ),
1405 : WTCP( 0x5c5a27b8, 0x58a0fdc3 ), WTCP( 0x5c052224, 0x58f940fa ), WTCP( 0x5bafc837, 0x595132a2 ), WTCP( 0x5b5a1a3d, 0x59a8d26a ),
1406 : WTCP( 0x5b041885, 0x5a002001 ), WTCP( 0x5aadc35e, 0x5a571b18 )
1407 : };
1408 :
1409 :
1410 : const PWord16 *const windowSlopes[1][2][8] = { // Q15
1411 : {
1412 : /* Sine */
1413 : { /* Radix 2 */
1414 : NULL,
1415 : NULL,
1416 : SineWindow16,
1417 : SineWindow32,
1418 : SineWindow64,
1419 : SineWindow128,
1420 : SineWindow256,
1421 : NULL },
1422 : { /* 640 raster */
1423 : NULL, /* 2.5 */
1424 : NULL, /* 5 */
1425 : SineWindow10,
1426 : SineWindow20,
1427 : SineWindow40,
1428 : SineWindow80,
1429 : SineWindow160,
1430 : SineWindow320 },
1431 : }
1432 : };
1433 :
1434 : #define DCTIV_SINETABLE SineTable512
1435 : #define DCTIV_SINETABLE_SIZE_LD 9
1436 :
1437 : #define DCTIV_SINETABLE320 SineTable320
1438 : #define DCTIV_SINETABLE320_SIZE_LD 8
1439 :
1440 2718450 : void BASOP_getTables( const PWord16 **ptwiddle /*Q15*/, const PWord16 **sin_twiddle /*Q15*/, Word16 *psin_step, Word16 length )
1441 : {
1442 : const PWord16 *twiddle;
1443 : const PWord16 *sine;
1444 : Word16 ld2_length, sin_step;
1445 :
1446 : /* Get ld2 of length - 2 + 1
1447 : -2: because first table entry is window of size 4
1448 : +1: because we already include +1 because of ceil(log2(length)) */
1449 2718450 : ld2_length = sub( 16 - 1 - 1, norm_s( length ) );
1450 :
1451 : /* Extract sort of "eigenvalue" (the 5 left most bits) of length. */
1452 2718450 : SWITCH( (UWord16) L_shl( length, sub( 15, ld2_length ) ) )
1453 : {
1454 2153259 : case 0xa000: /* 640 */
1455 2153259 : move16();
1456 2153259 : move16();
1457 2153259 : sine = DCTIV_SINETABLE320;
1458 2153259 : sin_step = shl( 1, sub( DCTIV_SINETABLE320_SIZE_LD + 1, ld2_length ) );
1459 2153259 : twiddle = windowSlopes[0][1][ld2_length - 1]; // Q15
1460 2153259 : BREAK;
1461 :
1462 565191 : case 0x8000: /* radix 2 */
1463 565191 : move16();
1464 565191 : move16();
1465 565191 : sine = DCTIV_SINETABLE;
1466 565191 : sin_step = shl( 1, sub( DCTIV_SINETABLE_SIZE_LD + 1, ld2_length ) );
1467 565191 : twiddle = windowSlopes[0][0][ld2_length - 2]; // Q15
1468 565191 : BREAK;
1469 :
1470 0 : default: /* not instrumented, probably obsolete */
1471 0 : sine = NULL;
1472 0 : sin_step = 0;
1473 0 : twiddle = NULL;
1474 0 : BREAK;
1475 : }
1476 :
1477 2718450 : if ( ptwiddle != NULL )
1478 : {
1479 2188308 : assert( twiddle != NULL || length == 0 );
1480 2188308 : move16();
1481 2188308 : *ptwiddle = twiddle;
1482 : }
1483 :
1484 2718450 : if ( sin_twiddle != NULL )
1485 : {
1486 530142 : move16();
1487 530142 : *sin_twiddle = sine;
1488 : }
1489 2718450 : if ( psin_step != NULL )
1490 : {
1491 536976 : assert( sin_step > 0 || length == 0 );
1492 536976 : move16();
1493 536976 : *psin_step = sin_step;
1494 : }
1495 2718450 : }
1496 :
1497 808 : const PWord16 *getSineWindowTable( Word16 length )
1498 : {
1499 808 : const PWord16 *p = NULL;
1500 :
1501 808 : SWITCH( length )
1502 : {
1503 0 : case 10:
1504 0 : p = SineWindow10; // Q15
1505 0 : BREAK;
1506 88 : case 16:
1507 88 : p = SineWindow16; // Q15
1508 88 : BREAK;
1509 112 : case 20:
1510 112 : p = SineWindow20; // Q15
1511 112 : BREAK;
1512 0 : case 30:
1513 0 : p = SineWindow30; // Q15
1514 0 : BREAK;
1515 2 : case 32:
1516 2 : p = SineWindow32; // Q15
1517 2 : BREAK;
1518 84 : case 40:
1519 84 : p = SineWindow40; // Q15
1520 84 : BREAK;
1521 44 : case 48:
1522 44 : p = SineWindow48; // Q15
1523 44 : BREAK;
1524 174 : case 60:
1525 174 : p = SineWindow60; // Q15
1526 174 : BREAK;
1527 0 : case 70:
1528 0 : p = SineWindow70; // Q15
1529 0 : BREAK;
1530 1 : case 96:
1531 1 : p = SineWindow96; // Q15
1532 1 : BREAK;
1533 44 : case 112:
1534 44 : p = SineWindow112; // Q15
1535 44 : BREAK;
1536 42 : case 120:
1537 42 : p = SineWindow120; // Q15
1538 42 : BREAK;
1539 56 : case 140:
1540 56 : p = SineWindow140; // Q15
1541 56 : BREAK;
1542 59 : case 180:
1543 59 : p = SineWindow180; // Q15
1544 59 : BREAK;
1545 1 : case 224:
1546 1 : p = SineWindow224; // Q15
1547 1 : BREAK;
1548 42 : case 280:
1549 42 : p = SineWindow280; // Q15
1550 42 : BREAK;
1551 59 : case 420:
1552 59 : p = SineWindow420; // Q15
1553 59 : BREAK;
1554 : }
1555 :
1556 808 : assert( p != NULL );
1557 :
1558 808 : return p;
1559 : }
|