Lineární predikce vzrušená kódem - Code-excited linear prediction
Lineární predikce vzrušená kódem (CELP) je lineární predikce kódování řeči algoritmus původně navržený Manfred R. Schroeder a Bishnu S.Atal v roce 1985. V té době poskytoval výrazně lepší kvalitu než stávající algoritmy s nízkou bitovou rychlostí, jako například zbytkově vzrušená lineární předpověď (RELP) a lineární prediktivní kódování (LPC) vokodéry (např., FS-1015 ). Spolu s jeho variantami, jako je algebraický CELP, uvolněná CELP, CELP s nízkým zpožděním a vektorový součet vzrušená lineární předpověď, je v současné době nejpoužívanějším algoritmem kódování řeči[Citace je zapotřebí ]. Používá se také v Zvuk MPEG-4 kódování řeči. CELP se běžně používá jako obecný termín pro třídu algoritmů, nikoli pro konkrétní kodek.
Úvod
Algoritmus CELP je založen na čtyřech hlavních myšlenkách:
- Za použití model filtrování zdroje produkce řeči přes lineární predikce (LP) (viz učebnice „algoritmus kódování řeči“);
- Použití adaptivního a pevného číselníku jako vstupu (buzení) modelu LP;
- Hledání v uzavřené smyčce v „percepčně vážené doméně“.
- Přihlašování vektorové kvantování (VQ)
Původní algoritmus, který Schroeder a Atal simulovali v roce 1983, vyžadoval 150 sekund na kódování 1 sekundy řeči, když běžel na Cray-1 superpočítač. Od té doby efektivnější způsoby implementace číselníků a vylepšení výpočetních schopností umožnily spuštění algoritmu ve vestavěných zařízeních, jako jsou mobilní telefony.
Dekodér CELP

Než prozkoumáme složitý proces kódování CELP, představíme zde dekodér. Obrázek 1 popisuje obecný dekodér CELP. Buzení je produkováno součtem příspěvků z pevných (aka stochastických nebo inovačních) a adaptivních (aka hřiště) číselníků:
kde je fixní (neboli stochastický nebo inovační) příspěvek do číselníku a je adaptivní (hřiště ) příspěvek číselníku. Pevný číselník je a vektorové kvantování slovník, který je (implicitně nebo explicitně) pevně zakódován do kodeku. Tento číselník může být algebraický (ACELP ) nebo být výslovně uloženy (např. Speex ). Položky v adaptivním číselníku se skládají ze zpožděných verzí buzení. Díky tomu je možné efektivně kódovat periodické signály, například znělé zvuky.
Filtr, který tvaruje buzení, má celopólový model tvaru , kde se nazývá filtr predikce a je získán pomocí lineární predikce (Algoritmus Levinson – Durbin ). Používá se filtr se všemi póly, protože dobře reprezentuje lidský hlasový trakt a je snadno vypočítatelný.
Kodér CELP
Hlavní princip CELP se nazývá Analýza podle syntézy (AbS) a znamená, že kódování (analýza) se provádí percepční optimalizací dekódovaného (syntézního) signálu v uzavřené smyčce. Teoreticky by se nejlepší proud CELP vytvořil zkoušením všech možných bitových kombinací a výběrem toho, který produkuje nejlépe znějící dekódovaný signál. To v praxi samozřejmě není možné ze dvou důvodů: požadovaná složitost přesahuje jakýkoli aktuálně dostupný hardware a výběrové kritérium „nejlépe znějící“ implikuje lidského posluchače.
Aby bylo možné dosáhnout kódování v reálném čase s využitím omezených výpočetních zdrojů, je vyhledávání CELP rozděleno na menší, zvládnutelnější, sekvenční vyhledávání pomocí jednoduché percepční funkce vážení. Typicky se kódování provádí v následujícím pořadí:
- Lineární predikční koeficienty (LPC) se počítají a kvantují, obvykle jako řádkové spektrální páry (LSP).
- Prohledá se adaptivní (hřiště) číselník a jeho příspěvek se odstraní.
- Prohledá se fixní (inovační) číselník.
Vážení hluku
Většina (ne-li všechny) moderních zvukových kodeků se pokouší tvarujte kódovací šum takže se objevuje většinou ve frekvenčních oblastech, kde to ucho nedokáže detekovat. Například ucho je tolerantnější k šumu v částech spektra, které jsou hlasitější a naopak. Proto místo minimalizace jednoduché kvadratické chyby minimalizuje CELP chybu pro percepčně vážené doména. Váhový filtr W (z) je obvykle odvozen od LPC filtru pomocí rozšíření šířky pásma:
kde .
Viz také
- MPEG-4 část 3 (CELP jako typ zvukového objektu MPEG-4)
- G.728 - Kódování řeči při 16 kbit / s pomocí kódu s nízkým zpožděním vzrušuje lineární předpověď
- G.718 - používá CELP pro spodní dvě vrstvy pro pásmo (50–6400 Hz) ve dvoustupňové struktuře kódování
- G.729.1 - používá kódování CELP pro dolní pásmo (50–4000 Hz) ve třístupňové struktuře kódování
- Porovnání formátů kódování zvuku
- KELTŠTINA je související zvukový kodek, který si vypůjčuje některé nápady od CELP.
Reference
- B.S. Atal, „Historie lineární predikce“ IEEE Signal Processing Magazine, sv. 23, č. 2, březen 2006, s. 154–161.
- M. R. Schroeder a B. S. Atal, „Lineární predikce vzrušená kódem (CELP): vysoce kvalitní řeč při velmi nízkých bitových rychlostech,“ v Sborník IEEE Mezinárodní konference o akustice, řeči a zpracování signálu (ICASSP), sv. 10, str. 937–940, 1985.
externí odkazy
- Tento článek je založen na a papír prezentovány na Linux.Conf.Au
- Některé části založené na Speex kodek manuál
- referenční implementace CELP 1016A (CELP 3.2a) a LPC 10e.
- Lineární prediktivní kódování (LPC)