Instructor: Marina Bosi
Did you ever wonder how your MP3 files squeeze so much sound into such a small size? What is the difference between MP3 and AAC? Or which multichannel audio coding format is best for your application?
The need for significant reduction in data rate for wide-band digital audio signal transmission and storage has led to the development of psychoacoustics-based data compression techniques. In this approach, the limitations of human hearing are exploited to remove inaudible components of audio signals. The degree of bit rate reduction achievable without sacrificing perceived quality using these methods greatly exceeds that possible using lossless techniques alone. Perceptual audio coders are currently used in many applications including Digital Radio and Television, Digital Sound on Film, Multimedia/Internet Audio, Mobile Devices, etc.
This class integrates digital signal processing, psychoacoustics, rate/distortion optimization, and programming to provide the basis for understanding and building perceptual audio coding systems. We review the basic principles underlying all the core components of a perceptual audio codec and study the design choices applied in state-of-the-art audio coding schemes, e.g. AC-3 (aka Dolby Digital), Enhanced AC-3, AC-4; MPEG Layers I, II, and III (MP3); MPEG AAC; MPEG-H. In-class demonstrations will allow students to hear the quality of state-of-the-art implementations at varying data rates and, as a final project, you will be programming your own simple perceptual audio coder.
Below is a tentative schedule, subject to update. Required readings from the course textbook are referenced for each week. As a general rule, readings should be always done according to topics and prior to class. Unless otherwise specified the class will meet at CCRMA (map) on Friday afternoons from 3:15 PM until 5:05 PM, except for the lectures highlighted in red below.
|1/07||Course Overview and Audio Signal Representation||Chapters 1, 3|
|1/18||Time to Frequency Mapping I
NOTE: This class is on a Tuesday from 9-10:30 AM.
|1/21||Time to Frequency Mapping II||Chapter 5||HW2|
|1/28||Introduction to Psychoacoustics||Chapters 6, 7||HW3|
|2/04||Bit Allocation and Basic Building Blocks of an Audio Codec||Chapters 8, 9||HW4|
|2/11||Audio Codecs Evaluation
||Chapters 10, 14||HW5|
|2/18||Overview of MPEG and MPEG-1 Audio Coding||Chapter 11||HW6|
|2/20||HW7 (Project proposal) due by Sunday February 20 at 11:59 PM||HW7|
|2/25||Overview of MPEG-2, AAC and MP3||Chapters 12, 13|
|3/04||Overview of MPEG-4, MPEG USAC, MPEG-H and Other Coding Standards (AC-3, E AC-3, AC-4 etc.)||Chapter 15|
|3/06||Project due by Sunday March 6 at 11:59 PM||FP|
|3/11||Project Presentations (3:15PM-5:05PM)|
To earn 3 units in this course you will have to come to class, participate, do the homework exercises, and complete a final project. This is the final grade breakdown:
There is one required textbook for the class:
M. Bosi & R.E. Goldberg, "Introduction to Digital Audio Coding and
Standards", Springer, 2003, ISBN: 978-1-4020-7357-1.
Marina Bosi is available by appointment.
Champ Darabundit's office hours:
The main course website is accessed through Canvas, Stanford University's learning management system. All homework assignments, grades, and supplementary materials are accessible via the Canvas site, and all homework submissions must take place via your Canvas assignment submission portal.
The homework must be submitted using Canvas’s assignment submission system (in the Assignments tab). For each assignment, select the associated link in that tab and proceed with your submission (for additional information regarding file submissions for assignments on Canvas, read the page here). The homework assigments are carried out in Python, and previous programming experience is neither required nor expected for this course. Python resources are available below.
For each homework, you must turn in 2 items:
For your files, use the following naming convention:
X is the homework number and
is your Stanford ID. For example, the write-up for homework 1 will be
hw1_mab.pdf and the code files
The presentation of your homework (write-up and code) will be evaluated for each of your submission. A well-presented homework may be awarded extra credit. Poorly-presented homework may be penalized.
Below are elements of a well-presented homework:
Typed and scanned homework are equally subject to the guidelines above. Furthermore:
This course includes a final project. The final project consists of the design and implementation of a simple perceptual audio coder. Groups of up to three students typically work together on the final project.
Requirements for the final project include a written proposal by the seventh week of the quarter (2/20), a written report by the ninth week of the quarter (3/6), and a presentation of the report by the end of the quarter (3/11). The aim of the report should be to fully document project design, methodology, and results.
Students may use the computer of their choice for the project, but Python 3.9 (downloadable at https://www.anaconda.com/products/individual ) is the preferred programming language for implementation of the project coder. (Previous Python programming experience is not required.)