1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #ifndef _JBIG2_HUFFMAN_TABLE_STANDARD_H_
8 #define _JBIG2_HUFFMAN_TABLE_STANDARD_H_
9 typedef struct {
10     int PREFLEN;
11     int RANDELEN;
12     int RANGELOW;
13 } JBig2TableLine;
14 const FX_BOOL HuffmanTable_HTOOB_B1 = FALSE;
15 const JBig2TableLine HuffmanTable_B1[] = {
16     { 1,	4,		0 },
17     { 2,	8,	   16 },
18     { 3,   16,	  272 },
19     { 0,   32,	   -1 },
20     { 3,   32,	65808 }
21 };
22 const FX_BOOL HuffmanTable_HTOOB_B2 = TRUE;
23 const JBig2TableLine HuffmanTable_B2[] = {
24     { 1,	0,		0 },
25     { 2,	0,		1 },
26     { 3,	0,		2 },
27     { 4,	3,		3 },
28     { 5,	6,	   11 },
29     { 0,   32,	   -1 },
30     { 6,   32,     75 },
31     { 6,	0,      0 }
32 };
33 const FX_BOOL HuffmanTable_HTOOB_B3 = TRUE;
34 const JBig2TableLine HuffmanTable_B3[] = {
35     { 8,	8,   -256 },
36     { 1,	0,		0 },
37     { 2,	0,		1 },
38     { 3,	0,		2 },
39     { 4,	3,		3 },
40     { 5,	6,	   11 },
41     { 8,   32,   -257 },
42     { 7,   32,     75 },
43     { 6,	0,		0 }
44 };
45 const FX_BOOL HuffmanTable_HTOOB_B4 = FALSE;
46 const JBig2TableLine HuffmanTable_B4[] = {
47     { 1,	0,		1 },
48     { 2,	0,		2 },
49     { 3,	0,		3 },
50     { 4,	3,		4 },
51     { 5,	6,	   12 },
52     { 0,   32,     -1 },
53     { 5,   32,	   76 },
54 };
55 const FX_BOOL HuffmanTable_HTOOB_B5 = FALSE;
56 const JBig2TableLine HuffmanTable_B5[] = {
57     { 7,	8,	 -255 },
58     { 1,	0,	    1 },
59     { 2,	0,	    2 },
60     { 3,    0,      3 },
61     { 4,	3,	    4 },
62     { 5,	6,	   12 },
63     { 7,   32,   -256 },
64     { 6,   32,     76 }
65 };
66 const FX_BOOL HuffmanTable_HTOOB_B6 = FALSE;
67 const JBig2TableLine HuffmanTable_B6[] = {
68     { 5,   10,	-2048 },
69     { 4,    9,	-1024 },
70     { 4,	8,	 -512 },
71     { 4,	7,	 -256 },
72     { 5,	6,	 -128 },
73     { 5,	5,	  -64 },
74     { 4,	5,	  -32 },
75     { 2,	7,		0 },
76     { 3,	7,	  128 },
77     { 3,	8,	  256 },
78     { 4,	9,	  512 },
79     { 4,   10,	 1024 },
80     { 6,   32,	-2049 },
81     { 6,   32,	 2048 }
82 };
83 const FX_BOOL HuffmanTable_HTOOB_B7 = FALSE;
84 const JBig2TableLine HuffmanTable_B7[] = {
85     { 4,	9,	-1024 },
86     { 3,	8,	 -512 },
87     { 4,	7,	 -256 },
88     { 5,	6,	 -128 },
89     { 5,	5,	  -64 },
90     { 4,	5,	  -32 },
91     { 4,	5,		0 },
92     { 5,	5,	   32 },
93     { 5,	6,	   64 },
94     { 4,	7,	  128 },
95     { 3,	8,	  256 },
96     { 3,	9,	  512 },
97     { 3,   10,	 1024 },
98     { 5,   32,	-1025 },
99     { 5,   32,	 2048 },
100 };
101 const FX_BOOL HuffmanTable_HTOOB_B8 = TRUE;
102 const JBig2TableLine HuffmanTable_B8[] = {
103     { 8,	3,	  -15 },
104     { 9,	1,	   -7 },
105     { 8,	1,	   -5 },
106     { 9,	0,	   -3 },
107     { 7,	0,	   -2 },
108     { 4,	0,	   -1 },
109     { 2,	1,		0 },
110     { 5,	0,		2 },
111     { 6,	0,		3 },
112     { 3,	4,		4 },
113     { 6,	1,	   20 },
114     { 4,	4,	   22 },
115     { 4,	5,	   38 },
116     { 5,	6,	   70 },
117     { 5,	7,	  134 },
118     { 6,	7,	  262 },
119     { 7,	8,	  390 },
120     { 6,   10,	  646 },
121     { 9,   32,	  -16 },
122     { 9,   32,	 1670 },
123     { 2,	0,		0 }
124 };
125 const FX_BOOL HuffmanTable_HTOOB_B9 = TRUE;
126 const JBig2TableLine HuffmanTable_B9[] = {
127     { 8,	4,	  -31 },
128     { 9,	2,	  -15 },
129     { 8,	2,	  -11 },
130     { 9,	1,	   -7 },
131     { 7,	1,	   -5 },
132     { 4,	1,	   -3 },
133     { 3,	1,	   -1 },
134     { 3,	1,		1 },
135     { 5,	1,		3 },
136     { 6,	1,		5 },
137     { 3,	5,		7 },
138     { 6,	2,	   39 },
139     { 4,	5,	   43 },
140     { 4,	6,	   75 },
141     { 5,	7,	  139 },
142     { 5,	8,	  267 },
143     { 6,	8,	  523 },
144     { 7,	9,	  779 },
145     { 6,   11,	 1291 },
146     { 9,   32,	  -32 },
147     { 9,   32,	 3339 },
148     { 2,	0,		0 }
149 };
150 const FX_BOOL HuffmanTable_HTOOB_B10 = TRUE;
151 const JBig2TableLine HuffmanTable_B10[] = {
152     { 7,	4,	  -21 },
153     { 8,	0,	   -5 },
154     { 7,	0,	   -4 },
155     { 5,	0,	   -3 },
156     { 2,	2,	   -2 },
157     { 5,	0,		2 },
158     { 6,	0,		3 },
159     { 7,	0,		4 },
160     { 8,	0,		5 },
161     { 2,	6,		6 },
162     { 5,	5,	   70 },
163     { 6,	5,	  102 },
164     { 6,	6,	  134 },
165     { 6,	7,	  198 },
166     { 6,	8,	  326 },
167     { 6,	9,	  582 },
168     { 6,   10,	 1094 },
169     { 7,   11,	 2118 },
170     { 8,   32,	  -22 },
171     { 8,   32,	 4166 },
172     { 2,	0,		0 }
173 };
174 const FX_BOOL HuffmanTable_HTOOB_B11 = FALSE;
175 const JBig2TableLine HuffmanTable_B11[] = {
176     { 1,	0,		1 },
177     { 2,	1,		2 },
178     { 4,	0,		4 },
179     { 4,	1,		5 },
180     { 5,	1,		7 },
181     { 5,	2,		9 },
182     { 6,	2,	   13 },
183     { 7,	2,	   17 },
184     { 7,	3,	   21 },
185     { 7,	4,	   29 },
186     { 7,	5,	   45 },
187     { 7,	6,	   77 },
188     { 0,   32,		0 },
189     { 7,   32,	  141 }
190 };
191 const FX_BOOL HuffmanTable_HTOOB_B12 = FALSE;
192 const JBig2TableLine HuffmanTable_B12[] = {
193     { 1,	0,		1 },
194     { 2,	0,		2 },
195     { 3,	1,		3 },
196     { 5,	0,		5 },
197     { 5,	1,		6 },
198     { 6,	1,		8 },
199     { 7,	0,	   10 },
200     { 7,	1,	   11 },
201     { 7,	2,	   13 },
202     { 7,	3,	   17 },
203     { 7,	4,	   25 },
204     { 8,	5,	   41 },
205     { 0,   32,		0 },
206     { 8,   32,	   73 }
207 };
208 const FX_BOOL HuffmanTable_HTOOB_B13 = FALSE;
209 const JBig2TableLine HuffmanTable_B13[] = {
210     { 1,	0,		1 },
211     { 3,	0,		2 },
212     { 4,	0,		3 },
213     { 5,	0,		4 },
214     { 4,	1,		5 },
215     { 3,	3,		7 },
216     { 6,	1,	   15 },
217     { 6,	2,	   17 },
218     { 6,	3,	   21 },
219     { 6,	4,	   29 },
220     { 6,	5,	   45 },
221     { 7,	6,	   77 },
222     { 0,   32,		0 },
223     { 7,   32,	  141 }
224 };
225 const FX_BOOL HuffmanTable_HTOOB_B14 = FALSE;
226 const JBig2TableLine HuffmanTable_B14[] = {
227     { 3,	0,	   -2 },
228     { 3,	0,	   -1 },
229     { 1,	0,		0 },
230     { 3,	0,		1 },
231     { 3,	0,		2 },
232     { 0,   32,	   -3 },
233     { 0,   32,		3 }
234 };
235 const FX_BOOL HuffmanTable_HTOOB_B15 = FALSE;
236 const JBig2TableLine HuffmanTable_B15[] = {
237     { 7,	4,	  -24 },
238     { 6,	2,	   -8 },
239     { 5,	1,	   -4 },
240     { 4,	0,	   -2 },
241     { 3,	0,	   -1 },
242     { 1,	0,		0 },
243     { 3,	0,		1 },
244     { 4,	0,		2 },
245     { 5,	1,		3 },
246     { 6,	2,		5 },
247     { 7,	4,		9 },
248     { 7,   32,	  -25 },
249     { 7,   32,	   25 }
250 };
251 #endif
252