Statistics
| Branch: | Revision:

ffmpeg / libavcodec / ac3tab.h @ d2d230a7

History | View | Annotate | Download (6.3 KB)

1 983e3246 Michael Niedermayer
/**
2
 * @file ac3tab.h
3
 * tables taken directly from AC3 spec.
4
 */
5 de6d9b64 Fabrice Bellard
6 6107fa87 Fabrice Bellard
/* possible frequencies */
7 0c2a9d56 Alex Beregszaszi
static const uint16_t ac3_freqs[3] = { 48000, 44100, 32000 };
8 6107fa87 Fabrice Bellard
9 de6d9b64 Fabrice Bellard
/* possible bitrates */
10 0c2a9d56 Alex Beregszaszi
static const uint16_t ac3_bitratetab[19] = {
11 115329f1 Diego Biurrun
    32, 40, 48, 56, 64, 80, 96, 112, 128,
12
    160, 192, 224, 256, 320, 384, 448, 512, 576, 640
13 de6d9b64 Fabrice Bellard
};
14
15
/* AC3 MDCT window */
16
17
/* MDCT window */
18 0c2a9d56 Alex Beregszaszi
static const int16_t ac3_window[256] = {
19 de6d9b64 Fabrice Bellard
    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 115329f1 Diego Biurrun
32767,32767,32767,32767,32767,32767,32767,32767,
51 de6d9b64 Fabrice Bellard
};
52
53 0c1a9eda Zdenek Kabelac
static uint8_t masktab[253];
54 de6d9b64 Fabrice Bellard
55 0c1a9eda Zdenek Kabelac
static const uint8_t latab[260]= {
56 de6d9b64 Fabrice Bellard
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 0c1a9eda Zdenek Kabelac
static const uint16_t hth[50][3]= {
85 de6d9b64 Fabrice Bellard
{ 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 0c1a9eda Zdenek Kabelac
static const uint8_t baptab[64]= {
138 115329f1 Diego Biurrun
    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 de6d9b64 Fabrice Bellard
    15, 15, 15, 15,
145
};
146
147 115329f1 Diego Biurrun
static const uint8_t sdecaytab[4]={
148 de6d9b64 Fabrice Bellard
    0x0f, 0x11, 0x13, 0x15,
149
};
150
151 115329f1 Diego Biurrun
static const uint8_t fdecaytab[4]={
152
    0x3f, 0x53, 0x67, 0x7b,
153 de6d9b64 Fabrice Bellard
};
154
155 115329f1 Diego Biurrun
static const uint16_t sgaintab[4]= {
156 de6d9b64 Fabrice Bellard
    0x540, 0x4d8, 0x478, 0x410,
157
};
158
159 115329f1 Diego Biurrun
static const uint16_t dbkneetab[4]= {
160 de6d9b64 Fabrice Bellard
    0x000, 0x700, 0x900, 0xb00,
161
};
162
163 115329f1 Diego Biurrun
static const uint16_t floortab[8]= {
164 de6d9b64 Fabrice Bellard
    0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
165
};
166
167 0c2a9d56 Alex Beregszaszi
static const uint16_t fgaintab[8]= {
168 de6d9b64 Fabrice Bellard
    0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,
169
};
170
171 0c1a9eda Zdenek Kabelac
static const uint8_t bndsz[50]={
172 115329f1 Diego Biurrun
    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 de6d9b64 Fabrice Bellard
};
176
177 115329f1 Diego Biurrun
static uint8_t bndtab[51];
178 de6d9b64 Fabrice Bellard
179
/* fft & mdct sin cos tables */
180 0c1a9eda Zdenek Kabelac
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 de6d9b64 Fabrice Bellard
186 0c1a9eda Zdenek Kabelac
static uint16_t crc_table[256];