Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

trees.c File Reference

#include "deflate.h"

Go to the source code of this file.

Classes

struct  static_tree_desc_s

Defines

#define MAX_BL_BITS   7
#define END_BLOCK   256
#define REP_3_6   16
#define REPZ_3_10   17
#define REPZ_11_138   18
#define Buf_size   (8 * 2*sizeof(char))
#define DIST_CODE_LEN   512
#define send_code(s, c, tree)   send_bits(s, tree[c].Code, tree[c].Len)
#define put_short(s, w)
#define send_bits(s, value, length)
#define SMALLEST   1
#define pqremove(s, tree, top)
#define smaller(tree, n, m, depth)

Functions

local void tr_static_init OF ((void))
local void init_block OF ((deflate_state *s))
local void pqdownheap OF ((deflate_state *s, ct_data *tree, int k))
local void gen_bitlen OF ((deflate_state *s, tree_desc *desc))
local void gen_codes OF ((ct_data *tree, int max_code, ushf *bl_count))
local void scan_tree OF ((deflate_state *s, ct_data *tree, int max_code))
local void send_all_trees OF ((deflate_state *s, int lcodes, int dcodes, int blcodes))
local void compress_block OF ((deflate_state *s, ct_data *ltree, ct_data *dtree))
local unsigned bi_reverse OF ((unsigned value, int length))
local void copy_block OF ((deflate_state *s, charf *buf, unsigned len, int header))
local void tr_static_init ()
void _tr_init (deflate_state *s)
local void init_block (deflate_state *s)
local void pqdownheap (deflate_state *s, ct_data *tree, int k)
local void gen_bitlen (deflate_state *s, tree_desc *desc)
local void gen_codes (ct_data *tree, int max_code, ushf *bl_count)
local void build_tree (deflate_state *s, tree_desc *desc)
local void scan_tree (deflate_state *s, ct_data *tree, int max_code)
local void send_tree (deflate_state *s, ct_data *tree, int max_code)
local int build_bl_tree (deflate_state *s)
local void send_all_trees (deflate_state *s, int lcodes, int dcodes, int blcodes)
void _tr_stored_block (deflate_state *s, charf *buf, ulg stored_len, int eof)
void _tr_align (deflate_state *s)
void _tr_flush_block (deflate_state *s, charf *buf, ulg stored_len, int eof)
int _tr_tally (deflate_state *s, unsigned dist, unsigned lc)
local void compress_block (deflate_state *s, ct_data *ltree, ct_data *dtree)
local void set_data_type (deflate_state *s)
local unsigned bi_reverse (unsigned code, int len)
local void bi_flush (deflate_state *s)
local void bi_windup (deflate_state *s)
local void copy_block (deflate_state *s, charf *buf, unsigned len, int header)

Variables

local const int extra_lbits [LENGTH_CODES] = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}
local const int extra_dbits [D_CODES] = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}
local const int extra_blbits [BL_CODES] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}
local const uch bl_order [BL_CODES] = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}
local ct_data static_ltree [L_CODES+2]
local ct_data static_dtree [D_CODES]
uch _dist_code [DIST_CODE_LEN]
uch _length_code [MAX_MATCH-MIN_MATCH+1]
local int base_length [LENGTH_CODES]
local int base_dist [D_CODES]
local static_tree_desc static_l_desc
local static_tree_desc static_d_desc
local static_tree_desc static_bl_desc


Define Documentation

#define Buf_size   (8 * 2*sizeof(char))
 

Definition at line 76 of file trees.c.

#define DIST_CODE_LEN   512
 

Definition at line 85 of file trees.c.

#define END_BLOCK   256
 

Definition at line 49 of file trees.c.

Referenced by _tr_align(), compress_block(), and init_block().

#define MAX_BL_BITS   7
 

Definition at line 46 of file trees.c.

#define pqremove s,
tree,
top   ) 
 

Value:

{\
    top = s->heap[SMALLEST]; \
    s->heap[SMALLEST] = s->heap[s->heap_len--]; \
    pqdownheap(s, tree, SMALLEST); \
}

Definition at line 434 of file trees.c.

Referenced by build_tree().

#define put_short s,
 ) 
 

Value:

{ \
    put_byte(s, (uch)((w) & 0xff)); \
    put_byte(s, (uch)((ush)(w) >> 8)); \
}

Definition at line 180 of file trees.c.

Referenced by bi_flush(), bi_windup(), and copy_block().

#define REP_3_6   16
 

Definition at line 52 of file trees.c.

Referenced by scan_tree(), and send_tree().

#define REPZ_11_138   18
 

Definition at line 58 of file trees.c.

Referenced by scan_tree(), and send_tree().

#define REPZ_3_10   17
 

Definition at line 55 of file trees.c.

Referenced by scan_tree(), and send_tree().

#define send_bits s,
value,
length   ) 
 

