cryptofreak home projects
contact about
Contact: jnmiller

Antera Antera
Commentator Commentator
Feast Tracker Feast Tracker
News Frotz
gkrellmGIMPS gkrellmGIMPS
Holy Librams! Holy Librams!
Linux Porting Linux Porting
minihuff minihuff
mod-chal mod-chal
Recipe Radar Recipe Radar
RFC 3394 RFC 3394
Riggy Riggy
Contact: webmaster


minihuff is a data compression library with a simple new twist on Huffman coding. Instead of storing the frequency analysis for some set of data with the data itself, minihuff enables the creation of a static frequency table to be stored at both ends of a connection. This allows effective compression even for very small pieces of data that maintain similar entropy characteristics.

Current version: 1.0

Please note that minihuff is written entirely in portable C as it is intended primarily for embedded applications. This is also why I haven't gone to a lot of trouble in the distribution. There aren't, after all, a lot of Linux distros for the 8051 yet.

minihuff is being managed by me at this development site, hosted by

For more information about Huffman coding, please see Introduction to Algorithms, by Corman, Leiserson and Rivest (CLR), § 17.3. If you're looking for a web reference, you might start at Wiki's entry on the subject.

minihuff v1.0 release 2.21.2006 10:05 am -- jnmiller News

I have tested this library in my own code for some time, so I hope it is at least somewhat robust barring any distribution bugs. It has been used successfully between an 8051 (big endian) and a Pentium 4 (little endian). I hope I've also solved some floating point portability issues for good.

Nonetheless, there naturally may be bugs remaining. If you can find any - or if it just doesn't work! - I would very much appreciate a note with as much detail as possible on the problem.

minihuff v0.9 (beta!) release 6.30.2005 11:59 pm -- jnmiller News

I've been playing with minihuff for a while, and it seems stable enough. I thought I'd just drop it on the public in case there's one or two people out there that have this same itch. Note that minihuff is being released under the LGPL so you may use it in non-open source projects in its library form. As usual, any changes to the code should be made public. Hopefully that means you'll send a patch to me!

Naturally, if you're only interested in making a suggestion or (gasp!) bug report, please drop me a line either via email or, for extra fun, via one of the trackers for the project.