ffmpeg / libavcodec / mpegaudiotab.h @ 983e3246
History | View | Annotate | Download (2.55 KB)
1 |
/*
|
---|---|
2 |
* mpeg audio layer 2 tables. Most of them come from the mpeg audio
|
3 |
* specification.
|
4 |
*
|
5 |
* Copyright (c) 2000, 2001 Fabrice Bellard.
|
6 |
*
|
7 |
* The licence of this code is contained in file LICENCE found in the
|
8 |
* same archive
|
9 |
*/
|
10 |
|
11 |
/**
|
12 |
* @file mpegaudiotab.h
|
13 |
* mpeg audio layer 2 tables.
|
14 |
* Most of them come from the mpeg audio specification.
|
15 |
*/
|
16 |
|
17 |
#define SQRT2 1.41421356237309514547 |
18 |
|
19 |
static const int costab32[30] = { |
20 |
FIX(0.54119610014619701222), |
21 |
FIX(1.3065629648763763537), |
22 |
|
23 |
FIX(0.50979557910415917998), |
24 |
FIX(2.5629154477415054814), |
25 |
FIX(0.89997622313641556513), |
26 |
FIX(0.60134488693504528634), |
27 |
|
28 |
FIX(0.5024192861881556782), |
29 |
FIX(5.1011486186891552563), |
30 |
FIX(0.78815462345125020249), |
31 |
FIX(0.64682178335999007679), |
32 |
FIX(0.56694403481635768927), |
33 |
FIX(1.0606776859903470633), |
34 |
FIX(1.7224470982383341955), |
35 |
FIX(0.52249861493968885462), |
36 |
|
37 |
FIX(10.19000812354803287), |
38 |
FIX(0.674808341455005678), |
39 |
FIX(1.1694399334328846596), |
40 |
FIX(0.53104259108978413284), |
41 |
FIX(2.0577810099534108446), |
42 |
FIX(0.58293496820613388554), |
43 |
FIX(0.83934964541552681272), |
44 |
FIX(0.50547095989754364798), |
45 |
FIX(3.4076084184687189804), |
46 |
FIX(0.62250412303566482475), |
47 |
FIX(0.97256823786196078263), |
48 |
FIX(0.51544730992262455249), |
49 |
FIX(1.4841646163141661852), |
50 |
FIX(0.5531038960344445421), |
51 |
FIX(0.74453627100229857749), |
52 |
FIX(0.5006029982351962726), |
53 |
}; |
54 |
|
55 |
static const int bitinv32[32] = { |
56 |
0, 16, 8, 24, 4, 20, 12, 28, |
57 |
2, 18, 10, 26, 6, 22, 14, 30, |
58 |
1, 17, 9, 25, 5, 21, 13, 29, |
59 |
3, 19, 11, 27, 7, 23, 15, 31 |
60 |
}; |
61 |
|
62 |
|
63 |
static int16_t filter_bank[512]; |
64 |
|
65 |
static int scale_factor_table[64]; |
66 |
#ifdef USE_FLOATS
|
67 |
static float scale_factor_inv_table[64]; |
68 |
#else
|
69 |
static int8_t scale_factor_shift[64]; |
70 |
static unsigned short scale_factor_mult[64]; |
71 |
#endif
|
72 |
static unsigned char scale_diff_table[128]; |
73 |
|
74 |
/* total number of bits per allocation group */
|
75 |
static unsigned short total_quant_bits[17]; |
76 |
|
77 |
/* signal to noise ratio of each quantification step (could be
|
78 |
computed from quant_steps[]). The values are dB multiplied by 10
|
79 |
*/
|
80 |
static unsigned short quant_snr[17] = { |
81 |
70, 110, 160, 208, |
82 |
253, 316, 378, 439, |
83 |
499, 559, 620, 680, |
84 |
740, 800, 861, 920, |
85 |
980
|
86 |
}; |
87 |
|
88 |
/* fixed psycho acoustic model. Values of SNR taken from the 'toolame'
|
89 |
project */
|
90 |
static const float fixed_smr[SBLIMIT] = { |
91 |
30, 17, 16, 10, 3, 12, 8, 2.5, |
92 |
5, 5, 6, 6, 5, 6, 10, 6, |
93 |
-4, -10, -21, -30, -42, -55, -68, -75, |
94 |
-75, -75, -75, -75, -91, -107, -110, -108 |
95 |
}; |
96 |
|
97 |
static const unsigned char nb_scale_factors[4] = { 3, 2, 1, 2 }; |
98 |
|