Browse code

move some common mpeg audio tables from mpegaudiodectab.h to mpegaudiodata.c

Originally committed as revision 9060 to svn://svn.ffmpeg.org/ffmpeg/trunk

Aurelien Jacobs authored on 2007/05/19 09:06:02
Showing 8 changed files
... ...
@@ -19,7 +19,7 @@ OBJS= bitstream.o \
19 19
       motion_est.o \
20 20
       imgconvert.o \
21 21
       mpeg12.o \
22
-      mpegaudiodec.o \
22
+      mpegaudiodec.o mpegaudiodata.o \
23 23
       simple_idct.o \
24 24
       ratecontrol.o \
25 25
       eval.o \
... ...
@@ -107,7 +107,7 @@ OBJS-$(CONFIG_MJPEG_DECODER)           += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.
107 107
 OBJS-$(CONFIG_MJPEG_ENCODER)           += mjpegenc.o mjpeg.o mpegvideo.o
108 108
 OBJS-$(CONFIG_MJPEGB_DECODER)          += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
109 109
 OBJS-$(CONFIG_MMVIDEO_DECODER)         += mmvideo.o
110
-OBJS-$(CONFIG_MP2_ENCODER)             += mpegaudio.o
110
+OBJS-$(CONFIG_MP2_ENCODER)             += mpegaudio.o mpegaudiodata.o
111 111
 OBJS-$(CONFIG_MPC7_DECODER)            += mpc.o
112 112
 OBJS-$(CONFIG_MSMPEG4V1_DECODER)       += msmpeg4.o msmpeg4data.o
113 113
 OBJS-$(CONFIG_MSMPEG4V1_ENCODER)       += msmpeg4.o msmpeg4data.o
... ...
@@ -308,7 +308,7 @@ OBJS-$(CONFIG_DUMP_EXTRADATA_BSF)      += bitstream_filter.o
308 308
 OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF)    += bitstream_filter.o
309 309
 OBJS-$(CONFIG_NOISE_BSF)               += bitstream_filter.o
310 310
 OBJS-$(CONFIG_MP3_HEADER_COMPRESS_BSF) += bitstream_filter.o
311
-OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += bitstream_filter.o
311
+OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += bitstream_filter.o mpegaudiodata.o
312 312
 OBJS-$(CONFIG_MJPEGA_DUMP_HEADER_BSF)  += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
313 313
 OBJS-$(CONFIG_IMX_DUMP_HEADER_BSF)     += mpeg12.o
314 314
 
... ...
@@ -20,6 +20,7 @@
20 20
 
21 21
 #include "avcodec.h"
22 22
 #include "mpegaudio.h"
23
+#include "mpegaudiodata.h"
23 24
 
24 25
 AVBitStreamFilter *first_bitstream_filter= NULL;
25 26
 
