32 #ifndef _GPMF_BITSTREAM_H
33 #define _GPMF_BITSTREAM_H
48 typedef const struct {
53 #define BITSTREAM_WORD_TYPE uint16_t // use 16-bit buffer for compression
54 #define BITSTREAM_WORD_SIZE 16 // use 16-bit buffer for compression
55 #define BITSTREAM_ERROR_OVERFLOW 1
57 #define BITMASK(n) _bitmask[n]
58 #define _BITMASK(n) ((((BITSTREAM_WORD_TYPE )1 << (n))) - 1)
91 { 6, 0b110100, 1, 5 },
92 { 6, 0b110101, 1, 6 },
93 { 6, 0b111110, 1, 7 },
94 { 7, 0b1110000, 1, 8 },
95 { 7, 0b1110011, 1, 9 },
96 { 7, 0b1111000, 1, 10 },
97 { 7, 0b1111001, 1, 11 },
98 { 7, 0b1111011, 1, 12 },
99 { 8, 0b11100100, 1, 13 },
100 { 8, 0b11100101, 1, 14 },
101 { 8, 0b11110100, 1, 15 },
102 { 9, 0b111000101, 1, 16 },
103 { 9, 0b111000110, 1, 17 },
104 { 9, 0b111101010, 1, 18 },
105 { 10, 0b1110001000, 1, 19 },
106 { 10, 0b1110001110, 1, 20 },
107 { 10, 0b1111010110, 1, 21 },
108 { 10, 0b1111111100, 1, 22 },
109 { 11, 0b11100010010, 1, 23 },
110 { 11, 0b11100011111, 1, 24 },
111 { 11, 0b11110101110, 1, 25 },
112 { 12, 0b111000100111, 1, 26 },
113 { 12, 0b111000111101, 1, 27 },
114 { 12, 0b111101011111, 1, 28 },
115 { 13, 0b1110001001101, 1, 29 },
116 { 13, 0b1110001111001, 1, 30 },
117 { 13, 0b1111010111101, 1, 31 },
118 { 14, 0b11100010011000, 1, 32 },
119 { 14, 0b11100011110000, 1, 33 },
120 { 14, 0b11110101111000, 1, 34 },
121 { 14, 0b11110101111001, 1, 35 },
122 { 15, 0b111000100110010, 1, 36 },
123 { 15, 0b111000100110011, 1, 37 },
124 { 15, 0b111000111100011, 1, 38 },
133 { 7, 0b1111110, 16, 0 },
134 { 8, 0b11111110, 32, 0 },
135 { 9, 0b111111111, 64, 0 },
136 { 10,0b1111111101, 128, 0 },
140 #define HUFF_ESC_CODE_ENTRY 0
141 #define HUFF_END_CODE_ENTRY 1
145 { 16, 0b1110001111000100, 0, 0 },
146 { 16, 0b1110001111000101, 0, 0 },