]> git.sesse.net Git - ffmpeg/blob - libavcodec/dcaenc.h
sgidec: make compiler optimize away memcpy call in inner loop.
[ffmpeg] / libavcodec / dcaenc.h
1 /*
2  * DCA encoder tables
3  * Copyright (C) 2008 Alexander E. Patrakov
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21
22 #ifndef AVCODEC_DCAENC_H
23 #define AVCODEC_DCAENC_H
24
25 /* This is a scaled version of the response of the reference decoder to
26    this vector of subband samples: ( 1.0 0.0 0.0 ... 0.0 )
27    */
28
29 static const int32_t UnQMF[512] = {
30     7,
31     4,
32     -961,
33     -2844,
34     -8024,
35     -18978,
36     -32081,
37     -15635,
38     -16582,
39     -18359,
40     -17180,
41     -14868,
42     -11664,
43     -8051,
44     -4477,
45     -1327,
46     -1670,
47     -6019,
48     -11590,
49     -18030,
50     -24762,
51     -30965,
52     -35947,
53     -36145,
54     -37223,
55     -86311,
56     -57024,
57     -27215,
58     -11274,
59     -4684,
60     42,
61     108,
62     188,
63     250,
64     -1007,
65     -596,
66     -2289,
67     -12218,
68     -27191,
69     -124367,
70     -184256,
71     -250538,
72     -323499,
73     -397784,
74     -468855,
75     -532072,
76     -583000,
77     -618041,
78     -777916,
79     -783868,
80     -765968,
81     -724740,
82     -662468,
83     -583058,
84     -490548,
85     -401623,
86     -296090,
87     -73154,
88     -36711,
89     -7766,
90     -2363,
91     -4905,
92     2388,
93     2681,
94     5651,
95     4086,
96     71110,
97     139742,
98     188067,
99     151237,
100     101355,
101     309917,
102     343690,
103     358839,
104     357555,
105     334606,
106     289625,
107     224152,
108     142063,
109     48725,
110     74996,
111     238425,
112     411666,
113     584160,
114     744276,
115     880730,
116     983272,
117     1041933,
118     1054396,
119     789531,
120     851022,
121     864032,
122     675431,
123     418134,
124     35762,
125     66911,
126     103502,
127     136403,
128     -55147,
129     -245269,
130     -499595,
131     -808470,
132     -1136858,
133     -2010912,
134     -2581654,
135     -3151901,
136     -3696328,
137     -4196599,
138     -4633761,
139     -4993229,
140     -5262495,
141     -5436311,
142     -477650,
143     -901314,
144     -1308090,
145     -1677468,
146     -1985525,
147     -2212848,
148     -2341196,
149     -2373915,
150     -2269552,
151     -2620489,
152     -2173858,
153     -1629954,
154     -946595,
155     -193499,
156     1119459,
157     1138657,
158     1335311,
159     1126544,
160     2765033,
161     3139603,
162     3414913,
163     3599213,
164     3676363,
165     3448981,
166     3328726,
167     3111551,
168     2810887,
169     2428657,
170     1973684,
171     1457278,
172     893848,
173     300995,
174     -292521,
175     -867621,
176     -1404936,
177     -1871278,
178     -2229831,
179     -2440932,
180     -2462684,
181     -2255006,
182     -1768898,
183     -1079574,
184     82115,
185     1660302,
186     3660715,
187     6123610,
188     8329598,
189     11888744,
190     15722147,
191     19737089,
192     25647773,
193     31039399,
194     36868007,
195     43124253,
196     49737161,
197     56495958,
198     63668945,
199     71039511,
200     78540240,
201     86089058,
202     93600041,
203     100981151,
204     108136061,
205     114970055,
206     121718321,
207     127566038,
208     132774642,
209     137247294,
210     140894737,
211     143635018,
212     145395599,
213     146114032,
214     145742999,
215     144211606,
216     141594341,
217     137808404,
218     132914122,
219     126912246,
220     120243281,
221     112155281,
222     103338368,
223     93904953,
224     83439152,
225     72921548,
226     62192990,
227     51434918,
228     40894003,
229     30786726,
230     21384955,
231     12939112,
232     5718193,
233     -5790,
234     -3959261,
235     -5870978,
236     -5475538,
237     -2517061,
238     3247310,
239     12042937,
240     24076729,
241     39531397,
242     58562863,
243     81297002,
244     107826748,
245     138209187,
246     172464115,
247     210569037,
248     252468018,
249     298045453,
250     347168648,
251     399634888,
252     455137189,
253     513586535,
254     574537650,
255     637645129,
256     702597163,
257     768856566,
258     836022040,
259     903618096,
260     971159680,
261     1038137214,
262     1103987353,
263     1168195035,
264     1230223053,
265     1289539180,
266     1345620373,
267     1397957958,
268     1446063657,
269     1489474689,
270     1527740502,
271     1560502307,
272     1587383079,
273     1608071145,
274     1622301248,
275     1629859340,
276     1630584888,
277     1624373875,
278     1611178348,
279     1591018893,
280     1563948667,
281     1530105004,
282     1489673227,
283     1442904075,
284     1390107674,
285     1331590427,
286     1267779478,
287     1199115126,
288     1126053392,
289     1049146257,
290     968928307,
291     885965976,
292     800851610,
293     714186243,
294     626590147,
295     538672486,
296     451042824,
297     364299927,
298     279026812,
299     195785029,
300     115109565,
301     37503924,
302     -36564551,
303     -106668063,
304     -172421668,
305     -233487283,
306     -289575706,
307     -340448569,
308     -385919511,
309     -425854915,
310     -460174578,
311     -488840702,
312     -511893328,
313     -529405118,
314     -541489888,
315     -548312207,
316     -550036471,
317     -547005316,
318     -539436808,
319     -527630488,
320     -512084785,
321     -492941605,
322     -470665204,
323     -445668379,
324     -418328829,
325     -389072810,
326     -358293846,
327     -326396227,
328     -293769619,
329     -260792276,
330     -227825056,
331     -195208961,
332     -163262121,
333     -132280748,
334     -102533727,
335     -74230062,
336     -47600637,
337     -22817785,
338     -25786,
339     20662895,
340     39167253,
341     55438413,
342     69453741,
343     81242430,
344     90795329,
345     98213465,
346     103540643,
347     106917392,
348     108861938,
349     108539682,
350     106780704,
351     103722568,
352     99043289,
353     93608686,
354     87266209,
355     80212203,
356     72590022,
357     64603428,
358     56362402,
359     48032218,
360     39749162,
361     31638971,
362     23814664,
363     16376190,
364     9409836,
365     2988017,
366     -2822356,
367     -7976595,
368     -12454837,
369     -16241147,
370     -19331944,
371     -21735011,
372     -23468284,
373     -24559822,
374     -25042936,
375     -25035583,
376     -24429587,
377     -23346408,
378     -21860411,
379     -20015718,
380     -17025330,
381     -14968728,
382     -12487138,
383     -9656319,
384     -7846681,
385     -5197816,
386     -2621904,
387     -144953,
388     2144746,
389     3990570,
390     5845884,
391     7454650,
392     8820394,
393     9929891,
394     10784445,
395     11390921,
396     11762056,
397     11916017,
398     12261189,
399     12117604,
400     11815303,
401     11374622,
402     10815301,
403     10157241,
404     9418799,
405     8629399,
406     7780776,
407     7303680,
408     6353499,
409     5392738,
410     4457895,
411     3543062,
412     1305978,
413     1402521,
414     1084092,
415     965652,
416     -151008,
417     -666667,
418     -1032157,
419     -1231475,
420     -1319043,
421     -1006023,
422     -915720,
423     -773426,
424     -612377,
425     -445864,
426     -291068,
427     -161337,
428     -66484,
429     -11725,
430     133453,
431     388184,
432     615856,
433     804033,
434     942377,
435     1022911,
436     1041247,
437     995854,
438     891376,
439     572246,
440     457992,
441     316365,
442     172738,
443     43037,
444     -117662,
445     -98542,
446     -70279,
447     -41458,
448     -535790,
449     -959038,
450     -1364456,
451     -1502265,
452     -1568530,
453     -2378681,
454     -2701111,
455     -2976407,
456     -3182552,
457     -3314415,
458     -3366600,
459     -3337701,
460     -3232252,
461     -3054999,
462     1984841,
463     1925903,
464     1817377,
465     1669153,
466     1490069,
467     1292040,
468     1086223,
469     890983,
470     699163,
471     201358,
472     266971,
473     296990,
474     198419,
475     91119,
476     4737,
477     5936,
478     2553,
479     2060,
480     -3828,
481     -1664,
482     -4917,
483     -20796,
484     -36822,
485     -131247,
486     -154923,
487     -162055,
488     -161354,
489     -148762,
490     -125754,
491     -94473,
492     -57821,
493     -19096,
494     15172,
495     43004,
496     65624,
497     81354,
498     89325,
499     89524,
500     82766,
501     71075,
502     55128,
503     13686,
504     6921,
505     1449,
506     420,
507     785,
508     -215,
509     -179,
510     -113,
511     -49,
512     6002,
513     16007,
514     42978,
515     100662,
516     171472,
517     83975,
518     93702,
519     108813,
520     111893,
521     110272,
522     103914,
523     93973,
524     81606,
525     68041,
526     -54058,
527     -60695,
528     -65277,
529     -67224,
530     -66213,
531     -62082,
532     -55574,
533     -42988,
534     -35272,
535     -63735,
536     -33501,
537     -12671,
538     -4038,
539     -1232,
540     5,
541     7
542 };
543
544 #endif /* AVCODEC_DCAENC_H */