]> 4ch.mooo.com Git - 16.git/blobdiff - 16/ted5/JHUFF.H
ted5 added
[16.git] / 16 / ted5 / JHUFF.H
diff --git a/16/ted5/JHUFF.H b/16/ted5/JHUFF.H
new file mode 100755 (executable)
index 0000000..0d4536c
--- /dev/null
@@ -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);