There are several means to compress data. Here, we are only going to deal with the losslessy schemes. These schemes are also called non-destructive because you always recover the initial data you had, and this, as soon as you need them. With losslessy schemes, you won't never lose any informations (except perhaps when you store or transmit your data but this is another problem...). In this introduction, we are going to see: - The RLE scheme (with different possible algorithms) - The Huffman schemes (dynamical scheme) - And the LZW scheme For the novice, a compresser is a program able to read several data (e.g. bytes) in input and to write several data in output. The data you obtain from the output (also called compressed data) will - of course - take less space than the the input data. This is true in most of cases, if the compresser works and if the type of the data is correct to be compressed with the given scheme. The codec (coder-decoder) enables you to save space on your hard disk and/or to save the communication costs because you always store/transmit the compressed data. You'll use the decompresser as soon as you need to recover your initial useful data. Note that the compressed data are useless if you have not the decoder... You are doubtless asking "How can I reduce the data size without losing some informations?". It's easy to answer to this question. I'll only take an example. I'm sure you have heard about the morse. This system established in the 19th century use a scheme very close to the huffman one. In the morse you encode the letters to transmit with two kinds of signs. If you encode these two sign possibilities in one bit, the symbol 'e' is transmitted in a single bit and the symbols 'y' and 'z' need four bits. Look at the symbols in the text you are reading, you'll fast understand the compression ratio...