Diffstat (limited to 'noncore/unsupported/qpdf/xpdf/Stream-CCITT.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/unsupported/qpdf/xpdf/Stream-CCITT.h | 459 |
1 files changed, 459 insertions, 0 deletions
diff --git a/noncore/unsupported/qpdf/xpdf/Stream-CCITT.h b/noncore/unsupported/qpdf/xpdf/Stream-CCITT.h new file mode 100644 index 0000000..1af8742 --- a/dev/null +++ b/noncore/unsupported/qpdf/xpdf/Stream-CCITT.h | |||
@@ -0,0 +1,459 @@ | |||
1 | //======================================================================== | ||
2 | // | ||
3 | // Stream-CCITT.h | ||
4 | // | ||
5 | // Tables for CCITT Fax decoding. | ||
6 | // | ||
7 | // Copyright 1996 Derek B. Noonburg | ||
8 | // | ||
9 | //======================================================================== | ||
10 | |||
11 | struct CCITTCode { | ||
12 | short bits; | ||
13 | short n; | ||
14 | }; | ||
15 | |||
16 | #define ccittEOL -2 | ||
17 | |||
18 | //------------------------------------------------------------------------ | ||
19 | // 2D codes | ||
20 | //------------------------------------------------------------------------ | ||
21 | |||
22 | #define twoDimPass 0 | ||
23 | #define twoDimHoriz 1 | ||
24 | #define twoDimVert0 2 | ||
25 | #define twoDimVertR1 3 | ||
26 | #define twoDimVertL1 4 | ||
27 | #define twoDimVertR2 5 | ||
28 | #define twoDimVertL2 6 | ||
29 | #define twoDimVertR3 7 | ||
30 | #define twoDimVertL3 8 | ||
31 | |||
32 | // 1-7 bit codes | ||
33 | static CCITTCode twoDimTab1[128] = { | ||
34 | {-1, -1}, {-1, -1}, // 000000x | ||
35 | {7, twoDimVertL3}, // 0000010 | ||
36 | {7, twoDimVertR3}, // 0000011 | ||
37 | {6, twoDimVertL2}, {6, twoDimVertL2},// 000010x | ||
38 | {6, twoDimVertR2}, {6, twoDimVertR2},// 000011x | ||
39 | {4, twoDimPass}, {4, twoDimPass}, // 0001xxx | ||
40 | {4, twoDimPass}, {4, twoDimPass}, | ||
41 | {4, twoDimPass}, {4, twoDimPass}, | ||
42 | {4, twoDimPass}, {4, twoDimPass}, | ||
43 | {3, twoDimHoriz}, {3, twoDimHoriz},// 001xxxx | ||
44 | {3, twoDimHoriz}, {3, twoDimHoriz}, | ||
45 | {3, twoDimHoriz}, {3, twoDimHoriz}, | ||
46 | {3, twoDimHoriz}, {3, twoDimHoriz}, | ||
47 | {3, twoDimHoriz}, {3, twoDimHoriz}, | ||
48 | {3, twoDimHoriz}, {3, twoDimHoriz}, | ||
49 | {3, twoDimHoriz}, {3, twoDimHoriz}, | ||
50 | {3, twoDimHoriz}, {3, twoDimHoriz}, | ||
51 | {3, twoDimVertL1}, {3, twoDimVertL1},// 010xxxx | ||
52 | {3, twoDimVertL1}, {3, twoDimVertL1}, | ||
53 | {3, twoDimVertL1}, {3, twoDimVertL1}, | ||
54 | {3, twoDimVertL1}, {3, twoDimVertL1}, | ||
55 | {3, twoDimVertL1}, {3, twoDimVertL1}, | ||
56 | {3, twoDimVertL1}, {3, twoDimVertL1}, | ||
57 | {3, twoDimVertL1}, {3, twoDimVertL1}, | ||
58 | {3, twoDimVertL1}, {3, twoDimVertL1}, | ||
59 | {3, twoDimVertR1}, {3, twoDimVertR1},// 011xxxx | ||
60 | {3, twoDimVertR1}, {3, twoDimVertR1}, | ||
61 | {3, twoDimVertR1}, {3, twoDimVertR1}, | ||
62 | {3, twoDimVertR1}, {3, twoDimVertR1}, | ||
63 | {3, twoDimVertR1}, {3, twoDimVertR1}, | ||
64 | {3, twoDimVertR1}, {3, twoDimVertR1}, | ||
65 | {3, twoDimVertR1}, {3, twoDimVertR1}, | ||
66 | {3, twoDimVertR1}, {3, twoDimVertR1}, | ||
67 | {1, twoDimVert0}, {1, twoDimVert0},// 1xxxxxx | ||
68 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
69 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
70 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
71 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
72 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
73 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
74 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
75 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
76 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
77 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
78 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
79 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
80 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
81 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
82 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
83 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
84 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
85 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
86 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
87 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
88 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
89 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
90 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
91 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
92 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
93 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
94 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
95 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
96 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
97 | {1, twoDimVert0}, {1, twoDimVert0}, | ||
98 | {1, twoDimVert0}, {1, twoDimVert0} | ||
99 | }; | ||
100 | |||
101 | //------------------------------------------------------------------------ | ||
102 | // white run lengths | ||
103 | //------------------------------------------------------------------------ | ||
104 | |||
105 | // 11-12 bit codes (upper 7 bits are 0) | ||
106 | static CCITTCode whiteTab1[32] = { | ||
107 | {-1, -1}, // 00000 | ||
108 | {12, ccittEOL}, // 00001 | ||
109 | {-1, -1}, {-1, -1}, // 0001x | ||
110 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},// 001xx | ||
111 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},// 010xx | ||
112 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},// 011xx | ||
113 | {11, 1792}, {11, 1792}, // 1000x | ||
114 | {12, 1984}, // 10010 | ||
115 | {12, 2048}, // 10011 | ||
116 | {12, 2112}, // 10100 | ||
117 | {12, 2176}, // 10101 | ||
118 | {12, 2240}, // 10110 | ||
119 | {12, 2304}, // 10111 | ||
120 | {11, 1856}, {11, 1856}, // 1100x | ||
121 | {11, 1920}, {11, 1920}, // 1101x | ||
122 | {12, 2368}, // 11100 | ||
123 | {12, 2432}, // 11101 | ||
124 | {12, 2496}, // 11110 | ||
125 | {12, 2560} // 11111 | ||
126 | }; | ||
127 | |||
128 | // 1-9 bit codes | ||
129 | static CCITTCode whiteTab2[512] = { | ||
130 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},// 0000000xx | ||
131 | {8, 29}, {8, 29}, // 00000010x | ||
132 | {8, 30}, {8, 30}, // 00000011x | ||
133 | {8, 45}, {8, 45}, // 00000100x | ||
134 | {8, 46}, {8, 46}, // 00000101x | ||
135 | {7, 22}, {7, 22}, {7, 22}, {7, 22}, // 0000011xx | ||
136 | {7, 23}, {7, 23}, {7, 23}, {7, 23}, // 0000100xx | ||
137 | {8, 47}, {8, 47}, // 00001010x | ||
138 | {8, 48}, {8, 48}, // 00001011x | ||
139 | {6, 13}, {6, 13}, {6, 13}, {6, 13}, // 000011xxx | ||
140 | {6, 13}, {6, 13}, {6, 13}, {6, 13}, | ||
141 | {7, 20}, {7, 20}, {7, 20}, {7, 20}, // 0001000xx | ||
142 | {8, 33}, {8, 33}, // 00010010x | ||
143 | {8, 34}, {8, 34}, // 00010011x | ||
144 | {8, 35}, {8, 35}, // 00010100x | ||
145 | {8, 36}, {8, 36}, // 00010101x | ||
146 | {8, 37}, {8, 37}, // 00010110x | ||
147 | {8, 38}, {8, 38}, // 00010111x | ||
148 | {7, 19}, {7, 19}, {7, 19}, {7, 19}, // 0001100xx | ||
149 | {8, 31}, {8, 31}, // 00011010x | ||
150 | {8, 32}, {8, 32}, // 00011011x | ||
151 | {6, 1}, {6, 1}, {6, 1}, {6, 1}, // 000111xxx | ||
152 | {6, 1}, {6, 1}, {6, 1}, {6, 1}, | ||
153 | {6, 12}, {6, 12}, {6, 12}, {6, 12}, // 001000xxx | ||
154 | {6, 12}, {6, 12}, {6, 12}, {6, 12}, | ||
155 | {8, 53}, {8, 53}, // 00100100x | ||
156 | {8, 54}, {8, 54}, // 00100101x | ||
157 | {7, 26}, {7, 26}, {7, 26}, {7, 26}, // 0010011xx | ||
158 | {8, 39}, {8, 39}, // 00101000x | ||
159 | {8, 40}, {8, 40}, // 00101001x | ||
160 | {8, 41}, {8, 41}, // 00101010x | ||
161 | {8, 42}, {8, 42}, // 00101011x | ||
162 | {8, 43}, {8, 43}, // 00101100x | ||
163 | {8, 44}, {8, 44}, // 00101101x | ||
164 | {7, 21}, {7, 21}, {7, 21}, {7, 21}, // 0010111xx | ||
165 | {7, 28}, {7, 28}, {7, 28}, {7, 28}, // 0011000xx | ||
166 | {8, 61}, {8, 61}, // 00110010x | ||
167 | {8, 62}, {8, 62}, // 00110011x | ||
168 | {8, 63}, {8, 63}, // 00110100x | ||
169 | {8, 0}, {8, 0}, // 00110101x | ||
170 | {8, 320}, {8, 320}, // 00110110x | ||
171 | {8, 384}, {8, 384}, // 00110111x | ||
172 | {5, 10}, {5, 10}, {5, 10}, {5, 10}, // 00111xxxx | ||
173 | {5, 10}, {5, 10}, {5, 10}, {5, 10}, | ||
174 | {5, 10}, {5, 10}, {5, 10}, {5, 10}, | ||
175 | {5, 10}, {5, 10}, {5, 10}, {5, 10}, | ||
176 | {5, 11}, {5, 11}, {5, 11}, {5, 11}, // 01000xxxx | ||
177 | {5, 11}, {5, 11}, {5, 11}, {5, 11}, | ||
178 | {5, 11}, {5, 11}, {5, 11}, {5, 11}, | ||
179 | {5, 11}, {5, 11}, {5, 11}, {5, 11}, | ||
180 | {7, 27}, {7, 27}, {7, 27}, {7, 27}, // 0100100xx | ||
181 | {8, 59}, {8, 59}, // 01001010x | ||
182 | {8, 60}, {8, 60}, // 01001011x | ||
183 | {9, 1472}, // 010011000 | ||
184 | {9, 1536}, // 010011001 | ||
185 | {9, 1600}, // 010011010 | ||
186 | {9, 1728}, // 010011011 | ||
187 | {7, 18}, {7, 18}, {7, 18}, {7, 18}, // 0100111xx | ||
188 | {7, 24}, {7, 24}, {7, 24}, {7, 24}, // 0101000xx | ||
189 | {8, 49}, {8, 49}, // 01010010x | ||
190 | {8, 50}, {8, 50}, // 01010011x | ||
191 | {8, 51}, {8, 51}, // 01010100x | ||
192 | {8, 52}, {8, 52}, // 01010101x | ||
193 | {7, 25}, {7, 25}, {7, 25}, {7, 25}, // 0101011xx | ||
194 | {8, 55}, {8, 55}, // 01011000x | ||
195 | {8, 56}, {8, 56}, // 01011001x | ||
196 | {8, 57}, {8, 57}, // 01011010x | ||
197 | {8, 58}, {8, 58}, // 01011011x | ||
198 | {6, 192}, {6, 192}, {6, 192}, {6, 192},// 010111xxx | ||
199 | {6, 192}, {6, 192}, {6, 192}, {6, 192}, | ||
200 | {6, 1664}, {6, 1664}, {6, 1664}, {6, 1664},// 011000xxx | ||
201 | {6, 1664}, {6, 1664}, {6, 1664}, {6, 1664}, | ||
202 | {8, 448}, {8, 448}, // 01100100x | ||
203 | {8, 512}, {8, 512}, // 01100101x | ||
204 | {9, 704}, // 011001100 | ||
205 | {9, 768}, // 011001101 | ||
206 | {8, 640}, {8, 640}, // 01100111x | ||
207 | {8, 576}, {8, 576}, // 01101000x | ||
208 | {9, 832}, // 011010010 | ||
209 | {9, 896}, // 011010011 | ||
210 | {9, 960}, // 011010100 | ||
211 | {9, 1024}, // 011010101 | ||
212 | {9, 1088}, // 011010110 | ||
213 | {9, 1152}, // 011010111 | ||
214 | {9, 1216}, // 011011000 | ||
215 | {9, 1280}, // 011011001 | ||
216 | {9, 1344}, // 011011010 | ||
217 | {9, 1408}, // 011011011 | ||
218 | {7, 256}, {7, 256}, {7, 256}, {7, 256},// 0110111xx | ||
219 | {4, 2}, {4, 2}, {4, 2}, {4, 2}, // 0111xxxxx | ||
220 | {4, 2}, {4, 2}, {4, 2}, {4, 2}, | ||
221 | {4, 2}, {4, 2}, {4, 2}, {4, 2}, | ||
222 | {4, 2}, {4, 2}, {4, 2}, {4, 2}, | ||
223 | {4, 2}, {4, 2}, {4, 2}, {4, 2}, | ||
224 | {4, 2}, {4, 2}, {4, 2}, {4, 2}, | ||
225 | {4, 2}, {4, 2}, {4, 2}, {4, 2}, | ||
226 | {4, 2}, {4, 2}, {4, 2}, {4, 2}, | ||
227 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, // 1000xxxxx | ||
228 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, | ||
229 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, | ||
230 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, | ||
231 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, | ||
232 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, | ||
233 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, | ||
234 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, | ||
235 | {5, 128}, {5, 128}, {5, 128}, {5, 128},// 10010xxxx | ||
236 | {5, 128}, {5, 128}, {5, 128}, {5, 128}, | ||
237 | {5, 128}, {5, 128}, {5, 128}, {5, 128}, | ||
238 | {5, 128}, {5, 128}, {5, 128}, {5, 128}, | ||
239 | {5, 8}, {5, 8}, {5, 8}, {5, 8}, // 10011xxxx | ||
240 | {5, 8}, {5, 8}, {5, 8}, {5, 8}, | ||
241 | {5, 8}, {5, 8}, {5, 8}, {5, 8}, | ||
242 | {5, 8}, {5, 8}, {5, 8}, {5, 8}, | ||
243 | {5, 9}, {5, 9}, {5, 9}, {5, 9}, // 10100xxxx | ||
244 | {5, 9}, {5, 9}, {5, 9}, {5, 9}, | ||
245 | {5, 9}, {5, 9}, {5, 9}, {5, 9}, | ||
246 | {5, 9}, {5, 9}, {5, 9}, {5, 9}, | ||
247 | {6, 16}, {6, 16}, {6, 16}, {6, 16}, // 101010xxx | ||
248 | {6, 16}, {6, 16}, {6, 16}, {6, 16}, | ||
249 | {6, 17}, {6, 17}, {6, 17}, {6, 17}, // 101011xxx | ||
250 | {6, 17}, {6, 17}, {6, 17}, {6, 17}, | ||
251 | {4, 4}, {4, 4}, {4, 4}, {4, 4}, // 1011xxxxx | ||
252 | {4, 4}, {4, 4}, {4, 4}, {4, 4}, | ||
253 | {4, 4}, {4, 4}, {4, 4}, {4, 4}, | ||
254 | {4, 4}, {4, 4}, {4, 4}, {4, 4}, | ||
255 | {4, 4}, {4, 4}, {4, 4}, {4, 4}, | ||
256 | {4, 4}, {4, 4}, {4, 4}, {4, 4}, | ||
257 | {4, 4}, {4, 4}, {4, 4}, {4, 4}, | ||
258 | {4, 4}, {4, 4}, {4, 4}, {4, 4}, | ||
259 | {4, 5}, {4, 5}, {4, 5}, {4, 5}, // 1100xxxxx | ||
260 | {4, 5}, {4, 5}, {4, 5}, {4, 5}, | ||
261 | {4, 5}, {4, 5}, {4, 5}, {4, 5}, | ||
262 | {4, 5}, {4, 5}, {4, 5}, {4, 5}, | ||
263 | {4, 5}, {4, 5}, {4, 5}, {4, 5}, | ||
264 | {4, 5}, {4, 5}, {4, 5}, {4, 5}, | ||
265 | {4, 5}, {4, 5}, {4, 5}, {4, 5}, | ||
266 | {4, 5}, {4, 5}, {4, 5}, {4, 5}, | ||
267 | {6, 14}, {6, 14}, {6, 14}, {6, 14}, // 110100xxx | ||
268 | {6, 14}, {6, 14}, {6, 14}, {6, 14}, | ||
269 | {6, 15}, {6, 15}, {6, 15}, {6, 15}, // 110101xxx | ||
270 | {6, 15}, {6, 15}, {6, 15}, {6, 15}, | ||
271 | {5, 64}, {5, 64}, {5, 64}, {5, 64}, // 11011xxxx | ||
272 | {5, 64}, {5, 64}, {5, 64}, {5, 64}, | ||
273 | {5, 64}, {5, 64}, {5, 64}, {5, 64}, | ||
274 | {5, 64}, {5, 64}, {5, 64}, {5, 64}, | ||
275 | {4, 6}, {4, 6}, {4, 6}, {4, 6}, // 1110xxxxx | ||
276 | {4, 6}, {4, 6}, {4, 6}, {4, 6}, | ||
277 | {4, 6}, {4, 6}, {4, 6}, {4, 6}, | ||
278 | {4, 6}, {4, 6}, {4, 6}, {4, 6}, | ||
279 | {4, 6}, {4, 6}, {4, 6}, {4, 6}, | ||
280 | {4, 6}, {4, 6}, {4, 6}, {4, 6}, | ||
281 | {4, 6}, {4, 6}, {4, 6}, {4, 6}, | ||
282 | {4, 6}, {4, 6}, {4, 6}, {4, 6}, | ||
283 | {4, 7}, {4, 7}, {4, 7}, {4, 7}, // 1111xxxxx | ||
284 | {4, 7}, {4, 7}, {4, 7}, {4, 7}, | ||
285 | {4, 7}, {4, 7}, {4, 7}, {4, 7}, | ||
286 | {4, 7}, {4, 7}, {4, 7}, {4, 7}, | ||
287 | {4, 7}, {4, 7}, {4, 7}, {4, 7}, | ||
288 | {4, 7}, {4, 7}, {4, 7}, {4, 7}, | ||
289 | {4, 7}, {4, 7}, {4, 7}, {4, 7}, | ||
290 | {4, 7}, {4, 7}, {4, 7}, {4, 7} | ||
291 | }; | ||
292 | |||
293 | //------------------------------------------------------------------------ | ||
294 | // black run lengths | ||
295 | //------------------------------------------------------------------------ | ||
296 | |||
297 | // 10-13 bit codes (upper 6 bits are 0) | ||
298 | static CCITTCode blackTab1[128] = { | ||
299 | {-1, -1}, {-1, -1}, // 000000000000x | ||
300 | {12, ccittEOL}, {12, ccittEOL}, // 000000000001x | ||
301 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, // 00000000001xx | ||
302 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, // 00000000010xx | ||
303 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, // 00000000011xx | ||
304 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, // 00000000100xx | ||
305 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, // 00000000101xx | ||
306 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, // 00000000110xx | ||
307 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, // 00000000111xx | ||
308 | {11, 1792}, {11, 1792}, {11, 1792}, {11, 1792},// 00000001000xx | ||
309 | {12, 1984}, {12, 1984}, // 000000010010x | ||
310 | {12, 2048}, {12, 2048}, // 000000010011x | ||
311 | {12, 2112}, {12, 2112}, // 000000010100x | ||
312 | {12, 2176}, {12, 2176}, // 000000010101x | ||
313 | {12, 2240}, {12, 2240}, // 000000010110x | ||
314 | {12, 2304}, {12, 2304}, // 000000010111x | ||
315 | {11, 1856}, {11, 1856}, {11, 1856}, {11, 1856},// 00000001100xx | ||
316 | {11, 1920}, {11, 1920}, {11, 1920}, {11, 1920},// 00000001101xx | ||
317 | {12, 2368}, {12, 2368}, // 000000011100x | ||
318 | {12, 2432}, {12, 2432}, // 000000011101x | ||
319 | {12, 2496}, {12, 2496}, // 000000011110x | ||
320 | {12, 2560}, {12, 2560}, // 000000011111x | ||
321 | {10, 18}, {10, 18}, {10, 18}, {10, 18}, // 0000001000xxx | ||
322 | {10, 18}, {10, 18}, {10, 18}, {10, 18}, | ||
323 | {12, 52}, {12, 52}, // 000000100100x | ||
324 | {13, 640}, // 0000001001010 | ||
325 | {13, 704}, // 0000001001011 | ||
326 | {13, 768}, // 0000001001100 | ||
327 | {13, 832}, // 0000001001101 | ||
328 | {12, 55}, {12, 55}, // 000000100111x | ||
329 | {12, 56}, {12, 56}, // 000000101000x | ||
330 | {13, 1280}, // 0000001010010 | ||
331 | {13, 1344}, // 0000001010011 | ||
332 | {13, 1408}, // 0000001010100 | ||
333 | {13, 1472}, // 0000001010101 | ||
334 | {12, 59}, {12, 59}, // 000000101011x | ||
335 | {12, 60}, {12, 60}, // 000000101100x | ||
336 | {13, 1536}, // 0000001011010 | ||
337 | {13, 1600}, // 0000001011011 | ||
338 | {11, 24}, {11, 24}, {11, 24}, {11, 24}, // 00000010111xx | ||
339 | {11, 25}, {11, 25}, {11, 25}, {11, 25}, // 00000011000xx | ||
340 | {13, 1664}, // 0000001100100 | ||
341 | {13, 1728}, // 0000001100101 | ||
342 | {12, 320}, {12, 320}, // 000000110011x | ||
343 | {12, 384}, {12, 384}, // 000000110100x | ||
344 | {12, 448}, {12, 448}, // 000000110101x | ||
345 | {13, 512}, // 0000001101100 | ||
346 | {13, 576}, // 0000001101101 | ||
347 | {12, 53}, {12, 53}, // 000000110111x | ||
348 | {12, 54}, {12, 54}, // 000000111000x | ||
349 | {13, 896}, // 0000001110010 | ||
350 | {13, 960}, // 0000001110011 | ||
351 | {13, 1024}, // 0000001110100 | ||
352 | {13, 1088}, // 0000001110101 | ||
353 | {13, 1152}, // 0000001110110 | ||
354 | {13, 1216}, // 0000001110111 | ||
355 | {10, 64}, {10, 64}, {10, 64}, {10, 64}, // 0000001111xxx | ||
356 | {10, 64}, {10, 64}, {10, 64}, {10, 64} | ||
357 | }; | ||
358 | |||
359 | // 7-12 bit codes (upper 4 bits are 0) | ||
360 | static CCITTCode blackTab2[192] = { | ||
361 | {8, 13}, {8, 13}, {8, 13}, {8, 13}, // 00000100xxxx | ||
362 | {8, 13}, {8, 13}, {8, 13}, {8, 13}, | ||
363 | {8, 13}, {8, 13}, {8, 13}, {8, 13}, | ||
364 | {8, 13}, {8, 13}, {8, 13}, {8, 13}, | ||
365 | {11, 23}, {11, 23}, // 00000101000x | ||
366 | {12, 50}, // 000001010010 | ||
367 | {12, 51}, // 000001010011 | ||
368 | {12, 44}, // 000001010100 | ||
369 | {12, 45}, // 000001010101 | ||
370 | {12, 46}, // 000001010110 | ||
371 | {12, 47}, // 000001010111 | ||
372 | {12, 57}, // 000001011000 | ||
373 | {12, 58}, // 000001011001 | ||
374 | {12, 61}, // 000001011010 | ||
375 | {12, 256}, // 000001011011 | ||
376 | {10, 16}, {10, 16}, {10, 16}, {10, 16}, // 0000010111xx | ||
377 | {10, 17}, {10, 17}, {10, 17}, {10, 17}, // 0000011000xx | ||
378 | {12, 48}, // 000001100100 | ||
379 | {12, 49}, // 000001100101 | ||
380 | {12, 62}, // 000001100110 | ||
381 | {12, 63}, // 000001100111 | ||
382 | {12, 30}, // 000001101000 | ||
383 | {12, 31}, // 000001101001 | ||
384 | {12, 32}, // 000001101010 | ||
385 | {12, 33}, // 000001101011 | ||
386 | {12, 40}, // 000001101100 | ||
387 | {12, 41}, // 000001101101 | ||
388 | {11, 22}, {11, 22}, // 00000110111x | ||
389 | {8, 14}, {8, 14}, {8, 14}, {8, 14}, // 00000111xxxx | ||
390 | {8, 14}, {8, 14}, {8, 14}, {8, 14}, | ||
391 | {8, 14}, {8, 14}, {8, 14}, {8, 14}, | ||
392 | {8, 14}, {8, 14}, {8, 14}, {8, 14}, | ||
393 | {7, 10}, {7, 10}, {7, 10}, {7, 10}, // 0000100xxxxx | ||
394 | {7, 10}, {7, 10}, {7, 10}, {7, 10}, | ||
395 | {7, 10}, {7, 10}, {7, 10}, {7, 10}, | ||
396 | {7, 10}, {7, 10}, {7, 10}, {7, 10}, | ||
397 | {7, 10}, {7, 10}, {7, 10}, {7, 10}, | ||
398 | {7, 10}, {7, 10}, {7, 10}, {7, 10}, | ||
399 | {7, 10}, {7, 10}, {7, 10}, {7, 10}, | ||
400 | {7, 10}, {7, 10}, {7, 10}, {7, 10}, | ||
401 | {7, 11}, {7, 11}, {7, 11}, {7, 11}, // 0000101xxxxx | ||
402 | {7, 11}, {7, 11}, {7, 11}, {7, 11}, | ||
403 | {7, 11}, {7, 11}, {7, 11}, {7, 11}, | ||
404 | {7, 11}, {7, 11}, {7, 11}, {7, 11}, | ||
405 | {7, 11}, {7, 11}, {7, 11}, {7, 11}, | ||
406 | {7, 11}, {7, 11}, {7, 11}, {7, 11}, | ||
407 | {7, 11}, {7, 11}, {7, 11}, {7, 11}, | ||
408 | {7, 11}, {7, 11}, {7, 11}, {7, 11}, | ||
409 | {9, 15}, {9, 15}, {9, 15}, {9, 15}, // 000011000xxx | ||
410 | {9, 15}, {9, 15}, {9, 15}, {9, 15}, | ||
411 | {12, 128}, // 000011001000 | ||
412 | {12, 192}, // 000011001001 | ||
413 | {12, 26}, // 000011001010 | ||
414 | {12, 27}, // 000011001011 | ||
415 | {12, 28}, // 000011001100 | ||
416 | {12, 29}, // 000011001101 | ||
417 | {11, 19}, {11, 19}, // 00001100111x | ||
418 | {11, 20}, {11, 20}, // 00001101000x | ||
419 | {12, 34}, // 000011010010 | ||
420 | {12, 35}, // 000011010011 | ||
421 | {12, 36}, // 000011010100 | ||
422 | {12, 37}, // 000011010101 | ||
423 | {12, 38}, // 000011010110 | ||
424 | {12, 39}, // 000011010111 | ||
425 | {11, 21}, {11, 21}, // 00001101100x | ||
426 | {12, 42}, // 000011011010 | ||
427 | {12, 43}, // 000011011011 | ||
428 | {10, 0}, {10, 0}, {10, 0}, {10, 0}, // 0000110111xx | ||
429 | {7, 12}, {7, 12}, {7, 12}, {7, 12}, // 0000111xxxxx | ||
430 | {7, 12}, {7, 12}, {7, 12}, {7, 12}, | ||
431 | {7, 12}, {7, 12}, {7, 12}, {7, 12}, | ||
432 | {7, 12}, {7, 12}, {7, 12}, {7, 12}, | ||
433 | {7, 12}, {7, 12}, {7, 12}, {7, 12}, | ||
434 | {7, 12}, {7, 12}, {7, 12}, {7, 12}, | ||
435 | {7, 12}, {7, 12}, {7, 12}, {7, 12}, | ||
436 | {7, 12}, {7, 12}, {7, 12}, {7, 12} | ||
437 | }; | ||
438 | |||
439 | // 2-6 bit codes | ||
440 | static CCITTCode blackTab3[64] = { | ||
441 | {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}, // 0000xx | ||
442 | {6, 9}, // 000100 | ||
443 | {6, 8}, // 000101 | ||
444 | {5, 7}, {5, 7}, // 00011x | ||
445 | {4, 6}, {4, 6}, {4, 6}, {4, 6}, // 0010xx | ||
446 | {4, 5}, {4, 5}, {4, 5}, {4, 5}, // 0011xx | ||
447 | {3, 1}, {3, 1}, {3, 1}, {3, 1}, // 010xxx | ||
448 | {3, 1}, {3, 1}, {3, 1}, {3, 1}, | ||
449 | {3, 4}, {3, 4}, {3, 4}, {3, 4}, // 011xxx | ||
450 | {3, 4}, {3, 4}, {3, 4}, {3, 4}, | ||
451 | {2, 3}, {2, 3}, {2, 3}, {2, 3}, // 10xxxx | ||
452 | {2, 3}, {2, 3}, {2, 3}, {2, 3}, | ||
453 | {2, 3}, {2, 3}, {2, 3}, {2, 3}, | ||
454 | {2, 3}, {2, 3}, {2, 3}, {2, 3}, | ||
455 | {2, 2}, {2, 2}, {2, 2}, {2, 2}, // 11xxxx | ||
456 | {2, 2}, {2, 2}, {2, 2}, {2, 2}, | ||
457 | {2, 2}, {2, 2}, {2, 2}, {2, 2}, | ||
458 | {2, 2}, {2, 2}, {2, 2}, {2, 2} | ||
459 | }; | ||