2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
3 ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version.
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ** GNU General Public License for more details.
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program; if not, write to the Free Software
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 ** Any non-GPL usage of this software or parts of this software is strictly
22 ** Commercial non-GPL licensing of this software is possible.
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
29 #include "../lib/fft.h"
30 #include "../lib/mdct_lookup.h"
36 #pragma warning(disable:4305)
37 #pragma warning(disable:4244)
43 void DCT4_32(real_t
*y
, real_t
*x
)
45 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
46 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
47 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
, f30
;
48 real_t f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
, f40
;
49 real_t f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
, f50
;
50 real_t f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
, f60
;
51 real_t f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
, f69
, f70
;
52 real_t f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
, f79
, f80
;
53 real_t f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
, f89
, f90
;
54 real_t f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
, f99
, f100
;
55 real_t f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
, f109
, f110
;
56 real_t f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
, f119
, f120
;
57 real_t f121
, f122
, f123
, f124
, f125
, f126
, f127
, f128
, f129
, f130
;
58 real_t f131
, f132
, f133
, f134
, f135
, f136
, f137
, f138
, f139
, f140
;
59 real_t f141
, f142
, f143
, f144
, f145
, f146
, f147
, f148
, f149
, f150
;
60 real_t f151
, f152
, f153
, f154
, f155
, f156
, f157
, f158
, f159
, f160
;
61 real_t f161
, f162
, f163
, f164
, f165
, f166
, f167
, f168
, f169
, f170
;
62 real_t f171
, f172
, f173
, f174
, f175
, f176
, f177
, f178
, f179
, f180
;
63 real_t f181
, f182
, f183
, f184
, f185
, f186
, f187
, f188
, f189
, f190
;
64 real_t f191
, f192
, f193
, f194
, f195
, f196
, f197
, f198
, f199
, f200
;
65 real_t f201
, f202
, f203
, f204
, f205
, f206
, f207
, f208
, f209
, f210
;
66 real_t f211
, f212
, f213
, f214
, f215
, f216
, f217
, f218
, f219
, f220
;
67 real_t f221
, f222
, f223
, f224
, f225
, f226
, f227
, f228
, f229
, f230
;
68 real_t f231
, f232
, f233
, f234
, f235
, f236
, f237
, f238
, f239
, f240
;
69 real_t f241
, f242
, f243
, f244
, f245
, f246
, f247
, f248
, f249
, f250
;
70 real_t f251
, f252
, f253
, f254
, f255
, f256
, f257
, f258
, f259
, f260
;
71 real_t f261
, f262
, f263
, f264
, f265
, f266
, f267
, f268
, f269
, f270
;
72 real_t f271
, f272
, f273
, f274
, f275
, f276
, f277
, f278
, f279
, f280
;
73 real_t f281
, f282
, f283
, f284
, f285
, f286
, f287
, f288
, f289
, f290
;
74 real_t f291
, f292
, f293
, f294
, f295
, f296
, f297
, f298
, f299
, f300
;
75 real_t f301
, f302
, f303
, f304
, f305
, f306
, f307
, f310
, f311
, f312
;
76 real_t f313
, f316
, f317
, f318
, f319
, f322
, f323
, f324
, f325
, f328
;
77 real_t f329
, f330
, f331
, f334
, f335
, f336
, f337
, f340
, f341
, f342
;
78 real_t f343
, f346
, f347
, f348
, f349
, f352
, f353
, f354
, f355
, f358
;
79 real_t f359
, f360
, f361
, f364
, f365
, f366
, f367
, f370
, f371
, f372
;
80 real_t f373
, f376
, f377
, f378
, f379
, f382
, f383
, f384
, f385
, f388
;
81 real_t f389
, f390
, f391
, f394
, f395
, f396
, f397
;
85 f2
= MUL_F(FRAC_CONST(0.7071067811865476), f1
);
86 f3
= MUL_F(FRAC_CONST(0.7071067811865476), f0
);
89 f6
= MUL_F(FRAC_CONST(0.7071067811865476), f5
);
90 f7
= MUL_F(FRAC_CONST(0.7071067811865476), f4
);
93 f10
= MUL_F(FRAC_CONST(0.7071067811865476), f9
);
94 f11
= MUL_F(FRAC_CONST(0.7071067811865476), f8
);
97 f14
= MUL_F(FRAC_CONST(0.7071067811865476), f13
);
98 f15
= MUL_F(FRAC_CONST(0.7071067811865476), f12
);
101 f18
= MUL_F(FRAC_CONST(0.7071067811865476), f17
);
102 f19
= MUL_F(FRAC_CONST(0.7071067811865476), f16
);
105 f22
= MUL_F(FRAC_CONST(0.7071067811865476), f21
);
106 f23
= MUL_F(FRAC_CONST(0.7071067811865476), f20
);
109 f26
= MUL_F(FRAC_CONST(0.7071067811865476), f25
);
110 f27
= MUL_F(FRAC_CONST(0.7071067811865476), f24
);
113 f30
= MUL_F(FRAC_CONST(0.7071067811865476), f29
);
114 f31
= MUL_F(FRAC_CONST(0.7071067811865476), f28
);
148 f65
= MUL_F(FRAC_CONST(-0.5411961001461969), f39
);
149 f66
= MUL_F(FRAC_CONST(0.9238795325112867), f64
);
150 f67
= MUL_C(COEF_CONST(1.3065629648763766), f37
);
154 f71
= MUL_C(COEF_CONST(1.3065629648763770), f38
);
155 f72
= MUL_F(FRAC_CONST(-0.3826834323650904), f70
);
156 f73
= MUL_F(FRAC_CONST(0.5411961001461961), f36
);
160 f77
= MUL_F(FRAC_CONST(-0.5411961001461969), f47
);
161 f78
= MUL_F(FRAC_CONST(0.9238795325112867), f76
);
162 f79
= MUL_C(COEF_CONST(1.3065629648763766), f45
);
166 f83
= MUL_C(COEF_CONST(1.3065629648763770), f46
);
167 f84
= MUL_F(FRAC_CONST(-0.3826834323650904), f82
);
168 f85
= MUL_F(FRAC_CONST(0.5411961001461961), f44
);
172 f89
= MUL_F(FRAC_CONST(-0.5411961001461969), f55
);
173 f90
= MUL_F(FRAC_CONST(0.9238795325112867), f88
);
174 f91
= MUL_C(COEF_CONST(1.3065629648763766), f53
);
178 f95
= MUL_C(COEF_CONST(1.3065629648763770), f54
);
179 f96
= MUL_F(FRAC_CONST(-0.3826834323650904), f94
);
180 f97
= MUL_F(FRAC_CONST(0.5411961001461961), f52
);
184 f101
= MUL_F(FRAC_CONST(-0.5411961001461969), f63
);
185 f102
= MUL_F(FRAC_CONST(0.9238795325112867), f100
);
186 f103
= MUL_C(COEF_CONST(1.3065629648763766), f61
);
190 f107
= MUL_C(COEF_CONST(1.3065629648763770), f62
);
191 f108
= MUL_F(FRAC_CONST(-0.3826834323650904), f106
);
192 f109
= MUL_F(FRAC_CONST(0.5411961001461961), f60
);
228 f145
= MUL_F(FRAC_CONST(-0.7856949583871021), f123
);
229 f146
= MUL_F(FRAC_CONST(0.9807852804032304), f144
);
230 f147
= MUL_C(COEF_CONST(1.1758756024193588), f121
);
234 f151
= MUL_F(FRAC_CONST(0.2758993792829431), f127
);
235 f152
= MUL_F(FRAC_CONST(0.5555702330196022), f150
);
236 f153
= MUL_C(COEF_CONST(1.3870398453221475), f125
);
240 f157
= MUL_C(COEF_CONST(1.1758756024193591), f122
);
241 f158
= MUL_F(FRAC_CONST(-0.1950903220161287), f156
);
242 f159
= MUL_F(FRAC_CONST(0.7856949583871016), f120
);
246 f163
= MUL_C(COEF_CONST(1.3870398453221473), f126
);
247 f164
= MUL_F(FRAC_CONST(-0.8314696123025455), f162
);
248 f165
= MUL_F(FRAC_CONST(-0.2758993792829436), f124
);
252 f169
= MUL_F(FRAC_CONST(-0.7856949583871021), f139
);
253 f170
= MUL_F(FRAC_CONST(0.9807852804032304), f168
);
254 f171
= MUL_C(COEF_CONST(1.1758756024193588), f137
);
258 f175
= MUL_F(FRAC_CONST(0.2758993792829431), f143
);
259 f176
= MUL_F(FRAC_CONST(0.5555702330196022), f174
);
260 f177
= MUL_C(COEF_CONST(1.3870398453221475), f141
);
264 f181
= MUL_C(COEF_CONST(1.1758756024193591), f138
);
265 f182
= MUL_F(FRAC_CONST(-0.1950903220161287), f180
);
266 f183
= MUL_F(FRAC_CONST(0.7856949583871016), f136
);
270 f187
= MUL_C(COEF_CONST(1.3870398453221473), f142
);
271 f188
= MUL_F(FRAC_CONST(-0.8314696123025455), f186
);
272 f189
= MUL_F(FRAC_CONST(-0.2758993792829436), f140
);
308 f225
= MUL_F(FRAC_CONST(-0.8971675863426361), f211
);
309 f226
= MUL_F(FRAC_CONST(0.9951847266721968), f224
);
310 f227
= MUL_C(COEF_CONST(1.0932018670017576), f209
);
314 f231
= MUL_F(FRAC_CONST(-0.4105245275223571), f215
);
315 f232
= MUL_F(FRAC_CONST(0.8819212643483549), f230
);
316 f233
= MUL_C(COEF_CONST(1.3533180011743529), f213
);
320 f237
= MUL_F(FRAC_CONST(0.1386171691990915), f219
);
321 f238
= MUL_F(FRAC_CONST(0.6343932841636455), f236
);
322 f239
= MUL_C(COEF_CONST(1.4074037375263826), f217
);
326 f243
= MUL_F(FRAC_CONST(0.6666556584777466), f223
);
327 f244
= MUL_F(FRAC_CONST(0.2902846772544623), f242
);
328 f245
= MUL_C(COEF_CONST(1.2472250129866711), f221
);
332 f249
= MUL_C(COEF_CONST(1.0932018670017574), f210
);
333 f250
= MUL_F(FRAC_CONST(-0.0980171403295605), f248
);
334 f251
= MUL_F(FRAC_CONST(0.8971675863426364), f208
);
338 f255
= MUL_C(COEF_CONST(1.3533180011743529), f214
);
339 f256
= MUL_F(FRAC_CONST(-0.4713967368259979), f254
);
340 f257
= MUL_F(FRAC_CONST(0.4105245275223569), f212
);
344 f261
= MUL_C(COEF_CONST(1.4074037375263826), f218
);
345 f262
= MUL_F(FRAC_CONST(-0.7730104533627369), f260
);
346 f263
= MUL_F(FRAC_CONST(-0.1386171691990913), f216
);
350 f267
= MUL_C(COEF_CONST(1.2472250129866711), f222
);
351 f268
= MUL_F(FRAC_CONST(-0.9569403357322089), f266
);
352 f269
= MUL_F(FRAC_CONST(-0.6666556584777469), f220
);
388 f305
= MUL_F(FRAC_CONST(-0.9751575901732920), f275
);
389 f306
= MUL_F(FRAC_CONST(0.9996988186962043), f304
);
390 f307
= MUL_C(COEF_CONST(1.0242400472191164), f273
);
394 f311
= MUL_F(FRAC_CONST(-0.8700688593994936), f279
);
395 f312
= MUL_F(FRAC_CONST(0.9924795345987100), f310
);
396 f313
= MUL_C(COEF_CONST(1.1148902097979263), f277
);
400 f317
= MUL_F(FRAC_CONST(-0.7566008898816587), f283
);
401 f318
= MUL_F(FRAC_CONST(0.9757021300385286), f316
);
402 f319
= MUL_C(COEF_CONST(1.1948033701953984), f281
);
406 f323
= MUL_F(FRAC_CONST(-0.6358464401941451), f287
);
407 f324
= MUL_F(FRAC_CONST(0.9495281805930367), f322
);
408 f325
= MUL_C(COEF_CONST(1.2632099209919283), f285
);
412 f329
= MUL_F(FRAC_CONST(-0.5089684416985408), f291
);
413 f330
= MUL_F(FRAC_CONST(0.9142097557035307), f328
);
414 f331
= MUL_C(COEF_CONST(1.3194510697085207), f289
);
418 f335
= MUL_F(FRAC_CONST(-0.3771887988789273), f295
);
419 f336
= MUL_F(FRAC_CONST(0.8700869911087114), f334
);
420 f337
= MUL_C(COEF_CONST(1.3629851833384954), f293
);
424 f341
= MUL_F(FRAC_CONST(-0.2417766217337384), f299
);
425 f342
= MUL_F(FRAC_CONST(0.8175848131515837), f340
);
426 f343
= MUL_C(COEF_CONST(1.3933930045694289), f297
);
430 f347
= MUL_F(FRAC_CONST(-0.1040360035527077), f303
);
431 f348
= MUL_F(FRAC_CONST(0.7572088465064845), f346
);
432 f349
= MUL_C(COEF_CONST(1.4103816894602612), f301
);
436 f353
= MUL_F(FRAC_CONST(0.0347065382144002), f274
);
437 f354
= MUL_F(FRAC_CONST(0.6895405447370668), f352
);
438 f355
= MUL_C(COEF_CONST(1.4137876276885337), f272
);
442 f359
= MUL_F(FRAC_CONST(0.1731148370459795), f278
);
443 f360
= MUL_F(FRAC_CONST(0.6152315905806268), f358
);
444 f361
= MUL_C(COEF_CONST(1.4035780182072330), f276
);
448 f365
= MUL_F(FRAC_CONST(0.3098559453626100), f282
);
449 f366
= MUL_F(FRAC_CONST(0.5349976198870972), f364
);
450 f367
= MUL_C(COEF_CONST(1.3798511851368043), f280
);
454 f371
= MUL_F(FRAC_CONST(0.4436129715409088), f286
);
455 f372
= MUL_F(FRAC_CONST(0.4496113296546065), f370
);
456 f373
= MUL_C(COEF_CONST(1.3428356308501219), f284
);
460 f377
= MUL_F(FRAC_CONST(0.5730977622997509), f290
);
461 f378
= MUL_F(FRAC_CONST(0.3598950365349881), f376
);
462 f379
= MUL_C(COEF_CONST(1.2928878353697271), f288
);
466 f383
= MUL_F(FRAC_CONST(0.6970633083205415), f294
);
467 f384
= MUL_F(FRAC_CONST(0.2667127574748984), f382
);
468 f385
= MUL_C(COEF_CONST(1.2304888232703382), f292
);
472 f389
= MUL_F(FRAC_CONST(0.8143157536286401), f298
);
473 f390
= MUL_F(FRAC_CONST(0.1709618887603012), f388
);
474 f391
= MUL_C(COEF_CONST(1.1562395311492424), f296
);
478 f395
= MUL_F(FRAC_CONST(0.9237258930790228), f302
);
479 f396
= MUL_F(FRAC_CONST(0.0735645635996674), f394
);
480 f397
= MUL_C(COEF_CONST(1.0708550202783576), f300
);
487 void DCT2_16_unscaled(real_t
*y
, real_t
*x
)
489 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
490 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
491 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f31
, f32
;
492 real_t f33
, f34
, f37
, f38
, f39
, f40
, f41
, f42
, f43
, f44
;
493 real_t f45
, f46
, f47
, f48
, f49
, f51
, f53
, f54
, f57
, f58
;
494 real_t f59
, f60
, f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
;
495 real_t f69
, f70
, f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
;
496 real_t f79
, f80
, f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
;
497 real_t f89
, f90
, f91
, f92
, f95
, f96
, f97
, f98
, f101
, f102
;
498 real_t f103
, f104
, f107
, f108
, f109
, f110
;
530 y
[8] = MUL_F(f28
, FRAC_CONST(0.7071067811865476));
532 f32
= MUL_C(f24
, COEF_CONST(1.3065629648763766));
533 f33
= MUL_F(f31
, FRAC_CONST(-0.9238795325112866));
534 f34
= MUL_F(f26
, FRAC_CONST(-0.5411961001461967));
538 f38
= MUL_C(f16
, COEF_CONST(1.1758756024193588));
539 f39
= MUL_F(f37
, FRAC_CONST(-0.9807852804032304));
540 f40
= MUL_F(f22
, FRAC_CONST(-0.7856949583871021));
544 f44
= MUL_C(f18
, COEF_CONST(1.3870398453221473));
545 f45
= MUL_F(f43
, FRAC_CONST(-0.8314696123025455));
546 f46
= MUL_F(f20
, FRAC_CONST(-0.2758993792829436));
551 f51
= MUL_F(f49
, FRAC_CONST(0.7071067811865476));
554 f54
= MUL_F(f53
, FRAC_CONST(0.7071067811865476));
563 f63
= MUL_F(f60
, FRAC_CONST(0.7071067811865476));
567 f67
= MUL_C(f58
, COEF_CONST(1.3065629648763766));
568 f68
= MUL_F(f66
, FRAC_CONST(-0.9238795325112866));
569 f69
= MUL_F(f62
, FRAC_CONST(-0.5411961001461967));
576 f76
= MUL_F(f59
, FRAC_CONST(0.7071067811865476));
580 f80
= MUL_C(f61
, COEF_CONST(1.3065629648763766));
581 f81
= MUL_F(f79
, FRAC_CONST(-0.9238795325112866));
582 f82
= MUL_F(f57
, FRAC_CONST(-0.5411961001461967));
590 f90
= MUL_F(f86
, FRAC_CONST(-0.8971675863426361));
591 f91
= MUL_F(f89
, FRAC_CONST(0.9951847266721968));
592 f92
= MUL_C(f73
, COEF_CONST(1.0932018670017576));
596 f96
= MUL_F(f88
, FRAC_CONST(-0.6666556584777466));
597 f97
= MUL_F(f95
, FRAC_CONST(0.9569403357322089));
598 f98
= MUL_C(f75
, COEF_CONST(1.2472250129866713));
602 f102
= MUL_F(f87
, FRAC_CONST(-0.4105245275223571));
603 f103
= MUL_F(f101
, FRAC_CONST(0.8819212643483549));
604 f104
= MUL_C(f74
, COEF_CONST(1.3533180011743529));
608 f108
= MUL_F(f85
, FRAC_CONST(-0.1386171691990915));
609 f109
= MUL_F(f107
, FRAC_CONST(0.7730104533627370));
610 f110
= MUL_C(f72
, COEF_CONST(1.4074037375263826));
615 void DCT4_16(real_t
*y
, real_t
*x
)
617 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
618 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
619 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
, f30
;
620 real_t f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
, f40
;
621 real_t f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
, f50
;
622 real_t f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
, f60
;
623 real_t f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
, f69
, f70
;
624 real_t f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
, f79
, f80
;
625 real_t f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
, f89
, f90
;
626 real_t f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
, f99
, f100
;
627 real_t f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
, f109
, f110
;
628 real_t f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
, f119
, f120
;
629 real_t f121
, f122
, f123
, f124
, f125
, f126
, f127
, f128
, f130
, f132
;
630 real_t f134
, f136
, f138
, f140
, f142
, f144
, f145
, f148
, f149
, f152
;
631 real_t f153
, f156
, f157
;
634 f1
= MUL_C(COEF_CONST(1.0478631305325901), x
[0]);
635 f2
= MUL_F(FRAC_CONST(-0.9987954562051724), f0
);
636 f3
= MUL_F(FRAC_CONST(-0.9497277818777548), x
[15]);
640 f7
= MUL_C(COEF_CONST(1.2130114330978077), x
[2]);
641 f8
= MUL_F(FRAC_CONST(-0.9700312531945440), f6
);
642 f9
= MUL_F(FRAC_CONST(-0.7270510732912803), x
[13]);
646 f13
= MUL_C(COEF_CONST(1.3315443865537255), x
[4]);
647 f14
= MUL_F(FRAC_CONST(-0.9039892931234433), f12
);
648 f15
= MUL_F(FRAC_CONST(-0.4764341996931612), x
[11]);
652 f19
= MUL_C(COEF_CONST(1.3989068359730781), x
[6]);
653 f20
= MUL_F(FRAC_CONST(-0.8032075314806453), f18
);
654 f21
= MUL_F(FRAC_CONST(-0.2075082269882124), x
[9]);
658 f25
= MUL_C(COEF_CONST(1.4125100802019777), x
[8]);
659 f26
= MUL_F(FRAC_CONST(-0.6715589548470187), f24
);
660 f27
= MUL_F(FRAC_CONST(0.0693921705079402), x
[7]);
664 f31
= MUL_C(COEF_CONST(1.3718313541934939), x
[10]);
665 f32
= MUL_F(FRAC_CONST(-0.5141027441932219), f30
);
666 f33
= MUL_F(FRAC_CONST(0.3436258658070501), x
[5]);
670 f37
= MUL_C(COEF_CONST(1.2784339185752409), x
[12]);
671 f38
= MUL_F(FRAC_CONST(-0.3368898533922200), f36
);
672 f39
= MUL_F(FRAC_CONST(0.6046542117908008), x
[3]);
676 f43
= MUL_C(COEF_CONST(1.1359069844201433), x
[14]);
677 f44
= MUL_F(FRAC_CONST(-0.1467304744553624), f42
);
678 f45
= MUL_F(FRAC_CONST(0.8424460355094185), x
[1]);
698 f65
= MUL_C(COEF_CONST(1.1758756024193588), f48
);
699 f66
= MUL_F(FRAC_CONST(-0.9807852804032304), f64
);
700 f67
= MUL_F(FRAC_CONST(-0.7856949583871021), f50
);
704 f71
= MUL_C(COEF_CONST(1.3870398453221475), f52
);
705 f72
= MUL_F(FRAC_CONST(-0.5555702330196022), f70
);
706 f73
= MUL_F(FRAC_CONST(0.2758993792829431), f54
);
710 f77
= MUL_F(FRAC_CONST(0.7856949583871022), f56
);
711 f78
= MUL_F(FRAC_CONST(0.1950903220161283), f76
);
712 f79
= MUL_C(COEF_CONST(1.1758756024193586), f58
);
716 f83
= MUL_F(FRAC_CONST(-0.2758993792829430), f60
);
717 f84
= MUL_F(FRAC_CONST(0.8314696123025452), f82
);
718 f85
= MUL_C(COEF_CONST(1.3870398453221475), f62
);
738 f105
= MUL_C(COEF_CONST(1.3065629648763766), f88
);
739 f106
= MUL_F(FRAC_CONST(-0.9238795325112866), f104
);
740 f107
= MUL_F(FRAC_CONST(-0.5411961001461967), f90
);
744 f111
= MUL_F(FRAC_CONST(0.5411961001461969), f92
);
745 f112
= MUL_F(FRAC_CONST(0.3826834323650898), f110
);
746 f113
= MUL_C(COEF_CONST(1.3065629648763766), f94
);
750 f117
= MUL_C(COEF_CONST(1.3065629648763766), f96
);
751 f118
= MUL_F(FRAC_CONST(-0.9238795325112866), f116
);
752 f119
= MUL_F(FRAC_CONST(-0.5411961001461967), f98
);
756 f123
= MUL_F(FRAC_CONST(0.5411961001461969), f100
);
757 f124
= MUL_F(FRAC_CONST(0.3826834323650898), f122
);
758 f125
= MUL_C(COEF_CONST(1.3065629648763766), f102
);
779 y
[8] = MUL_F(FRAC_CONST(0.7071067811865474), f144
);
780 y
[7] = MUL_F(FRAC_CONST(0.7071067811865474), f145
);
783 y
[11] = MUL_F(FRAC_CONST(0.7071067811865474), f148
);
784 y
[4] = MUL_F(FRAC_CONST(0.7071067811865474), f149
);
787 y
[9] = MUL_F(FRAC_CONST(0.7071067811865474), f152
);
788 y
[6] = MUL_F(FRAC_CONST(0.7071067811865474), f153
);
791 y
[10] = MUL_F(FRAC_CONST(0.7071067811865474), f156
);
792 y
[5] = MUL_F(FRAC_CONST(0.7071067811865474), f157
);
795 void DCT3_32_unscaled(real_t
*y
, real_t
*x
)
797 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
798 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
799 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
, f30
;
800 real_t f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
, f40
;
801 real_t f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
, f50
;
802 real_t f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
, f60
;
803 real_t f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
, f69
, f70
;
804 real_t f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
, f79
, f80
;
805 real_t f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
, f89
, f90
;
806 real_t f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
, f99
, f100
;
807 real_t f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
, f109
, f110
;
808 real_t f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
, f119
, f120
;
809 real_t f121
, f122
, f123
, f124
, f125
, f126
, f127
, f128
, f129
, f130
;
810 real_t f131
, f132
, f133
, f134
, f135
, f136
, f137
, f138
, f139
, f140
;
811 real_t f141
, f142
, f143
, f144
, f145
, f146
, f147
, f148
, f149
, f150
;
812 real_t f151
, f152
, f153
, f154
, f155
, f156
, f157
, f158
, f159
, f160
;
813 real_t f161
, f162
, f163
, f164
, f165
, f166
, f167
, f168
, f169
, f170
;
814 real_t f171
, f172
, f173
, f174
, f175
, f176
, f177
, f178
, f179
, f180
;
815 real_t f181
, f182
, f183
, f184
, f185
, f186
, f187
, f188
, f189
, f190
;
816 real_t f191
, f192
, f193
, f194
, f195
, f196
, f197
, f198
, f199
, f200
;
817 real_t f201
, f202
, f203
, f204
, f205
, f206
, f207
, f208
, f209
, f210
;
818 real_t f211
, f212
, f213
, f214
, f215
, f216
, f217
, f218
, f219
, f220
;
819 real_t f221
, f222
, f223
, f224
, f225
, f226
, f227
, f228
, f229
, f230
;
820 real_t f231
, f232
, f233
, f234
, f235
, f236
, f237
, f238
, f239
, f240
;
821 real_t f241
, f242
, f243
, f244
, f245
, f246
, f247
, f248
, f249
, f250
;
822 real_t f251
, f252
, f253
, f254
, f255
, f256
, f257
, f258
, f259
, f260
;
823 real_t f261
, f262
, f263
, f264
, f265
, f266
, f267
, f268
, f269
, f270
;
826 f0
= MUL_F(x
[16], FRAC_CONST(0.7071067811865476));
830 f4
= MUL_C(x
[8], COEF_CONST(1.3065629648763766));
831 f5
= MUL_F(f3
, FRAC_CONST((-0.9238795325112866)));
832 f6
= MUL_F(x
[24], FRAC_CONST((-0.5411961001461967)));
840 f14
= MUL_C(x
[4], COEF_CONST(1.1758756024193588));
841 f15
= MUL_F(f13
, FRAC_CONST((-0.9807852804032304)));
842 f16
= MUL_F(x
[28], FRAC_CONST((-0.7856949583871021)));
846 f20
= MUL_C(x
[12], COEF_CONST(1.3870398453221473));
847 f21
= MUL_F(f19
, FRAC_CONST((-0.8314696123025455)));
848 f22
= MUL_F(x
[20], FRAC_CONST((-0.2758993792829436)));
853 f27
= MUL_F(f25
, FRAC_CONST(0.7071067811865476));
856 f30
= MUL_F(f29
, FRAC_CONST(0.7071067811865476));
868 f42
= MUL_C(x
[2], COEF_CONST(1.0932018670017569));
869 f43
= MUL_F(f41
, FRAC_CONST((-0.9951847266721969)));
870 f44
= MUL_F(x
[30], FRAC_CONST((-0.8971675863426368)));
874 f48
= MUL_C(x
[6], COEF_CONST(1.2472250129866711));
875 f49
= MUL_F(f47
, FRAC_CONST((-0.9569403357322089)));
876 f50
= MUL_F(x
[26], FRAC_CONST((-0.6666556584777469)));
880 f54
= MUL_C(x
[10], COEF_CONST(1.3533180011743526));
881 f55
= MUL_F(f53
, FRAC_CONST((-0.8819212643483551)));
882 f56
= MUL_F(x
[22], FRAC_CONST((-0.4105245275223575)));
886 f60
= MUL_C(x
[14], COEF_CONST(1.4074037375263826));
887 f61
= MUL_F(f59
, FRAC_CONST((-0.7730104533627369)));
888 f62
= MUL_F(x
[18], FRAC_CONST((-0.1386171691990913)));
897 f71
= MUL_F(f69
, FRAC_CONST(0.7071067811865476));
899 f73
= MUL_C(f65
, COEF_CONST(1.3065629648763766));
900 f74
= MUL_F(f72
, FRAC_CONST((-0.9238795325112866)));
901 f75
= MUL_F(f67
, FRAC_CONST((-0.5411961001461967)));
909 f83
= MUL_C(f79
, COEF_CONST(1.3065629648763770));
910 f84
= MUL_F(f82
, FRAC_CONST((-0.3826834323650904)));
911 f85
= MUL_F(f81
, FRAC_CONST(0.5411961001461961));
916 f90
= MUL_F(f89
, FRAC_CONST(0.7071067811865476));
940 f114
= MUL_C(x
[1], COEF_CONST(1.0478631305325901));
941 f115
= MUL_F(f113
, FRAC_CONST((-0.9987954562051724)));
942 f116
= MUL_F(x
[31], FRAC_CONST((-0.9497277818777548)));
946 f120
= MUL_C(x
[5], COEF_CONST(1.2130114330978077));
947 f121
= MUL_F(f119
, FRAC_CONST((-0.9700312531945440)));
948 f122
= MUL_F(x
[27], FRAC_CONST((-0.7270510732912803)));
952 f126
= MUL_C(x
[9], COEF_CONST(1.3315443865537255));
953 f127
= MUL_F(f125
, FRAC_CONST((-0.9039892931234433)));
954 f128
= MUL_F(x
[23], FRAC_CONST((-0.4764341996931612)));
957 f131
= x
[13] + x
[19];
958 f132
= MUL_C(x
[13], COEF_CONST(1.3989068359730781));
959 f133
= MUL_F(f131
, FRAC_CONST((-0.8032075314806453)));
960 f134
= MUL_F(x
[19], FRAC_CONST((-0.2075082269882124)));
963 f137
= x
[17] + x
[15];
964 f138
= MUL_C(x
[17], COEF_CONST(1.4125100802019777));
965 f139
= MUL_F(f137
, FRAC_CONST((-0.6715589548470187)));
966 f140
= MUL_F(x
[15], FRAC_CONST(0.0693921705079402));
969 f143
= x
[21] + x
[11];
970 f144
= MUL_C(x
[21], COEF_CONST(1.3718313541934939));
971 f145
= MUL_F(f143
, FRAC_CONST((-0.5141027441932219)));
972 f146
= MUL_F(x
[11], FRAC_CONST(0.3436258658070501));
976 f150
= MUL_C(x
[25], COEF_CONST(1.2784339185752409));
977 f151
= MUL_F(f149
, FRAC_CONST((-0.3368898533922200)));
978 f152
= MUL_F(x
[7], FRAC_CONST(0.6046542117908008));
982 f156
= MUL_C(x
[29], COEF_CONST(1.1359069844201433));
983 f157
= MUL_F(f155
, FRAC_CONST((-0.1467304744553624)));
984 f158
= MUL_F(x
[3], FRAC_CONST(0.8424460355094185));
1004 f178
= MUL_C(f161
, COEF_CONST(1.1758756024193588));
1005 f179
= MUL_F(f177
, FRAC_CONST((-0.9807852804032304)));
1006 f180
= MUL_F(f163
, FRAC_CONST((-0.7856949583871021)));
1010 f184
= MUL_C(f165
, COEF_CONST(1.3870398453221475));
1011 f185
= MUL_F(f183
, FRAC_CONST((-0.5555702330196022)));
1012 f186
= MUL_F(f167
, FRAC_CONST(0.2758993792829431));
1016 f190
= MUL_F(f169
, FRAC_CONST(0.7856949583871022));
1017 f191
= MUL_F(f189
, FRAC_CONST(0.1950903220161283));
1018 f192
= MUL_C(f171
, COEF_CONST(1.1758756024193586));
1022 f196
= MUL_F(f173
, FRAC_CONST((-0.2758993792829430)));
1023 f197
= MUL_F(f195
, FRAC_CONST(0.8314696123025452));
1024 f198
= MUL_C(f175
, COEF_CONST(1.3870398453221475));
1044 f218
= MUL_C(f201
, COEF_CONST(1.3065629648763766));
1045 f219
= MUL_F(f217
, FRAC_CONST((-0.9238795325112866)));
1046 f220
= MUL_F(f203
, FRAC_CONST((-0.5411961001461967)));
1050 f224
= MUL_F(f205
, FRAC_CONST(0.5411961001461969));
1051 f225
= MUL_F(f223
, FRAC_CONST(0.3826834323650898));
1052 f226
= MUL_C(f207
, COEF_CONST(1.3065629648763766));
1056 f230
= MUL_C(f209
, COEF_CONST(1.3065629648763766));
1057 f231
= MUL_F(f229
, FRAC_CONST((-0.9238795325112866)));
1058 f232
= MUL_F(f211
, FRAC_CONST((-0.5411961001461967)));
1062 f236
= MUL_F(f213
, FRAC_CONST(0.5411961001461969));
1063 f237
= MUL_F(f235
, FRAC_CONST(0.3826834323650898));
1064 f238
= MUL_C(f215
, COEF_CONST(1.3065629648763766));
1085 f259
= MUL_F(f257
, FRAC_CONST(0.7071067811865474));
1086 f260
= MUL_F(f258
, FRAC_CONST(0.7071067811865474));
1089 f263
= MUL_F(f261
, FRAC_CONST(0.7071067811865474));
1090 f264
= MUL_F(f262
, FRAC_CONST(0.7071067811865474));
1093 f267
= MUL_F(f265
, FRAC_CONST(0.7071067811865474));
1094 f268
= MUL_F(f266
, FRAC_CONST(0.7071067811865474));
1097 f271
= MUL_F(f269
, FRAC_CONST(0.7071067811865474));
1098 f272
= MUL_F(f270
, FRAC_CONST(0.7071067811865474));
1101 y
[30] = f100
- f250
;
1103 y
[29] = f102
- f254
;
1105 y
[28] = f104
- f246
;
1107 y
[27] = f106
- f264
;
1109 y
[26] = f108
- f272
;
1111 y
[25] = f110
- f268
;
1113 y
[24] = f112
- f260
;
1115 y
[23] = f111
- f259
;
1117 y
[22] = f109
- f267
;
1119 y
[21] = f107
- f271
;
1120 y
[10] = f107
+ f271
;
1121 y
[20] = f105
- f263
;
1122 y
[11] = f105
+ f263
;
1123 y
[19] = f103
- f248
;
1124 y
[12] = f103
+ f248
;
1125 y
[18] = f101
- f256
;
1126 y
[13] = f101
+ f256
;
1133 void DCT2_32_unscaled(real_t
*y
, real_t
*x
)
1135 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
, f10
;
1136 real_t f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
, f20
;
1137 real_t f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
, f30
;
1138 real_t f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
, f40
;
1139 real_t f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
, f50
;
1140 real_t f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
, f60
;
1141 real_t f63
, f64
, f65
, f66
, f69
, f70
, f71
, f72
, f73
, f74
;
1142 real_t f75
, f76
, f77
, f78
, f79
, f80
, f81
, f83
, f85
, f86
;
1143 real_t f89
, f90
, f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
;
1144 real_t f99
, f100
, f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
;
1145 real_t f109
, f110
, f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
;
1146 real_t f119
, f120
, f121
, f122
, f123
, f124
, f127
, f128
, f129
, f130
;
1147 real_t f133
, f134
, f135
, f136
, f139
, f140
, f141
, f142
, f145
, f146
;
1148 real_t f147
, f148
, f149
, f150
, f151
, f152
, f153
, f154
, f155
, f156
;
1149 real_t f157
, f158
, f159
, f160
, f161
, f162
, f163
, f164
, f165
, f166
;
1150 real_t f167
, f168
, f169
, f170
, f171
, f172
, f173
, f174
, f175
, f176
;
1151 real_t f177
, f178
, f179
, f180
, f181
, f182
, f183
, f184
, f185
, f186
;
1152 real_t f187
, f188
, f189
, f190
, f191
, f192
, f193
, f194
, f195
, f196
;
1153 real_t f197
, f198
, f199
, f200
, f201
, f202
, f203
, f204
, f205
, f206
;
1154 real_t f207
, f208
, f209
, f210
, f211
, f212
, f213
, f214
, f215
, f216
;
1155 real_t f217
, f218
, f219
, f220
, f221
, f222
, f223
, f224
, f225
, f226
;
1156 real_t f227
, f228
, f229
, f230
, f231
, f232
, f233
, f234
, f235
, f236
;
1157 real_t f237
, f238
, f239
, f240
, f241
, f242
, f243
, f244
, f247
, f248
;
1158 real_t f249
, f250
, f253
, f254
, f255
, f256
, f259
, f260
, f261
, f262
;
1159 real_t f265
, f266
, f267
, f268
, f271
, f272
, f273
, f274
, f277
, f278
;
1160 real_t f279
, f280
, f283
, f284
, f285
, f286
;
1182 f20
= x
[10] - x
[21];
1183 f21
= x
[10] + x
[21];
1184 f22
= x
[11] - x
[20];
1185 f23
= x
[11] + x
[20];
1186 f24
= x
[12] - x
[19];
1187 f25
= x
[12] + x
[19];
1188 f26
= x
[13] - x
[18];
1189 f27
= x
[13] + x
[18];
1190 f28
= x
[14] - x
[17];
1191 f29
= x
[14] + x
[17];
1192 f30
= x
[15] - x
[16];
1193 f31
= x
[15] + x
[16];
1224 y
[16] = MUL_F(FRAC_CONST(0.7071067811865476), f60
);
1226 f64
= MUL_C(COEF_CONST(1.3065629648763766), f56
);
1227 f65
= MUL_F(FRAC_CONST(-0.9238795325112866), f63
);
1228 f66
= MUL_F(FRAC_CONST(-0.5411961001461967), f58
);
1232 f70
= MUL_C(COEF_CONST(1.1758756024193588), f48
);
1233 f71
= MUL_F(FRAC_CONST(-0.9807852804032304), f69
);
1234 f72
= MUL_F(FRAC_CONST(-0.7856949583871021), f54
);
1238 f76
= MUL_C(COEF_CONST(1.3870398453221473), f50
);
1239 f77
= MUL_F(FRAC_CONST(-0.8314696123025455), f75
);
1240 f78
= MUL_F(FRAC_CONST(-0.2758993792829436), f52
);
1245 f83
= MUL_F(FRAC_CONST(0.7071067811865476), f81
);
1248 f86
= MUL_F(FRAC_CONST(0.7071067811865476), f85
);
1257 f95
= MUL_F(FRAC_CONST(0.7071067811865476), f92
);
1261 f99
= MUL_C(COEF_CONST(1.3065629648763766), f90
);
1262 f100
= MUL_F(FRAC_CONST(-0.9238795325112866), f98
);
1263 f101
= MUL_F(FRAC_CONST(-0.5411961001461967), f94
);
1270 f108
= MUL_F(FRAC_CONST(0.7071067811865476), f91
);
1274 f112
= MUL_C(COEF_CONST(1.3065629648763766), f93
);
1275 f113
= MUL_F(FRAC_CONST(-0.9238795325112866), f111
);
1276 f114
= MUL_F(FRAC_CONST(-0.5411961001461967), f89
);
1284 f122
= MUL_F(FRAC_CONST(-0.8971675863426361), f118
);
1285 f123
= MUL_F(FRAC_CONST(0.9951847266721968), f121
);
1286 f124
= MUL_C(COEF_CONST(1.0932018670017576), f105
);
1288 y
[30] = f124
- f123
;
1290 f128
= MUL_F(FRAC_CONST(-0.6666556584777466), f120
);
1291 f129
= MUL_F(FRAC_CONST(0.9569403357322089), f127
);
1292 f130
= MUL_C(COEF_CONST(1.2472250129866713), f107
);
1294 y
[26] = f130
- f129
;
1296 f134
= MUL_F(FRAC_CONST(-0.4105245275223571), f119
);
1297 f135
= MUL_F(FRAC_CONST(0.8819212643483549), f133
);
1298 f136
= MUL_C(COEF_CONST(1.3533180011743529), f106
);
1299 y
[10] = f134
+ f135
;
1300 y
[22] = f136
- f135
;
1302 f140
= MUL_F(FRAC_CONST(-0.1386171691990915), f117
);
1303 f141
= MUL_F(FRAC_CONST(0.7730104533627370), f139
);
1304 f142
= MUL_C(COEF_CONST(1.4074037375263826), f104
);
1305 y
[14] = f141
- f140
;
1306 y
[18] = f142
- f141
;
1321 f159
= MUL_F(FRAC_CONST(0.7071067811865476), f152
);
1325 f163
= MUL_C(COEF_CONST(1.3065629648763766), f148
);
1326 f164
= MUL_F(FRAC_CONST(-0.9238795325112866), f162
);
1327 f165
= MUL_F(FRAC_CONST(-0.5411961001461967), f156
);
1335 f173
= MUL_C(COEF_CONST(1.1758756024193588), f146
);
1336 f174
= MUL_F(FRAC_CONST(-0.9807852804032304), f172
);
1337 f175
= MUL_F(FRAC_CONST(-0.7856949583871021), f158
);
1341 f179
= MUL_C(COEF_CONST(1.3870398453221473), f150
);
1342 f180
= MUL_F(FRAC_CONST(-0.8314696123025455), f178
);
1343 f181
= MUL_F(FRAC_CONST(-0.2758993792829436), f154
);
1348 f186
= MUL_F(FRAC_CONST(0.7071067811865476), f184
);
1351 f189
= MUL_F(FRAC_CONST(0.7071067811865476), f188
);
1362 f200
= MUL_F(FRAC_CONST(0.7071067811865476), f151
);
1366 f204
= MUL_C(COEF_CONST(1.3065629648763766), f155
);
1367 f205
= MUL_F(FRAC_CONST(-0.9238795325112866), f203
);
1368 f206
= MUL_F(FRAC_CONST(-0.5411961001461967), f147
);
1376 f214
= MUL_C(COEF_CONST(1.1758756024193588), f157
);
1377 f215
= MUL_F(FRAC_CONST(-0.9807852804032304), f213
);
1378 f216
= MUL_F(FRAC_CONST(-0.7856949583871021), f145
);
1382 f220
= MUL_C(COEF_CONST(1.3870398453221473), f153
);
1383 f221
= MUL_F(FRAC_CONST(-0.8314696123025455), f219
);
1384 f222
= MUL_F(FRAC_CONST(-0.2758993792829436), f149
);
1389 f227
= MUL_F(FRAC_CONST(0.7071067811865476), f225
);
1392 f230
= MUL_F(FRAC_CONST(0.7071067811865476), f229
);
1404 f242
= MUL_F(FRAC_CONST(-0.9497277818777543), f234
);
1405 f243
= MUL_F(FRAC_CONST(0.9987954562051724), f241
);
1406 f244
= MUL_C(COEF_CONST(1.0478631305325905), f193
);
1408 y
[31] = f244
- f243
;
1410 f248
= MUL_F(FRAC_CONST(-0.8424460355094192), f236
);
1411 f249
= MUL_F(FRAC_CONST(0.9891765099647810), f247
);
1412 f250
= MUL_C(COEF_CONST(1.1359069844201428), f195
);
1414 y
[29] = f250
- f249
;
1416 f254
= MUL_F(FRAC_CONST(-0.7270510732912801), f238
);
1417 f255
= MUL_F(FRAC_CONST(0.9700312531945440), f253
);
1418 f256
= MUL_C(COEF_CONST(1.2130114330978079), f197
);
1420 y
[27] = f256
- f255
;
1422 f260
= MUL_F(FRAC_CONST(-0.6046542117908007), f240
);
1423 f261
= MUL_F(FRAC_CONST(0.9415440651830208), f259
);
1424 f262
= MUL_C(COEF_CONST(1.2784339185752409), f199
);
1426 y
[25] = f262
- f261
;
1428 f266
= MUL_F(FRAC_CONST(-0.4764341996931611), f239
);
1429 f267
= MUL_F(FRAC_CONST(0.9039892931234433), f265
);
1430 f268
= MUL_C(COEF_CONST(1.3315443865537255), f198
);
1432 y
[23] = f268
- f267
;
1434 f272
= MUL_F(FRAC_CONST(-0.3436258658070505), f237
);
1435 f273
= MUL_F(FRAC_CONST(0.8577286100002721), f271
);
1436 f274
= MUL_C(COEF_CONST(1.3718313541934939), f196
);
1437 y
[11] = f273
- f272
;
1438 y
[21] = f274
- f273
;
1440 f278
= MUL_F(FRAC_CONST(-0.2075082269882114), f235
);
1441 f279
= MUL_F(FRAC_CONST(0.8032075314806448), f277
);
1442 f280
= MUL_C(COEF_CONST(1.3989068359730783), f194
);
1443 y
[13] = f278
+ f279
;
1444 y
[19] = f280
- f279
;
1446 f284
= MUL_F(FRAC_CONST(-0.0693921705079408), f233
);
1447 f285
= MUL_F(FRAC_CONST(0.7409511253549591), f283
);
1448 f286
= MUL_C(COEF_CONST(1.4125100802019774), f192
);
1449 y
[15] = f285
- f284
;
1450 y
[17] = f286
- f285
;
1453 #else /* #ifdef SBR_LOW_POWER */
1455 /* table for pre-processing within dct4_kernel() */
1456 static const real_t dct4_pre_tab
[] ICONST_ATTR
= {
1457 COEF_CONST(0.999924719333649), COEF_CONST(-1.01219630241394), COEF_CONST(-0.987653195858002),
1458 COEF_CONST(0.998118102550507), COEF_CONST(-1.05943882465363), COEF_CONST(-0.936797380447388),
1459 COEF_CONST(0.993906974792480), COEF_CONST(-1.10412919521332), COEF_CONST(-0.883684754371643),
1460 COEF_CONST(0.987301409244537), COEF_CONST(-1.14615952968597), COEF_CONST(-0.828443288803101),
1461 COEF_CONST(0.978317379951477), COEF_CONST(-1.18542873859405), COEF_CONST(-0.771206021308899),
1462 COEF_CONST(0.966976463794708), COEF_CONST(-1.22184216976166), COEF_CONST(-0.712110757827759),
1463 COEF_CONST(0.953306019306183), COEF_CONST(-1.25531196594238), COEF_CONST(-0.651300072669983),
1464 COEF_CONST(0.937339007854462), COEF_CONST(-1.28575766086578), COEF_CONST(-0.588920354843140),
1465 COEF_CONST(0.919113874435425), COEF_CONST(-1.31310594081879), COEF_CONST(-0.525121808052063),
1466 COEF_CONST(0.898674488067627), COEF_CONST(-1.33729076385498), COEF_CONST(-0.460058242082596),
1467 COEF_CONST(0.876070082187653), COEF_CONST(-1.35825383663177), COEF_CONST(-0.393886327743530),
1468 COEF_CONST(0.851355195045471), COEF_CONST(-1.37594485282898), COEF_CONST(-0.326765477657318),
1469 COEF_CONST(0.824589252471924), COEF_CONST(-1.39032101631165), COEF_CONST(-0.258857429027557),
1470 COEF_CONST(0.795836925506592), COEF_CONST(-1.40134787559509), COEF_CONST(-0.190325915813446),
1471 COEF_CONST(0.765167236328125), COEF_CONST(-1.40899872779846), COEF_CONST(-0.121335685253143),
1472 COEF_CONST(0.732654273509979), COEF_CONST(-1.41325521469116), COEF_CONST(-0.052053272724152),
1473 COEF_CONST(0.698376238346100), COEF_CONST(-1.41410708427429), COEF_CONST( 0.017354607582092),
1474 COEF_CONST(0.662415742874146), COEF_CONST(-1.41155219078064), COEF_CONST( 0.086720645427704),
1475 COEF_CONST(0.624859452247620), COEF_CONST(-1.40559673309326), COEF_CONST( 0.155877828598022),
1476 COEF_CONST(0.585797846317291), COEF_CONST(-1.39625501632690), COEF_CONST( 0.224659323692322),
1477 COEF_CONST(0.545324981212616), COEF_CONST(-1.38354969024658), COEF_CONST( 0.292899727821350),
1478 COEF_CONST(0.503538429737091), COEF_CONST(-1.36751127243042), COEF_CONST( 0.360434412956238),
1479 COEF_CONST(0.460538715124130), COEF_CONST(-1.34817838668823), COEF_CONST( 0.427100926637650),
1480 COEF_CONST(0.416429549455643), COEF_CONST(-1.32559752464294), COEF_CONST( 0.492738455533981),
1481 COEF_CONST(0.371317148208618), COEF_CONST(-1.29982328414917), COEF_CONST( 0.557188928127289),
1482 COEF_CONST(0.325310230255127), COEF_CONST(-1.27091765403748), COEF_CONST( 0.620297133922577),
1483 COEF_CONST(0.278519600629807), COEF_CONST(-1.23895013332367), COEF_CONST( 0.681910991668701),
1484 COEF_CONST(0.231058135628700), COEF_CONST(-1.20399808883667), COEF_CONST( 0.741881847381592),
1485 COEF_CONST(0.183039888739586), COEF_CONST(-1.16614532470703), COEF_CONST( 0.800065577030182),
1486 COEF_CONST(0.134580686688423), COEF_CONST(-1.12548339366913), COEF_CONST( 0.856321990489960),
1487 COEF_CONST(0.085797272622585), COEF_CONST(-1.08210992813110), COEF_CONST( 0.910515367984772),
1488 COEF_CONST(0.036807164549828), COEF_CONST(-1.03612959384918), COEF_CONST( 0.962515234947205)
1491 /* table for post-processing within dct4_kernel() */
1492 static const real_t dct4_post_tab
[] ICONST_ATTR
= {
1493 COEF_CONST(1 ), COEF_CONST(-1 ), COEF_CONST(-1 ),
1494 COEF_CONST(0.998795449733734), COEF_CONST(-1.04786312580109), COEF_CONST(-0.949727773666382),
1495 COEF_CONST(0.995184719562531), COEF_CONST(-1.09320187568665), COEF_CONST(-0.897167563438416),
1496 COEF_CONST(0.989176511764526), COEF_CONST(-1.13590693473816), COEF_CONST(-0.842446029186249),
1497 COEF_CONST(0.980785250663757), COEF_CONST(-1.17587554454803), COEF_CONST(-0.785694956779480),
1498 COEF_CONST(0.970031261444092), COEF_CONST(-1.21301150321960), COEF_CONST(-0.727051079273224),
1499 COEF_CONST(0.956940352916718), COEF_CONST(-1.24722504615784), COEF_CONST(-0.666655659675598),
1500 COEF_CONST(0.941544055938721), COEF_CONST(-1.27843391895294), COEF_CONST(-0.604654192924500),
1501 COEF_CONST(0.923879504203796), COEF_CONST(-1.30656290054321), COEF_CONST(-0.541196048259735),
1502 COEF_CONST(0.903989315032959), COEF_CONST(-1.33154439926148), COEF_CONST(-0.476434230804443),
1503 COEF_CONST(0.881921231746674), COEF_CONST(-1.35331797599793), COEF_CONST(-0.410524487495422),
1504 COEF_CONST(0.857728600502014), COEF_CONST(-1.37183141708374), COEF_CONST(-0.343625843524933),
1505 COEF_CONST(0.831469595432281), COEF_CONST(-1.38703989982605), COEF_CONST(-0.275899350643158),
1506 COEF_CONST(0.803207516670227), COEF_CONST(-1.39890682697296), COEF_CONST(-0.207508206367493),
1507 COEF_CONST(0.773010432720184), COEF_CONST(-1.40740370750427), COEF_CONST(-0.138617098331451),
1508 COEF_CONST(0.740951120853424), COEF_CONST(-1.41251015663147), COEF_CONST(-0.069392144680023),
1509 COEF_CONST(0.707106769084930), COEF_CONST( 0 ), COEF_CONST( 0 ),
1510 COEF_CONST(0.671558916568756), COEF_CONST(-1.41251015663147), COEF_CONST( 0.069392263889313),
1511 COEF_CONST(0.634393274784088), COEF_CONST(-1.40740370750427), COEF_CONST( 0.138617157936096),
1512 COEF_CONST(0.595699310302734), COEF_CONST(-1.39890682697296), COEF_CONST( 0.207508206367493),
1513 COEF_CONST(0.555570185184479), COEF_CONST(-1.38703989982605), COEF_CONST( 0.275899469852448),
1514 COEF_CONST(0.514102697372437), COEF_CONST(-1.37183141708374), COEF_CONST( 0.343625962734222),
1515 COEF_CONST(0.471396654844284), COEF_CONST(-1.35331797599793), COEF_CONST( 0.410524636507034),
1516 COEF_CONST(0.427555114030838), COEF_CONST(-1.33154439926148), COEF_CONST( 0.476434201002121),
1517 COEF_CONST(0.382683426141739), COEF_CONST(-1.30656290054321), COEF_CONST( 0.541196107864380),
1518 COEF_CONST(0.336889833211899), COEF_CONST(-1.27843391895294), COEF_CONST( 0.604654192924500),
1519 COEF_CONST(0.290284633636475), COEF_CONST(-1.24722504615784), COEF_CONST( 0.666655719280243),
1520 COEF_CONST(0.242980122566223), COEF_CONST(-1.21301138401031), COEF_CONST( 0.727051138877869),
1521 COEF_CONST(0.195090234279633), COEF_CONST(-1.17587554454803), COEF_CONST( 0.785695075988770),
1522 COEF_CONST(0.146730497479439), COEF_CONST(-1.13590705394745), COEF_CONST( 0.842446029186249),
1523 COEF_CONST(0.098017133772373), COEF_CONST(-1.09320187568665), COEF_CONST( 0.897167563438416),
1524 COEF_CONST(0.049067649990320), COEF_CONST(-1.04786312580109), COEF_CONST( 0.949727773666382)
1527 // Table adapted from codeclib to fit into IRAM
1528 const uint32_t dct4_revtab
[32] ICONST_ATTR
= {
1529 0, 24, 12, 22, 6, 30, 11, 19, 3, 27, 15, 21, 5, 29, 9, 17,
1530 1, 25, 13, 23, 7, 31, 10, 18, 2, 26, 14, 20, 4, 28, 8, 16};
1532 // Bufferfly used in dct4_kernel()'s pre- and post-processing
1533 #define BUTTERFLY_DCT4(out1, out2, real_part, imag_part, tab, tabidx) \
1536 tmp = MUL_C(x_re + x_im, tab[tabidx++]); \
1537 out1 = MUL_C(x_re , tab[tabidx++]) + tmp; \
1538 out2 = MUL_C(x_im , tab[tabidx++]) + tmp;
1541 void dct4_kernel(real_t
*real
, real_t
*imag
)
1543 uint32_t i
, idx
, tabidx
;
1544 real_t x_re
, x_im
, tmp
;
1545 FFTComplex xc
[32]; /* used for calling codeclib's fft implementation */
1547 /* Step 2: modulate and pre-rotate for codeclib's fft implementation */
1548 // 3*32=96 multiplications
1549 // 3*32=96 additions
1550 for (i
= 0, tabidx
= 0; i
< 32; i
++)
1552 idx
= dct4_revtab
[i
];
1553 BUTTERFLY_DCT4(xc
[idx
].im
, xc
[idx
].re
, real
[i
], imag
[i
], dct4_pre_tab
, tabidx
);
1556 /* Step 3: FFT (codeclib's implementation) */
1557 ff_fft_calc_c(5, xc
);
1559 /* Step 4: modulate + reordering */
1560 // 3*30+2=92 multiplications
1561 // 3*30+2=92 additions
1564 for (i
= 1, tabidx
= 3*1; i
< 16; i
++)
1567 BUTTERFLY_DCT4(imag
[i
], real
[i
], xc
[idx
].re
, xc
[idx
].im
, dct4_post_tab
, tabidx
);
1569 // i = 16, idx = 16 = reorder_tab[16];
1572 imag
[16] = MUL_C(x_im
- x_re
, COEF_CONST(0.707106769084930));
1573 real
[16] = MUL_C(x_re
+ x_im
, COEF_CONST(0.707106769084930));
1574 for (i
= 17, tabidx
= 3*17; i
< 32; i
++)
1577 BUTTERFLY_DCT4(imag
[i
], real
[i
], xc
[idx
].re
, xc
[idx
].im
, dct4_post_tab
, tabidx
);
1581 void DST4_32(real_t
*y
, real_t
*x
)
1583 real_t f0
, f1
, f2
, f3
, f4
, f5
, f6
, f7
, f8
, f9
;
1584 real_t f10
, f11
, f12
, f13
, f14
, f15
, f16
, f17
, f18
, f19
;
1585 real_t f20
, f21
, f22
, f23
, f24
, f25
, f26
, f27
, f28
, f29
;
1586 real_t f30
, f31
, f32
, f33
, f34
, f35
, f36
, f37
, f38
, f39
;
1587 real_t f40
, f41
, f42
, f43
, f44
, f45
, f46
, f47
, f48
, f49
;
1588 real_t f50
, f51
, f52
, f53
, f54
, f55
, f56
, f57
, f58
, f59
;
1589 real_t f60
, f61
, f62
, f63
, f64
, f65
, f66
, f67
, f68
, f69
;
1590 real_t f70
, f71
, f72
, f73
, f74
, f75
, f76
, f77
, f78
, f79
;
1591 real_t f80
, f81
, f82
, f83
, f84
, f85
, f86
, f87
, f88
, f89
;
1592 real_t f90
, f91
, f92
, f93
, f94
, f95
, f96
, f97
, f98
, f99
;
1593 real_t f100
, f101
, f102
, f103
, f104
, f105
, f106
, f107
, f108
, f109
;
1594 real_t f110
, f111
, f112
, f113
, f114
, f115
, f116
, f117
, f118
, f119
;
1595 real_t f120
, f121
, f122
, f123
, f124
, f125
, f126
, f127
, f128
, f129
;
1596 real_t f130
, f131
, f132
, f133
, f134
, f135
, f136
, f137
, f138
, f139
;
1597 real_t f140
, f141
, f142
, f143
, f144
, f145
, f146
, f147
, f148
, f149
;
1598 real_t f150
, f151
, f152
, f153
, f154
, f155
, f156
, f157
, f158
, f159
;
1599 real_t f160
, f161
, f162
, f163
, f164
, f165
, f166
, f167
, f168
, f169
;
1600 real_t f170
, f171
, f172
, f173
, f174
, f175
, f176
, f177
, f178
, f179
;
1601 real_t f180
, f181
, f182
, f183
, f184
, f185
, f186
, f187
, f188
, f189
;
1602 real_t f190
, f191
, f192
, f193
, f194
, f195
, f196
, f197
, f198
, f199
;
1603 real_t f200
, f201
, f202
, f203
, f204
, f205
, f206
, f207
, f208
, f209
;
1604 real_t f210
, f211
, f212
, f213
, f214
, f215
, f216
, f217
, f218
, f219
;
1605 real_t f220
, f221
, f222
, f223
, f224
, f225
, f226
, f227
, f228
, f229
;
1606 real_t f230
, f231
, f232
, f233
, f234
, f235
, f236
, f237
, f238
, f239
;
1607 real_t f240
, f241
, f242
, f243
, f244
, f245
, f246
, f247
, f248
, f249
;
1608 real_t f250
, f251
, f252
, f253
, f254
, f255
, f256
, f257
, f258
, f259
;
1609 real_t f260
, f261
, f262
, f263
, f264
, f265
, f266
, f267
, f268
, f269
;
1610 real_t f270
, f271
, f272
, f273
, f274
, f275
, f276
, f277
, f278
, f279
;
1611 real_t f280
, f281
, f282
, f283
, f284
, f285
, f286
, f287
, f288
, f289
;
1612 real_t f290
, f291
, f292
, f293
, f294
, f295
, f296
, f297
, f298
, f299
;
1613 real_t f300
, f301
, f302
, f303
, f304
, f305
, f306
, f307
, f308
, f309
;
1614 real_t f310
, f311
, f312
, f313
, f314
, f315
, f316
, f317
, f318
, f319
;
1615 real_t f320
, f321
, f322
, f323
, f324
, f325
, f326
, f327
, f328
, f329
;
1616 real_t f330
, f331
, f332
, f333
, f334
, f335
;
1628 f10
= x
[10] - x
[11];
1629 f11
= x
[12] - x
[11];
1630 f12
= x
[12] - x
[13];
1631 f13
= x
[14] - x
[13];
1632 f14
= x
[14] - x
[15];
1633 f15
= x
[16] - x
[15];
1634 f16
= x
[16] - x
[17];
1635 f17
= x
[18] - x
[17];
1636 f18
= x
[18] - x
[19];
1637 f19
= x
[20] - x
[19];
1638 f20
= x
[20] - x
[21];
1639 f21
= x
[22] - x
[21];
1640 f22
= x
[22] - x
[23];
1641 f23
= x
[24] - x
[23];
1642 f24
= x
[24] - x
[25];
1643 f25
= x
[26] - x
[25];
1644 f26
= x
[26] - x
[27];
1645 f27
= x
[28] - x
[27];
1646 f28
= x
[28] - x
[29];
1647 f29
= x
[30] - x
[29];
1648 f30
= x
[30] - x
[31];
1649 f31
= MUL_F(FRAC_CONST(0.7071067811865476), f15
);
1653 f35
= MUL_C(COEF_CONST(1.3065629648763766), f7
);
1654 f36
= MUL_F(FRAC_CONST(-0.9238795325112866), f34
);
1655 f37
= MUL_F(FRAC_CONST(-0.5411961001461967), f23
);
1664 f46
= MUL_F(FRAC_CONST(0.7071067811865476), f45
);
1667 f49
= MUL_F(FRAC_CONST(0.7071067811865476), f44
);
1671 f53
= MUL_F(FRAC_CONST(-0.7856949583871021), f51
);
1672 f54
= MUL_F(FRAC_CONST(0.9807852804032304), f52
);
1673 f55
= MUL_C(COEF_CONST(1.1758756024193588), f48
);
1677 f59
= MUL_F(FRAC_CONST(-0.2758993792829430), f50
);
1678 f60
= MUL_F(FRAC_CONST(0.8314696123025452), f58
);
1679 f61
= MUL_C(COEF_CONST(1.3870398453221475), f47
);
1696 f78
= MUL_F(FRAC_CONST(0.7071067811865476), f75
);
1700 f82
= MUL_C(COEF_CONST(1.3065629648763766), f73
);
1701 f83
= MUL_F(FRAC_CONST(-0.9238795325112866), f81
);
1702 f84
= MUL_F(FRAC_CONST(-0.5411961001461967), f77
);
1709 f91
= MUL_F(FRAC_CONST(0.7071067811865476), f74
);
1713 f95
= MUL_C(COEF_CONST(1.3065629648763766), f76
);
1714 f96
= MUL_F(FRAC_CONST(-0.9238795325112866), f94
);
1715 f97
= MUL_F(FRAC_CONST(-0.5411961001461967), f72
);
1723 f105
= MUL_F(FRAC_CONST(-0.8971675863426361), f101
);
1724 f106
= MUL_F(FRAC_CONST(0.9951847266721968), f104
);
1725 f107
= MUL_C(COEF_CONST(1.0932018670017576), f88
);
1729 f111
= MUL_F(FRAC_CONST(-0.6666556584777466), f103
);
1730 f112
= MUL_F(FRAC_CONST(0.9569403357322089), f110
);
1731 f113
= MUL_C(COEF_CONST(1.2472250129866713), f90
);
1735 f117
= MUL_F(FRAC_CONST(-0.4105245275223571), f102
);
1736 f118
= MUL_F(FRAC_CONST(0.8819212643483549), f116
);
1737 f119
= MUL_C(COEF_CONST(1.3533180011743529), f89
);
1741 f123
= MUL_F(FRAC_CONST(-0.1386171691990915), f100
);
1742 f124
= MUL_F(FRAC_CONST(0.7730104533627370), f122
);
1743 f125
= MUL_C(COEF_CONST(1.4074037375263826), f87
);
1763 f145
= MUL_C(COEF_CONST(1.0478631305325901), f0
);
1764 f146
= MUL_F(FRAC_CONST(-0.9987954562051724), f144
);
1765 f147
= MUL_F(FRAC_CONST(-0.9497277818777548), f30
);
1769 f151
= MUL_F(FRAC_CONST(1.2130114330978077), f4
);
1770 f152
= MUL_F(FRAC_CONST(-0.9700312531945440), f150
);
1771 f153
= MUL_F(FRAC_CONST(-0.7270510732912803), f26
);
1775 f157
= MUL_C(COEF_CONST(1.3315443865537255), f8
);
1776 f158
= MUL_F(FRAC_CONST(-0.9039892931234433), f156
);
1777 f159
= MUL_F(FRAC_CONST(-0.4764341996931612), f22
);
1781 f163
= MUL_C(COEF_CONST(1.3989068359730781), f12
);
1782 f164
= MUL_F(FRAC_CONST(-0.8032075314806453), f162
);
1783 f165
= MUL_F(FRAC_CONST(-0.2075082269882124), f18
);
1787 f169
= MUL_C(COEF_CONST(1.4125100802019777), f16
);
1788 f170
= MUL_F(FRAC_CONST(-0.6715589548470187), f168
);
1789 f171
= MUL_F(FRAC_CONST(0.0693921705079402), f14
);
1793 f175
= MUL_C(COEF_CONST(1.3718313541934939), f20
);
1794 f176
= MUL_F(FRAC_CONST(-0.5141027441932219), f174
);
1795 f177
= MUL_F(FRAC_CONST(0.3436258658070501), f10
);
1799 f181
= MUL_C(COEF_CONST(1.2784339185752409), f24
);
1800 f182
= MUL_F(FRAC_CONST(-0.3368898533922200), f180
);
1801 f183
= MUL_F(FRAC_CONST(0.6046542117908008), f6
);
1805 f187
= MUL_C(COEF_CONST(1.1359069844201433), f28
);
1806 f188
= MUL_F(FRAC_CONST(-0.1467304744553624), f186
);
1807 f189
= MUL_F(FRAC_CONST(0.8424460355094185), f2
);
1827 f209
= MUL_C(COEF_CONST(1.1758756024193588), f192
);
1828 f210
= MUL_F(FRAC_CONST(-0.9807852804032304), f208
);
1829 f211
= MUL_F(FRAC_CONST(-0.7856949583871021), f194
);
1833 f215
= MUL_C(COEF_CONST(1.3870398453221475), f196
);
1834 f216
= MUL_F(FRAC_CONST(-0.5555702330196022), f214
);
1835 f217
= MUL_F(FRAC_CONST(0.2758993792829431), f198
);
1839 f221
= MUL_F(FRAC_CONST(0.7856949583871022), f200
);
1840 f222
= MUL_F(FRAC_CONST(0.1950903220161283), f220
);
1841 f223
= MUL_C(COEF_CONST(1.1758756024193586), f202
);
1845 f227
= MUL_F(FRAC_CONST(-0.2758993792829430), f204
);
1846 f228
= MUL_F(FRAC_CONST(0.8314696123025452), f226
);
1847 f229
= MUL_C(COEF_CONST(1.3870398453221475), f206
);
1867 f249
= MUL_C(COEF_CONST(1.3065629648763766), f232
);
1868 f250
= MUL_F(FRAC_CONST(-0.9238795325112866), f248
);
1869 f251
= MUL_F(FRAC_CONST(-0.5411961001461967), f234
);
1873 f255
= MUL_F(FRAC_CONST(0.5411961001461969), f236
);
1874 f256
= MUL_F(FRAC_CONST(0.3826834323650898), f254
);
1875 f257
= MUL_C(COEF_CONST(1.3065629648763766), f238
);
1879 f261
= MUL_C(COEF_CONST(1.3065629648763766), f240
);
1880 f262
= MUL_F(FRAC_CONST(-0.9238795325112866), f260
);
1881 f263
= MUL_F(FRAC_CONST(-0.5411961001461967), f242
);
1885 f267
= MUL_F(FRAC_CONST(0.5411961001461969), f244
);
1886 f268
= MUL_F(FRAC_CONST(0.3826834323650898), f266
);
1887 f269
= MUL_C(COEF_CONST(1.3065629648763766), f246
);
1908 f290
= MUL_F(FRAC_CONST(0.7071067811865474), f288
);
1909 f291
= MUL_F(FRAC_CONST(0.7071067811865474), f289
);
1912 f294
= MUL_F(FRAC_CONST(0.7071067811865474), f292
);
1913 f295
= MUL_F(FRAC_CONST(0.7071067811865474), f293
);
1916 f298
= MUL_F(FRAC_CONST(0.7071067811865474), f296
);
1917 f299
= MUL_F(FRAC_CONST(0.7071067811865474), f297
);
1920 f302
= MUL_F(FRAC_CONST(0.7071067811865474), f300
);
1921 f303
= MUL_F(FRAC_CONST(0.7071067811865474), f301
);
1954 y
[31] = MUL_F(FRAC_CONST(0.5001506360206510), f305
);
1955 y
[30] = MUL_F(FRAC_CONST(0.5013584524464084), f307
);
1956 y
[29] = MUL_F(FRAC_CONST(0.5037887256810443), f309
);
1957 y
[28] = MUL_F(FRAC_CONST(0.5074711720725553), f311
);
1958 y
[27] = MUL_F(FRAC_CONST(0.5124514794082247), f313
);
1959 y
[26] = MUL_F(FRAC_CONST(0.5187927131053328), f315
);
1960 y
[25] = MUL_F(FRAC_CONST(0.5265773151542700), f317
);
1961 y
[24] = MUL_F(FRAC_CONST(0.5359098169079920), f319
);
1962 y
[23] = MUL_F(FRAC_CONST(0.5469204379855088), f321
);
1963 y
[22] = MUL_F(FRAC_CONST(0.5597698129470802), f323
);
1964 y
[21] = MUL_F(FRAC_CONST(0.5746551840326600), f325
);
1965 y
[20] = MUL_F(FRAC_CONST(0.5918185358574165), f327
);
1966 y
[19] = MUL_F(FRAC_CONST(0.6115573478825099), f329
);
1967 y
[18] = MUL_F(FRAC_CONST(0.6342389366884031), f331
);
1968 y
[17] = MUL_F(FRAC_CONST(0.6603198078137061), f333
);
1969 y
[16] = MUL_F(FRAC_CONST(0.6903721282002123), f335
);
1970 y
[15] = MUL_F(FRAC_CONST(0.7251205223771985), f334
);
1971 y
[14] = MUL_F(FRAC_CONST(0.7654941649730891), f332
);
1972 y
[13] = MUL_F(FRAC_CONST(0.8127020908144905), f330
);
1973 y
[12] = MUL_F(FRAC_CONST(0.8683447152233481), f328
);
1974 y
[11] = MUL_F(FRAC_CONST(0.9345835970364075), f326
);
1975 y
[10] = MUL_C(COEF_CONST(1.0144082649970547), f324
);
1976 y
[9] = MUL_C(COEF_CONST(1.1120716205797176), f322
);
1977 y
[8] = MUL_C(COEF_CONST(1.2338327379765710), f320
);
1978 y
[7] = MUL_C(COEF_CONST(1.3892939586328277), f318
);
1979 y
[6] = MUL_C(COEF_CONST(1.5939722833856311), f316
);
1980 y
[5] = MUL_C(COEF_CONST(1.8746759800084078), f314
);
1981 y
[4] = MUL_C(COEF_CONST(2.2820500680051619), f312
);
1982 y
[3] = MUL_C(COEF_CONST(2.9246284281582162), f310
);
1983 y
[2] = MUL_C(COEF_CONST(4.0846110781292477), f308
);
1984 y
[1] = MUL_C(COEF_CONST(6.7967507116736332), f306
);
1985 y
[0] = MUL_R(REAL_CONST(20.3738781672314530), f304
);
1988 #endif /* #ifdef SBR_LOW_POWER */
1990 #endif /* #ifdef SBR_DEC */