EE 274: Data Compression, Theory and Applications / Fall 2022-23


Course Description

Welcome to EE 274, a class on data compression at Stanford!

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

  1. 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.
  2. Part II: Lossy compression The second part covers fundamental teqchniques 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.
  3. 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. The topics will be decided based on student interest. Some topics of interest are: distributed compression, succinct data structures, computation & random access on compressed data, image/video compression for perceptual quality.

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!


Teaching Assistants