Loading...
Searching...
No Matches
huffman.h
Go to the documentation of this file.
1
32#ifndef IMQUIC_HUFFMAN_H
33#define IMQUIC_HUFFMAN_H
34
35#include <stdint.h>
36
37#include <glib.h>
38
42
49
52 [0 ... 7] = { 48, 5},
53 [8 ... 15] = { 49, 5},
54 [16 ... 23] = { 50, 5},
55 [24 ... 31] = { 97, 5},
56 [32 ... 39] = { 99, 5},
57 [40 ... 47] = { 101, 5},
58 [48 ... 55] = { 105, 5},
59 [56 ... 63] = { 111, 5},
60 [64 ... 71] = { 115, 5},
61 [72 ... 79] = { 116, 5},
62 [80 ... 83] = { 32, 6},
63 [84 ... 87] = { 37, 6},
64 [88 ... 91] = { 45, 6},
65 [92 ... 95] = { 46, 6},
66 [96 ... 99] = { 47, 6},
67 [100 ... 103] = { 51, 6},
68 [104 ... 107] = { 52, 6},
69 [108 ... 111] = { 53, 6},
70 [112 ... 115] = { 54, 6},
71 [116 ... 119] = { 55, 6},
72 [120 ... 123] = { 56, 6},
73 [124 ... 127] = { 57, 6},
74 [128 ... 131] = { 61, 6},
75 [132 ... 135] = { 65, 6},
76 [136 ... 139] = { 95, 6},
77 [140 ... 143] = { 98, 6},
78 [144 ... 147] = { 100, 6},
79 [148 ... 151] = { 102, 6},
80 [152 ... 155] = { 103, 6},
81 [156 ... 159] = { 104, 6},
82 [160 ... 163] = { 108, 6},
83 [164 ... 167] = { 109, 6},
84 [168 ... 171] = { 110, 6},
85 [172 ... 175] = { 112, 6},
86 [176 ... 179] = { 114, 6},
87 [180 ... 183] = { 117, 6},
88 [184 ... 185] = { 58, 7},
89 [186 ... 187] = { 66, 7},
90 [188 ... 189] = { 67, 7},
91 [190 ... 191] = { 68, 7},
92 [192 ... 193] = { 69, 7},
93 [194 ... 195] = { 70, 7},
94 [196 ... 197] = { 71, 7},
95 [198 ... 199] = { 72, 7},
96 [200 ... 201] = { 73, 7},
97 [202 ... 203] = { 74, 7},
98 [204 ... 205] = { 75, 7},
99 [206 ... 207] = { 76, 7},
100 [208 ... 209] = { 77, 7},
101 [210 ... 211] = { 78, 7},
102 [212 ... 213] = { 79, 7},
103 [214 ... 215] = { 80, 7},
104 [216 ... 217] = { 81, 7},
105 [218 ... 219] = { 82, 7},
106 [220 ... 221] = { 83, 7},
107 [222 ... 223] = { 84, 7},
108 [224 ... 225] = { 85, 7},
109 [226 ... 227] = { 86, 7},
110 [228 ... 229] = { 87, 7},
111 [230 ... 231] = { 89, 7},
112 [232 ... 233] = { 106, 7},
113 [234 ... 235] = { 107, 7},
114 [236 ... 237] = { 113, 7},
115 [238 ... 239] = { 118, 7},
116 [240 ... 241] = { 119, 7},
117 [242 ... 243] = { 120, 7},
118 [244 ... 245] = { 121, 7},
119 [246 ... 247] = { 122, 7},
120 [248] = { 38, 8},
121 [249] = { 42, 8},
122 [250] = { 44, 8},
123 [251] = { 59, 8},
124 [252] = { 88, 8},
125 [253] = { 90, 8},
127 [254] = { 0, -1},
129 [255] = { 0, -2},
130};
131
134 [0 ... 63] = { 33, 2},
135 [64 ... 127] = { 34, 2},
136 [128 ... 191] = { 40, 2},
137 [192 ... 255] = { 41, 2},
138};
139
142 [0 ... 63] = { 63, 2},
143 [64 ... 95] = { 39, 3},
144 [96 ... 127] = { 43, 3},
145 [128 ... 159] = { 124, 3},
146 [160 ... 175] = { 35, 4},
147 [176 ... 191] = { 62, 4},
148 [192 ... 199] = { 0, 5},
149 [200 ... 207] = { 36, 5},
150 [208 ... 215] = { 64, 5},
151 [216 ... 223] = { 91, 5},
152 [224 ... 231] = { 93, 5},
153 [232 ... 239] = { 126, 5},
154 [240 ... 243] = { 94, 6},
155 [244 ... 247] = { 125, 6},
156 [248 ... 249] = { 60, 7},
157 [250 ... 251] = { 96, 7},
158 [252 ... 253] = { 123, 7},
160 [254] = { 0, -3},
162 [255] = { 0, -4},
163};
164
167 [0 ... 31] = { 92, 3},
168 [32 ... 63] = { 195, 3},
169 [64 ... 95] = { 208, 3},
170 [96 ... 111] = { 128, 4},
171 [112 ... 127] = { 130, 4},
172 [128 ... 143] = { 131, 4},
173 [144 ... 159] = { 162, 4},
174 [160 ... 175] = { 184, 4},
175 [176 ... 191] = { 194, 4},
176 [192 ... 207] = { 224, 4},
177 [208 ... 223] = { 226, 4},
178 [224 ... 231] = { 153, 5},
179 [232 ... 239] = { 161, 5},
180 [240 ... 247] = { 167, 5},
181 [248 ... 255] = { 172, 5},
182};
183
186 [0 ... 7] = { 176, 5},
187 [8 ... 15] = { 177, 5},
188 [16 ... 23] = { 179, 5},
189 [24 ... 31] = { 209, 5},
190 [32 ... 39] = { 216, 5},
191 [40 ... 47] = { 217, 5},
192 [48 ... 55] = { 227, 5},
193 [56 ... 63] = { 229, 5},
194 [64 ... 71] = { 230, 5},
195 [72 ... 75] = { 129, 6},
196 [76 ... 79] = { 132, 6},
197 [80 ... 83] = { 133, 6},
198 [84 ... 87] = { 134, 6},
199 [88 ... 91] = { 136, 6},
200 [92 ... 95] = { 146, 6},
201 [96 ... 99] = { 154, 6},
202 [100 ... 103] = { 156, 6},
203 [104 ... 107] = { 160, 6},
204 [108 ... 111] = { 163, 6},
205 [112 ... 115] = { 164, 6},
206 [116 ... 119] = { 169, 6},
207 [120 ... 123] = { 170, 6},
208 [124 ... 127] = { 173, 6},
209 [128 ... 131] = { 178, 6},
210 [132 ... 135] = { 181, 6},
211 [136 ... 139] = { 185, 6},
212 [140 ... 143] = { 186, 6},
213 [144 ... 147] = { 187, 6},
214 [148 ... 151] = { 189, 6},
215 [152 ... 155] = { 190, 6},
216 [156 ... 159] = { 196, 6},
217 [160 ... 163] = { 198, 6},
218 [164 ... 167] = { 228, 6},
219 [168 ... 171] = { 232, 6},
220 [172 ... 175] = { 233, 6},
221 [176 ... 177] = { 1, 7},
222 [178 ... 179] = { 135, 7},
223 [180 ... 181] = { 137, 7},
224 [182 ... 183] = { 138, 7},
225 [184 ... 185] = { 139, 7},
226 [186 ... 187] = { 140, 7},
227 [188 ... 189] = { 141, 7},
228 [190 ... 191] = { 143, 7},
229 [192 ... 193] = { 147, 7},
230 [194 ... 195] = { 149, 7},
231 [196 ... 197] = { 150, 7},
232 [198 ... 199] = { 151, 7},
233 [200 ... 201] = { 152, 7},
234 [202 ... 203] = { 155, 7},
235 [204 ... 205] = { 157, 7},
236 [206 ... 207] = { 158, 7},
237 [208 ... 209] = { 165, 7},
238 [210 ... 211] = { 166, 7},
239 [212 ... 213] = { 168, 7},
240 [214 ... 215] = { 174, 7},
241 [216 ... 217] = { 175, 7},
242 [218 ... 219] = { 180, 7},
243 [220 ... 221] = { 182, 7},
244 [222 ... 223] = { 183, 7},
245 [224 ... 225] = { 188, 7},
246 [226 ... 227] = { 191, 7},
247 [228 ... 229] = { 197, 7},
248 [230 ... 231] = { 231, 7},
249 [232 ... 233] = { 239, 7},
250 [234] = { 9, 8},
251 [235] = { 142, 8},
252 [236] = { 144, 8},
253 [237] = { 145, 8},
254 [238] = { 148, 8},
255 [239] = { 159, 8},
256 [240] = { 171, 8},
257 [241] = { 206, 8},
258 [242] = { 215, 8},
259 [243] = { 225, 8},
260 [244] = { 236, 8},
261 [245] = { 237, 8},
263 [246] = { 0, -5},
265 [247] = { 0, -6},
267 [248] = { 0, -7},
269 [249] = { 0, -8},
271 [250] = { 0, -9},
273 [251] = { 0, -10},
275 [252] = { 0, -11},
277 [253] = { 0, -12},
279 [254] = { 0, -13},
281 [255] = { 0, -14},
282
283};
284
287 [0 ... 127] = { 199, 1},
288 [128 ... 255] = { 207, 1},
289};
290
293 [0 ... 127] = { 234, 1},
294 [128 ... 255] = { 235, 1},
295};
296
299 [0 ... 63] = { 192, 2},
300 [64 ... 127] = { 193, 2},
301 [128 ... 191] = { 200, 2},
302 [192 ... 255] = { 201, 2},
303};
304
307 [0 ... 63] = { 202, 2},
308 [64 ... 127] = { 205, 2},
309 [128 ... 191] = { 210, 2},
310 [192 ... 255] = { 213, 2},
311};
312
315 [0 ... 63] = { 218, 2},
316 [64 ... 127] = { 219, 2},
317 [128 ... 191] = { 238, 2},
318 [192 ... 255] = { 240, 2},
319};
320
323 [0 ... 63] = { 242, 2},
324 [64 ... 127] = { 243, 2},
325 [128 ... 191] = { 255, 2},
326 [192 ... 223] = { 203, 3},
327 [224 ... 255] = { 204, 3},
328};
329
332 [0 ... 31] = { 211, 3},
333 [32 ... 63] = { 212, 3},
334 [64 ... 95] = { 214, 3},
335 [96 ... 127] = { 221, 3},
336 [128 ... 159] = { 222, 3},
337 [160 ... 191] = { 223, 3},
338 [192 ... 223] = { 241, 3},
339 [224 ... 255] = { 244, 3},
340};
341
344 [0 ... 31] = { 245, 3},
345 [32 ... 63] = { 246, 3},
346 [64 ... 95] = { 247, 3},
347 [96 ... 127] = { 248, 3},
348 [128 ... 159] = { 250, 3},
349 [160 ... 191] = { 251, 3},
350 [192 ... 223] = { 252, 3},
351 [224 ... 255] = { 253, 3},
352};
353
356 [0 ... 31] = { 254, 3},
357 [32 ... 47] = { 2, 4},
358 [48 ... 63] = { 3, 4},
359 [64 ... 79] = { 4, 4},
360 [80 ... 95] = { 5, 4},
361 [96 ... 111] = { 6, 4},
362 [112 ... 127] = { 7, 4},
363 [128 ... 143] = { 8, 4},
364 [144 ... 159] = { 11, 4},
365 [160 ... 175] = { 12, 4},
366 [176 ... 191] = { 14, 4},
367 [192 ... 207] = { 15, 4},
368 [208 ... 223] = { 16, 4},
369 [224 ... 239] = { 17, 4},
370 [240 ... 255] = { 18, 4},
371};
372
375 [0 ... 15] = { 19, 4},
376 [16 ... 31] = { 20, 4},
377 [32 ... 47] = { 21, 4},
378 [48 ... 63] = { 23, 4},
379 [64 ... 79] = { 24, 4},
380 [80 ... 95] = { 25, 4},
381 [96 ... 111] = { 26, 4},
382 [112 ... 127] = { 27, 4},
383 [128 ... 143] = { 28, 4},
384 [144 ... 159] = { 29, 4},
385 [160 ... 175] = { 30, 4},
386 [176 ... 191] = { 31, 4},
387 [192 ... 207] = { 127, 4},
388 [208 ... 223] = { 220, 4},
389 [224 ... 239] = { 249, 4},
390 [240 ... 243] = { 10, 6},
391 [244 ... 247] = { 13, 6},
392 [248 ... 251] = { 22, 6},
394 [252 ... 255] = { 0, -15},
395};
396
399 /* Root */
400 [0] = level0_root,
401 /* First byte is 11111110 */
402 [1] = level0_11111110,
403 /* First byte is 11111111 */
404 [2] = level0_11111111,
405 /* First byte is 11111111, second byte is 11111110 */
407 /* First byte is 11111111, second byte is 11111111 */
409 /* First byte is 11111111, second byte is 11111111, third byte is 11110110 */
411 /* First byte is 11111111, second byte is 11111111, third byte is 11110111 */
413 /* First byte is 11111111, second byte is 11111111, third byte is 11111000 */
415 /* First byte is 11111111, second byte is 11111111, third byte is 11111001 */
417 /* First byte is 11111111, second byte is 11111111, third byte is 11111010 */
419 /* First byte is 11111111, second byte is 11111111, third byte is 11111011 */
421 /* First byte is 11111111, second byte is 11111111, third byte is 11111100 */
423 /* First byte is 11111111, second byte is 11111111, third byte is 11111101 */
425 /* First byte is 11111111, second byte is 11111111, third byte is 11111110 */
427 /* First byte is 11111111, second byte is 11111111, third byte is 11111111 */
429 /* EOS */
430 [15] = NULL
431};
433
437
438typedef struct imquic_huffman_bits {
440 uint8_t len;
442 uint32_t value;
444
448 { 13, 0x1ff8 },
450 { 23, 0x7fffd8 },
452 { 28, 0xfffffe2 },
454 { 28, 0xfffffe3 },
456 { 28, 0xfffffe4 },
458 { 28, 0xfffffe5 },
460 { 28, 0xfffffe6 },
462 { 28, 0xfffffe7 },
464 { 28, 0xfffffe8 },
466 { 24, 0xffffea },
468 { 30, 0x3ffffffc },
470 { 28, 0xfffffe9 },
472 { 28, 0xfffffea },
474 { 30, 0x3ffffffd },
476 { 28, 0xfffffeb },
478 { 28, 0xfffffec },
480 { 28, 0xfffffed },
482 { 28, 0xfffffee },
484 { 28, 0xfffffef },
486 { 28, 0xffffff0 },
488 { 28, 0xffffff1 },
490 { 28, 0xffffff2 },
492 { 30, 0x3ffffffe },
494 { 28, 0xffffff3 },
496 { 28, 0xffffff4 },
498 { 28, 0xffffff5 },
500 { 28, 0xffffff6 },
502 { 28, 0xffffff7 },
504 { 28, 0xffffff8 },
506 { 28, 0xffffff9 },
508 { 28, 0xffffffa },
510 { 28, 0xffffffb },
512 { 6, 0x14 },
514 { 10, 0x3f8 },
516 { 10, 0x3f9 },
518 { 12, 0xffa },
520 { 13, 0x1ff9 },
522 { 6, 0x15 },
524 { 8, 0xf8 },
526 { 11, 0x7fa },
528 { 10, 0x3fa },
530 { 10, 0x3fb },
532 { 8, 0xf9 },
534 { 11, 0x7fb },
536 { 8, 0xfa },
538 { 6, 0x16 },
540 { 6, 0x17 },
542 { 6, 0x18 },
544 { 5, 0x0 },
546 { 5, 0x1 },
548 { 5, 0x2 },
550 { 6, 0x19 },
552 { 6, 0x1a },
554 { 6, 0x1b },
556 { 6, 0x1c },
558 { 6, 0x1d },
560 { 6, 0x1e },
562 { 6, 0x1f },
564 { 7, 0x5c },
566 { 8, 0xfb },
568 { 15, 0x7ffc },
570 { 6, 0x20 },
572 { 12, 0xffb },
574 { 10, 0x3fc },
576 { 13, 0x1ffa },
578 { 6, 0x21 },
580 { 7, 0x5d },
582 { 7, 0x5e },
584 { 7, 0x5f },
586 { 7, 0x60 },
588 { 7, 0x61 },
590 { 7, 0x62 },
592 { 7, 0x63 },
594 { 7, 0x64 },
596 { 7, 0x65 },
598 { 7, 0x66 },
600 { 7, 0x67 },
602 { 7, 0x68 },
604 { 7, 0x69 },
606 { 7, 0x6a },
608 { 7, 0x6b },
610 { 7, 0x6c },
612 { 7, 0x6d },
614 { 7, 0x6e },
616 { 7, 0x6f },
618 { 7, 0x70 },
620 { 7, 0x71 },
622 { 7, 0x72 },
624 { 8, 0xfc },
626 { 7, 0x73 },
628 { 8, 0xfd },
630 { 13, 0x1ffb },
632 { 19, 0x7fff0 },
634 { 13, 0x1ffc },
636 { 14, 0x3ffc },
638 { 6, 0x22 },
640 { 15, 0x7ffd },
642 { 5, 0x3 },
644 { 6, 0x23 },
646 { 5, 0x4 },
648 { 6, 0x24 },
650 { 5, 0x5 },
652 { 6, 0x25 },
654 { 6, 0x26 },
656 { 6, 0x27 },
658 { 5, 0x6 },
660 { 7, 0x74 },
662 { 7, 0x75 },
664 { 6, 0x28 },
666 { 6, 0x29 },
668 { 6, 0x2a },
670 { 5, 0x7 },
672 { 6, 0x2b },
674 { 7, 0x76 },
676 { 6, 0x2c },
678 { 5, 0x8 },
680 { 5, 0x9 },
682 { 6, 0x2d },
684 { 7, 0x77 },
686 { 7, 0x78 },
688 { 7, 0x79 },
690 { 7, 0x7a },
692 { 7, 0x7b },
694 { 15, 0x7ffe },
696 { 11, 0x7fc },
698 { 14, 0x3ffd },
700 { 13, 0x1ffd },
702 { 28, 0xffffffc },
704 { 20, 0xfffe6 },
706 { 22, 0x3fffd2 },
708 { 20, 0xfffe7 },
710 { 20, 0xfffe8 },
712 { 22, 0x3fffd3 },
714 { 22, 0x3fffd4 },
716 { 22, 0x3fffd5 },
718 { 23, 0x7fffd9 },
720 { 22, 0x3fffd6 },
722 { 23, 0x7fffda },
724 { 23, 0x7fffdb },
726 { 23, 0x7fffdc },
728 { 23, 0x7fffdd },
730 { 23, 0x7fffde },
732 { 24, 0xffffeb },
734 { 23, 0x7fffdf },
736 { 24, 0xffffec },
738 { 24, 0xffffed },
740 { 22, 0x3fffd7 },
742 { 23, 0x7fffe0 },
744 { 24, 0xffffee },
746 { 23, 0x7fffe1 },
748 { 23, 0x7fffe2 },
750 { 23, 0x7fffe3 },
752 { 23, 0x7fffe4 },
754 { 21, 0x1fffdc },
756 { 22, 0x3fffd8 },
758 { 23, 0x7fffe5 },
760 { 22, 0x3fffd9 },
762 { 23, 0x7fffe6 },
764 { 23, 0x7fffe7 },
766 { 24, 0xffffef },
768 { 22, 0x3fffda },
770 { 21, 0x1fffdd },
772 { 20, 0xfffe9 },
774 { 22, 0x3fffdb },
776 { 22, 0x3fffdc },
778 { 23, 0x7fffe8 },
780 { 23, 0x7fffe9 },
782 { 21, 0x1fffde },
784 { 23, 0x7fffea },
786 { 22, 0x3fffdd },
788 { 22, 0x3fffde },
790 { 24, 0xfffff0 },
792 { 21, 0x1fffdf },
794 { 22, 0x3fffdf },
796 { 23, 0x7fffeb },
798 { 23, 0x7fffec },
800 { 21, 0x1fffe0 },
802 { 21, 0x1fffe1 },
804 { 22, 0x3fffe0 },
806 { 21, 0x1fffe2 },
808 { 23, 0x7fffed },
810 { 22, 0x3fffe1 },
812 { 23, 0x7fffee },
814 { 23, 0x7fffef },
816 { 20, 0xfffea },
818 { 22, 0x3fffe2 },
820 { 22, 0x3fffe3 },
822 { 22, 0x3fffe4 },
824 { 23, 0x7ffff0 },
826 { 22, 0x3fffe5 },
828 { 22, 0x3fffe6 },
830 { 23, 0x7ffff1 },
832 { 26, 0x3ffffe0 },
834 { 26, 0x3ffffe1 },
836 { 20, 0xfffeb },
838 { 19, 0x7fff1 },
840 { 22, 0x3fffe7 },
842 { 23, 0x7ffff2 },
844 { 22, 0x3fffe8 },
846 { 25, 0x1ffffec },
848 { 26, 0x3ffffe2 },
850 { 26, 0x3ffffe3 },
852 { 26, 0x3ffffe4 },
854 { 27, 0x7ffffde },
856 { 27, 0x7ffffdf },
858 { 26, 0x3ffffe5 },
860 { 24, 0xfffff1 },
862 { 25, 0x1ffffed },
864 { 19, 0x7fff2 },
866 { 21, 0x1fffe3 },
868 { 26, 0x3ffffe6 },
870 { 27, 0x7ffffe0 },
872 { 27, 0x7ffffe1 },
874 { 26, 0x3ffffe7 },
876 { 27, 0x7ffffe2 },
878 { 24, 0xfffff2 },
880 { 21, 0x1fffe4 },
882 { 21, 0x1fffe5 },
884 { 26, 0x3ffffe8 },
886 { 26, 0x3ffffe9 },
888 { 28, 0xffffffd },
890 { 27, 0x7ffffe3 },
892 { 27, 0x7ffffe4 },
894 { 27, 0x7ffffe5 },
896 { 20, 0xfffec },
898 { 24, 0xfffff3 },
900 { 20, 0xfffed },
902 { 21, 0x1fffe6 },
904 { 22, 0x3fffe9 },
906 { 21, 0x1fffe7 },
908 { 21, 0x1fffe8 },
910 { 23, 0x7ffff3 },
912 { 22, 0x3fffea },
914 { 22, 0x3fffeb },
916 { 25, 0x1ffffee },
918 { 25, 0x1ffffef },
920 { 24, 0xfffff4 },
922 { 24, 0xfffff5 },
924 { 26, 0x3ffffea },
926 { 23, 0x7ffff4 },
928 { 26, 0x3ffffeb },
930 { 27, 0x7ffffe6 },
932 { 26, 0x3ffffec },
934 { 26, 0x3ffffed },
936 { 27, 0x7ffffe7 },
938 { 27, 0x7ffffe8 },
940 { 27, 0x7ffffe9 },
942 { 27, 0x7ffffea },
944 { 27, 0x7ffffeb },
946 { 28, 0xffffffe },
948 { 27, 0x7ffffec },
950 { 27, 0x7ffffed },
952 { 27, 0x7ffffee },
954 { 27, 0x7ffffef },
956 { 27, 0x7fffff0 },
958 { 26, 0x3ffffee },
960 { 30, 0x3fffffff },
961};
963
964#endif
imquic_huffman_bits table[]
Table mapping each ascii code to its Huffman code representation.
Definition huffman.h:446
imquic_huffman_table level0_11111111_11111111_11110111[256]
Fourth level of parsing (fourth byte), if the third byte was 11110111.
Definition huffman.h:292
imquic_huffman_table * imquic_huffman_transitions[16]
Map of transitions, to allow moving from one table to another at different levels.
Definition huffman.h:398
imquic_huffman_table level0_11111111_11111111_11111110[256]
Fourth level of parsing (fourth byte), if the third byte was 11111110.
Definition huffman.h:355
imquic_huffman_table level0_11111111_11111111_11111111[256]
Fourth level of parsing (fourth byte), if the third byte was 11111111.
Definition huffman.h:374
imquic_huffman_table level0_11111111_11111111[256]
Third level of parsing (third byte), if the second byte was 11111111.
Definition huffman.h:185
imquic_huffman_table level0_11111111_11111111_11111010[256]
Fourth level of parsing (fourth byte), if the third byte was 11111010.
Definition huffman.h:314
imquic_huffman_table level0_root[256]
Root level of parsing (first byte)
Definition huffman.h:51
struct imquic_huffman_bits imquic_huffman_bits
Huffman code and its length in bits as Huffman code, mapped to the related ascii code.
imquic_huffman_table level0_11111111_11111111_11111011[256]
Fourth level of parsing (fourth byte), if the third byte was 11111011.
Definition huffman.h:322
struct imquic_huffman_table imquic_huffman_table
Ascii symbol and its length in bits as Huffman code, relatively to the current level.
imquic_huffman_table level0_11111111_11111111_11111001[256]
Fourth level of parsing (fourth byte), if the third byte was 11111001.
Definition huffman.h:306
imquic_huffman_table level0_11111111[256]
Second level of parsing (second byte), if the first byte was 11111111.
Definition huffman.h:141
imquic_huffman_table level0_11111111_11111111_11111000[256]
Fourth level of parsing (fourth byte), if the third byte was 11111000.
Definition huffman.h:298
imquic_huffman_table level0_11111111_11111111_11111101[256]
Fourth level of parsing (fourth byte), if the third byte was 11111101.
Definition huffman.h:343
imquic_huffman_table level0_11111111_11111110[256]
Third level of parsing (third byte), if the second byte was 11111110.
Definition huffman.h:166
imquic_huffman_table level0_11111111_11111111_11110110[256]
Fourth level of parsing (fourth byte), if the third byte was 11110110.
Definition huffman.h:286
imquic_huffman_table level0_11111111_11111111_11111100[256]
Fourth level of parsing (fourth byte), if the third byte was 11111100.
Definition huffman.h:331
imquic_huffman_table level0_11111110[256]
Second level of parsing (second byte), if the first byte was 11111110.
Definition huffman.h:133
Huffman code and its length in bits as Huffman code, mapped to the related ascii code.
Definition huffman.h:438
uint32_t value
Hex representation of the Huffman encoding.
Definition huffman.h:442
uint8_t len
Length in bits of the Huffman encoding.
Definition huffman.h:440
Ascii symbol and its length in bits as Huffman code, relatively to the current level.
Definition huffman.h:43
uint8_t symbol
Ascii symbol.
Definition huffman.h:45
int8_t num_bits
Length in bits in Huffman code (current level only)
Definition huffman.h:47