Unit trees |
Classes |
Functions |
_tr_align - ===========================================================================
Send one empty static block to give enough lookahead for inflate.
_tr_flush_block - ===========================================================================
Determine the best encoding for the current block: dynamic trees, static
trees or store, and output the encoded block to the zip file.
_tr_init - Insert new strings in the hash table only if the match length is not
greater than this length.
_tr_stored_block - ===========================================================================
Send a stored block
_tr_tally - ===========================================================================
Save the match info and tally the frequency counts.
Types |
ct_data
ct_data_ptr
deflate_state
deflate_state_ptr
dtree_ptr
dtree_type
htree_ptr
htree_type
IPos
ltree_ptr
ltree_type
Pos
Posf
pPosf
pzPosfArray
static_tree_desc
static_tree_desc_ptr
tree_desc
tree_desc_ptr
tree_ptr
tree_type
zPosfArray
Constants |
BL_CODES
BUSY_STATE
D_CODES
FINISH_STATE
HEAP_SIZE
INIT_STATE
LENGTH_CODES
LITERALS
L_CODES
MAX_BITS
Variables |
Functions |
Index within the heap array of least frequent node in the Huffman tree } { =========================================================================== Initialize the tree data structures for a new zlib stream.
Types |
ct_data = record
end;
ct_data_ptr = ^ct_dataStream status } { Data structure describing a single value and its code string.
deflate_state = record
strm : z_streamp;
status : int;
pending_buf : pzByteArray;
pending_buf_size : ulg;
pending_out : pBytef;
pending : int;
noheader : int;
data_type : Byte;
method : Byte;
last_flush : int;
w_size : uInt;
w_bits : uInt;
w_mask : uInt;
window : pzByteArray;
window_size : ulg;
prev : pzPosfArray;
head : pzPosfArray;
ins_h : uInt;
hash_size : uInt;
hash_bits : uInt;
hash_mask : uInt;
hash_shift : uInt;
block_start : long;
match_length : uInt;
prev_match : IPos;
match_available : boolean;
strstart : uInt;
match_start : uInt;
lookahead : uInt;
prev_length : uInt;
max_chain_length : uInt;
level : int;
strategy : int;
good_match : uInt;
nice_match : int;
dyn_ltree : ltree_type;
dyn_dtree : dtree_type;
bl_tree : htree_type;
l_desc : tree_desc;
d_desc : tree_desc;
bl_desc : tree_desc;
bl_count : array[0..MAX_BITS+1-1] of ush;
heap : array[0..2*L_CODES+1-1] of int;
heap_len : int;
heap_max : int;
depth : array[0..2*L_CODES+1-1] of uch;
l_buf : puchfArray;
lit_bufsize : uInt;
last_lit : uInt;
d_buf : pushfArray;
opt_len : ulg;
static_len : ulg;
compressed_len : ulg;
matches : uInt;
last_eob_len : int;
bi_buf : ush;
bi_valid : int;
end;
deflate_state_ptr = ^deflate_stateA Pos is an index in the character window. We use short instead of int to save space in the various tables. IPos is used only for parameter passing.
dtree_ptr = ^dtree_type
dtree_type = array[0..2*D_CODES+1-1] of ct_data;literal and length tree
htree_ptr = ^htree_type
htree_type = array[0..2*BL_CODES+1-1] of ct_data;distance tree
IPos = uIntFAR
ltree_ptr = ^ltree_type
ltree_type = array[0..HEAP_SIZE-1] of ct_data;Freq = fc.freq Code = fc.code Dad = dl.dad Len = dl.len
Pos = ushthe corresponding static tree
Posf = Pos
pPosf = ^Posf
pzPosfArray = ^zPosfArray
static_tree_desc = record
static_tree : tree_ptr;
extra_bits : pzIntfArray;
extra_base : int;
elems : int;
max_length : int;
end;
static_tree_desc_ptr = ^static_tree_desc
tree_desc = record
dyn_tree : tree_ptr;
max_code : int;
stat_desc : static_tree_desc_ptr;
end;
tree_desc_ptr = ^tree_descmax bit length for the codes
tree_ptr = ^tree_type
tree_type = array[0..(MaxInt div SizeOf(ct_data))-1] of ct_data;Huffman tree for bit lengths } { generic tree type
zPosfArray = array[0..(MaxInt div SizeOf(Posf))-1] of Posf;
Constants |
Variables |