Lines Matching +full:bottom +full:- +full:speed

1 /* deflate.h -- internal compression state
2 * Copyright (C) 1995-2024 Jean-loup Gailly
26 /* define LIT_MEM to slightly increase the speed of deflate (order 1% to 2%) at
58 #define INIT_STATE 42 /* zlib header -> BUSY_STATE */
60 # define GZIP_STATE 57 /* gzip header -> BUSY_STATE | EXTRA_STATE */
62 #define EXTRA_STATE 69 /* gzip extra block -> NAME_STATE */
63 #define NAME_STATE 73 /* gzip file name -> COMMENT_STATE */
64 #define COMMENT_STATE 91 /* gzip comment -> HCRC_STATE */
65 #define HCRC_STATE 103 /* gzip header CRC -> BUSY_STATE */
66 #define BUSY_STATE 113 /* deflate -> FINISH_STATE */
121 uInt w_mask; /* w_size - 1 */
127 * wSize-MAX_MATCH bytes, but this ensures that IO is always
149 uInt hash_mask; /* hash_size-1 */
176 /* To speed up deflation, hash chains are never searched beyond this
178 * speed.
236 * - frequencies can be kept in 16 bit counters
237 * - if compression is not successful for the first block, all input
241 * - if compression is not successful for a file smaller than 64K, we can
244 * - creating new Huffman trees less frequently may not provide fast
250 * - I can't count above 4
267 /* Output buffer. bits are inserted starting at the bottom (least
276 /* High water mark offset in window for initialized bytes -- bytes above
287 #define put_byte(s, c) {s->pending_buf[s->pending++] = (Bytef)(c);}
295 #define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD)
316 /* Mapping from a distance to a distance code. dist is the distance - 1 and
322 /* Inline versions of _tr_tally for speed: */
335 s->d_buf[s->sym_next] = 0; \
336 s->l_buf[s->sym_next++] = cc; \
337 s->dyn_ltree[cc].Freq++; \
338 flush = (s->sym_next == s->sym_end); \
343 s->d_buf[s->sym_next] = dist; \
344 s->l_buf[s->sym_next++] = len; \
345 dist--; \
346 s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
347 s->dyn_dtree[d_code(dist)].Freq++; \
348 flush = (s->sym_next == s->sym_end); \
353 s->sym_buf[s->sym_next++] = 0; \
354 s->sym_buf[s->sym_next++] = 0; \
355 s->sym_buf[s->sym_next++] = cc; \
356 s->dyn_ltree[cc].Freq++; \
357 flush = (s->sym_next == s->sym_end); \
362 s->sym_buf[s->sym_next++] = (uch)dist; \
363 s->sym_buf[s->sym_next++] = (uch)(dist >> 8); \
364 s->sym_buf[s->sym_next++] = len; \
365 dist--; \
366 s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
367 s->dyn_dtree[d_code(dist)].Freq++; \
368 flush = (s->sym_next == s->sym_end); \