diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-07-11 21:16:23 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-07-11 21:16:23 -0400 |
commit | 250a331df9dbd312d572aaf0d629503417cfc9d4 (patch) | |
tree | 34f31dba3c816e5c308d1baf336fe4541a208d79 /tools/gbagfx/huff.h | |
parent | 97ab00ba2189c4d8b483ddcad3fc7cf97386122b (diff) |
Track tools srcs
Diffstat (limited to 'tools/gbagfx/huff.h')
-rw-r--r-- | tools/gbagfx/huff.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/gbagfx/huff.h b/tools/gbagfx/huff.h new file mode 100644 index 0000000..6002fe9 --- /dev/null +++ b/tools/gbagfx/huff.h @@ -0,0 +1,38 @@ +#ifndef HUFF_H +#define HUFF_H + +union HuffNode; + +struct HuffData { + unsigned value:31; + unsigned isLeaf:1; +}; + +struct HuffLeaf { + struct HuffData header; + unsigned char key; +}; + +struct HuffBranch { + struct HuffData header; + union HuffNode * left; + union HuffNode * right; +}; + +union HuffNode { + struct HuffData header; + struct HuffLeaf leaf; + struct HuffBranch branch; +}; + +typedef union HuffNode HuffNode_t; + +struct BitEncoding { + unsigned long long nbits:6; + unsigned long long bitstring:58; +}; + +unsigned char * HuffCompress(unsigned char * buffer, int srcSize, int * compressedSize_p, int bitDepth); +unsigned char * HuffDecompress(unsigned char * buffer, int srcSize, int * uncompressedSize_p); + +#endif //HUFF_H |