In general we divide compression algorithms in two types:
1. Lossless Compression
2. Lossy Compression
Lossless Compression
In lossless compression, the algorithm does not lose any
part of data. It means exact source data should be generated after
decompression. In business communication we use lossless compression for text
based data/information. Lossless compression should be used to compress
executable programs. The major purpose, as well as challenge, for lossless
algorithms is to compress data as much as possible and get back the original
data by taking minimum time.
Lossy Compression
In lossy compression, the algorithm does some loss of data
to achieve higher compression. You do not get exact original data back in lossy
compression. This compression works on those data in which some fidelity is
acceptable. Picture, audio or video format data are usually compressed with
lossy compression algorithm because among these some loss of data can be
tolerated. Graphical image can be compressed either as lossless or lossy method
depending on the requirement.
Now, there are various lossless encoding schemes (e.g.
run-length encoding, Lempel-Ziv (LZ), Huffman, Deflate, GZip, TTA, FLAC, etc.)
and lossy encoding schemes (e.g. MPEG-2 codec, psychoacoustics etc.).
Among these I am going to describe the DEFLATE and GZIP
compression and its implementation in VB 2005.