Statistics
| Branch: | Revision:

ffmpeg / libavcodec / ac3tab.h @ 6107fa87

History | View | Annotate | Download (6.19 KB)

1
/* tables taken directly from AC3 spec */
2

    
3
/* possible frequencies */
4
const UINT16 ac3_freqs[3] = { 48000, 44100, 32000 };
5

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

    
12
/* AC3 MDCT window */
13

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

    
50
static UINT8 masktab[253];
51

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

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

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

    
144
const UINT8 sdecaytab[4]={ 
145
    0x0f, 0x11, 0x13, 0x15,
146
};
147

    
148
const UINT8 fdecaytab[4]={ 
149
    0x3f, 0x53, 0x67, 0x7b, 
150
};
151

    
152
const UINT16 sgaintab[4]= { 
153
    0x540, 0x4d8, 0x478, 0x410,
154
};
155

    
156
const UINT16 dbkneetab[4]= { 
157
    0x000, 0x700, 0x900, 0xb00,
158
};
159

    
160
const UINT16 floortab[8]= { 
161
    0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
162
};
163

    
164
const UINT16 fgaintab[8]= {
165
    0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,
166
};
167

    
168
static const UINT8 bndsz[50]={
169
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
170
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 
171
    3, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 24, 24, 24, 24, 24 
172
};
173

    
174
static UINT8 bndtab[51]; 
175

    
176
/* fft & mdct sin cos tables */
177
static INT16 costab[64];
178
static INT16 sintab[64];
179
static INT16 fft_rev[512];
180
static INT16 xcos1[128];
181
static INT16 xsin1[128];
182

    
183
static UINT16 crc_table[256];