There are a variety of compression techniques commonly used in the Internet and other systems to alleviate the storage, processing and transmission (and reception) costs for such data.
We start by building a framework for understanding the systems requirements and components in dealing with multimedia flows - to start with, we look at the nature of the information and its use, leading to discussion of general principles of loss free and lossy compression. We look at simple lossless schemes such as Run Length Encoding and systems based on the statistics of frequency of occurrences of codewords such as Huffman codes. We look at substitutional or dictionary based schemes such as the Lemple-Ziv family of algorithms. Then we look at transform based schemes, and the way in which controlled loss of quality can be achieved using these.
We contrast data, audio, still image and moving image, covering the ideas of redundancy in images, sound and motion, We look at the cycles within the data that lead to the signal processing models used by engineers, including those in computer generated and naturally occurring data, leading to model based coding and compression, including future schemes such as wavelet, vector quantization, fractal and hierarchical use of lossy schemes.
We look at Audio Compression. Audio-philes often use the term compression in another way - to refer to the reduction in dynamic range of an audio signal - for example, some noise reduction systems use compression and expansion devices so that the noise w.r.t signal at low power levels (quiet bits) of a piece of music are less noticeable - this is quite different from compression of the amount of data needed to represent a signal at all. We look at the effect of the network on the design of coding and compression schemes - loss of synchronisation, data, re-ordering, and duplication all lead to the need for recovery ponts in the data stream, and place limits on the time-frames that compression (and decompression) can operate over at sender and receiver ends for interactive applications.
We then discuss the main different current approaches and standards for multiplexing of audio and video between sender and recipient. Finally we cover the performance of some example systems.