Compression Engine

I have a somewhat bizarre hobby: I like make encoding engines. Not for any particular purpose really — just because it’s kind of fun to play around with different ways to represent information. I stumbled into the fun of it really early — at about six or seven years-old when I wrote my first (albeit extremely simple) encryption engine. I had to write a Huffman compressor in college for a data structures class and that kind of relighted a interest in it all. Now I catch myself making at least 1-2 custom algorithms a year just when the feeling hits me — and for no good reason whatsoever.

I got the feeling again in December and wrote another really simple compression algorithm just for the fun of it. I figured this time I would try to just leave it simple and package it into something you could actually somewhat run — and maybe put it up into a free download just for the fun of it. Which means of course I added at least five compression optimizations to the original algorithm cause I couldn’t stop playing with the damn thing.

But anyway, I put it down for several weeks and just picked it up yesterday — just to try to write the interface stuff and the other boring crap to turn it into a usable executable. And of course two more optimizations came to me so I coded those (sigh).

So yeah, I’m writing this for myself here: no more optimizations Scott. Just clean up, and move on with your life. It will be ok. The nice people in white are coming and they are bringing a nice comfortable jacket.

DCC Prototype

Believe it or not I have been playing around with encryption in some form or another since I was about six or seven, and in late high school / early university I kind of took the natural path from there to get an amateur interest in compression algorithms as well.

My senior engineering project was even a variation off the Huffman Algorithm.

I have had this idea for a loss-less, compression time intensive but decompression time sensitive, AI embedded method of compression for about ten years now (and I even attempted to start it once before I eventually got sidetracked for one reason or another), but anyway, for some reason I caught myself thinking about it again and before I knew it, I had coded a prototype down to the root cluster analysis portion.

So yeah, looks like I’m kind of playing with it again, but that’s not to say it won’t just sit there again until another five years pass.

Here’s whats next anyway:

  • Speed boost for the root cluster detection (probably in the analysis function)
  • Clean up the refresh rate
  • Start working on the data structure for the cluster analysis

Edit: I ended up doing a bit of work on this night after writing this post as the mood apparently hit me again. Now the sleep mood is hitting me.