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!
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).
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.
There are two types of compression: lossless and lossy.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With