~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to tests/poppler/poppler/Stream-CCITT.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
25
struct 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
 
47
static 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)
 
120
static 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
 
143
static 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)
 
312
static 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)
 
374
static 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
 
454
static 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
};