The CELP algorithm is based on four main ideas:
The original algorithm as proposed by Schroeder and Atal required 100 seconds to encode 1 second of speech when run on a Cray I supercomputer. Since then, more efficient ways of implementing the codebooks and improvements in computing capabilities have made it possible to run the algorithm in embedded devices, such as mobile phones.
Before exploring the complex encoding process of CELP we introduce the Speex decoder here. Figure 1 describes a generic CELP decoder. The excitation is produced by summing the contributions from an adaptive (aka pitch) codebook and a fixed (aka innovation) codebook:
:
where |