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_
9typedef struct {
10    int PREFLEN;
11    int RANDELEN;
12    int RANGELOW;
13} JBig2TableLine;
14const FX_BOOL HuffmanTable_HTOOB_B1 = FALSE;
15const JBig2TableLine HuffmanTable_B1[] = {
16    { 1,	4,		0 },
17    { 2,	8,	   16 },
18    { 3,   16,	  272 },
19    { 0,   32,	   -1 },
20    { 3,   32,	65808 }
21};
22const FX_BOOL HuffmanTable_HTOOB_B2 = TRUE;
23const 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};
33const FX_BOOL HuffmanTable_HTOOB_B3 = TRUE;
34const 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};
45const FX_BOOL HuffmanTable_HTOOB_B4 = FALSE;
46const 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};
55const FX_BOOL HuffmanTable_HTOOB_B5 = FALSE;
56const 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};
66const FX_BOOL HuffmanTable_HTOOB_B6 = FALSE;
67const 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};
83const FX_BOOL HuffmanTable_HTOOB_B7 = FALSE;
84const 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};
101const FX_BOOL HuffmanTable_HTOOB_B8 = TRUE;
102const 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};
125const FX_BOOL HuffmanTable_HTOOB_B9 = TRUE;
126const 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};
150const FX_BOOL HuffmanTable_HTOOB_B10 = TRUE;
151const 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};
174const FX_BOOL HuffmanTable_HTOOB_B11 = FALSE;
175const 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};
191const FX_BOOL HuffmanTable_HTOOB_B12 = FALSE;
192const 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};
208const FX_BOOL HuffmanTable_HTOOB_B13 = FALSE;
209const 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};
225const FX_BOOL HuffmanTable_HTOOB_B14 = FALSE;
226const 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};
235const FX_BOOL HuffmanTable_HTOOB_B15 = FALSE;
236const 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