2 * Copyright (c) Michael Hipp and other authors of the mpglib project.
4 * Layer 2 Alloc tables ..
5 * most other tables are calculated on program start (which is (of course)
7 * Layer-3 huffman table is in huffman.h
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
30 static const struct al_table alloc_0[] = {
31 {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
32 {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
33 {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
34 {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
35 {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
36 {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
37 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
38 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
39 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
40 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
41 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
42 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
43 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
44 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
45 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
46 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
47 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
48 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
49 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
50 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
51 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
52 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
53 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
54 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
55 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
56 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
57 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
58 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
59 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
60 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
61 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
62 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
63 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
64 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
65 {2,0},{5,3},{7,5},{16,-32767},
66 {2,0},{5,3},{7,5},{16,-32767},
67 {2,0},{5,3},{7,5},{16,-32767},
68 {2,0},{5,3},{7,5},{16,-32767} };
70 static const struct al_table alloc_1[] = {
71 {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
72 {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
73 {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
74 {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
75 {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
76 {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
77 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
78 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
79 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
80 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
81 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
82 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
83 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
84 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
85 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
86 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
87 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
88 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
89 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
90 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
91 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
92 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
93 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
94 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
95 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
96 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
97 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
98 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
99 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
100 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
101 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
102 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
103 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
104 {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
105 {2,0},{5,3},{7,5},{16,-32767},
106 {2,0},{5,3},{7,5},{16,-32767},
107 {2,0},{5,3},{7,5},{16,-32767},
108 {2,0},{5,3},{7,5},{16,-32767},
109 {2,0},{5,3},{7,5},{16,-32767},
110 {2,0},{5,3},{7,5},{16,-32767},
111 {2,0},{5,3},{7,5},{16,-32767} };
113 static const struct al_table alloc_2[] = {
114 {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},
115 {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},
116 {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},
117 {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},
118 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
119 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
120 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
121 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
122 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
123 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63} };
125 static const struct al_table alloc_3[] = {
126 {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},
127 {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},
128 {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},
129 {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},
130 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
131 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
132 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
133 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
134 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
135 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
136 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
137 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
138 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
139 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63} };
141 static const struct al_table alloc_4[] = {
142 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
143 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},
144 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
145 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},
146 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
147 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},
148 {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
149 {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},
150 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
151 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
152 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
153 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
154 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
155 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
156 {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
157 {2,0},{5,3},{7,5},{10,9},
158 {2,0},{5,3},{7,5},{10,9},
159 {2,0},{5,3},{7,5},{10,9},
160 {2,0},{5,3},{7,5},{10,9},
161 {2,0},{5,3},{7,5},{10,9},
162 {2,0},{5,3},{7,5},{10,9},
163 {2,0},{5,3},{7,5},{10,9},
164 {2,0},{5,3},{7,5},{10,9},
165 {2,0},{5,3},{7,5},{10,9},
166 {2,0},{5,3},{7,5},{10,9},
167 {2,0},{5,3},{7,5},{10,9},
168 {2,0},{5,3},{7,5},{10,9},
169 {2,0},{5,3},{7,5},{10,9},
170 {2,0},{5,3},{7,5},{10,9},
171 {2,0},{5,3},{7,5},{10,9},
172 {2,0},{5,3},{7,5},{10,9},
173 {2,0},{5,3},{7,5},{10,9},
174 {2,0},{5,3},{7,5},{10,9},
175 {2,0},{5,3},{7,5},{10,9} };