www.pudn.com > lz77_source.rar > lz77.h


#ifndef _LZ77_H 
#define _LZ77_H 
 
#include "BITIO.h" 
 
#define INDEX_BIT_COUNT       12 
#define LENGTH_BIT_COUNT      4 
#define WINDOW_SIZE           (1 << INDEX_BIT_COUNT) 
#define RAW_LOOK_AHEAD_SIZE   (1 << LENGTH_BIT_COUNT) 
 
#define BREAK_EVEN            ((1 + INDEX_BIT_COUNT + LENGTH_BIT_COUNT) / 9) 
#define LOOK_AHEAD_SIZE       (RAW_LOOK_AHEAD_SIZE + BREAK_EVEN) 
 
#define TREE_ROOT             WINDOW_SIZE 
#define END_OF_STREAM         0 
#define MOD_WINDOW(A)         ((A) & (WINDOW_SIZE - 1)) 
 
unsigned char window[WINDOW_SIZE]; 
unsigned char buf[LOOK_AHEAD_SIZE]; 
 
void CompressFile(FILE * inputFile, BITFILE * outputFile); 
void ExpandFile(BITFILE * inputFile, FILE * outputFile); 
 
void testLZ77(); 
 
#endif