Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpegaudiotab.h @ 2912e87a

History | View | Annotate | Download (3.31 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
 * This file is part of Libav.
8
 *
9
 * Libav is free software; you can redistribute it and/or
10
 * modify it under the terms of the GNU Lesser General Public
11
 * License as published by the Free Software Foundation; either
12
 * version 2.1 of the License, or (at your option) any later version.
13
 *
14
 * Libav is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
 * Lesser General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU Lesser General Public
20
 * License along with Libav; if not, write to the Free Software
21
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
 */
23

    
24
/**
25
 * @file
26
 * mpeg audio layer 2 tables.
27
 * Most of them come from the mpeg audio specification.
28
 */
29

    
30
#ifndef AVCODEC_MPEGAUDIOTAB_H
31
#define AVCODEC_MPEGAUDIOTAB_H
32

    
33
#include <stdint.h>
34
#include "mpegaudio.h"
35

    
36
#define SQRT2 1.41421356237309514547
37

    
38
static const int costab32[30] = {
39
    FIX(0.54119610014619701222),
40
    FIX(1.3065629648763763537),
41

    
42
    FIX(0.50979557910415917998),
43
    FIX(2.5629154477415054814),
44
    FIX(0.89997622313641556513),
45
    FIX(0.60134488693504528634),
46

    
47
    FIX(0.5024192861881556782),
48
    FIX(5.1011486186891552563),
49
    FIX(0.78815462345125020249),
50
    FIX(0.64682178335999007679),
51
    FIX(0.56694403481635768927),
52
    FIX(1.0606776859903470633),
53
    FIX(1.7224470982383341955),
54
    FIX(0.52249861493968885462),
55

    
56
    FIX(10.19000812354803287),
57
    FIX(0.674808341455005678),
58
    FIX(1.1694399334328846596),
59
    FIX(0.53104259108978413284),
60
    FIX(2.0577810099534108446),
61
    FIX(0.58293496820613388554),
62
    FIX(0.83934964541552681272),
63
    FIX(0.50547095989754364798),
64
    FIX(3.4076084184687189804),
65
    FIX(0.62250412303566482475),
66
    FIX(0.97256823786196078263),
67
    FIX(0.51544730992262455249),
68
    FIX(1.4841646163141661852),
69
    FIX(0.5531038960344445421),
70
    FIX(0.74453627100229857749),
71
    FIX(0.5006029982351962726),
72
};
73

    
74
static const int bitinv32[32] = {
75
    0,  16,  8, 24,  4,  20,  12,  28,
76
    2,  18, 10, 26,  6,  22,  14,  30,
77
    1,  17,  9, 25,  5,  21,  13,  29,
78
    3,  19, 11, 27,  7,  23,  15,  31
79
};
80

    
81

    
82
static int16_t filter_bank[512];
83

    
84
static int scale_factor_table[64];
85
#ifdef USE_FLOATS
86
static float scale_factor_inv_table[64];
87
#else
88
static int8_t scale_factor_shift[64];
89
static unsigned short scale_factor_mult[64];
90
#endif
91
static unsigned char scale_diff_table[128];
92

    
93
/* total number of bits per allocation group */
94
static unsigned short total_quant_bits[17];
95

    
96
/* signal to noise ratio of each quantification step (could be
97
   computed from quant_steps[]). The values are dB multiplied by 10
98
*/
99
static const unsigned short quant_snr[17] = {
100
     70, 110, 160, 208,
101
    253, 316, 378, 439,
102
    499, 559, 620, 680,
103
    740, 800, 861, 920,
104
    980
105
};
106

    
107
/* fixed psycho acoustic model. Values of SNR taken from the 'toolame'
108
   project */
109
static const float fixed_smr[SBLIMIT] =  {
110
    30, 17, 16, 10, 3, 12, 8, 2.5,
111
    5, 5, 6, 6, 5, 6, 10, 6,
112
    -4, -10, -21, -30, -42, -55, -68, -75,
113
    -75, -75, -75, -75, -91, -107, -110, -108
114
};
115

    
116
static const unsigned char nb_scale_factors[4] = { 3, 2, 1, 2 };
117

    
118
#endif /* AVCODEC_MPEGAUDIOTAB_H */