... ...
@@ -59,6 +59,7 @@ typedef struct MpegAudioContext {
59 59
 /* define it to use floats in quantization (I don't like floats !) */
60 60
 //#define USE_FLOATS
61 61
 
62
+#include "mpegaudiodata.h"
62 63
 #include "mpegaudiotab.h"
63 64
 
64 65
 static int MPA_encode_init(AVCodecContext *avctx)
... ...
@@ -79,15 +79,6 @@ void ff_mpa_synth_filter(MPA_INT *synth_buf_ptr, int *synth_buf_offset,
79 79
                          OUT_INT *samples, int incr,
80 80
                          int32_t sb_samples[SBLIMIT]);
81 81
 
82
-extern const uint16_t mpa_bitrate_tab[2][3][15];
83
-extern const uint16_t mpa_freq_tab[3];
84
-extern const unsigned char *alloc_tables[5];
85
-extern const double enwindow[512];
86
-extern const int sblimit_table[5];
87
-extern const int quant_steps[17];
88
-extern const int quant_bits[17];
89
-extern const int32_t mpa_enwindow[257];
90
-
91 82
 /* fast header check for resync */
92 83
 static inline int ff_mpa_check_header(uint32_t header){
93 84
     /* header */
94 85
new file mode 100644
... ...
@@ -0,0 +1,225 @@
0
+/*
1
+ * MPEG Audio common tables
2
+ * copyright (c) 2002 Fabrice Bellard
3
+ *
4
+ * This file is part of FFmpeg.
5
+ *
6
+ * FFmpeg is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * FFmpeg is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with FFmpeg; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+/**
22
+ * @file mpegaudiodata.c
23
+ * mpeg audio layer common tables.
24
+ */
25
+
26
+#include "mpegaudiodata.h"
27
+
28
+
29
+const uint16_t mpa_bitrate_tab[2][3][15] = {
30
+    { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 },
31
+      {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 },
32
+      {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 } },
33
+    { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256},
34
+      {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
35
+      {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}
36
+    }
37
+};
38
+
39
+const uint16_t mpa_freq_tab[3] = { 44100, 48000, 32000 };
40
+
41
+/*******************************************************/
42
+/* half mpeg encoding window (full precision) */
43
+const int32_t mpa_enwindow[257] = {
44
+     0,    -1,    -1,    -1,    -1,    -1,    -1,    -2,
45
+    -2,    -2,    -2,    -3,    -3,    -4,    -4,    -5,
46
+    -5,    -6,    -7,    -7,    -8,    -9,   -10,   -11,
47
+   -13,   -14,   -16,   -17,   -19,   -21,   -24,   -26,
48
+   -29,   -31,   -35,   -38,   -41,   -45,   -49,   -53,
49
+   -58,   -63,   -68,   -73,   -79,   -85,   -91,   -97,
50
+  -104,  -111,  -117,  -125,  -132,  -139,  -147,  -154,
51
+  -161,  -169,  -176,  -183,  -190,  -196,  -202,  -208,
52
+   213,   218,   222,   225,   227,   228,   228,   227,
53
+   224,   221,   215,   208,   200,   189,   177,   163,
54
+   146,   127,   106,    83,    57,    29,    -2,   -36,
55
+   -72,  -111,  -153,  -197,  -244,  -294,  -347,  -401,
56
+  -459,  -519,  -581,  -645,  -711,  -779,  -848,  -919,
57
+  -991, -1064, -1137, -1210, -1283, -1356, -1428, -1498,
58
+ -1567, -1634, -1698, -1759, -1817, -1870, -1919, -1962,
59
+ -2001, -2032, -2057, -2075, -2085, -2087, -2080, -2063,
60
+  2037,  2000,  1952,  1893,  1822,  1739,  1644,  1535,
61
+  1414,  1280,  1131,   970,   794,   605,   402,   185,
62
+   -45,  -288,  -545,  -814, -1095, -1388, -1692, -2006,
63
+ -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788,
64
+ -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597,
65
+ -7910, -8209, -8491, -8755, -8998, -9219, -9416, -9585,
66
+ -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750,
67
+ -9592, -9389, -9139, -8840, -8492, -8092, -7640, -7134,
68
+  6574,  5959,  5288,  4561,  3776,  2935,  2037,  1082,
69
+    70,  -998, -2122, -3300, -4533, -5818, -7154, -8540,
70
+ -9975,-11455,-12980,-14548,-16155,-17799,-19478,-21189,
71
+-22929,-24694,-26482,-28289,-30112,-31947,-33791,-35640,
72
+-37489,-39336,-41176,-43006,-44821,-46617,-48390,-50137,
73
+-51853,-53534,-55178,-56778,-58333,-59838,-61289,-62684,
74
+-64019,-65290,-66494,-67629,-68692,-69679,-70590,-71420,
75
+-72169,-72835,-73415,-73908,-74313,-74630,-74856,-74992,
76
+ 75038,
77
+};
78
+
79
+/*******************************************************/
80
+/* layer 2 tables */
81
+
82
+const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 };
83
+
84
+const int quant_steps[17] = {
85
+    3,     5,    7,    9,    15,
86
+    31,    63,  127,  255,   511,
87
+    1023,  2047, 4095, 8191, 16383,
88
+    32767, 65535
89
+};
90
+
91
+/* we use a negative value if grouped */
92
+const int quant_bits[17] = {
93
+    -5,  -7,  3, -10, 4,
94
+     5,  6,  7,  8,  9,
95
+    10, 11, 12, 13, 14,
96
+    15, 16
97
+};
98
+
99
+/* encoding tables which give the quantization index. Note how it is
100
+   possible to store them efficiently ! */
101
+static const unsigned char alloc_table_0[] = {
102
+ 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
103
+ 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
104
+ 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
105
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
106
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
107
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
108
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
109
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
110
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
111
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
112
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
113
+ 3,  0,  1,  2,  3,  4,  5, 16,
114
+ 3,  0,  1,  2,  3,  4,  5, 16,
115
+ 3,  0,  1,  2,  3,  4,  5, 16,
116
+ 3,  0,  1,  2,  3,  4,  5, 16,
117
+ 3,  0,  1,  2,  3,  4,  5, 16,
118
+ 3,  0,  1,  2,  3,  4,  5, 16,
119
+ 3,  0,  1,  2,  3,  4,  5, 16,
120
+ 3,  0,  1,  2,  3,  4,  5, 16,
121
+ 3,  0,  1,  2,  3,  4,  5, 16,
122
+ 3,  0,  1,  2,  3,  4,  5, 16,
123
+ 3,  0,  1,  2,  3,  4,  5, 16,
124
+ 3,  0,  1,  2,  3,  4,  5, 16,
125
+ 2,  0,  1, 16,
126
+ 2,  0,  1, 16,
127
+ 2,  0,  1, 16,
128
+ 2,  0,  1, 16,
129
+};
130
+
131
+static const unsigned char alloc_table_1[] = {
132
+ 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
133
+ 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
134
+ 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
135
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
136
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
137
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
138
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
139
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
140
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
141
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
142
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
143
+ 3,  0,  1,  2,  3,  4,  5, 16,
144
+ 3,  0,  1,  2,  3,  4,  5, 16,
145
+ 3,  0,  1,  2,  3,  4,  5, 16,
146
+ 3,  0,  1,  2,  3,  4,  5, 16,
147
+ 3,  0,  1,  2,  3,  4,  5, 16,
148
+ 3,  0,  1,  2,  3,  4,  5, 16,
149
+ 3,  0,  1,  2,  3,  4,  5, 16,
150
+ 3,  0,  1,  2,  3,  4,  5, 16,
151
+ 3,  0,  1,  2,  3,  4,  5, 16,
152
+ 3,  0,  1,  2,  3,  4,  5, 16,
153
+ 3,  0,  1,  2,  3,  4,  5, 16,
154
+ 3,  0,  1,  2,  3,  4,  5, 16,
155
+ 2,  0,  1, 16,
156
+ 2,  0,  1, 16,
157
+ 2,  0,  1, 16,
158
+ 2,  0,  1, 16,
159
+ 2,  0,  1, 16,
160
+ 2,  0,  1, 16,
161
+ 2,  0,  1, 16,
162
+};
163
+
164
+static const unsigned char alloc_table_2[] = {
165
+ 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
166
+ 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
167
+ 3,  0,  1,  3,  4,  5,  6,  7,
168
+ 3,  0,  1,  3,  4,  5,  6,  7,
169
+ 3,  0,  1,  3,  4,  5,  6,  7,
170
+ 3,  0,  1,  3,  4,  5,  6,  7,
171
+ 3,  0,  1,  3,  4,  5,  6,  7,
172
+ 3,  0,  1,  3,  4,  5,  6,  7,
173
+};
174
+
175
+static const unsigned char alloc_table_3[] = {
176
+ 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
177
+ 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
178
+ 3,  0,  1,  3,  4,  5,  6,  7,
179
+ 3,  0,  1,  3,  4,  5,  6,  7,
180
+ 3,  0,  1,  3,  4,  5,  6,  7,
181
+ 3,  0,  1,  3,  4,  5,  6,  7,
182
+ 3,  0,  1,  3,  4,  5,  6,  7,
183
+ 3,  0,  1,  3,  4,  5,  6,  7,
184
+ 3,  0,  1,  3,  4,  5,  6,  7,
185
+ 3,  0,  1,  3,  4,  5,  6,  7,
186
+ 3,  0,  1,  3,  4,  5,  6,  7,
187
+ 3,  0,  1,  3,  4,  5,  6,  7,
188
+};
189
+
190
+static const unsigned char alloc_table_4[] = {
191
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
192
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
193
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
194
+ 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
195
+ 3,  0,  1,  3,  4,  5,  6,  7,
196
+ 3,  0,  1,  3,  4,  5,  6,  7,
197
+ 3,  0,  1,  3,  4,  5,  6,  7,
198
+ 3,  0,  1,  3,  4,  5,  6,  7,
199
+ 3,  0,  1,  3,  4,  5,  6,  7,
200
+ 3,  0,  1,  3,  4,  5,  6,  7,
201
+ 3,  0,  1,  3,  4,  5,  6,  7,
202
+ 2,  0,  1,  3,
203
+ 2,  0,  1,  3,
204
+ 2,  0,  1,  3,
205
+ 2,  0,  1,  3,
206
+ 2,  0,  1,  3,
207
+ 2,  0,  1,  3,
208
+ 2,  0,  1,  3,
209
+ 2,  0,  1,  3,
210
+ 2,  0,  1,  3,
211
+ 2,  0,  1,  3,
212
+ 2,  0,  1,  3,
213
+ 2,  0,  1,  3,
214
+ 2,  0,  1,  3,
215
+ 2,  0,  1,  3,
216
+ 2,  0,  1,  3,
217
+ 2,  0,  1,  3,
218
+ 2,  0,  1,  3,
219
+ 2,  0,  1,  3,
220
+ 2,  0,  1,  3,
221
+};
222
+
223
+const unsigned char *alloc_tables[5] =
224
+{ alloc_table_0, alloc_table_1, alloc_table_2, alloc_table_3, alloc_table_4, };
0 225
new file mode 100644
... ...
@@ -0,0 +1,40 @@
0
+/*
1
+ * MPEG Audio common tables
2
+ * copyright (c) 2002 Fabrice Bellard
3
+ *
4
+ * This file is part of FFmpeg.
5
+ *
6
+ * FFmpeg is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * FFmpeg is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with FFmpeg; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+/**
22
+ * @file mpegaudiodata.h
23
+ * mpeg audio layer common tables.
24
+ */
25
+
26
+#ifndef MPEGAUDIODATA_H
27
+#define MPEGAUDIODATA_H
28
+
29
+#include "common.h"
30
+
31
+extern const uint16_t mpa_bitrate_tab[2][3][15];
32
+extern const uint16_t mpa_freq_tab[3];
33
+extern const int32_t mpa_enwindow[257];
34
+extern const int sblimit_table[5];
35
+extern const int quant_steps[17];
36
+extern const int quant_bits[17];
37
+extern const unsigned char *alloc_tables[5];
38
+
39
+#endif /* MPEGAUDIODATA_H */
... ...
@@ -132,6 +132,7 @@ typedef struct HuffTable {
132 132
     const uint16_t *codes;
133 133
 } HuffTable;
