Content deleted Content added
Maestro2016 (talk | contribs) No edit summary |
IznoRepeat (talk | contribs) m add WP:TEMPLATECAT to remove from template; genfixes |
||
(15 intermediate revisions by 10 users not shown) | |||
Line 1:
{{Short description|Speech coding algorithm}}
{{No footnotes|date=May 2022}}
'''Code-excited linear prediction''' ('''CELP''') is a [[linear predictive coding|linear predictive]] [[speech coding]] algorithm originally proposed by [[Manfred R. Schroeder]] and [[Bishnu S. Atal]] in 1985. At the time, it provided significantly better quality than existing low bit-rate algorithms, such as [[residual-excited linear prediction]] (RELP) and [[linear predictive coding]] (LPC) [[vocoders]] (e.g., [[FS-1015]]). Along with its variants, such as [[algebraic CELP]], [[relaxed CELP]], [[low-delay CELP]] and [[vector sum excited linear prediction]], it is currently the most widely used speech coding algorithm{{Citation needed|reason=No sources to back this claim up.|date=November 2016}}. It is also used in [[MPEG-4 Audio]] speech coding. CELP is commonly used as a generic term for a class of algorithms and not for a particular codec.
==
The CELP algorithm is based on four main ideas:
* Using the [[source-filter model of speech production]] through [[linear prediction]] (LP) (see the textbook "speech coding algorithm");
Line 13 ⟶ 15:
[[File:Celp decoder.svg|300px|thumb|Figure 1: CELP decoder]]
Before exploring the complex encoding process of CELP we introduce the decoder here. Figure 1 describes a generic CELP decoder. The excitation is produced by summing the contributions from
:<math>e[n]=
where <math>e_{
The filter that shapes the excitation has an all-pole model of the form <math>1/A(z)</math>, where <math>A(z)</math> is called the prediction filter and is obtained using linear prediction ([[Levinson recursion|Levinson–Durbin algorithm]]). An all-pole filter is used because it is a good representation of the human vocal tract and because it is easy to compute.
==CELP encoder==
The main principle behind CELP is called
In order to achieve real-time encoding using limited computing resources, the CELP search is broken down into smaller, more manageable, sequential searches using a simple perceptual weighting function. Typically, the encoding is performed in the following order:
Line 39 ⟶ 41:
==See also==
* [[MPEG-4 Part 3]] (CELP as an MPEG-4 Audio Object Type)
* [[G.728]] – Coding of speech at 16
* [[G.718]] – uses CELP for the lower two layers for the band (50–6400 Hz) in a two-stage coding structure
* [[G.729.1]] – uses CELP coding for the lower band (50–4000 Hz) in a three-stage coding structure
Line 51 ⟶ 53:
==External links==
* This article is based on a [http://people.xiph.org/~jm/papers/speex_lca2006.pdf paper] presented at [http://linux.conf.au/ Linux.Conf.Au]
* Some parts based on the [[Speex]] codec [
* [http://www.speech.cs.cmu.edu/comp.speech/Section3/Software/celp-3.2a.html reference implementations] of CELP 1016A (CELP 3.2a) and LPC 10e. {{Webarchive|url=https://web.archive.org/web/20161212000335/http://www.speech.cs.cmu.edu/comp.speech/Section3/Software/celp-3.2a.html |date=2016-12-12 }}
* [https://web.archive.org/web/20090602220112/http://www.otolith.com/otolith/olt/lpc.html Linear Predictive Coding (LPC)]
=== Selected readings ===
* [
* [
{{Compression Methods}}
{{Compression formats}}
[[Category:Speech codecs]]
[[Category:Data compression]]
|