Data compression is one of the most important techniques in computing engineering. From archiving data to CD-ROMs and from coding theory to image analysis, many facets of computing make use of data compression in one form or another. This book is intended to provide an overview of the many different types of compression: it includes a taxonomy, an analysis of the most common systems of compression, discussion of their relative benefits and disadvantages, and their most common usages. Readers are presupposed to have a basic understanding of computer science: essentially the storage of data in bytes and bits and computing terminology, but otherwise this book is self-contained. The book divides naturally into four main parts based on the main branches of data compression: run length encoding, statistical methods, dictionary-based methods, and lossy image compression (where in contrast to the other techniques, information in the data may be lossed but an acceptable standard of image quality retained). Detailed descriptions of many of the most well-known compression techniques are covered including: Zip, BinHex, Huffman coding, GIF and many others.