04-801-H2   Data Compression

Location: Africa

Units: 6

Semester Offered: Fall

Course description

This course will present the theory and techniques central to efficiently representing audio, video, and other signals for storage and transmission. Popular video and audio streaming services would be impossible without compression. You will learn the difference between lossy and lossless compression, and how signals can be processed to remove their inherent redundancy. We will also discuss how perceptually acceptable distortions can be introduced into signals as part of the compression process. The compression techniques discussed underly common standards such as MP3, MPEG, and JPEG. The core signal processing techniques used, including quantization, prediction, orthogonal transforms, and sub-band analysis are also useful when analyzing arbitrary data sets even when compression is not the end goal. We will use Python to simulate the performance of various compression techniques. (Prior experience with Python is not required, but basic programming experience is necessary. Python tutorials will be provided as needed.)

Learning objectives

The goal of this course is to introduce students to the theory and practice of data compression, as well as to make students comfortable processing real-world audio and video signals on a computer.


Students will be familiar with core data compression techniques and understand their role in modern information storage and transmission systems.

Content details

  • Review of the needed probability theory
  • Entropy as a measure of information and as a coding performance limit
  • Lossless compression using Huffman and arithmetic codes
  • Uniform and non-uniform quantization including the Lloyd-Max algorithm
  • Data prediction from prior samples as a means to remove redundancy
  • Transformation to reduce the dimensionality of a signal
  • Understanding the role of perception in audio and video compression
  • Introduction to Image and Video Compression (e.g., JPEG and MPEG)
  • Introduction to Music Compression (e.g., MP3)


  • Some prior programming experience and a willingness to learn Python basics
  • 18-751 concurrently or undergraduate probability/statistics
  • 18-771 concurrently or undergraduate Fourier Transform and linear algebra

Course format



Mike Perkins