Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Documentation on compression / decompression techniques

I've finished my current "part-time" project and am looking for something new.

I've decided to have a crack at writing my own compression / decompression utility. I'm not planning on selling it or anything - it's more for my own interest.

Preferably, it will be be in C# but Java or C is OK.

Can anyone suggest some good sources on compression / decompression techniques that I can study. Hopefully, some that don't involve maths at a doctorate level!

like image 284
rbrayb Avatar asked Feb 27 '09 00:02

rbrayb


People also ask

How does compression and decompression work?

Data compression is a process in which the size of a file is reduced by re-encoding the file data to use fewer bits of storage than the original file. A fundamental component of data compression is that the original file can be transferred or stored, recreated, and then used later (with a process called decompression).

What are basic compression techniques?

Compression techniques fall into two classes: lossless and lossy. Both are very common in use: an example of lossless compression is ZIP archive files and an example of lossy compression is JPEG image files.

What are the 2 compression techniques?

There are two types of compression: lossless and lossy.


2 Answers

A good book on this topic is The Data Compression Book. It starts off with the basics and ends up with JPEG and fractal image compression algorithms.

I worked through this whole book years ago (the first edition, I think) and I still remember it as a really rewarding experience.

like image 116
Greg Hewgill Avatar answered Oct 04 '22 01:10

Greg Hewgill


I find that Wikipedia is a pretty good source in this respect. See, for example, Huffman coding, LZW and Deflate for some common lossless general-purpose data compression algorithms.

If you want to do something more specific, the article on JPEG is also really good.

like image 40
Thomas Avatar answered Oct 04 '22 03:10

Thomas