Hello everyone, my name is Wang Benben. In the past few months, due to work needs, I have been paying more attention to the current situation and development of data compression technology, and have personally implemented several data compression modules. Once
In the process, I found that Chinese technical materials in this field are extremely scarce. To this end, Wang Benben decided to write this "Data Compression tutorial" to give a summary of the learning process over the past few months.
Who needs to read this book?
If you only want to compress a large number of files occupying the hard disk space into a single small file, do not read this book and read Winzip, ARJ, and RAR.
If you just want to compress and save the exquisite pictures, voice information, CD audio tracks, and even animations and videos in your hands, do not read this book, learn and use it.
Photoshop, MP3 Compress, and other multimedia file editing and compression tools are enough.
If you are surprised and confused that the data can be compressed to such a small value, if you want to know how the many compression tools mentioned above work, if you are about to add flexibility to your application
If you are writing your own image editing tool ...... This book is your choice. Here we have detailed algorithm descriptions, source code available for direct use, and
For more information about compression technology resources on the Internet, please feel free to come!
But remember, Wang is stupid and has many shortcomings and errors in the book. I hope you can correct them.
Overview of compression technology
First, let's take a general look at the current situation of compression technology. It doesn't matter if you don't understand it.
The compression technology can be roughly classified as follows:
Compression Technology
|
/------------------------------/
General lossless data compression multimedia data compression (mostly lossy compression)
|
/----------------//------------------------------------/
Dictionary-Based Audio Compression Based on Statistics Image Compression Video Compression
Pressure of the model |||
Shrink technology MP3, ETC/-------------------/AVI
| Binary gray color vector MPEG2
/------ // -------------/Image
Huffman arithmetic LZ77 LZ78 LZW |
Encoding/-------------/fax machine felics gif PostScript
| Windows WMF, such as standard JPEG and others
Almost lossless PKZIP, LHarc, ARJ,
COMPRESS in UNIX
Programs and other advanced applications
This book will also roughly follow the above structure. Are you ready? Start
Several additional notes on copyright issues
Some of the compression algorithms described in the stupid Data Compression tutorial are protected by the U.S. Patent Law (for example, some parts of the LZW algorithm and some details of the high-level arithmetic compression algorithm)
. Although WANG Benben believes that protecting a certain abstract algorithm rather than program implementation in the computer field hinders technological progress, but you still need to remind those who try to implement certain compression in their own programs
People who use technology and program for commercial purposes should first understand the technology patent situation before implementation, so as to avoid business passive.
Some of the source code provided in "Stupid Data Compression tutorial" is written by Wang Benben himself, some by other programmers in the wensi software studio, and some of the source code is written by Wang Benben on the Internet.
All the code is "free code ). If you plan to use the code in your program, you must carefully read and comply with all of the following rules:
You can use, copy, publish, modify, and use the code for various purposes, including individuals, organizations, and businesses. You do not need to pay us for this.
We do not assume any legal liability for the consequences of using this code. However, if you find errors in the code or have doubts about the code, you can use e-mail to notify us that we will provide technical support as far as possible.
Do not write the code in any way. If you use the code in your program, make sure that it is in a prominent position (such as in the About dialog box or Readme document) note that "some code in this program is provided by the wensi software Studio ".
Directory
Chapter 1: ease: A Brief History of Data Compression
Chapter 2: technical preparation: probability, model, and coding
Chapter 3: Wonderful Binary Tree: Huffman's contribution
Chapter 4: Extreme Challenge: Arithmetic Coding
Chapter 5: Smart Israel (I): LZ77
Chapter 6: Smart Israel (II): LZ78 and LZW
Chapter 7: Summary: Comparison and Application of compression methods (with compression of index data)
Chapter 8: capture features: from stroke encoding to binary and grayscale image compression
Chapter 9: familiar formats: GIF and TIFF
Chapter 10: loss of precision: Great JPEG
Chapter 2 Media World: sound and video
Chapter 2: higher goals: Review and Outlook
You must have seen the hierarchical relationships in the book catalog. Yes, this book is organized according to the classification of compression technology in the preface. If you want to systematically learn and master the compression technology, follow this chapter.
Reading in sequence. Of course, if you only use this book as a window to understand the compression technology, or use this book as a quick query manual, you can browse it as needed.