134 134
 
135
+#include "mpegaudiodata.h"
135 136
 #include "mpegaudiodectab.h"
136 137
 
137 138
 static void compute_antialias_integer(MPADecodeContext *s, GranuleDef *g);
... ...
@@ -24,203 +24,6 @@
24 24
  * mpeg audio layer decoder tables.
25 25
  */
26 26
 
27
-const uint16_t mpa_bitrate_tab[2][3][15] = {
28
-    { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 },
29
-      {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 },
30
-      {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 } },
31
-    { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256},
32
-      {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
33
-      {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}
34
-    }
35
-};
36
-
37
-const uint16_t mpa_freq_tab[3] = { 44100, 48000, 32000 };
38
-
39
-/*******************************************************/
40
-/* half mpeg encoding window (full precision) */
41
-const int32_t mpa_enwindow[257] = {
42
-     0,    -1,    -1,    -1,    -1,    -1,    -1,    -2,
43
-    -2,    -2,    -2,    -3,    -3,    -4,    -4,    -5,
44
-    -5,    -6,    -7,    -7,    -8,    -9,   -10,   -11,
45
-   -13,   -14,   -16,   -17,   -19,   -21,   -24,   -26,
46
-   -29,   -31,   -35,   -38,   -41,   -45,   -49,   -53,
47
-   -58,   -63,   -68,   -73,   -79,   -85,   -91,   -97,
48
-  -104,  -111,  -117,  -125,  -132,  -139,  -147,  -154,
49
-  -161,  -169,  -176,  -183,  -190,  -196,  -202,  -208,
50
-   213,   218,   222,   225,   227,   228,   228,   227,
51
-   224,   221,   215,   208,   200,   189,   177,   163,
52
-   146,   127,   106,    83,    57,    29,    -2,   -36,
53
-   -72,  -111,  -153,  -197,  -244,  -294,  -347,  -401,
54
-  -459,  -519,  -581,  -645,  -711,  -779,  -848,  -919,
55
-  -991, -1064, -1137, -1210, -1283, -1356, -1428, -1498,
56
- -1567, -1634, -1698, -1759, -1817, -1870, -1919, -1962,
57
- -2001, -2032, -2057, -2075, -2085, -2087, -2080, -2063,
58
-  2037,  2000,  1952,  1893,  1822,  1739,  1644,  1535,
59
-  1414,  1280,  1131,   970,   794,   605,   402,   185,
60
-   -45,  -288,  -545,  -814, -1095, -1388, -1692, -2006,
61
- -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788,
62
- -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597,
63
- -7910, -8209, -8491, -8755, -8998, -9219, -9416, -9585,
64
- -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750,
65
- -9592, -9389, -9139, -8840, -8492, -8092, -7640, -7134,
66
-  6574,  5959,  5288,  4561,  3776,  2935,  2037,  1082,
67
-    70,  -998, -2122, -3300, -4533, -5818, -7154, -8540,
68
- -9975,-11455,-12980,-14548,-16155,-17799,-19478,-21189,
69
--22929,-24694,-26482,-28289,-30112,-31947,-33791,-35640,
70
--37489,-39336,-41176,-43006,-44821,-46617,-48390,-50137,
71
--51853,-53534,-55178,-56778,-58333,-59838,-61289,-62684,
72
--64019,-65290,-66494,-67629,-68692,-69679,-70590,-71420,
73
--72169,-72835,-73415,-73908,-74313,-74630,-74856,-74992,
74
- 75038,
75
-};
76
-
77
-/*******************************************************/
78
-/* layer 2 tables */
79
-
80
-const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 };
81
-
82
-const int quant_steps[17] = {
83
-    3,     5,    7,    9,    15,
84
-    31,    63,  127,  255,   511,
85
-    1023,  2047, 4095, 8191, 16383,
86
-    32767, 65535
87
-};
88
-
89
-/* we use a negative value if grouped */
90
-const int quant_bits[17] = {
91
-    -5,  -7,  3, -10, 4,
92
-     5,  6,  7,  8,  9,
93
-    10, 11, 12, 13, 14,
94
-    15, 16
95
-};
96
-
97
-/* encoding tables which give the quantization index. Note how it is
98
-   possible to store them efficiently ! */
99
-static const unsigned char alloc_table_0[] = {
100
- 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
101
- 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
102
- 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
103
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
104
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
105
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
106
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
107
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
108
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
109
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
110
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
111
- 3,  0,  1,  2,  3,  4,  5, 16,
112
- 3,  0,  1,  2,  3,  4,  5, 16,
113
- 3,  0,  1,  2,  3,  4,  5, 16,
114
- 3,  0,  1,  2,  3,  4,  5, 16,
115
- 3,  0,  1,  2,  3,  4,  5, 16,
116
- 3,  0,  1,  2,  3,  4,  5, 16,
117
- 3,  0,  1,  2,  3,  4,  5, 16,
118
- 3,  0,  1,  2,  3,  4,  5, 16,
119
- 3,  0,  1,  2,  3,  4,  5, 16,
120
- 3,  0,  1,  2,  3,  4,  5, 16,
121
- 3,  0,  1,  2,  3,  4,  5, 16,
122
- 3,  0,  1,  2,  3,  4,  5, 16,
123
- 2,  0,  1, 16,
124
- 2,  0,  1, 16,
125
- 2,  0,  1, 16,
126
- 2,  0,  1, 16,
127
-};
128
-
129
-static const unsigned char alloc_table_1[] = {
130
- 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
131
- 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
132
- 4,  0,  2,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
133
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
134
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
135
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
136
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
137
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
138
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
139
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
140
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 16,
141
- 3,  0,  1,  2,  3,  4,  5, 16,
142
- 3,  0,  1,  2,  3,  4,  5, 16,
143
- 3,  0,  1,  2,  3,  4,  5, 16,
144
- 3,  0,  1,  2,  3,  4,  5, 16,
145
- 3,  0,  1,  2,  3,  4,  5, 16,
146
- 3,  0,  1,  2,  3,  4,  5, 16,
147
- 3,  0,  1,  2,  3,  4,  5, 16,
148
- 3,  0,  1,  2,  3,  4,  5, 16,
149
- 3,  0,  1,  2,  3,  4,  5, 16,
150
- 3,  0,  1,  2,  3,  4,  5, 16,
151
- 3,  0,  1,  2,  3,  4,  5, 16,
152
- 3,  0,  1,  2,  3,  4,  5, 16,
153
- 2,  0,  1, 16,
154
- 2,  0,  1, 16,
155
- 2,  0,  1, 16,
156
- 2,  0,  1, 16,
157
- 2,  0,  1, 16,
158
- 2,  0,  1, 16,
159
- 2,  0,  1, 16,
160
-};
161
-
162
-static const unsigned char alloc_table_2[] = {
163
- 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
164
- 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
165
- 3,  0,  1,  3,  4,  5,  6,  7,
166
- 3,  0,  1,  3,  4,  5,  6,  7,
167
- 3,  0,  1,  3,  4,  5,  6,  7,
168
- 3,  0,  1,  3,  4,  5,  6,  7,
169
- 3,  0,  1,  3,  4,  5,  6,  7,
170
- 3,  0,  1,  3,  4,  5,  6,  7,
171
-};
172
-
173
-static const unsigned char alloc_table_3[] = {
174
- 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
175
- 4,  0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
176
- 3,  0,  1,  3,  4,  5,  6,  7,
177
- 3,  0,  1,  3,  4,  5,  6,  7,
178
- 3,  0,  1,  3,  4,  5,  6,  7,
179
- 3,  0,  1,  3,  4,  5,  6,  7,
180
- 3,  0,  1,  3,  4,  5,  6,  7,
181
- 3,  0,  1,  3,  4,  5,  6,  7,
182
- 3,  0,  1,  3,  4,  5,  6,  7,
183
- 3,  0,  1,  3,  4,  5,  6,  7,
184
- 3,  0,  1,  3,  4,  5,  6,  7,
185
- 3,  0,  1,  3,  4,  5,  6,  7,
186
-};
187
-
188
-static const unsigned char alloc_table_4[] = {
189
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
190
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
191
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
192
- 4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
193
- 3,  0,  1,  3,  4,  5,  6,  7,
194
- 3,  0,  1,  3,  4,  5,  6,  7,
195
- 3,  0,  1,  3,  4,  5,  6,  7,
196
- 3,  0,  1,  3,  4,  5,  6,  7,
197
- 3,  0,  1,  3,  4,  5,  6,  7,
198
- 3,  0,  1,  3,  4,  5,  6,  7,
199
- 3,  0,  1,  3,  4,  5,  6,  7,
200
- 2,  0,  1,  3,
201
- 2,  0,  1,  3,
202
- 2,  0,  1,  3,
203
- 2,  0,  1,  3,
204
- 2,  0,  1,  3,
205
- 2,  0,  1,  3,
206
- 2,  0,  1,  3,
207
- 2,  0,  1,  3,
208
- 2,  0,  1,  3,
209
- 2,  0,  1,  3,
210
- 2,  0,  1,  3,
211
- 2,  0,  1,  3,
212
- 2,  0,  1,  3,
213
- 2,  0,  1,  3,
214
- 2,  0,  1,  3,
215
- 2,  0,  1,  3,
216
- 2,  0,  1,  3,
217
- 2,  0,  1,  3,
218
- 2,  0,  1,  3,
219
-};
220
-
221
-const unsigned char *alloc_tables[5] =
222
-{ alloc_table_0, alloc_table_1, alloc_table_2, alloc_table_3, alloc_table_4, };
223
-
224 27
 /*******************************************************/
225 28
 /* layer 3 tables */
226 29