- Department of Theoretical Computer Science
Students are introduced to the basic principles of data compression. They will learn the necessary theoretical background and get an overview of data compression methods being used in practice. The overview covers principles of integer coding and of statistical, dictionary, and context data compression methods. In addition, students learn the fundamentals of lossy data compression methods used in image, audio, and video compression.
Knowledge of basic data structures, fundamentals of computer programming, and theory of finite automata.
- Syllabus of lectures:
1. Introduction, entropy, models, elementary methods.
2. Coding of integers.
3.  Statistical methods: Shannon-Fano coding, Huffman coding, arithmetic coding.
4.  Dictionary methods: LZ77, LZ78, LZW.
5.  Context methods: PPM, DCA, ACB.
6. Burrows-Wheeler compression.
7. Pattern matching in a compressed text.
8. Word-based compression.
9. Introduction to lossy compression (image, audio, video).
- Syllabus of tutorials:
1. Entropy, models, elementary methods.
2. Coding of integers.
3. Statistical methods, Shannon-Fano coding, Huffman coding.
4. Statistical methods, Arithmetic coding.
5. Dictionary methods, LZ77, LZ78.
6. Dictionary methods, LZW.
7. Context methods, PPM.
8. Context methods, DCA.
9. Context methods, ACB.
10. Burrows-Wheeler compression.
11. Pattern matching in compressed text.
12. Word-based compression.
13. Introduction to lossy compression I (image, audio, video).
- Study Objective:
The course deals with elementary techniques of data compression. The introduction with theoretical background is followed by presentation of methods for coding integers and statistical, dictionary, and context data compression methods. The module ends with an introduction to lossy data compression used in image, audio, and video compression.
- Study materials:
1. Salomon, D., Motta, G., Bryant, D. ''Data Compression: The Complete Reference''. Springer, 2006. ISBN 1846286026.
- Further information:
- No time-table has been prepared for this course
- The course is a part of the following study plans:
- Specialization System Programming, Presented in Czech, Version 2014, 2015 (compulsory course of the branch, elective course)
- Specialization Web Engineering, Presented in Czech, for Students who Enrolled in 2014 and 2015 (elective course)
- Knowledge Engineering, in Czech, Presented in Czech, for Students who Enrolled in 2015 (elective course)
- Master Informatics, Presented in Czech, Version for Students who Enrolled in 2015 (elective course)
- Specialization Web and Software Engineering, in Czech, Version 2016 to 2019 (elective course)