Preface | |
Table of Contents | |
1 | Introduction |
1.1 | Encoding Music |
1.2 | Audio Compression |
2 | Digital Filters and Subband Synthesis |
2.1 | A Simple Filter |
2.2 | The Complementary Filter |
2.3 | The Perfect Filter |
2.4 | Lapped Transforms |
3 | Standard Synthesis Subband Filter |
3.1 | Computational Complexity |
3.2 | The Discrete Cosine Transform |
3.3 | Processor Architecture |
3.4 | Eliminating the Shifting |
3.5 | The Core Algorithm |
3.6 | Performance |
4 | Subbands, the Key to Audio Compression |
4.1 | Seeing Colors |
4.2 | The Human Ear |
4.3 | Psychoacoustics |
4.4 | Minimizing Noise |
4.5 | The Quality of MPEG Audio Coding |
5 | How To Use mp32pcm
|
5.1 | The Header File |
5.2 | Streams |
5.3 | Creating Streams with mp3_open
|
5.4 | Demand Driven Decoding |
5.5 | Reading Streams with mp3_read
|
5.6 | Closing the Stream with mp3_close
|
5.7 | A Simple Application |
5.8 | Options |
5.9 | Information Retrieval |
5.10 | Controlling info_callback and mp3_read
|
5.11 | MPEG Format Information |
5.12 | PCM Format Information |
5.13 | Stream Synchronization |
5.14 | Tags |
6 | How mp32pcm Works
|
6.1 | The Function mp3_open
|
6.2 | The Function mp3_close
|
6.3 | The Function mp3_read
|
6.4 | Output Blocks of Samples |
6.5 | Terminating mp3_read
|
7 | Unpacking the Frame |
7.1 | The Header |
7.2 | Error Protection with the CRC Field |
7.3 | The Side Information |
7.4 | Bit Allocation |
7.5 | Scalefactors |
7.6 | Subband Samples |
7.7 | Reading a Sample |
7.8 | Requantization |
7.9 | Modified Factors |
7.10 | Scaling the Output |
7.11 | Ancillary Data |
8 | Reading the Bit Stream |
8.1 | Reading Bits |
8.2 | Reading Decoder Input |
8.3 | Synchronization |
8.4 | Free Format Bit Streams |
8.5 | Tags |
8.6 | Information Callbacks and Breaks |
9 | Improving the Bit Packing: Layer II |
9.1 | Bit Allocation Tables |
9.2 | Grouping |
9.3 | Scalefactors |
9.4 | Computing the CRC |
9.5 | Reading Layer II Subband Samples |
10 | The Mathematics of Analyzing Components |
10.1 | Vectors |
10.2 | Linear Combinations |
10.3 | The Basis |
10.4 | Scalar Product |
10.5 | Orthogonal Projections |
10.6 | Layer I Frequency Analysis |
10.7 | Layer I Encoding |
10.8 | Layer I Decoding |
10.9 | Linear Mappings and Matrices |
10.10 | Matrix Multiplication |
10.11 | Working with Matrices |
10.12 | Application: The Fast Discrete Cosine Transform |
11 | Some new Ideas: Layer III |
11.1 | Simple Encoding with the Discrete Cosine Transform |
11.2 | Windowing |
11.3 | The Modified Discrete Cosine Transform |
11.4 | Short Blocks |
11.5 | Start and Stop Blocks |
11.6 | Quantization |
11.7 | Scaling |
11.8 | Mid/Side Stereo |
11.9 | Intensity Stereo |
11.10 | Joint Stereo Processing |
11.11 | Alias Reduction |
12 | Huffman Coding |
12.1 | Decoding Frequencies |
12.2 | Decoding Small Values |
12.3 | Decoding Big Values |
12.4 | Efficient Bitwise Access |
13 | Advanced Bit Packing: Layer III |
13.1 | The Bit Reservoir |
13.2 | Decoding Side Information |
13.3 | The Main Data |
14 | Low Sample Frequencies |
14.1 | Frequencies, Bit Rates, and Bands |
14.2 | Decoding Version 2 Layer III Side Information |
14.3 | Bit Allocation for Scalefactors |
14.4 | Intensity Stereo |
14.5 | Generating Output |
Appendix | |
A | Tables and Special Code |
A.1 | Special Output Modes |
A.2 | The 32 Point Cosine Discrete Fourier Transform |
A.3 | Windowing |
A.4 | The 18 Point Discrete Cosine Transform |
A.5 | The 6 Point IMDCT |
A.6 | The Bit Rate Table |
A.7 | The Frequency Table |
A.8 | Mixed Block Boundary |
A.9 | Layer III Fixed Part Length |
A.10 | Layer II Bit Allocation Tables |
A.11 | Computing the Degrouping Tables |
A.12 | Layer III Scalefactor Bands |
A.13 | Layer III Scalefactor Bits |
A.14 | Minimum and Maximum |
B | Theory and Practice of CRC's |
B.1 | Fields and Rings |
B.2 | Polynom Rings |
B.3 | Properties |
B.4 | Bitwise Computation |
B.5 | Bytewise Computation |
C | Equalization |
D | Testing Compliance |
List of Figures, Tables, and Equations | |
References | |
Index | |
Crossreference of Identifiers | |
Crossreference of Code |
Address |
Prof. Dr. Martin Ruckert Munich University of Applied Sciences FB07 Mathematik and Computer Science Postfach 20 01 13 80323 München |
ruckert@cs.hm.edu |