source: trunk/poppler/mypoppler/poppler/Stream-CCITT.h @ 461

Last change on this file since 461 was 257, checked in by Eugene Romanenko, 13 years ago

PDF plugin: Poppler library updated to version 0.10.0

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