Lines Matching +full:4 +full:- +full:bits

1 /* SPDX-License-Identifier: 0BSD */
7 * Igor Pavlov <https://7-zip.org/>
23 * number of bits of the current uncompressed offset. In some places there
26 #define POS_STATES_MAX (1 << 4)
33 * - Literal: One 8-bit byte
34 * - Match: Repeat a chunk of data at some distance
35 * - Long repeat: Multi-byte match at a recently seen distance
36 * - Short repeat: One-byte repeat at a recently seen distance
39 * either short or long repeated match, and NONLIT means any non-literal.
68 *state -= 3; in lzma_state_literal()
70 *state -= 6; in lzma_state_literal()
98 * - 0x001-0x0FF: Without match byte
99 * - 0x101-0x1FF: With match byte; match bit is 0
100 * - 0x201-0x2FF: With match byte; match bit is 1
108 #define LITERAL_CODERS_MAX (1 << 4)
113 /* Match length is encoded with 4, 5, or 10 bits.
115 * Length Bits
116 * 2-9 4 = Choice=0 + 3 bits
117 * 10-17 5 = Choice=1 + Choice2=0 + 3 bits
118 * 18-273 10 = Choice=1 + Choice2=1 + 8 bits
132 #define MATCH_LEN_MAX (MATCH_LEN_MIN + LEN_SYMBOLS - 1)
136 * very short match length: Lengths of 2, 3, and 4 bytes have a separate
140 #define DIST_STATES 4
149 ? len - MATCH_LEN_MIN : DIST_STATES - 1; in lzma_get_dist_state()
153 * The highest two bits of a 32-bit match distance are encoded using six bits.
154 * This six-bit value is called a distance slot. This way encoding a 32-bit
155 * value takes 6-36 bits, larger values taking more bits.
161 * the highest two bits (distance slot) are always encoded using six bits,
162 * the distances 0-3 don't need any additional bits to encode, since the
167 #define DIST_MODEL_START 4
171 * - distance slot: the highest two bits
172 * - direct bits: 2-26 bits below the highest two bits
173 * - alignment bits: four lowest bits
175 * Direct bits don't use any probabilities.
177 * The distance slot value of 14 is for distances 128-191.
186 * For match distances greater than 127, only the highest two bits and the
187 * lowest four bits (alignment) is encoded using probabilities.
189 #define ALIGN_BITS 4
191 #define ALIGN_MASK (ALIGN_SIZE - 1)
198 * distances tends to take less space than re-encoding the actual
201 #define REPS 4