Office hours (room 339):
Address:
Institute of Computer Science4th October, 2012
The first meeting:
The first meeting will take place on Thursday, 11th October, 2012.
3rd January, 2013
The exam:
The exam at the end of semester will take place on Thursday, 24th January, 2013.
The data compression field has always been an important part of computer science and it is becoming increasingly popular and important today. Although computers become faster and data storage becomes less expensive and more efficient, the increased importance of usage of data necessitates the use of at least a small measure of data compression due to vast storage and transmission requirements. The question in many applications is no longer whether to compress data, but what compression method should be applied.
Data compression is the process of converting an input data stream (the source stream or the original raw data) into another data stream (the output, the bitstream, or the compressed stream) that has a smaller size. A stream can be a file, a buffer in memory, or individual bits sent on a communications channel.
Compression can be either be lossy or lossless. Lossless compression reduces bits by identifying and eliminating statistical redundancy. No information is lost in lossless compression. Lossy compression reduces bits by identifying marginally important information and removing it. The process of reducing the size of a data file is popularly referred to as data compression, although its formal name is source coding (coding done at the source of the data, before it is stored or transmitted).
Compression is useful because it helps reduce resources usage, such as data storage space or transmission capacity. Because compressed data must be decompressed to be used, this extra processing imposes computational or other costs through decompression, this situation is far from being a free lunch.
Students should know:
Main handbooks (password: handbook):
Other books:
Links:
Meetings:
Read the first section from the handbook [1]:
1. Introduction
Questions and exercises:
Read the second section from the handbook [1]:
2. Mathematical preliminaries for Lossless Compression
Questions and exercises:
Read the second section from the handbook [1]:
2. Mathematical preliminaries for Lossless Compression
Questions and exercises:
Read the third section from the handbook [1]:
3. Huffman Coding
Questions and exercises:
Read the second section from the handbook [2]:
2. Shannon-Fano Coding
Questions and exercises:
Read the third section from the handbook [1]:
3. Huffman Coding
Questions and exercises:
Implement Huffman Coding. Write a program for encoding and decoding text files using Huffman coding. Test your program on lrrh.txt file.
Read the third section from the handbook [1] and the handbook [2]:
5. Dictionary Techniques [1]
5. Dictionary Techniques [2]
Questions and exercises:
Read the third section from the handbook [1] and the handbook [2]:
5. Dictionary Techniques [1]
5. Dictionary Techniques [2]
Questions and exercises:
Read the third section from the handbook [2]:
5. Dictionary Techniques [2]
Questions and exercises:
Implement LZSS or LZW coding technique. Write a program for encoding and decoding text files using LZSS or LZW coding. Test your program on lrrh.txt file.
Read the section sixth from the handbook [3]:
5. Grammar Compression [3]
Questions and exercises:
Read the section fourth from the handbook [1] and the handbook [2]:
4. Arithmetic Coding [1]
4. Arithmetic Coding [2]
Questions and exercises: