X-Git-Url: http://4ch.mooo.com/gitweb/?p=16.git;a=blobdiff_plain;f=16%2Fted5%2FJHUFF.H;fp=16%2Fted5%2FJHUFF.H;h=0d4536c33535f1c96adada8485e2c8b1bbbd0b83;hp=0000000000000000000000000000000000000000;hb=4c15d088479b9b6c4a8b298a9db585bc11582321;hpb=21ff8e5607ba86e91ed0d71f6261fd0fcc676e16 diff --git a/16/ted5/JHUFF.H b/16/ted5/JHUFF.H new file mode 100755 index 00000000..0d4536c3 --- /dev/null +++ b/16/ted5/JHUFF.H @@ -0,0 +1,26 @@ +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);