27 lines
968 B
C++
27 lines
968 B
C++
typedef struct
|
|
{
|
|
unsigned bit0,bit1; // 0-255 is a character, > is a pointer to a node
|
|
} huffnode;
|
|
|
|
extern long counts[256];
|
|
extern huffnode nodearray[256];
|
|
|
|
|
|
void CountBytes (unsigned char huge *start, long length);
|
|
void Huffmanize (void);
|
|
void OptimizeNodes (huffnode *table);
|
|
long HuffCompress (unsigned char huge *source, long length,
|
|
unsigned char huge *dest);
|
|
void HuffExpand (unsigned char huge *source, unsigned char huge *dest,
|
|
long length,huffnode *hufftable);
|
|
void RLEWExpand (unsigned huge *source, unsigned huge *dest,long length,
|
|
unsigned rlewtag);
|
|
long RLEWCompress (unsigned huge *source, long length, unsigned huge *dest,
|
|
unsigned rlewtag);
|
|
void RLEBExpand (unsigned char huge *source, unsigned char huge *dest,
|
|
long length, unsigned char rlebtag);
|
|
long RLEBCompress (unsigned char huge *source, long length,
|
|
unsigned char huge *dest, unsigned char rlebtag);
|
|
long CarmackCompress (unsigned far *source,long length,
|
|
unsigned far *dest);
|