xdsopl / dwt

Discrete Wavelet Transform (DWT) Based Lossless Image Compression with Bitstream Truncation Support

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Discrete Wavelet Transform (DWT) Based Lossless Image Compression with Bitstream Truncation Support

Quick start:

Encode the smpte.pnm PNM picture file into encoded.dwt:

./encode smpte.pnm encoded.dwt

Decode encoded.dwt back to the original picture file decoded.pnm:

./decode encoded.dwt decoded.pnm

View the decoded.pnm picture file in feh:

feh decoded.pnm

Limited Storage Capacity: Bitstream Truncation

Allocate a maximum of 65536 bytes of space for compression. If necessary, the encoder will discard quality bytes to ensure the output stays below 65536 bytes:

./encode smpte.pnm encoded.dwt 65536

Using a Different Wavelet

Optionally, utilize the Haar wavelet instead of the default CDF 5/3 wavelet:

./encode smpte.pnm encoded.dwt 0 1

References

  • Run-length encodings
    by Solomon W. Golomb - 1966
  • Image coding using wavelet transform
    by M. Antonini, M. Barlaud, P. Mathieu and I. Daubechies - 1992
  • Factoring wavelet transforms into lifting steps
    by Ingrid Daubechies and Wim Sweldens - 1996

About

Discrete Wavelet Transform (DWT) Based Lossless Image Compression with Bitstream Truncation Support

License:BSD Zero Clause License


Languages

Language:C 99.0%Language:Makefile 1.0%