1 /* ------------------------------------------------------------------
2 * Copyright (C) 1998-2009 PacketVideo
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14 * See the License for the specific language governing permissions
15 * and limitations under the License.
16 * -------------------------------------------------------------------
20 Pathname: mdct_tables_fxp.c
23 ------------------------------------------------------------------------------
26 Description: Created from fft_rx2.c
28 Description: Modified to include forward and inverse tables
33 ------------------------------------------------------------------------------
36 MDCT rotation tables fixpoint tables
38 For a table with N complex points:
40 cos_n + j*sin_n == exp(j(2pi/N)(n+1/8))
42 ------------------------------------------------------------------------------
46 /*----------------------------------------------------------------------------
48 ----------------------------------------------------------------------------*/
49 #include "pv_audio_type_defs.h"
56 /*----------------------------------------------------------------------------
58 ; Define module specific macros here
59 ----------------------------------------------------------------------------*/
61 /*----------------------------------------------------------------------------
63 ; Include all pre-processor statements here. Include conditional
64 ; compile variables also.
65 ----------------------------------------------------------------------------*/
67 /*----------------------------------------------------------------------------
68 ; LOCAL FUNCTION DEFINITIONS
69 ; Function Prototype declaration
70 ----------------------------------------------------------------------------*/
72 /*----------------------------------------------------------------------------
73 ; LOCAL VARIABLE DEFINITIONS
74 ; Variable declaration - defined here and used outside this module
75 ----------------------------------------------------------------------------*/
78 /*----------------------------------------------------------------------------
79 ; EXTERNAL FUNCTION REFERENCES
80 ; Declare functions defined elsewhere and referenced in this module
81 ----------------------------------------------------------------------------*/
83 /*----------------------------------------------------------------------------
84 ; EXTERNAL VARIABLES REFERENCES
85 ; Declare variables used in this module but defined elsewhere
86 ----------------------------------------------------------------------------*/
91 extern const Int32 exp_rotation_N_256[64] =
94 0x5A820047, 0x5A7A0280, 0x5A6304B8, 0x5A3E06EF,
95 0x5A0C0926, 0x59CB0B5B, 0x597D0D8E, 0x59210FBF,
96 0x58B711EE, 0x5840141A, 0x57BB1643, 0x57281868,
97 0x56881A8A, 0x55DB1CA8, 0x55201EC1, 0x545820D5,
98 0x538322E5, 0x52A224EF, 0x51B326F3, 0x50B828F1,
99 0x4FB12AE9, 0x4E9D2CDA, 0x4D7D2EC5, 0x4C5230A8,
100 0x4B1A3284, 0x49D73458, 0x48883624, 0x472F37E7,
101 0x45CA39A2, 0x445A3B54, 0x42E03CFD, 0x415C3E9C,
102 0x3FCE4032, 0x3E3541BE, 0x3C944340, 0x3AE844B7,
103 0x39344624, 0x37774786, 0x35B148DD, 0x33E44A29,
104 0x320E4B69, 0x30304C9E, 0x2E4B4DC6, 0x2C5F4EE3,
105 0x2A6C4FF4, 0x287250F8, 0x267251F0, 0x246D52DB,
106 0x226153BA, 0x2051548B, 0x1E3B5550, 0x1C215607,
107 0x1A0256B1, 0x17DF574E, 0x15B957DD, 0x138F585F,
108 0x116358D3, 0x0F335939, 0x0D015992, 0x0ACE59DD,
109 0x08985A1A, 0x06625A49, 0x042A5A6A, 0x01F25A7D
117 extern const Int32 exp_rotation_N_2048[512] =
120 0x5A820009, 0x5A820050, 0x5A820097, 0x5A8100DE,
121 0x5A810125, 0x5A80016C, 0x5A7E01B3, 0x5A7D01FA,
122 0x5A7B0242, 0x5A790289, 0x5A7702D0, 0x5A750317,
123 0x5A72035E, 0x5A7003A5, 0x5A6D03EC, 0x5A6A0433,
124 0x5A66047A, 0x5A6304C1, 0x5A5F0508, 0x5A5B054F,
125 0x5A560596, 0x5A5205DD, 0x5A4D0624, 0x5A48066A,
126 0x5A4306B1, 0x5A3E06F8, 0x5A38073F, 0x5A320786,
127 0x5A2C07CD, 0x5A260814, 0x5A20085A, 0x5A1908A1,
128 0x5A1208E8, 0x5A0B092F, 0x5A040975, 0x59FC09BC,
129 0x59F40A03, 0x59EC0A49, 0x59E40A90, 0x59DC0AD7,
130 0x59D30B1D, 0x59CA0B64, 0x59C10BAA, 0x59B80BF1,
131 0x59AE0C37, 0x59A50C7E, 0x599B0CC4, 0x59910D0A,
132 0x59860D51, 0x597C0D97, 0x59710DDD, 0x59660E23,
133 0x595B0E6A, 0x594F0EB0, 0x59440EF6, 0x59380F3C,
134 0x592C0F82, 0x59200FC8, 0x5913100E, 0x59061054,
135 0x58F9109A, 0x58EC10E0, 0x58DF1126, 0x58D1116B,
136 0x58C411B1, 0x58B611F7, 0x58A7123C, 0x58991282,
137 0x588A12C8, 0x587B130D, 0x586C1353, 0x585D1398,
138 0x584E13DD, 0x583E1423, 0x582E1468, 0x581E14AD,
139 0x580D14F2, 0x57FD1538, 0x57EC157D, 0x57DB15C2,
140 0x57CA1607, 0x57B9164C, 0x57A71690, 0x579516D5,
141 0x5783171A, 0x5771175F, 0x575E17A3, 0x574C17E8,
142 0x5739182C, 0x57261871, 0x571218B5, 0x56FF18FA,
143 0x56EB193E, 0x56D71982, 0x56C319C6, 0x56AF1A0A,
144 0x569A1A4F, 0x56851A93, 0x56701AD6, 0x565B1B1A,
145 0x56461B5E, 0x56301BA2, 0x561A1BE5, 0x56041C29,
146 0x55EE1C6D, 0x55D81CB0, 0x55C11CF3, 0x55AA1D37,
147 0x55931D7A, 0x557C1DBD, 0x55651E00, 0x554D1E43,
148 0x55351E86, 0x551D1EC9, 0x55051F0C, 0x54EC1F4F,
149 0x54D31F91, 0x54BB1FD4, 0x54A12016, 0x54882059,
150 0x546F209B, 0x545520DE, 0x543B2120, 0x54212162,
151 0x540721A4, 0x53EC21E6, 0x53D12228, 0x53B62269,
152 0x539B22AB, 0x538022ED, 0x5364232E, 0x53492370,
153 0x532D23B1, 0x531123F2, 0x52F42434, 0x52D82475,
154 0x52BB24B6, 0x529E24F7, 0x52812538, 0x52642578,
155 0x524625B9, 0x522825FA, 0x520B263A, 0x51EC267A,
156 0x51CE26BB, 0x51B026FB, 0x5191273B, 0x5172277B,
157 0x515327BB, 0x513427FB, 0x5114283A, 0x50F4287A,
158 0x50D428BA, 0x50B428F9, 0x50942938, 0x50742978,
159 0x505329B7, 0x503229F6, 0x50112A35, 0x4FF02A74,
160 0x4FCE2AB2, 0x4FAD2AF1, 0x4F8B2B2F, 0x4F692B6E,
161 0x4F472BAC, 0x4F242BEA, 0x4F022C29, 0x4EDF2C67,
162 0x4EBC2CA4, 0x4E992CE2, 0x4E752D20, 0x4E522D5D,
163 0x4E2E2D9B, 0x4E0A2DD8, 0x4DE62E15, 0x4DC22E53,
164 0x4D9D2E90, 0x4D792ECD, 0x4D542F09, 0x4D2F2F46,
165 0x4D0A2F83, 0x4CE42FBF, 0x4CBF2FFB, 0x4C993038,
166 0x4C733074, 0x4C4D30B0, 0x4C2630EC, 0x4C003127,
167 0x4BD93163, 0x4BB2319E, 0x4B8B31DA, 0x4B643215,
168 0x4B3D3250, 0x4B15328B, 0x4AED32C6, 0x4AC53301,
169 0x4A9D333C, 0x4A753376, 0x4A4C33B1, 0x4A2433EB,
170 0x49FB3425, 0x49D2345F, 0x49A83499, 0x497F34D3,
171 0x4955350C, 0x492C3546, 0x4902357F, 0x48D835B9,
172 0x48AD35F2, 0x4883362B, 0x48583664, 0x482E369C,
173 0x480336D5, 0x47D7370E, 0x47AC3746, 0x4781377E,
174 0x475537B6, 0x472937EE, 0x46FD3826, 0x46D1385E,
175 0x46A43895, 0x467838CD, 0x464B3904, 0x461E393B,
176 0x45F13972, 0x45C439A9, 0x459739E0, 0x45693A16,
177 0x453C3A4D, 0x450E3A83, 0x44E03AB9, 0x44B13AEF,
178 0x44833B25, 0x44553B5B, 0x44263B90, 0x43F73BC6,
179 0x43C83BFB, 0x43993C30, 0x43693C65, 0x433A3C9A,
180 0x430A3CCF, 0x42DA3D04, 0x42AA3D38, 0x427A3D6C,
181 0x424A3DA0, 0x42193DD4, 0x41E93E08, 0x41B83E3C,
182 0x41873E6F, 0x41563EA3, 0x41253ED6, 0x40F33F09,
183 0x40C23F3C, 0x40903F6F, 0x405E3FA1, 0x402C3FD4,
184 0x3FFA4006, 0x3FC74038, 0x3F95406A, 0x3F62409C,
185 0x3F2F40CE, 0x3EFC4100, 0x3EC94131, 0x3E964162,
186 0x3E634193, 0x3E2F41C4, 0x3DFB41F5, 0x3DC74226,
187 0x3D934256, 0x3D5F4286, 0x3D2B42B6, 0x3CF642E6,
188 0x3CC24316, 0x3C8D4346, 0x3C584375, 0x3C2343A5,
189 0x3BEE43D4, 0x3BB84403, 0x3B834432, 0x3B4D4460,
190 0x3B18448F, 0x3AE244BD, 0x3AAC44EB, 0x3A754519,
191 0x3A3F4547, 0x3A094575, 0x39D245A2, 0x399B45CF,
192 0x396445FD, 0x392D462A, 0x38F64656, 0x38BF4683,
193 0x388746B0, 0x385046DC, 0x38184708, 0x37E04734,
194 0x37A84760, 0x3770478B, 0x373847B7, 0x36FF47E2,
195 0x36C7480D, 0x368E4838, 0x36554863, 0x361D488E,
196 0x35E348B8, 0x35AA48E2, 0x3571490C, 0x35384936,
197 0x34FE4960, 0x34C44989, 0x348B49B3, 0x345149DC,
198 0x34164A05, 0x33DC4A2E, 0x33A24A56, 0x33684A7F,
199 0x332D4AA7, 0x32F24ACF, 0x32B74AF7, 0x327C4B1F,
200 0x32414B46, 0x32064B6E, 0x31CB4B95, 0x31904BBC,
201 0x31544BE3, 0x31184C0A, 0x30DD4C30, 0x30A14C56,
202 0x30654C7C, 0x30294CA2, 0x2FEC4CC8, 0x2FB04CEE,
203 0x2F734D13, 0x2F374D38, 0x2EFA4D5D, 0x2EBD4D82,
204 0x2E804DA7, 0x2E434DCB, 0x2E064DEF, 0x2DC94E13,
205 0x2D8C4E37, 0x2D4E4E5B, 0x2D104E7E, 0x2CD34EA2,
206 0x2C954EC5, 0x2C574EE8, 0x2C194F0A, 0x2BDB4F2D,
207 0x2B9D4F4F, 0x2B5E4F71, 0x2B204F93, 0x2AE14FB5,
208 0x2AA34FD7, 0x2A644FF8, 0x2A255019, 0x29E6503A,
209 0x29A7505B, 0x2968507C, 0x2929509C, 0x28E950BC,
210 0x28AA50DC, 0x286A50FC, 0x282B511C, 0x27EB513B,
211 0x27AB515B, 0x276B517A, 0x272B5199, 0x26EB51B7,
212 0x26AB51D6, 0x266A51F4, 0x262A5212, 0x25E95230,
213 0x25A9524E, 0x2568526B, 0x25275288, 0x24E652A5,
214 0x24A652C2, 0x246452DF, 0x242352FB, 0x23E25318,
215 0x23A15334, 0x235F5350, 0x231E536B, 0x22DC5387,
216 0x229B53A2, 0x225953BD, 0x221753D8, 0x21D553F3,
217 0x2193540D, 0x21515427, 0x210F5442, 0x20CD545B,
218 0x208B5475, 0x2048548F, 0x200654A8, 0x1FC354C1,
219 0x1F8154DA, 0x1F3E54F2, 0x1EFB550B, 0x1EB85523,
220 0x1E76553B, 0x1E335553, 0x1DF0556A, 0x1DAC5582,
221 0x1D695599, 0x1D2655B0, 0x1CE355C7, 0x1C9F55DD,
222 0x1C5C55F4, 0x1C18560A, 0x1BD55620, 0x1B915636,
223 0x1B4D564B, 0x1B095661, 0x1AC55676, 0x1A82568B,
224 0x1A3E569F, 0x19F956B4, 0x19B556C8, 0x197156DC,
225 0x192D56F0, 0x18E95704, 0x18A45717, 0x1860572A,
226 0x181B573E, 0x17D75750, 0x17925763, 0x174D5775,
227 0x17095788, 0x16C4579A, 0x167F57AB, 0x163A57BD,
228 0x15F557CE, 0x15B057DF, 0x156B57F0, 0x15265801,
229 0x14E15812, 0x149C5822, 0x14575832, 0x14115842,
230 0x13CC5851, 0x13875861, 0x13415870, 0x12FC587F,
231 0x12B6588E, 0x1271589D, 0x122B58AB, 0x11E558B9,
232 0x11A058C7, 0x115A58D5, 0x111458E2, 0x10CE58F0,
233 0x108858FD, 0x1042590A, 0x0FFD5916, 0x0FB75923,
234 0x0F71592F, 0x0F2A593B, 0x0EE45947, 0x0E9E5952,
235 0x0E58595E, 0x0E125969, 0x0DCC5974, 0x0D85597E,
236 0x0D3F5989, 0x0CF95993, 0x0CB2599D, 0x0C6C59A7,
237 0x0C2559B1, 0x0BDF59BA, 0x0B9959C4, 0x0B5259CD,
238 0x0B0B59D5, 0x0AC559DE, 0x0A7E59E6, 0x0A3859EE,
239 0x09F159F6, 0x09AA59FE, 0x09645A05, 0x091D5A0D,
240 0x08D65A14, 0x08905A1B, 0x08495A21, 0x08025A28,
241 0x07BB5A2E, 0x07745A34, 0x072D5A3A, 0x06E75A3F,
242 0x06A05A44, 0x06595A49, 0x06125A4E, 0x05CB5A53,
243 0x05845A57, 0x053D5A5C, 0x04F65A60, 0x04AF5A63,
244 0x04685A67, 0x04215A6A, 0x03DA5A6D, 0x03935A70,
245 0x034C5A73, 0x03055A76, 0x02BE5A78, 0x02775A7A,
246 0x02305A7C, 0x01E95A7D, 0x01A25A7F, 0x015B5A80,
247 0x01135A81, 0x00CC5A82, 0x00855A82, 0x003E5A82