Compression Techniques
Compression Techniques
Compression Techniques
In lossless methods, original data and the data after compression and decompression are exactly the same. Redundant data is removed in compression and added during decompression. Lossless methods are used when we cant afford to lose any data: legal and medical documents, computer programs.
Run-length encoding
Simplest method of compression. How: replace consecutive repeating occurrences of a symbol by 1 occurrence of the symbol itself, then followed by the number of occurrences.
Huffman Coding
Assign fewer bits to symbols that occur more frequently and more bits to symbols appear less often. Theres no unique Huffman code and every Huffman code has the same average code length.
Huffman Coding
Algorithm: Make a leaf node for each code symbol Add the generation probability of each symbol to the leaf node Take the two leaf nodes with the smallest probability and connect them into a new node Add 1 or 0 to each of the two branches The probability of the new node is the sum of the probabilities of the two connecting nodes If there is only one node left, the code construction is completed. If not, go back to (2)
Huffman Coding
Example
Huffman Coding
Have 2 phases:
Building an indexed dictionary Compressing a string of symbols
Algorithm:
Extract the smallest substring that cannot be found in the remaining uncompressed string. Store that substring in the dictionary as a new entry and assign it an index value Substring is replaced with the index found in the dictionary Insert the index and the last character of the substring into the compressed string
Compression example:
Several methods:
JPEG: compress pictures and graphics MPEG: compress video MP3: compress audio
JPEG Encoding
Used to compress pictures and graphics. In JPEG, a grayscale picture is divided into 8x8 pixel blocks to decrease the number of calculations. Basic idea:
Change the picture into a linear (vector) sets of numbers that reveals the redundancies. The redundancies is then removed by one of lossless compression methods.
DCT: Discrete Concise Transform DCT transforms the 64 values in 8x8 pixel block in a way that the relative relationships between pixels are kept but the redundancies are revealed. Example:
A gradient grayscale
Quantization
After T table is created, the values are quantized to reduce the number of bits needed for encoding. Quantization divides the number of bits by a constant, then drops the fraction. This is done to optimize the number of bits and the number of 0s for each particular application.
Compression
Quantized values are read from the table and redundant 0s are removed. To cluster the 0s together, the table is read diagonally in an zigzag fashion. The reason is if the table doesnt have fine changes, the bottom right corner of the table is all 0s.
JPEG Encoding
MPEG Encoding
Used to compress video. Basic idea:
Each video is a rapid sequence of a set of frames. Each frame is a spatial combination of pixels, or a picture. Compressing video = spatially compressing each frame + temporally compressing a set of frames.
MPEG Encoding
Spatial Compression
Each frame is spatially compressed by JPEG.
Temporal Compression
Redundant frames are removed. For example, in a static scene in which someone is talking, most frames are the same except for the segment around the speakers lips, which changes from one frame to the next.
Audio Compression
Audio Encoding
Predictive Encoding
Only the differences between samples are encoded, not the whole sample values. Several standards: GSM (13 kbps), G.729 (8 kbps), and G.723.3 (6.4 or 5.3 kbps)
Thank You