PDA

View Full Version : Wavelet Image Compression Library 3.0


maven
14th January 2006, 19:08
I've been steadily working on my free wavelet image compression library for the past few weeks, and in the process have improved it in many ways. These are largely not technical improvements, but rather a huge code refactoring, the creation of decent documentation, reducing memory usage an so on.
You can read the freshly pressed documentation (http://www.maven.de/code/wavelet/) or simply download the source (http://www.maven.de/code/wavelet/wavelet.tar.bz2).

It is a fairly simple but thus compact (executable with compression and decompressing is 30kb uncompressed) and relatively speedy image compression library, that provides up to 16 channels per file and combines lossless with lossy compression in a single algorithm, that can even be changed from channel to channel. As it's based on the wavelet transform, it allows for progressive decoding (which means that if you only have the beginning of the file, you get a lower quality version of the whole file) and can also extract smaller "thumbnails" of the original image.
For encoding it also support various modes, one is to give a mean-square error for each channel (similar to the JPEG quality setting), and another one is to fit the best quality image into a given amount of bits.
Unfortunately, there is a catch with the new version, too (and this is the download link to the old version is still live). As my primary development platform has moved from Windows to Mac OS (and Linux), I have neither updated the Windows GUI (written in Delphi) nor the Web-Browser plugin. I plan to offer new GUIs eventually; the current plan is to write one in C# for Windows and Linux, and do a native Cocoa one for Mac OS.
Finally, I've changed the license from the GPL to the zlib-license, which should allow use in closed source applications. If you decide to use it, or even decide not to use it, feedback and suggestions would be much appreciated.

Nic
16th January 2006, 11:21
Excellent as always :)

I'll have to find some time (edit:I always say that, as if I can find time) to test. Maybe i'll post a binary patched with a BMP loader or something so others can test.

-Nic

maven
17th January 2006, 12:03
It makes quite a difference when people can try it out immediately (with something other than .raw-files), but I made so many changes that waiting even longer for a release would be even worse.
I've started on a (much nicer) GUI for Mac OS (to learn Cocoa at the same time), but the only thing done so far is the interface layout. I've got a really nice idea on how to present the two images (original and compressed version) side-by-side. I only hope it works out as well as I hope it will... ;)
After that is the .Net-version for Windows, because I've never written anything in C#, either. But from the looks of the documentation, .Net looks a bit yucky (i.e. overly complicated and "object"-ified).

Anyway, if you have questions / suggestions, get back to me...

Nic
17th January 2006, 17:13
Been trying to help get a Cocoa (Or at least a Mac OSX Objective C) game going on windows call Oolite. Objective C is very yucky ;) But kinda nice at the same time.

Good luck with everything. :)

-Nic

video_magic
8th February 2006, 21:54
A couple of years ago, the person who made the popular BTWincap drivers had also said he had made a wavelet codec, but I think it has not been heard from since:

http://sourceforge.net/forum/forum.php?thread_id=847948&forum_id=262721

maven
24th April 2006, 17:08
Up to version 3.2 (http://www.maven.de/code/wavelet/).
- completely embedded (i.e. encode image once and truncate at desired size / quality :D).
- seperated subbands into their own blocks
- tested for encoding 29bit data per channel (setting wv_pel to int)
- public darcs repo: http://www.maven.de/code/repos/wavelet/