Statistics
| Branch: | Revision:

ffmpeg / libavcodec / ac3tab.h @ da9c9637

History | View | Annotate | Download (6.32 KB)

1
/**
2
 * @file ac3tab.h
3
 * tables taken directly from AC3 spec.
4
 */
5

    
6
/* possible frequencies */
7
static const uint16_t ac3_freqs[3] = { 48000, 44100, 32000 };
8

    
9
/* possible bitrates */
10
static const uint16_t ac3_bitratetab[19] = {
11
    32, 40, 48, 56, 64, 80, 96, 112, 128, 
12
    160, 192, 224, 256, 320, 384, 448, 512, 576, 640 
13
};
14

    
15
/* AC3 MDCT window */
16

    
17
/* MDCT window */
18
static const int16_t ac3_window[256] = {
19
    4,    7,   12,   16,   21,   28,   34,   42,
20
   51,   61,   72,   84,   97,  111,  127,  145,
21
  164,  184,  207,  231,  257,  285,  315,  347,
22
  382,  419,  458,  500,  544,  591,  641,  694,
23
  750,  810,  872,  937, 1007, 1079, 1155, 1235,
24
 1318, 1406, 1497, 1593, 1692, 1796, 1903, 2016,
25
 2132, 2253, 2379, 2509, 2644, 2783, 2927, 3076,
26
 3230, 3389, 3552, 3721, 3894, 4072, 4255, 4444,
27
 4637, 4835, 5038, 5246, 5459, 5677, 5899, 6127,
28
 6359, 6596, 6837, 7083, 7334, 7589, 7848, 8112,
29
 8380, 8652, 8927, 9207, 9491, 9778,10069,10363,
30
10660,10960,11264,11570,11879,12190,12504,12820,
31
13138,13458,13780,14103,14427,14753,15079,15407,
32
15735,16063,16392,16720,17049,17377,17705,18032,
33
18358,18683,19007,19330,19651,19970,20287,20602,
34
20914,21225,21532,21837,22139,22438,22733,23025,
35
23314,23599,23880,24157,24430,24699,24964,25225,
36
25481,25732,25979,26221,26459,26691,26919,27142,
37
27359,27572,27780,27983,28180,28373,28560,28742,
38
28919,29091,29258,29420,29577,29729,29876,30018,
39
30155,30288,30415,30538,30657,30771,30880,30985,
40
31086,31182,31274,31363,31447,31528,31605,31678,
41
31747,31814,31877,31936,31993,32046,32097,32145,
42
32190,32232,32272,32310,32345,32378,32409,32438,
43
32465,32490,32513,32535,32556,32574,32592,32608,
44
32623,32636,32649,32661,32671,32681,32690,32698,
45
32705,32712,32718,32724,32729,32733,32737,32741,
46
32744,32747,32750,32752,32754,32756,32757,32759,
47
32760,32761,32762,32763,32764,32764,32765,32765,
48
32766,32766,32766,32766,32767,32767,32767,32767,
49
32767,32767,32767,32767,32767,32767,32767,32767,
50
32767,32767,32767,32767,32767,32767,32767,32767,  
51
};
52

    
53
static uint8_t masktab[253];
54

    
55
static const uint8_t latab[260]= {
56
0x0040,0x003f,0x003e,0x003d,0x003c,0x003b,0x003a,0x0039,0x0038,0x0037,
57
0x0036,0x0035,0x0034,0x0034,0x0033,0x0032,0x0031,0x0030,0x002f,0x002f,
58
0x002e,0x002d,0x002c,0x002c,0x002b,0x002a,0x0029,0x0029,0x0028,0x0027,
59
0x0026,0x0026,0x0025,0x0024,0x0024,0x0023,0x0023,0x0022,0x0021,0x0021,
60
0x0020,0x0020,0x001f,0x001e,0x001e,0x001d,0x001d,0x001c,0x001c,0x001b,
61
0x001b,0x001a,0x001a,0x0019,0x0019,0x0018,0x0018,0x0017,0x0017,0x0016,
62
0x0016,0x0015,0x0015,0x0015,0x0014,0x0014,0x0013,0x0013,0x0013,0x0012,
63
0x0012,0x0012,0x0011,0x0011,0x0011,0x0010,0x0010,0x0010,0x000f,0x000f,
64
0x000f,0x000e,0x000e,0x000e,0x000d,0x000d,0x000d,0x000d,0x000c,0x000c,
65
0x000c,0x000c,0x000b,0x000b,0x000b,0x000b,0x000a,0x000a,0x000a,0x000a,
66
0x000a,0x0009,0x0009,0x0009,0x0009,0x0009,0x0008,0x0008,0x0008,0x0008,
67
0x0008,0x0008,0x0007,0x0007,0x0007,0x0007,0x0007,0x0007,0x0006,0x0006,
68
0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0005,0x0005,0x0005,0x0005,
69
0x0005,0x0005,0x0005,0x0005,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
70
0x0004,0x0004,0x0004,0x0004,0x0004,0x0003,0x0003,0x0003,0x0003,0x0003,
71
0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0002,
72
0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
73
0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0001,0x0001,
74
0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
75
0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
76
0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
77
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
78
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
79
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
80
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
81
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
82
};
83

    
84
static const uint16_t hth[50][3]= {
85
{ 0x04d0,0x04f0,0x0580 },
86
{ 0x04d0,0x04f0,0x0580 },
87
{ 0x0440,0x0460,0x04b0 },
88
{ 0x0400,0x0410,0x0450 },
89
{ 0x03e0,0x03e0,0x0420 },
90
{ 0x03c0,0x03d0,0x03f0 },
91
{ 0x03b0,0x03c0,0x03e0 },
92
{ 0x03b0,0x03b0,0x03d0 },
93
{ 0x03a0,0x03b0,0x03c0 },
94
{ 0x03a0,0x03a0,0x03b0 },
95
{ 0x03a0,0x03a0,0x03b0 },
96
{ 0x03a0,0x03a0,0x03b0 },
97
{ 0x03a0,0x03a0,0x03a0 },
98
{ 0x0390,0x03a0,0x03a0 },
99
{ 0x0390,0x0390,0x03a0 },
100
{ 0x0390,0x0390,0x03a0 },
101
{ 0x0380,0x0390,0x03a0 },
102
{ 0x0380,0x0380,0x03a0 },
103
{ 0x0370,0x0380,0x03a0 },
104
{ 0x0370,0x0380,0x03a0 },
105
{ 0x0360,0x0370,0x0390 },
106
{ 0x0360,0x0370,0x0390 },
107
{ 0x0350,0x0360,0x0390 },
108
{ 0x0350,0x0360,0x0390 },
109
{ 0x0340,0x0350,0x0380 },
110
{ 0x0340,0x0350,0x0380 },
111
{ 0x0330,0x0340,0x0380 },
112
{ 0x0320,0x0340,0x0370 },
113
{ 0x0310,0x0320,0x0360 },
114
{ 0x0300,0x0310,0x0350 },
115
{ 0x02f0,0x0300,0x0340 },
116
{ 0x02f0,0x02f0,0x0330 },
117
{ 0x02f0,0x02f0,0x0320 },
118
{ 0x02f0,0x02f0,0x0310 },
119
{ 0x0300,0x02f0,0x0300 },
120
{ 0x0310,0x0300,0x02f0 },
121
{ 0x0340,0x0320,0x02f0 },
122
{ 0x0390,0x0350,0x02f0 },
123
{ 0x03e0,0x0390,0x0300 },
124
{ 0x0420,0x03e0,0x0310 },
125
{ 0x0460,0x0420,0x0330 },
126
{ 0x0490,0x0450,0x0350 },
127
{ 0x04a0,0x04a0,0x03c0 },
128
{ 0x0460,0x0490,0x0410 },
129
{ 0x0440,0x0460,0x0470 },
130
{ 0x0440,0x0440,0x04a0 },
131
{ 0x0520,0x0480,0x0460 },
132
{ 0x0800,0x0630,0x0440 },
133
{ 0x0840,0x0840,0x0450 },
134
{ 0x0840,0x0840,0x04e0 },
135
};
136

    
137
static const uint8_t baptab[64]= {
138
    0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 
139
    3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 
140
    7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 
141
    9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 
142
    12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 
143
    14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 
144
    15, 15, 15, 15,
145
};
146

    
147
static const uint8_t sdecaytab[4]={ 
148
    0x0f, 0x11, 0x13, 0x15,
149
};
150

    
151
static const uint8_t fdecaytab[4]={ 
152
    0x3f, 0x53, 0x67, 0x7b, 
153
};
154

    
155
static const uint16_t sgaintab[4]= { 
156
    0x540, 0x4d8, 0x478, 0x410,
157
};
158

    
159
static const uint16_t dbkneetab[4]= { 
160
    0x000, 0x700, 0x900, 0xb00,
161
};
162

    
163
static const uint16_t floortab[8]= { 
164
    0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
165
};
166

    
167
static const uint16_t fgaintab[8]= {
168
    0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,
169
};
170

    
171
static const uint8_t bndsz[50]={
172
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
173
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 
174
    3, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 24, 24, 24, 24, 24 
175
};
176

    
177
static uint8_t bndtab[51]; 
178

    
179
/* fft & mdct sin cos tables */
180
static int16_t costab[64];
181
static int16_t sintab[64];
182
static int16_t fft_rev[512];
183
static int16_t xcos1[128];
184
static int16_t xsin1[128];
185

    
186
static uint16_t crc_table[256];