118{
122
123 static const UINT8 bits_dc_luminance[17] =
124 { 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 };
125 static const UINT8 val_dc_luminance[] =
126 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
127
128 static const UINT8 bits_dc_chrominance[17] =
129 { 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
130 static const UINT8 val_dc_chrominance[] =
131 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
132
133 static const UINT8 bits_ac_luminance[17] =
134 { 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d };
135 static const UINT8 val_ac_luminance[] =
136 { 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,
137 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
138 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08,
139 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0,
140 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16,
141 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28,
142 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
143 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
144 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
145 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
146 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
147 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
148 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
149 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
150 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
151 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5,
152 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4,
153 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,
154 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,
155 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
156 0xf9, 0xfa };
157
158 static const UINT8 bits_ac_chrominance[17] =
159 { 0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77 };
160 static const UINT8 val_ac_chrominance[] =
161 { 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21,
162 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
163 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
164 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0,
165 0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34,
166 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26,
167 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38,
168 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
169 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
170 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
171 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
172 0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
173 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96,
174 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5,
175 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4,
176 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3,
177 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2,
178 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,
179 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
180 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
181 0xf9, 0xfa };
182
183 if (cinfo->is_decompressor) {
186 else
188 } else {
191 else
193 }
194
196 case 0:
198 bits = bits_dc_luminance;
199 val = val_dc_luminance;
200 } else {
201 bits = bits_ac_luminance;
202 val = val_ac_luminance;
203 }
204 break;
205 case 1:
207 bits = bits_dc_chrominance;
208 val = val_dc_chrominance;
209 } else {
210 bits = bits_ac_chrominance;
211 val = val_ac_chrominance;
212 }
213 break;
214 default:
217 }
218
221
222 htbl = htblptr[
tblno];
223
224
226
227
228
229
230
231 nsymbols = 0;
234 if (nsymbols > 256)
235 ERREXIT(cinfo, JERR_BAD_HUFF_TABLE);
236
237 if (nsymbols > 0)
239
240
242
243 return htbl;
244}
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
jpeg_alloc_huff_table(j_common_ptr cinfo)
#define ERREXIT1(cinfo, code, p1)
#define MEMCOPY(dest, src, size)
struct jpeg_compress_struct * j_compress_ptr