Value:

{ int len = length;\
  if (s->bi_valid > (int)Buf_size - len) {\
    int val = value;\
    s->bi_buf |= (val << s->bi_valid);\
    put_short(s, s->bi_buf);\
    s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
    s->bi_valid += len - Buf_size;\
  } else {\
    s->bi_buf |= (value) << s->bi_valid;\
    s->bi_valid += len;\
  }\
}

Definition at line 217 of file trees.c.

Referenced by _tr_align(), _tr_flush_block(), _tr_stored_block(), compress_block(), send_all_trees(), and send_tree().

#define send_code s,
c,
tree   )     send_bits(s, tree[c].Code, tree[c].Len)
 

Definition at line 167 of file trees.c.

Referenced by _tr_align(), compress_block(), and send_tree().

#define smaller tree,
n,
m,
depth   ) 
 

Value:

(tree[n].Freq < tree[m].Freq || \
   (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))

Definition at line 445 of file trees.c.

Referenced by pqdownheap().

#define SMALLEST   1
 

Definition at line 426 of file trees.c.

Referenced by build_tree().


Function Documentation

void _tr_align deflate_state s  ) 
 

Definition at line 892 of file trees.c.

References bi_flush(), END_BLOCK, send_bits, send_code, static_ltree, and STATIC_TREES.

Referenced by deflate().

void _tr_flush_block deflate_state s,
charf buf,
ulg  stored_len,
int  eof
 

Definition at line 921 of file trees.c.

References _tr_stored_block(), Assert, bi_windup(), build_bl_tree(), build_tree(), compress_block(), DYN_TREES, init_block(), send_all_trees(), send_bits, set_data_type(), static_dtree, static_ltree, STATIC_TREES, Tracev, Z_FIXED, and Z_UNKNOWN.

void _tr_init deflate_state s  ) 
 

Definition at line 382 of file trees.c.

References init_block(), static_bl_desc, static_d_desc, static_l_desc, and tr_static_init().

Referenced by deflateReset().

void _tr_stored_block deflate_state s,
charf buf,
ulg  stored_len,
int  eof
 

Definition at line 867 of file trees.c.

References copy_block(), send_bits, and STORED_BLOCK.

Referenced by _tr_flush_block(), and deflate().

int _tr_tally deflate_state s,
unsigned  dist,
unsigned  lc
 

Definition at line 1022 of file trees.c.

References _length_code, Assert, d_code, D_CODES, extra_dbits, LITERALS, MAX_DIST, MAX_MATCH, MIN_MATCH, and Tracev.

local void bi_flush deflate_state s  ) 
 

Definition at line 1161 of file trees.c.

References put_byte, and put_short.

Referenced by _tr_align().

local unsigned bi_reverse unsigned  code,
int  len
 

Definition at line 1146 of file trees.c.

Referenced by gen_codes(), and tr_static_init().

local void bi_windup deflate_state s  ) 
 

Definition at line 1178 of file trees.c.

References put_byte, and put_short.

Referenced by _tr_flush_block(), and copy_block().

local int build_bl_tree deflate_state s  ) 
 

Definition at line 803 of file trees.c.

References BL_CODES, bl_order, build_tree(), scan_tree(), and Tracev.

Referenced by _tr_flush_block().

local void build_tree deflate_state s,
tree_desc desc
 

Definition at line 619 of file trees.c.

References tree_desc_s::dyn_tree, static_tree_desc_s::elems, Freq, gen_bitlen(), gen_codes(), HEAP_SIZE, tree_desc_s::max_code, pqdownheap(), pqremove, SMALLEST, tree_desc_s::stat_desc, and static_tree_desc_s::static_tree.

Referenced by _tr_flush_block(), and build_bl_tree().

local void compress_block deflate_state s,
ct_data ltree,
ct_data dtree
 

Definition at line 1072 of file trees.c.

References _length_code, Assert, base_dist, base_length, d_code, D_CODES, END_BLOCK, extra_dbits, extra_lbits, LITERALS, send_bits, send_code, and Tracecv.

Referenced by _tr_flush_block().

local void copy_block deflate_state s,
charf buf,
unsigned  len,
int  header
 

Definition at line 1197 of file trees.c.

References bi_windup(), put_byte, and put_short.

Referenced by _tr_stored_block().

local void gen_bitlen deflate_state s,
tree_desc desc
 

Definition at line 490 of file trees.c.

References tree_desc_s::dyn_tree, static_tree_desc_s::extra_base, static_tree_desc_s::extra_bits, Freq, HEAP_SIZE, Len, tree_desc_s::max_code, static_tree_desc_s::max_length, tree_desc_s::stat_desc, and static_tree_desc_s::static_tree.

Referenced by build_tree().

local void gen_codes ct_data tree,
int  max_code,
ushf bl_count
 

Definition at line 577 of file trees.c.

