EE 274: Data Compression, Theory and Applications / Fall 2023-24
Updates
- This concludes the Fall 2023 edition of the class. Hope you enjoyed the class and feel free to access the course material (including lecture videos on YouTube linked in the Lectures tab) on the website!
Course Description
Welcome to EE 274, a class on data compression at Stanford! This is the second offering of this course at Stanford. The reviews for the last offering are available via Stanford Carta.
The amount of data being generated, stored and communicated by humanity is growing at unprecedented rates, currently in the dozens of zettabytes (1 zettabyte = 1 trillion gigabytes) per year by the most conservative of estimates. Data compression, the field dedicated to representing information succinctly, is playing an increasingly critical role in enabling this growth. Progress in storage and communication technologies has led to enhanced capabilities, with a perpetual cat and mouse chase between growing the ability to handle more data and the amounts of it required by new technologies. We are all painfully aware of this conundrum as we run out of space on our phones due to the selfies, boomerang videos and documents we collect.
The goal of this course is to provide an understanding of how data compression enables representing all of this information in a succinct manner. Both theoretical and practical aspects of compression will be covered. A major component of the course is learning through doing - the students will work on a pedagogical data compression library and implement specific compression techniques.
The course structure is as follows
- Part I: Lossless compression fundamentals: The first part of the course introduces fundamental techniques for entropy
coding and for lossless compression, and the intuition behind why these techniques work. We will also discuss how the commonly used everyday tools such as
GZIP, BZIP2
work. - Part II: Lossy compression The second part covers fundamental techniques from the area of lossy compression. Special focus will be on understanding current image and video coding techniques such as
JPEG, BPG, H264, H265
. We will also discuss recent advances in the field of using machine learning for image/video compression. - Part III: Special topics The third part of the course focuses on providing exposure to the students to advanced theoretical topics and recent research advances in the field of compression such as image/video compression for perceptual quality, genomic compression, etc. The topics will be decided based on student interest. A few of these topics will be covered through invited IT Forum talks and also available as an option for the final projects.
The course is suitable for both undergraduate and graduate students with basic probability and programming background. Please contact us if you are not sure if the course is for you!