Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4680 | right-hear | 1 | /* |
2 | jbig2dec |
||
3 | |||
4 | Copyright (C) 2001-2005 Artifex Software, Inc. |
||
5 | |||
6 | This software is distributed under license and may not |
||
7 | be copied, modified or distributed except as expressly |
||
8 | authorized under the terms of the license contained in |
||
9 | the file LICENSE in this distribution. |
||
10 | |||
11 | For further licensing information refer to http://artifex.com/ or |
||
12 | contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, |
||
13 | San Rafael, CA 94903, U.S.A., +1(415)492-9861. |
||
14 | */ |
||
15 | |||
16 | /* predefined Huffman table definitions |
||
17 | -- See Annex B of the JBIG2 specification */ |
||
18 | |||
19 | #ifndef JBIG2_HUFFTAB_H |
||
20 | #define JBIG2_HUFFTAB_H |
||
21 | |||
22 | /* types are in jbig2_huffman.h, you must include that first */ |
||
23 | |||
24 | |||
25 | /* Table B.1 */ |
||
26 | const Jbig2HuffmanLine |
||
27 | jbig2_huffman_lines_A[] = { |
||
28 | { 1, 4, 0 }, |
||
29 | { 2, 8, 16 }, |
||
30 | { 3, 16, 272 }, |
||
31 | { 0, 32, -1 }, /* low */ |
||
32 | { 3, 32, 65808 } /* high */ |
||
33 | }; |
||
34 | |||
35 | const Jbig2HuffmanParams |
||
36 | jbig2_huffman_params_A = { FALSE, 5, jbig2_huffman_lines_A }; |
||
37 | |||
38 | /* Table B.2 */ |
||
39 | const Jbig2HuffmanLine |
||
40 | jbig2_huffman_lines_B[] = { |
||
41 | { 1, 0, 0 }, |
||
42 | { 2, 0, 1 }, |
||
43 | { 3, 0, 2 }, |
||
44 | { 4, 3, 3 }, |
||
45 | { 5, 6, 11 }, |
||
46 | { 0, 32, -1 }, /* low */ |
||
47 | { 6, 32, 75 }, /* high */ |
||
48 | { 6, 0, 0 } |
||
49 | }; |
||
50 | |||
51 | const Jbig2HuffmanParams |
||
52 | jbig2_huffman_params_B = { TRUE, 8, jbig2_huffman_lines_B }; |
||
53 | |||
54 | /* Table B.3 */ |
||
55 | const Jbig2HuffmanLine |
||
56 | jbig2_huffman_lines_C[] = { |
||
57 | { 8, 8, -256 }, |
||
58 | { 1, 0, 0 }, |
||
59 | { 2, 0, 1 }, |
||
60 | { 3, 0, 2 }, |
||
61 | { 4, 3, 3 }, |
||
62 | { 5, 6, 11 }, |
||
63 | { 8, 32, -257 }, /* low */ |
||
64 | { 7, 32, 75 }, /* high */ |
||
65 | { 6, 0, 0 } /* OOB */ |
||
66 | }; |
||
67 | |||
68 | const Jbig2HuffmanParams |
||
69 | jbig2_huffman_params_C = { TRUE, 9, jbig2_huffman_lines_C }; |
||
70 | |||
71 | /* Table B.4 */ |
||
72 | const Jbig2HuffmanLine |
||
73 | jbig2_huffman_lines_D[] = { |
||
74 | { 1, 0, 1 }, |
||
75 | { 2, 0, 2 }, |
||
76 | { 3, 0, 3 }, |
||
77 | { 4, 3, 4 }, |
||
78 | { 5, 6, 12 }, |
||
79 | { 0, 32, -1 }, /* low */ |
||
80 | { 5, 32, 76 }, /* high */ |
||
81 | }; |
||
82 | |||
83 | const Jbig2HuffmanParams |
||
84 | jbig2_huffman_params_D = { FALSE, 7, jbig2_huffman_lines_D }; |
||
85 | |||
86 | /* Table B.5 */ |
||
87 | const Jbig2HuffmanLine |
||
88 | jbig2_huffman_lines_E[] = { |
||
89 | {7, 8, -255}, |
||
90 | {1, 0, 1}, |
||
91 | {2, 0, 2}, |
||
92 | {3, 0, 3}, |
||
93 | {4, 3, 4}, |
||
94 | {5, 6, 12}, |
||
95 | {7, 32, -256}, /* low */ |
||
96 | {6, 32, 76} /* high */ |
||
97 | }; |
||
98 | |||
99 | const Jbig2HuffmanParams |
||
100 | jbig2_huffman_params_E = { FALSE, 8, jbig2_huffman_lines_E }; |
||
101 | |||
102 | /* Table B.6 */ |
||
103 | const Jbig2HuffmanLine |
||
104 | jbig2_huffman_lines_F[] = { |
||
105 | {5, 10, -2048}, |
||
106 | {4, 9, -1024}, |
||
107 | {4, 8, -512}, |
||
108 | {4, 7, -256}, |
||
109 | {5, 6, -128}, |
||
110 | {5, 5, -64}, |
||
111 | {4, 5, -32}, |
||
112 | {2, 7, 0}, |
||
113 | {3, 7, 128}, |
||
114 | {3, 8, 256}, |
||
115 | {4, 9, 512}, |
||
116 | {4, 10, 1024}, |
||
117 | {6, 32, -2049}, /* low */ |
||
118 | {6, 32, 2048} /* high */ |
||
119 | }; |
||
120 | |||
121 | const Jbig2HuffmanParams |
||
122 | jbig2_huffman_params_F = { FALSE, 14, jbig2_huffman_lines_F }; |
||
123 | |||
124 | /* Table B.7 */ |
||
125 | const Jbig2HuffmanLine |
||
126 | jbig2_huffman_lines_G[] = { |
||
127 | {4, 9, -1024}, |
||
128 | {3, 8, -512}, |
||
129 | {4, 7, -256}, |
||
130 | {5, 6, -128}, |
||
131 | {5, 5, -64}, |
||
132 | {4, 5, -32}, |
||
133 | {4, 5, 0}, |
||
134 | {5, 5, 32}, |
||
135 | {5, 6, 64}, |
||
136 | {4, 7, 128}, |
||
137 | {3, 8, 256}, |
||
138 | {3, 9, 512}, |
||
139 | {3, 10, 1024}, |
||
140 | {5, 32, -1025}, /* low */ |
||
141 | {5, 32, 2048} /* high */ |
||
142 | }; |
||
143 | |||
144 | const Jbig2HuffmanParams |
||
145 | jbig2_huffman_params_G = { FALSE, 15, jbig2_huffman_lines_G }; |
||
146 | |||
147 | /* Table B.8 */ |
||
148 | const Jbig2HuffmanLine |
||
149 | jbig2_huffman_lines_H[] = { |
||
150 | {8, 3, -15}, |
||
151 | {9, 1, -7}, |
||
152 | {8, 1, -5}, |
||
153 | {9, 0, -3}, |
||
154 | {7, 0, -2}, |
||
155 | {4, 0, -1}, |
||
156 | {2, 1, 0}, |
||
157 | {5, 0, 2}, |
||
158 | {6, 0, 3}, |
||
159 | {3, 4, 4}, |
||
160 | {6, 1, 20}, |
||
161 | {4, 4, 22}, |
||
162 | {4, 5, 38}, |
||
163 | {5, 6, 70}, |
||
164 | {5, 7, 134}, |
||
165 | {6, 7, 262}, |
||
166 | {7, 8, 390}, |
||
167 | {6, 10, 646}, |
||
168 | {9, 32, -16}, /* low */ |
||
169 | {9, 32, 1670}, /* high */ |
||
170 | {2, 0, 0} /* OOB */ |
||
171 | }; |
||
172 | |||
173 | const Jbig2HuffmanParams |
||
174 | jbig2_huffman_params_H = { TRUE, 21, jbig2_huffman_lines_H }; |
||
175 | |||
176 | /* Table B.9 */ |
||
177 | const Jbig2HuffmanLine |
||
178 | jbig2_huffman_lines_I[] = { |
||
179 | {8, 4, -31}, |
||
180 | {9, 2, -15}, |
||
181 | {8, 2, -11}, |
||
182 | {9, 1, -7}, |
||
183 | {7, 1, -5}, |
||
184 | {4, 1, -3}, |
||
185 | {3, 1, -1}, |
||
186 | {3, 1, 1}, |
||
187 | {5, 1, 3}, |
||
188 | {6, 1, 5}, |
||
189 | {3, 5, 7}, |
||
190 | {6, 2, 39}, |
||
191 | {4, 5, 43}, |
||
192 | {4, 6, 75}, |
||
193 | {5, 7, 139}, |
||
194 | {5, 8, 267}, |
||
195 | {6, 8, 523}, |
||
196 | {7, 9, 779}, |
||
197 | {6, 11, 1291}, |
||
198 | {9, 32, -32}, /* low */ |
||
199 | {9, 32, 3339}, /* high */ |
||
200 | {2, 0, 0} /* OOB */ |
||
201 | }; |
||
202 | |||
203 | const Jbig2HuffmanParams |
||
204 | jbig2_huffman_params_I = { TRUE, 22, jbig2_huffman_lines_I }; |
||
205 | |||
206 | /* Table B.10 */ |
||
207 | const Jbig2HuffmanLine |
||
208 | jbig2_huffman_lines_J[] = { |
||
209 | {7, 4, -21}, |
||
210 | {8, 0, -5}, |
||
211 | {7, 0, -4}, |
||
212 | {5, 0, -3}, |
||
213 | {2, 2, -2}, |
||
214 | {5, 0, 2}, |
||
215 | {6, 0, 3}, |
||
216 | {7, 0, 4}, |
||
217 | {8, 0, 5}, |
||
218 | {2, 6, 6}, |
||
219 | {5, 5, 70}, |
||
220 | {6, 5, 102}, |
||
221 | {6, 6, 134}, |
||
222 | {6, 7, 198}, |
||
223 | {6, 8, 326}, |
||
224 | {6, 9, 582}, |
||
225 | {6, 10, 1094}, |
||
226 | {7, 11, 2118}, |
||
227 | {8, 32, -22}, /* low */ |
||
228 | {8, 32, 4166}, /* high */ |
||
229 | {2, 0, 0} /* OOB */ |
||
230 | }; |
||
231 | |||
232 | const Jbig2HuffmanParams |
||
233 | jbig2_huffman_params_J = { TRUE, 21, jbig2_huffman_lines_J }; |
||
234 | |||
235 | /* Table B.11 */ |
||
236 | const Jbig2HuffmanLine |
||
237 | jbig2_huffman_lines_K[] = { |
||
238 | {1, 0, 1}, |
||
239 | {2, 1, 2}, |
||
240 | {4, 0, 3}, |
||
241 | {4, 1, 5}, |
||
242 | {5, 1, 7}, |
||
243 | {5, 2, 9}, |
||
244 | {6, 2, 13}, |
||
245 | {7, 2, 17}, |
||
246 | {7, 3, 21}, |
||
247 | {7, 4, 29}, |
||
248 | {7, 5, 45}, |
||
249 | {7, 6, 77}, |
||
250 | {7, 32, 141} /* high */ |
||
251 | }; |
||
252 | |||
253 | const Jbig2HuffmanParams |
||
254 | jbig2_huffman_params_K = { FALSE, 13, jbig2_huffman_lines_K }; |
||
255 | |||
256 | /* Table B.12 */ |
||
257 | const Jbig2HuffmanLine |
||
258 | jbig2_huffman_lines_L[] = { |
||
259 | {1, 0, 1}, |
||
260 | {2, 0, 2}, |
||
261 | {3, 1, 3}, |
||
262 | {5, 0, 5}, |
||
263 | {5, 1, 6}, |
||
264 | {6, 1, 8}, |
||
265 | {7, 0, 10}, |
||
266 | {7, 1, 11}, |
||
267 | {7, 2, 13}, |
||
268 | {7, 3, 17}, |
||
269 | {7, 4, 25}, |
||
270 | {8, 5, 41}, |
||
271 | {8, 32, 73} |
||
272 | }; |
||
273 | |||
274 | const Jbig2HuffmanParams |
||
275 | jbig2_huffman_params_L = { FALSE, 13, jbig2_huffman_lines_L }; |
||
276 | |||
277 | |||
278 | /* Table B.13 */ |
||
279 | const Jbig2HuffmanLine |
||
280 | jbig2_huffman_lines_M[] = { |
||
281 | {1, 0, 1}, |
||
282 | {3, 0, 2}, |
||
283 | {4, 0, 3}, |
||
284 | {5, 0, 4}, |
||
285 | {4, 1, 5}, |
||
286 | {3, 3, 7}, |
||
287 | {6, 1, 15}, |
||
288 | {6, 2, 17}, |
||
289 | {6, 3, 21}, |
||
290 | {6, 4, 29}, |
||
291 | {6, 5, 45}, |
||
292 | {7, 6, 77}, |
||
293 | {7, 32, 141} /* high */ |
||
294 | }; |
||
295 | |||
296 | const Jbig2HuffmanParams |
||
297 | jbig2_huffman_params_M = { FALSE, 13, jbig2_huffman_lines_M }; |
||
298 | |||
299 | /* Table B.14 */ |
||
300 | const Jbig2HuffmanLine |
||
301 | jbig2_huffman_lines_N[] = { |
||
302 | { 3, 0, -2 }, |
||
303 | { 3, 0, -1 }, |
||
304 | { 1, 0, 0 }, |
||
305 | { 3, 3, 1 }, |
||
306 | { 3, 6, 2 }, |
||
307 | { 0, 32, -1 }, /* low */ |
||
308 | { 0, 32, 3 }, /* high */ |
||
309 | }; |
||
310 | |||
311 | const Jbig2HuffmanParams |
||
312 | jbig2_huffman_params_N = { FALSE, 7, jbig2_huffman_lines_N }; |
||
313 | |||
314 | /* Table B.15 */ |
||
315 | const Jbig2HuffmanLine |
||
316 | jbig2_huffman_lines_O[] = { |
||
317 | {7, 4, -24}, |
||
318 | {6, 2, -8}, |
||
319 | {5, 1, -4}, |
||
320 | {4, 0, -2}, |
||
321 | {3, 0, -1}, |
||
322 | {1, 0, 0}, |
||
323 | {3, 0, 1}, |
||
324 | {4, 0, 2}, |
||
325 | {5, 1, 3}, |
||
326 | {6, 2, 5}, |
||
327 | {7, 4, 9}, |
||
328 | {7, 32, -25}, /* low */ |
||
329 | {7, 32, 25} /* high */ |
||
330 | }; |
||
331 | |||
332 | const Jbig2HuffmanParams |
||
333 | jbig2_huffman_params_O = { FALSE, 13, jbig2_huffman_lines_O }; |
||
334 | |||
335 | #endif /* JBIG2_HUFFTAB_H */ |