CELP

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. június 8-án felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek .

A Code Excited Linear Prediction ( CELP ) kódolás egy  beszédkódoló algoritmus, amelyet eredetileg Manfred Schroeder és B. S. Atal javasoltak 1985-ben. Abban az időben az algoritmus lényegesen jobb minőséget nyújtott, mint a meglévő alacsony bitsebességű algoritmusok , mint például a RELP és az LPC audiokodekek (pl . FS-1015 ). Az olyan változatok mellett, mint az ACELP , RCELP , LD-CELP és VSELP , ez ma a legszélesebb körben használt beszédkódoló algoritmus. A CELP-t jelenleg az algoritmusok egy osztályának általános kifejezéseként használják, nem pedig egy konkrét kodekre .

Bevezetés

A CELP algoritmus négy fő gondolaton alapul:

Schroeder és Atal eredeti algoritmusa 1983-ban, amikor a Cray I szuperszámítógépen futott, 150 másodpercet igényelt egy 1 másodperces beszédjel kódolásához. A kódtáblázatok megvalósításának hatékonyabb módjainak megjelenésével és a számítási képességek javulásával lehetővé vált az algoritmus futtatása beágyazott eszközökön, például mobiltelefonokon.

CELP dekóder

Mielőtt megvizsgálnánk a CELP kódolás összetett folyamatát, nézzük meg, hogyan működik a dekóder. Az ábra a CELP univerzális dekódert mutatja be. A gerjesztés az adaptív (egyébként órajelű ) kódtábla és a rögzített (egyébként sztochasztikus) kódtábla hozzájárulásainak összegzésével történik:

ahol az adaptív (óra) kódkönyvi hozzájárulás és a rögzített (sztochasztikus) kódkönyvi hozzájárulás. A rögzített kódkönyv egy vektorkvantálási szótár, amely (implicit módon vagy explicit módon) kódolva van egy kodekbe. Ez a kódkönyv lehet algebrai ACELP vagy explicit módon tárolt (pl . Speex ). Az adaptív kódkönyv bejegyzései a gerjesztés késleltetett változataiból állnak. Ez lehetővé teszi periodikus jelek, például emberi beszéd hatékony kódolását.

A gerjesztést generáló szűrőnek minden modellpólusa a formában van Ez a szűrő nemcsak azért alkalmazható, mert minden pólust felhasznál, hanem azért is, mert könnyen kiszámítható, és jól reprezentálja az emberi hangot.

CELP kódoló

A CELP alapelve az (Abszolút) "Analysis by Synthesis", ami azt jelenti, hogy a kódolást (analízist) perceptuálisan hajtják végre, optimalizálva a dekódolt jelet egy zárt hurokban. Elméletileg a legjobb CELP adatfolyamot úgy állítjuk elő, hogy az összes lehetséges bináris karakterkészletet kombináljuk, és kiválasztjuk azt, amelyik a legjobb hangzású dekódolt jelet produkálja. Ez nyilvánvalóan két okból nem lehetséges: a megvalósítás bonyolultsága meghaladja a jelenleg rendelkezésre álló hardvereket, és a "legjobb hangzású" kiválasztási kritérium az embert jelenti hallgatóként.

A valós idejű kódolás korlátozott számítási erőforrásokkal való megvalósítása érdekében a CELP keresést kisebb, jobban kezelhető, szekvenciális keresésekre bontják egy egyszerű észlelési súlyozási funkció segítségével. A kódolás általában a következő sorrendben történik:

Zajtorzítás

A legtöbb (ha nem az összes) modern audiokodek megkísérli a kódolás torzítását úgy alakítani, hogy az elsősorban azokon a frekvenciatartományokon jelenjen meg, ahol az emberi fül nem tudja felfogni. Például a fül jobban tolerálja a torzítást a hangtartomány hangosabb részein, és fordítva. Éppen ezért a CELP a másodfokú hiba minimalizálása helyett minimalizálja a súlyozott területen lévő hibákat. A W(z) görbén a súlyozási eredmény általában az LKP szűrőből származik sávszélesség -kiterjesztésen keresztül :

ahol .

Linkek