References Assert, bi_reverse(), Code, MAX_BITS, static_ltree, Tracecv, and Tracev.

Referenced by build_tree(), and tr_static_init().

local void init_block deflate_state s  ) 
 

Definition at line 411 of file trees.c.

References END_BLOCK, and Freq.

Referenced by _tr_flush_block(), and _tr_init().

local void copy_block OF (deflate_state *s, charf *buf, unsigned len, int header)   ) 
 

local unsigned bi_reverse OF (unsigned value, int length)   ) 
 

local void compress_block OF (deflate_state *s, ct_data *ltree, ct_data *dtree)   ) 
 

local void send_all_trees OF (deflate_state *s, int lcodes, int dcodes, int blcodes)   ) 
 

local void scan_tree OF (deflate_state *s, ct_data *tree, int max_code)   ) 
 

local void gen_codes OF (ct_data *tree, int max_code, ushf *bl_count)   ) 
 

local void gen_bitlen OF (deflate_state *s, tree_desc *desc)   ) 
 

local void pqdownheap OF (deflate_state *s, ct_data *tree, int k)   ) 
 

local void init_block OF (deflate_state *s)   ) 
 

local void tr_static_init OF (void)   ) 
 

local void pqdownheap deflate_state s,
ct_data tree,
int  k
 

Definition at line 455 of file trees.c.

References smaller.

Referenced by build_tree().

local void scan_tree deflate_state s,
ct_data tree,
int  max_code
 

Definition at line 707 of file trees.c.

References REP_3_6, REPZ_11_138, and REPZ_3_10.

Referenced by build_bl_tree().

local void send_all_trees deflate_state s,
int  lcodes,
int  dcodes,
int  blcodes
 

Definition at line 838 of file trees.c.

References Assert, BL_CODES, bl_order, D_CODES, L_CODES, send_bits, send_tree(), and Tracev.

Referenced by _tr_flush_block().

local void send_tree deflate_state s,
ct_data tree,
int  max_code
 

Definition at line 752 of file trees.c.

References Assert, REP_3_6, REPZ_11_138, REPZ_3_10, send_bits, and send_code.

Referenced by send_all_trees().

local void set_data_type deflate_state s  ) 
 

Definition at line 1126 of file trees.c.

References Z_BINARY, and Z_TEXT.

Referenced by _tr_flush_block().

local void tr_static_init  ) 
 

Definition at line 238 of file trees.c.

References _dist_code, _length_code, Assert, base_dist, base_length, bi_reverse(), D_CODES, static_tree_desc_s::extra_bits, extra_blbits, extra_dbits, extra_lbits, gen_codes(), L_CODES, LENGTH_CODES, MAX_BITS, static_bl_desc, static_d_desc, static_dtree, static_l_desc, static_ltree, and static_tree_desc_s::static_tree.

Referenced by _tr_init().


Variable Documentation

uch _dist_code[DIST_CODE_LEN]
 

Definition at line 102 of file trees.c.

uch _length_code[MAX_MATCH-MIN_MATCH+1]
 

Definition at line 108 of file trees.c.

local int base_dist[D_CODES]
 

Definition at line 114 of file trees.c.

Referenced by compress_block(), and tr_static_init().

local int base_length[LENGTH_CODES]
 

Definition at line 111 of file trees.c.

Referenced by compress_block(), and tr_static_init().

local const uch bl_order[BL_CODES] = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}
 

Definition at line 71 of file trees.c.

Referenced by build_bl_tree(), and send_all_trees().

local const int extra_blbits[BL_CODES] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}
 

Definition at line 68 of file trees.c.

Referenced by tr_static_init().

local const int extra_dbits[D_CODES] = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}
 

Definition at line 65 of file trees.c.

Referenced by _tr_tally(), compress_block(), and tr_static_init().

local const int extra_lbits[LENGTH_CODES] = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}
 

Definition at line 62 of file trees.c.

Referenced by compress_block(), and tr_static_init().

local static_tree_desc static_bl_desc
 

Initial value:

Definition at line 135 of file trees.c.

Referenced by _tr_init(), and tr_static_init().

local static_tree_desc static_d_desc
 

Initial value:

Definition at line 132 of file trees.c.

Referenced by _tr_init(), and tr_static_init().

local ct_data static_dtree[D_CODES]
 

Definition at line 97 of file trees.c.

Referenced by _tr_flush_block(), and tr_static_init().

local static_tree_desc static_l_desc
 

Initial value:

Definition at line 129 of file trees.c.

Referenced by _tr_init(), and tr_static_init().

local ct_data static_ltree[L_CODES+2]
 

Definition at line 90 of file trees.c.

Referenced by _tr_align(), _tr_flush_block(), gen_codes(), and tr_static_init().


Generated on Thu Dec 15 10:40:01 2005 for Shareaza 2.2.1.0 by  doxygen 1.4.2