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 | #ifndef STREAM_CCITT_H |
26 | #define STREAM_CCITT_H |
27 | |
28 | struct CCITTCode |
29 | { |
30 | short bits; |
31 | short n; |
32 | }; |
33 | |
34 | #define ccittEOL -2 |
35 | |
36 | //------------------------------------------------------------------------ |
37 | // 2D codes |
38 | //------------------------------------------------------------------------ |
39 | |
40 | #define twoDimPass 0 |
41 | #define twoDimHoriz 1 |
42 | #define twoDimVert0 2 |
43 | #define twoDimVertR1 3 |
44 | #define twoDimVertL1 4 |
45 | #define twoDimVertR2 5 |
46 | #define twoDimVertL2 6 |
47 | #define twoDimVertR3 7 |
48 | #define twoDimVertL3 8 |
49 | |
50 | // 1-7 bit codes |
51 | static const CCITTCode twoDimTab1[128] = { { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 000000x |
52 | { .bits: 7, twoDimVertL3 }, // 0000010 |
53 | { .bits: 7, twoDimVertR3 }, // 0000011 |
54 | { .bits: 6, twoDimVertL2 }, { .bits: 6, twoDimVertL2 }, // 000010x |
55 | { .bits: 6, twoDimVertR2 }, { .bits: 6, twoDimVertR2 }, // 000011x |
56 | { .bits: 4, twoDimPass }, { .bits: 4, twoDimPass }, // 0001xxx |
57 | { .bits: 4, twoDimPass }, { .bits: 4, twoDimPass }, { .bits: 4, twoDimPass }, { .bits: 4, twoDimPass }, { .bits: 4, twoDimPass }, { .bits: 4, twoDimPass }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, // 001xxxx |
58 | { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, |
59 | { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimHoriz }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, // 010xxxx |
60 | { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, |
61 | { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertL1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, // 011xxxx |
62 | { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, |
63 | { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 3, twoDimVertR1 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, // 1xxxxxx |
64 | { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, |
65 | { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, |
66 | { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, |
67 | { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, |
68 | { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, |
69 | { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, |
70 | { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 }, { .bits: 1, twoDimVert0 } }; |
71 | |
72 | //------------------------------------------------------------------------ |
73 | // white run lengths |
74 | //------------------------------------------------------------------------ |
75 | |
76 | // 11-12 bit codes (upper 7 bits are 0) |
77 | static const CCITTCode whiteTab1[32] = { |
78 | { .bits: -1, .n: -1 }, // 00000 |
79 | { .bits: 12, ccittEOL }, // 00001 |
80 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 0001x |
81 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 001xx |
82 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 010xx |
83 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 011xx |
84 | { .bits: 11, .n: 1792 }, { .bits: 11, .n: 1792 }, // 1000x |
85 | { .bits: 12, .n: 1984 }, // 10010 |
86 | { .bits: 12, .n: 2048 }, // 10011 |
87 | { .bits: 12, .n: 2112 }, // 10100 |
88 | { .bits: 12, .n: 2176 }, // 10101 |
89 | { .bits: 12, .n: 2240 }, // 10110 |
90 | { .bits: 12, .n: 2304 }, // 10111 |
91 | { .bits: 11, .n: 1856 }, { .bits: 11, .n: 1856 }, // 1100x |
92 | { .bits: 11, .n: 1920 }, { .bits: 11, .n: 1920 }, // 1101x |
93 | { .bits: 12, .n: 2368 }, // 11100 |
94 | { .bits: 12, .n: 2432 }, // 11101 |
95 | { .bits: 12, .n: 2496 }, // 11110 |
96 | { .bits: 12, .n: 2560 } // 11111 |
97 | }; |
98 | |
99 | // 1-9 bit codes |
100 | static const CCITTCode whiteTab2[512] = { |
101 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 0000000xx |
102 | { .bits: 8, .n: 29 }, { .bits: 8, .n: 29 }, // 00000010x |
103 | { .bits: 8, .n: 30 }, { .bits: 8, .n: 30 }, // 00000011x |
104 | { .bits: 8, .n: 45 }, { .bits: 8, .n: 45 }, // 00000100x |
105 | { .bits: 8, .n: 46 }, { .bits: 8, .n: 46 }, // 00000101x |
106 | { .bits: 7, .n: 22 }, { .bits: 7, .n: 22 }, { .bits: 7, .n: 22 }, { .bits: 7, .n: 22 }, // 0000011xx |
107 | { .bits: 7, .n: 23 }, { .bits: 7, .n: 23 }, { .bits: 7, .n: 23 }, { .bits: 7, .n: 23 }, // 0000100xx |
108 | { .bits: 8, .n: 47 }, { .bits: 8, .n: 47 }, // 00001010x |
109 | { .bits: 8, .n: 48 }, { .bits: 8, .n: 48 }, // 00001011x |
110 | { .bits: 6, .n: 13 }, { .bits: 6, .n: 13 }, { .bits: 6, .n: 13 }, { .bits: 6, .n: 13 }, // 000011xxx |
111 | { .bits: 6, .n: 13 }, { .bits: 6, .n: 13 }, { .bits: 6, .n: 13 }, { .bits: 6, .n: 13 }, { .bits: 7, .n: 20 }, { .bits: 7, .n: 20 }, { .bits: 7, .n: 20 }, { .bits: 7, .n: 20 }, // 0001000xx |
112 | { .bits: 8, .n: 33 }, { .bits: 8, .n: 33 }, // 00010010x |
113 | { .bits: 8, .n: 34 }, { .bits: 8, .n: 34 }, // 00010011x |
114 | { .bits: 8, .n: 35 }, { .bits: 8, .n: 35 }, // 00010100x |
115 | { .bits: 8, .n: 36 }, { .bits: 8, .n: 36 }, // 00010101x |
116 | { .bits: 8, .n: 37 }, { .bits: 8, .n: 37 }, // 00010110x |
117 | { .bits: 8, .n: 38 }, { .bits: 8, .n: 38 }, // 00010111x |
118 | { .bits: 7, .n: 19 }, { .bits: 7, .n: 19 }, { .bits: 7, .n: 19 }, { .bits: 7, .n: 19 }, // 0001100xx |
119 | { .bits: 8, .n: 31 }, { .bits: 8, .n: 31 }, // 00011010x |
120 | { .bits: 8, .n: 32 }, { .bits: 8, .n: 32 }, // 00011011x |
121 | { .bits: 6, .n: 1 }, { .bits: 6, .n: 1 }, { .bits: 6, .n: 1 }, { .bits: 6, .n: 1 }, // 000111xxx |
122 | { .bits: 6, .n: 1 }, { .bits: 6, .n: 1 }, { .bits: 6, .n: 1 }, { .bits: 6, .n: 1 }, { .bits: 6, .n: 12 }, { .bits: 6, .n: 12 }, { .bits: 6, .n: 12 }, { .bits: 6, .n: 12 }, // 001000xxx |
123 | { .bits: 6, .n: 12 }, { .bits: 6, .n: 12 }, { .bits: 6, .n: 12 }, { .bits: 6, .n: 12 }, { .bits: 8, .n: 53 }, { .bits: 8, .n: 53 }, // 00100100x |
124 | { .bits: 8, .n: 54 }, { .bits: 8, .n: 54 }, // 00100101x |
125 | { .bits: 7, .n: 26 }, { .bits: 7, .n: 26 }, { .bits: 7, .n: 26 }, { .bits: 7, .n: 26 }, // 0010011xx |
126 | { .bits: 8, .n: 39 }, { .bits: 8, .n: 39 }, // 00101000x |
127 | { .bits: 8, .n: 40 }, { .bits: 8, .n: 40 }, // 00101001x |
128 | { .bits: 8, .n: 41 }, { .bits: 8, .n: 41 }, // 00101010x |
129 | { .bits: 8, .n: 42 }, { .bits: 8, .n: 42 }, // 00101011x |
130 | { .bits: 8, .n: 43 }, { .bits: 8, .n: 43 }, // 00101100x |
131 | { .bits: 8, .n: 44 }, { .bits: 8, .n: 44 }, // 00101101x |
132 | { .bits: 7, .n: 21 }, { .bits: 7, .n: 21 }, { .bits: 7, .n: 21 }, { .bits: 7, .n: 21 }, // 0010111xx |
133 | { .bits: 7, .n: 28 }, { .bits: 7, .n: 28 }, { .bits: 7, .n: 28 }, { .bits: 7, .n: 28 }, // 0011000xx |
134 | { .bits: 8, .n: 61 }, { .bits: 8, .n: 61 }, // 00110010x |
135 | { .bits: 8, .n: 62 }, { .bits: 8, .n: 62 }, // 00110011x |
136 | { .bits: 8, .n: 63 }, { .bits: 8, .n: 63 }, // 00110100x |
137 | { .bits: 8, .n: 0 }, { .bits: 8, .n: 0 }, // 00110101x |
138 | { .bits: 8, .n: 320 }, { .bits: 8, .n: 320 }, // 00110110x |
139 | { .bits: 8, .n: 384 }, { .bits: 8, .n: 384 }, // 00110111x |
140 | { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, // 00111xxxx |
141 | { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 10 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, // 01000xxxx |
142 | { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 5, .n: 11 }, { .bits: 7, .n: 27 }, { .bits: 7, .n: 27 }, { .bits: 7, .n: 27 }, { .bits: 7, .n: 27 }, // 0100100xx |
143 | { .bits: 8, .n: 59 }, { .bits: 8, .n: 59 }, // 01001010x |
144 | { .bits: 8, .n: 60 }, { .bits: 8, .n: 60 }, // 01001011x |
145 | { .bits: 9, .n: 1472 }, // 010011000 |
146 | { .bits: 9, .n: 1536 }, // 010011001 |
147 | { .bits: 9, .n: 1600 }, // 010011010 |
148 | { .bits: 9, .n: 1728 }, // 010011011 |
149 | { .bits: 7, .n: 18 }, { .bits: 7, .n: 18 }, { .bits: 7, .n: 18 }, { .bits: 7, .n: 18 }, // 0100111xx |
150 | { .bits: 7, .n: 24 }, { .bits: 7, .n: 24 }, { .bits: 7, .n: 24 }, { .bits: 7, .n: 24 }, // 0101000xx |
151 | { .bits: 8, .n: 49 }, { .bits: 8, .n: 49 }, // 01010010x |
152 | { .bits: 8, .n: 50 }, { .bits: 8, .n: 50 }, // 01010011x |
153 | { .bits: 8, .n: 51 }, { .bits: 8, .n: 51 }, // 01010100x |
154 | { .bits: 8, .n: 52 }, { .bits: 8, .n: 52 }, // 01010101x |
155 | { .bits: 7, .n: 25 }, { .bits: 7, .n: 25 }, { .bits: 7, .n: 25 }, { .bits: 7, .n: 25 }, // 0101011xx |
156 | { .bits: 8, .n: 55 }, { .bits: 8, .n: 55 }, // 01011000x |
157 | { .bits: 8, .n: 56 }, { .bits: 8, .n: 56 }, // 01011001x |
158 | { .bits: 8, .n: 57 }, { .bits: 8, .n: 57 }, // 01011010x |
159 | { .bits: 8, .n: 58 }, { .bits: 8, .n: 58 }, // 01011011x |
160 | { .bits: 6, .n: 192 }, { .bits: 6, .n: 192 }, { .bits: 6, .n: 192 }, { .bits: 6, .n: 192 }, // 010111xxx |
161 | { .bits: 6, .n: 192 }, { .bits: 6, .n: 192 }, { .bits: 6, .n: 192 }, { .bits: 6, .n: 192 }, { .bits: 6, .n: 1664 }, { .bits: 6, .n: 1664 }, { .bits: 6, .n: 1664 }, { .bits: 6, .n: 1664 }, // 011000xxx |
162 | { .bits: 6, .n: 1664 }, { .bits: 6, .n: 1664 }, { .bits: 6, .n: 1664 }, { .bits: 6, .n: 1664 }, { .bits: 8, .n: 448 }, { .bits: 8, .n: 448 }, // 01100100x |
163 | { .bits: 8, .n: 512 }, { .bits: 8, .n: 512 }, // 01100101x |
164 | { .bits: 9, .n: 704 }, // 011001100 |
165 | { .bits: 9, .n: 768 }, // 011001101 |
166 | { .bits: 8, .n: 640 }, { .bits: 8, .n: 640 }, // 01100111x |
167 | { .bits: 8, .n: 576 }, { .bits: 8, .n: 576 }, // 01101000x |
168 | { .bits: 9, .n: 832 }, // 011010010 |
169 | { .bits: 9, .n: 896 }, // 011010011 |
170 | { .bits: 9, .n: 960 }, // 011010100 |
171 | { .bits: 9, .n: 1024 }, // 011010101 |
172 | { .bits: 9, .n: 1088 }, // 011010110 |
173 | { .bits: 9, .n: 1152 }, // 011010111 |
174 | { .bits: 9, .n: 1216 }, // 011011000 |
175 | { .bits: 9, .n: 1280 }, // 011011001 |
176 | { .bits: 9, .n: 1344 }, // 011011010 |
177 | { .bits: 9, .n: 1408 }, // 011011011 |
178 | { .bits: 7, .n: 256 }, { .bits: 7, .n: 256 }, { .bits: 7, .n: 256 }, { .bits: 7, .n: 256 }, // 0110111xx |
179 | { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, // 0111xxxxx |
180 | { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, |
181 | { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 2 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, // 1000xxxxx |
182 | { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, |
183 | { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 4, .n: 3 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, // 10010xxxx |
184 | { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 128 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, // 10011xxxx |
185 | { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 8 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, // 10100xxxx |
186 | { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 5, .n: 9 }, { .bits: 6, .n: 16 }, { .bits: 6, .n: 16 }, { .bits: 6, .n: 16 }, { .bits: 6, .n: 16 }, // 101010xxx |
187 | { .bits: 6, .n: 16 }, { .bits: 6, .n: 16 }, { .bits: 6, .n: 16 }, { .bits: 6, .n: 16 }, { .bits: 6, .n: 17 }, { .bits: 6, .n: 17 }, { .bits: 6, .n: 17 }, { .bits: 6, .n: 17 }, // 101011xxx |
188 | { .bits: 6, .n: 17 }, { .bits: 6, .n: 17 }, { .bits: 6, .n: 17 }, { .bits: 6, .n: 17 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, // 1011xxxxx |
189 | { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, |
190 | { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 4 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, // 1100xxxxx |
191 | { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, |
192 | { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 6, .n: 14 }, { .bits: 6, .n: 14 }, { .bits: 6, .n: 14 }, { .bits: 6, .n: 14 }, // 110100xxx |
193 | { .bits: 6, .n: 14 }, { .bits: 6, .n: 14 }, { .bits: 6, .n: 14 }, { .bits: 6, .n: 14 }, { .bits: 6, .n: 15 }, { .bits: 6, .n: 15 }, { .bits: 6, .n: 15 }, { .bits: 6, .n: 15 }, // 110101xxx |
194 | { .bits: 6, .n: 15 }, { .bits: 6, .n: 15 }, { .bits: 6, .n: 15 }, { .bits: 6, .n: 15 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, // 11011xxxx |
195 | { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 5, .n: 64 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, // 1110xxxxx |
196 | { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, |
197 | { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, // 1111xxxxx |
198 | { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, |
199 | { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 }, { .bits: 4, .n: 7 } |
200 | }; |
201 | |
202 | //------------------------------------------------------------------------ |
203 | // black run lengths |
204 | //------------------------------------------------------------------------ |
205 | |
206 | // 10-13 bit codes (upper 6 bits are 0) |
207 | static const CCITTCode blackTab1[128] = { { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 000000000000x |
208 | { .bits: 12, ccittEOL }, { .bits: 12, ccittEOL }, // 000000000001x |
209 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 00000000001xx |
210 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 00000000010xx |
211 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 00000000011xx |
212 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 00000000100xx |
213 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 00000000101xx |
214 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 00000000110xx |
215 | { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 00000000111xx |
216 | { .bits: 11, .n: 1792 }, { .bits: 11, .n: 1792 }, { .bits: 11, .n: 1792 }, { .bits: 11, .n: 1792 }, // 00000001000xx |
217 | { .bits: 12, .n: 1984 }, { .bits: 12, .n: 1984 }, // 000000010010x |
218 | { .bits: 12, .n: 2048 }, { .bits: 12, .n: 2048 }, // 000000010011x |
219 | { .bits: 12, .n: 2112 }, { .bits: 12, .n: 2112 }, // 000000010100x |
220 | { .bits: 12, .n: 2176 }, { .bits: 12, .n: 2176 }, // 000000010101x |
221 | { .bits: 12, .n: 2240 }, { .bits: 12, .n: 2240 }, // 000000010110x |
222 | { .bits: 12, .n: 2304 }, { .bits: 12, .n: 2304 }, // 000000010111x |
223 | { .bits: 11, .n: 1856 }, { .bits: 11, .n: 1856 }, { .bits: 11, .n: 1856 }, { .bits: 11, .n: 1856 }, // 00000001100xx |
224 | { .bits: 11, .n: 1920 }, { .bits: 11, .n: 1920 }, { .bits: 11, .n: 1920 }, { .bits: 11, .n: 1920 }, // 00000001101xx |
225 | { .bits: 12, .n: 2368 }, { .bits: 12, .n: 2368 }, // 000000011100x |
226 | { .bits: 12, .n: 2432 }, { .bits: 12, .n: 2432 }, // 000000011101x |
227 | { .bits: 12, .n: 2496 }, { .bits: 12, .n: 2496 }, // 000000011110x |
228 | { .bits: 12, .n: 2560 }, { .bits: 12, .n: 2560 }, // 000000011111x |
229 | { .bits: 10, .n: 18 }, { .bits: 10, .n: 18 }, { .bits: 10, .n: 18 }, { .bits: 10, .n: 18 }, // 0000001000xxx |
230 | { .bits: 10, .n: 18 }, { .bits: 10, .n: 18 }, { .bits: 10, .n: 18 }, { .bits: 10, .n: 18 }, { .bits: 12, .n: 52 }, { .bits: 12, .n: 52 }, // 000000100100x |
231 | { .bits: 13, .n: 640 }, // 0000001001010 |
232 | { .bits: 13, .n: 704 }, // 0000001001011 |
233 | { .bits: 13, .n: 768 }, // 0000001001100 |
234 | { .bits: 13, .n: 832 }, // 0000001001101 |
235 | { .bits: 12, .n: 55 }, { .bits: 12, .n: 55 }, // 000000100111x |
236 | { .bits: 12, .n: 56 }, { .bits: 12, .n: 56 }, // 000000101000x |
237 | { .bits: 13, .n: 1280 }, // 0000001010010 |
238 | { .bits: 13, .n: 1344 }, // 0000001010011 |
239 | { .bits: 13, .n: 1408 }, // 0000001010100 |
240 | { .bits: 13, .n: 1472 }, // 0000001010101 |
241 | { .bits: 12, .n: 59 }, { .bits: 12, .n: 59 }, // 000000101011x |
242 | { .bits: 12, .n: 60 }, { .bits: 12, .n: 60 }, // 000000101100x |
243 | { .bits: 13, .n: 1536 }, // 0000001011010 |
244 | { .bits: 13, .n: 1600 }, // 0000001011011 |
245 | { .bits: 11, .n: 24 }, { .bits: 11, .n: 24 }, { .bits: 11, .n: 24 }, { .bits: 11, .n: 24 }, // 00000010111xx |
246 | { .bits: 11, .n: 25 }, { .bits: 11, .n: 25 }, { .bits: 11, .n: 25 }, { .bits: 11, .n: 25 }, // 00000011000xx |
247 | { .bits: 13, .n: 1664 }, // 0000001100100 |
248 | { .bits: 13, .n: 1728 }, // 0000001100101 |
249 | { .bits: 12, .n: 320 }, { .bits: 12, .n: 320 }, // 000000110011x |
250 | { .bits: 12, .n: 384 }, { .bits: 12, .n: 384 }, // 000000110100x |
251 | { .bits: 12, .n: 448 }, { .bits: 12, .n: 448 }, // 000000110101x |
252 | { .bits: 13, .n: 512 }, // 0000001101100 |
253 | { .bits: 13, .n: 576 }, // 0000001101101 |
254 | { .bits: 12, .n: 53 }, { .bits: 12, .n: 53 }, // 000000110111x |
255 | { .bits: 12, .n: 54 }, { .bits: 12, .n: 54 }, // 000000111000x |
256 | { .bits: 13, .n: 896 }, // 0000001110010 |
257 | { .bits: 13, .n: 960 }, // 0000001110011 |
258 | { .bits: 13, .n: 1024 }, // 0000001110100 |
259 | { .bits: 13, .n: 1088 }, // 0000001110101 |
260 | { .bits: 13, .n: 1152 }, // 0000001110110 |
261 | { .bits: 13, .n: 1216 }, // 0000001110111 |
262 | { .bits: 10, .n: 64 }, { .bits: 10, .n: 64 }, { .bits: 10, .n: 64 }, { .bits: 10, .n: 64 }, // 0000001111xxx |
263 | { .bits: 10, .n: 64 }, { .bits: 10, .n: 64 }, { .bits: 10, .n: 64 }, { .bits: 10, .n: 64 } }; |
264 | |
265 | // 7-12 bit codes (upper 4 bits are 0) |
266 | static const CCITTCode blackTab2[192] = { |
267 | { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, // 00000100xxxx |
268 | { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 8, .n: 13 }, { .bits: 11, .n: 23 }, { .bits: 11, .n: 23 }, // 00000101000x |
269 | { .bits: 12, .n: 50 }, // 000001010010 |
270 | { .bits: 12, .n: 51 }, // 000001010011 |
271 | { .bits: 12, .n: 44 }, // 000001010100 |
272 | { .bits: 12, .n: 45 }, // 000001010101 |
273 | { .bits: 12, .n: 46 }, // 000001010110 |
274 | { .bits: 12, .n: 47 }, // 000001010111 |
275 | { .bits: 12, .n: 57 }, // 000001011000 |
276 | { .bits: 12, .n: 58 }, // 000001011001 |
277 | { .bits: 12, .n: 61 }, // 000001011010 |
278 | { .bits: 12, .n: 256 }, // 000001011011 |
279 | { .bits: 10, .n: 16 }, { .bits: 10, .n: 16 }, { .bits: 10, .n: 16 }, { .bits: 10, .n: 16 }, // 0000010111xx |
280 | { .bits: 10, .n: 17 }, { .bits: 10, .n: 17 }, { .bits: 10, .n: 17 }, { .bits: 10, .n: 17 }, // 0000011000xx |
281 | { .bits: 12, .n: 48 }, // 000001100100 |
282 | { .bits: 12, .n: 49 }, // 000001100101 |
283 | { .bits: 12, .n: 62 }, // 000001100110 |
284 | { .bits: 12, .n: 63 }, // 000001100111 |
285 | { .bits: 12, .n: 30 }, // 000001101000 |
286 | { .bits: 12, .n: 31 }, // 000001101001 |
287 | { .bits: 12, .n: 32 }, // 000001101010 |
288 | { .bits: 12, .n: 33 }, // 000001101011 |
289 | { .bits: 12, .n: 40 }, // 000001101100 |
290 | { .bits: 12, .n: 41 }, // 000001101101 |
291 | { .bits: 11, .n: 22 }, { .bits: 11, .n: 22 }, // 00000110111x |
292 | { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, // 00000111xxxx |
293 | { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 8, .n: 14 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, // 0000100xxxxx |
294 | { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, |
295 | { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 10 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, // 0000101xxxxx |
296 | { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, |
297 | { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 7, .n: 11 }, { .bits: 9, .n: 15 }, { .bits: 9, .n: 15 }, { .bits: 9, .n: 15 }, { .bits: 9, .n: 15 }, // 000011000xxx |
298 | { .bits: 9, .n: 15 }, { .bits: 9, .n: 15 }, { .bits: 9, .n: 15 }, { .bits: 9, .n: 15 }, { .bits: 12, .n: 128 }, // 000011001000 |
299 | { .bits: 12, .n: 192 }, // 000011001001 |
300 | { .bits: 12, .n: 26 }, // 000011001010 |
301 | { .bits: 12, .n: 27 }, // 000011001011 |
302 | { .bits: 12, .n: 28 }, // 000011001100 |
303 | { .bits: 12, .n: 29 }, // 000011001101 |
304 | { .bits: 11, .n: 19 }, { .bits: 11, .n: 19 }, // 00001100111x |
305 | { .bits: 11, .n: 20 }, { .bits: 11, .n: 20 }, // 00001101000x |
306 | { .bits: 12, .n: 34 }, // 000011010010 |
307 | { .bits: 12, .n: 35 }, // 000011010011 |
308 | { .bits: 12, .n: 36 }, // 000011010100 |
309 | { .bits: 12, .n: 37 }, // 000011010101 |
310 | { .bits: 12, .n: 38 }, // 000011010110 |
311 | { .bits: 12, .n: 39 }, // 000011010111 |
312 | { .bits: 11, .n: 21 }, { .bits: 11, .n: 21 }, // 00001101100x |
313 | { .bits: 12, .n: 42 }, // 000011011010 |
314 | { .bits: 12, .n: 43 }, // 000011011011 |
315 | { .bits: 10, .n: 0 }, { .bits: 10, .n: 0 }, { .bits: 10, .n: 0 }, { .bits: 10, .n: 0 }, // 0000110111xx |
316 | { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, // 0000111xxxxx |
317 | { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, |
318 | { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 }, { .bits: 7, .n: 12 } |
319 | }; |
320 | |
321 | // 2-6 bit codes |
322 | static const CCITTCode blackTab3[64] = { { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, { .bits: -1, .n: -1 }, // 0000xx |
323 | { .bits: 6, .n: 9 }, // 000100 |
324 | { .bits: 6, .n: 8 }, // 000101 |
325 | { .bits: 5, .n: 7 }, { .bits: 5, .n: 7 }, // 00011x |
326 | { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, { .bits: 4, .n: 6 }, // 0010xx |
327 | { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, { .bits: 4, .n: 5 }, // 0011xx |
328 | { .bits: 3, .n: 1 }, { .bits: 3, .n: 1 }, { .bits: 3, .n: 1 }, { .bits: 3, .n: 1 }, // 010xxx |
329 | { .bits: 3, .n: 1 }, { .bits: 3, .n: 1 }, { .bits: 3, .n: 1 }, { .bits: 3, .n: 1 }, { .bits: 3, .n: 4 }, { .bits: 3, .n: 4 }, { .bits: 3, .n: 4 }, { .bits: 3, .n: 4 }, // 011xxx |
330 | { .bits: 3, .n: 4 }, { .bits: 3, .n: 4 }, { .bits: 3, .n: 4 }, { .bits: 3, .n: 4 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, // 10xxxx |
331 | { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 3 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, // 11xxxx |
332 | { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 }, { .bits: 2, .n: 2 } }; |
333 | |
334 | #endif |
335 | |