As the name implies, Wavelet Kompressor is a wavelet-based image compressor.
Wavelet compression is one of the most effective methods of image compression. The algorithm is based on multiresolutional analysis. The part of the mathematical analysis is being actively developed during last 15 years.
Like the traditional JPEG compression, wavelet compression algorithm presents an image as sets of real coefficients. Most of the wavelet coefficients of a typical image are nearly zero, and the image thus is well-approximated with a small number of large wavelet coefficients.
The advantage of wavelet compression is that, in contrast to JPEG, wavelet algorithm does not divide image into blocks, but analyze the whole image. The characteristic of wavelet compression allows to get best compression ratio, while maintaining the quality.
Overview:
- Now even faster (using an optional approximate mode for error estimation and with MMX wavelet-transforms),
- Same algorithm for lossless and lossy coding,
- Uses only simple run-length encoding (bitwise on bit-planes),
- Is an embedded bit-stream (i.e. progressive transmission (see included plugin)),
- Supports multi-channels images (and RGB -> YCbCr -> RGB conversion) with up to 16 channels (because i was too lazy too spent more than 4 bits in the header...),
- After initialisation of channels (which is - now - quite quick...), compression is very fast; even for different settings,
- Can encode for quality or final size.
Changes in Wavelet Kompressor 2.7 :
- removed MMX optimisations for wavelet transforms and made code even faster
- removed unused MaxBits parameter from wv_init_channel
- changed bitstream format (order in which bits are written) and removed writing unneccessary zeros at the end of each block
- changed yuv transform slightly (Cr / CB are now centred around 0, not 128), as we’re writing the sign in any case
- changed colorspace conversion to be in-place
- fixed bug in raw_load if file was too small
- misc optimisations to bit-files
- added wv_ prefix to log2i, mse_to_psnr, psnr_to_mse
- changed the # of iterations for the multi-channel size selector (now bails out earlier)
- new function to return the header of an image (wv_read_header), changed layout of t_wv_dchannels
- changed decompression to work for (hopefully) all invalid data w/o overwriting anything in memory
- wv_init_decode_channels now accepts an extra reduction parameter (return a scaled down version of image) (see -dr parameter in wako.exe)