Files
TED5/JHUFF.H
T
2014-06-14 13:53:43 -05:00

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);