Statistics
| Branch: | Revision:

ffmpeg / libavcodec / ac3tab.h @ d771bcae

History | View | Annotate | Download (6.16 KB)

1 de6d9b64 Fabrice Bellard
/* tables taken directly from AC3 spec */
2
3
/* possible bitrates */
4
static const UINT16 bitratetab[19] = {
5
    32, 40, 48, 56, 64, 80, 96, 112, 128, 
6
    160, 192, 224, 256, 320, 384, 448, 512, 576, 640 
7
};
8
9
/* AC3 MDCT window */
10
11
/* MDCT window */
12
static const INT16 ac3_window[256]= {
13
    4,    7,   12,   16,   21,   28,   34,   42,
14
   51,   61,   72,   84,   97,  111,  127,  145,
15
  164,  184,  207,  231,  257,  285,  315,  347,
16
  382,  419,  458,  500,  544,  591,  641,  694,
17
  750,  810,  872,  937, 1007, 1079, 1155, 1235,
18
 1318, 1406, 1497, 1593, 1692, 1796, 1903, 2016,
19
 2132, 2253, 2379, 2509, 2644, 2783, 2927, 3076,
20
 3230, 3389, 3552, 3721, 3894, 4072, 4255, 4444,
21
 4637, 4835, 5038, 5246, 5459, 5677, 5899, 6127,
22
 6359, 6596, 6837, 7083, 7334, 7589, 7848, 8112,
23
 8380, 8652, 8927, 9207, 9491, 9778,10069,10363,
24
10660,10960,11264,11570,11879,12190,12504,12820,
25
13138,13458,13780,14103,14427,14753,15079,15407,
26
15735,16063,16392,16720,17049,17377,17705,18032,
27
18358,18683,19007,19330,19651,19970,20287,20602,
28
20914,21225,21532,21837,22139,22438,22733,23025,
29
23314,23599,23880,24157,24430,24699,24964,25225,
30
25481,25732,25979,26221,26459,26691,26919,27142,
31
27359,27572,27780,27983,28180,28373,28560,28742,
32
28919,29091,29258,29420,29577,29729,29876,30018,
33
30155,30288,30415,30538,30657,30771,30880,30985,
34
31086,31182,31274,31363,31447,31528,31605,31678,
35
31747,31814,31877,31936,31993,32046,32097,32145,
36
32190,32232,32272,32310,32345,32378,32409,32438,
37
32465,32490,32513,32535,32556,32574,32592,32608,
38
32623,32636,32649,32661,32671,32681,32690,32698,
39
32705,32712,32718,32724,32729,32733,32737,32741,
40
32744,32747,32750,32752,32754,32756,32757,32759,
41
32760,32761,32762,32763,32764,32764,32765,32765,
42
32766,32766,32766,32766,32767,32767,32767,32767,
43
32767,32767,32767,32767,32767,32767,32767,32767,
44
32767,32767,32767,32767,32767,32767,32767,32767,  
45
};
46
47
static UINT8 masktab[253];
48
49
static const UINT8 latab[260]= {
50
0x0040,0x003f,0x003e,0x003d,0x003c,0x003b,0x003a,0x0039,0x0038,0x0037,
51
0x0036,0x0035,0x0034,0x0034,0x0033,0x0032,0x0031,0x0030,0x002f,0x002f,
52
0x002e,0x002d,0x002c,0x002c,0x002b,0x002a,0x0029,0x0029,0x0028,0x0027,
53
0x0026,0x0026,0x0025,0x0024,0x0024,0x0023,0x0023,0x0022,0x0021,0x0021,
54
0x0020,0x0020,0x001f,0x001e,0x001e,0x001d,0x001d,0x001c,0x001c,0x001b,
55
0x001b,0x001a,0x001a,0x0019,0x0019,0x0018,0x0018,0x0017,0x0017,0x0016,
56
0x0016,0x0015,0x0015,0x0015,0x0014,0x0014,0x0013,0x0013,0x0013,0x0012,
57
0x0012,0x0012,0x0011,0x0011,0x0011,0x0010,0x0010,0x0010,0x000f,0x000f,
58
0x000f,0x000e,0x000e,0x000e,0x000d,0x000d,0x000d,0x000d,0x000c,0x000c,
59
0x000c,0x000c,0x000b,0x000b,0x000b,0x000b,0x000a,0x000a,0x000a,0x000a,
60
0x000a,0x0009,0x0009,0x0009,0x0009,0x0009,0x0008,0x0008,0x0008,0x0008,
61
0x0008,0x0008,0x0007,0x0007,0x0007,0x0007,0x0007,0x0007,0x0006,0x0006,
62
0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0005,0x0005,0x0005,0x0005,
63
0x0005,0x0005,0x0005,0x0005,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
64
0x0004,0x0004,0x0004,0x0004,0x0004,0x0003,0x0003,0x0003,0x0003,0x0003,
65
0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0002,
66
0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
67
0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0001,0x0001,
68
0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
69
0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
70
0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
71
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
72
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
73
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
74
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
75
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
76
};
77
78
static const UINT16 hth[50][3]= {
79
{ 0x04d0,0x04f0,0x0580 },
80
{ 0x04d0,0x04f0,0x0580 },
81
{ 0x0440,0x0460,0x04b0 },
82
{ 0x0400,0x0410,0x0450 },
83
{ 0x03e0,0x03e0,0x0420 },
84
{ 0x03c0,0x03d0,0x03f0 },
85
{ 0x03b0,0x03c0,0x03e0 },
86
{ 0x03b0,0x03b0,0x03d0 },
87
{ 0x03a0,0x03b0,0x03c0 },
88
{ 0x03a0,0x03a0,0x03b0 },
89
{ 0x03a0,0x03a0,0x03b0 },
90
{ 0x03a0,0x03a0,0x03b0 },
91
{ 0x03a0,0x03a0,0x03a0 },
92
{ 0x0390,0x03a0,0x03a0 },
93
{ 0x0390,0x0390,0x03a0 },
94
{ 0x0390,0x0390,0x03a0 },
95
{ 0x0380,0x0390,0x03a0 },
96
{ 0x0380,0x0380,0x03a0 },
97
{ 0x0370,0x0380,0x03a0 },
98
{ 0x0370,0x0380,0x03a0 },
99
{ 0x0360,0x0370,0x0390 },
100
{ 0x0360,0x0370,0x0390 },
101
{ 0x0350,0x0360,0x0390 },
102
{ 0x0350,0x0360,0x0390 },
103
{ 0x0340,0x0350,0x0380 },
104
{ 0x0340,0x0350,0x0380 },
105
{ 0x0330,0x0340,0x0380 },
106
{ 0x0320,0x0340,0x0370 },
107
{ 0x0310,0x0320,0x0360 },
108
{ 0x0300,0x0310,0x0350 },
109
{ 0x02f0,0x0300,0x0340 },
110
{ 0x02f0,0x02f0,0x0330 },
111
{ 0x02f0,0x02f0,0x0320 },
112
{ 0x02f0,0x02f0,0x0310 },
113
{ 0x0300,0x02f0,0x0300 },
114
{ 0x0310,0x0300,0x02f0 },
115
{ 0x0340,0x0320,0x02f0 },
116
{ 0x0390,0x0350,0x02f0 },
117
{ 0x03e0,0x0390,0x0300 },
118
{ 0x0420,0x03e0,0x0310 },
119
{ 0x0460,0x0420,0x0330 },
120
{ 0x0490,0x0450,0x0350 },
121
{ 0x04a0,0x04a0,0x03c0 },
122
{ 0x0460,0x0490,0x0410 },
123
{ 0x0440,0x0460,0x0470 },
124
{ 0x0440,0x0440,0x04a0 },
125
{ 0x0520,0x0480,0x0460 },
126
{ 0x0800,0x0630,0x0440 },
127
{ 0x0840,0x0840,0x0450 },
128
{ 0x0840,0x0840,0x04e0 },
129
};
130
131
static const UINT8 baptab[64]= {
132
    0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 
133
    3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 
134
    7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 
135
    9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 
136
    12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 
137
    14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 
138
    15, 15, 15, 15,
139
};
140
141
static const UINT8 sdecaytab[4]={ 
142
    0x0f, 0x11, 0x13, 0x15,
143
};
144
145
static const UINT8 fdecaytab[4]={ 
146
    0x3f, 0x53, 0x67, 0x7b, 
147
};
148
149
static const UINT16 sgaintab[4]= { 
150
    0x540, 0x4d8, 0x478, 0x410,
151
};
152
153
static const UINT16 dbkneetab[4]= { 
154
    0x000, 0x700, 0x900, 0xb00,
155
};
156
157
static const UINT16 floortab[8]= { 
158
    0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
159
};
160
161
static const UINT16 fgaintab[8]= {
162
    0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,
163
};
164
165
static const UINT8 bndsz[50]={
166
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
167
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 
168
    3, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 24, 24, 24, 24, 24 
169
};
170
171
static UINT8 bndtab[51]; 
172
173
/* fft & mdct sin cos tables */
174
static INT16 costab[64];
175
static INT16 sintab[64];
176
static INT16 fft_rev[512];
177
static INT16 xcos1[128];
178
static INT16 xsin1[128];
179
180
static UINT16 crc_table[256];