Information Technology | Artificial Intelligence » Beszédkódolási algoritmusok

Datasheet

Year, pagecount:2000, 14 page(s)

Language:Hungarian

Downloads:851

Uploaded:June 07, 2004

Size:166 KB

Institution:
-

Comments:

Attachment:-

Download in PDF:Please log in!



Comments

No comments yet. You can be the first!

Content extract

Beszédkódolási algor itmusok alapelvei Elsőként a beszédkódolási algoritmusok tárgyalásánál fontos szempontokat tárgyaljuk: a bitsebességet, a kódolási késleltetést, a robosztusságot és a rekonstruált beszéd minősítését. Ezután áttekintjük az alapvető beszédkódolási elveket A konkrét realizációkat és azok összehasonlítását a következő fejezetben tesszük meg. Beszédkódolással elérhető bitsebesség A bitsebesség csökkentése az elsődleges célja a beszédkódolásnak. Jelenleg 800 bit/stól 16 kbit/s-ig terjednek a szabványos beszédkódolók Több alkalamzásban azonban a csatornakódolással együtt adják meg a bitsebességet, amely ekkor 24 kbit/s-ig megy fel. Kis bitsebességen (6 kbit/s-ig) elsősorban nem nyilvános biztonsági rendszereket használnak, a kommerciális rendszerek általában nagyobb bitsebességen működnek. Kódolási késleltetés A beszédkódolók általában blokk-kódolók, vagyis adott számú mintát

összegyűjtenek, majd ezeket együtt kódolják - a kódolási késleltetés tehát legalább akkora, amennyi idő alatt az adott számú minta összegyűlik. A teljes rendszer késleltetéséhez még hozzáadódik a számítási idő (a kódolási késleltetésen belül veszik figyelembe), a multiplexelési késleltetés és a továbbítási késleltetés. A gyakorlatban ezért kritikus késleltetési időkövetelmény mellett rövid blokkokat használnak kis számítási komplexitással (pl. a G728 kis késleltetésű kódoló), más esetben csak az emberi érzékelés maximális toleranciáját veszik figyelembe, ami 300400 ms. A beszédkódoló algoritmus robosztussága A beszédkódolók érzékenyek lehetnek a csatornán előforduló bithibázásokra (véletlen bithibák és burst-ös hibát), amely algoritmustól függően más-más hibát okoz a rekonstruált beszédjelben. A blokk kódolók esetében általában az egyedülálló bithibák is okozhatják a teljes blokk

sérülését. A csatornahibák elleni védettség mindig a dekódolt jel minőségromlását és magasabb bitsebességet eredményeznek zajmentes környezetben, viszont javul a minőség csatornazaj esetében - emiatt zajos csatorna mellett ezt a tulajdonságot együtt szokás tárgyalni a rekonstruált beszéd minõségével. A rekonstruált beszéd minõsége A professzinális stúdiótechnika szempontjából ez az elsõdleges paraméter, és kommerciális felhasználás esetén is ez a döntõ szempont akkor, ha a fent említett többi paraméter megegyezik. Jelenleg nincs elfogadott objektív (algoritmikus) mérték a beszédkódolók minõsítésére, ezért általában szubjektív tesztekkel értékelik a kódolókat. Kétféle fõ irányzat létezik a szubjektív tesztek esetében: * szempontok szerinti osztályozás/sobarendezés: az összehasonlítandó kódolókat sok szempont szerint osztályozzák (pl. 1-tõl 5-ig, általában elfogulatlan szakértõkkel) vagy

sorbarendezik, és átlagos minõsítést adnak soroló és kizáró kritériumok alapján 1 * pontozásos értékelés: minden kódoló egyetlen pontszámot kap sok tesztelõ (általában nem szakértõk) bevonásával, és ezeket Apontszámok jelentése az 1.5-ös skálán a következõ: átlagolják. 4 felett: kiváló minőség 3.5-tõl 4-ig: távközlési minõség (érzékelhetõ torzítás, kissé nehezen felismerhetõ beszélõ, de érthetõ szöveg természetes hangzással) 3-ig: gépies hangzású szöveg, nagyon nehezen felismerhetõ beszélõ, még érthetõ szöveg (a legjobb esetben) Beszédkódolási stratégiák A beszédkódolási stratégiák osztályozásának egy lehetséges módja az alábbi: * Hullámforma kódolók (hang tömörítésre is): PCM, DPCM, ADPCM, DM * Vokóderek: LPC-alapú kódolók, Formáns alapú kódolók, stb. * Hibrid kódered: * Frekvenciatartománybeli hibridek: szinuszos modell, MBE-LPC * Idõtartománybeli hibridek: *

Független analízis-szintézis módszerek: APC, RELP * Közösített analízis-szintézis módszerek: MP-LPC, RPE-LPC, CELP, SELP, VSELP Hullámforma kódolók Ebben a kódolási módban nem használjuk ki a beszéd speciális tulajdonságát, és egy szerû mintavételezett hanghullámként kódoljuk. A PCM (Pulzus-Kód Moduláció) a legegyszerûbb eljárás. Ekkor a jelbõl mintát veszünk (beszéd esetén 8 kHz, esetleg 16 kHz, áltatlános hang esetén még 22 kHz, 32 kHz, 44.1 kHz és 48 kHz mintavételi frekvencia is szóbajöhet) és a mintavett jelet kvantáljuk. Nemcsak egyenletes, hanem nem-egyenletes kvantálást is alkalmaznak, ezeket általában kompanderes kvantálással: az analóg mintát finoman mintavételezik (sok bitre), majd ennek egy nemlineáris függvénnyel (kompanderrel) vett értékét újrakvantálják kevesebb bitre. Kompander függvényként µ-törvényû és A-törvényû kompandert használnak. A differenciális PCM (DPCM) már kihasználja a

szomszádos minták közötti P redundanciát: egy adott P-edfokú A(z) = ∑ a i ⋅ z −i rövidtávú prediktor függvénnyel i=1 számítja ki az x(t) minta becslését az elõzõleg dekódolt P mintákból, vagyis: P x(t) = ∑ a i ⋅ x(t - i) i=1 és a tényleges minta és a becslés különbségét kvantálják és küldik a dekódernek. 2 Kvantáló + + A(z) + A(z) DPCM dekódoló DPCM kódoló .Ábr a A DPCM rendszer blokkdiagrammja A DPCM rendszer két változata a delta moduláció (DM) és az adaptív DPCM kódolás. A delta moduláció esetén a hibajelet csak 1 biten kódolják Az ADPCM esetén mind a prediktor, mind pedig a kvantáló változhat a már kódolt jel statisztikájának felhasználásával. A most említett prediktív kódolást a jelfeldolgozásban rövidtávú predikciónak (STP Short Term Prediction) is nevezik, mert a predikcióhoz használt minták a szomszédos, vagyis idõben közeli minták voltak. A STP prediktorát a prediktor

együtthatókal (a1P) lehet megadni. Az ún. hosszútávú predikció (LTP-Long Term Prediction) szintén elterjedt a beszédkódolásban: itt a jel idõben korábbi részébõl (tipikusan az alapfrekvenciának megfelelõ periódusidõvel vagy annak néhányszorozával ezelõtti jelet) becsüljük a jelenlegi jelet. Az LTP prediktora tipikusan A L (z) = g ⋅ z − L alakú, vagyis egy L hosszú késleltetõbõl és egy g erõsítésû erõsítõbõl áll, ahol L és g a jel statisztikája alapján választott paraméter. A prediktor együtthatók kódolása kétféle módon lehetséges: * elõre adaptív prediktorok: mellékinformációként elküldjük * visszafelé adaptív prediktorok: a prediktorok paramétereit a dekódolt jel statisztikája alapján számítjuk (utólag, a dekódolás után), így nem kell elküldeni - + a prediktor STP-1 STP paramétereit kódoljuk, és + AL(z) AL(z) LTP kódoló LTP dekódoló STP-LTP kódoló STP-LTP dekódoló A

beszédkódolásban a rövidtávú predikciót gyakran lineáris predikciónak nevezik, bár a hosszútávó predikció is lineáris predikció. A rövidtávú prediktort szûrõként felfogva 3 a rövidtávú prediktort LPC szintézis szûrõnek (LPC - Linear Prediction Coding Lineáris Predikciós Kódolás), vagy röviden LPC szûrének nevezik. A hosszúvávú predikciót pedig az alapfrekvenciával való kapcsolata miatt alapfrekvencia szintézis szûrésnek is nevezik Vokóderek A vokóderek az emberi beszéd fizikai modelljén alapulnak, amely a levegõ áramlását modellezi a hangképzõ szervekben. Hangszalagok rezgése Vokális traktus Spektrum korrekció Vokóderek általános felépítése Fr ekvenciatar tománybeli vokóder ek A frekvenciatartománybeli vokóderek esetében a beszédspektrumot kódolják le, és ebbõl állítják elõ a beszédjelet. Az ún. csatorna vokóderek esetében a beszédspektrum a vokális traktus spektrumának és a gerjesztõjel

spektrumának a szorzata. A vokális traktus spektrumát 1619 sávszûrõvel állítják elõ, a szûrõk kimenetét nevezik csatornának. A csatornák sávszélessége a Bark skálán körülbelül egyenlõ. A zöngés hangok gerjesztõjelei az alapfrekvencia alapján periodikus hulámok, míg a zöngétlen esetben zajszerû jelek. A formáns vokóderekben a formáns-frekvenciákat keresik meg, néhány formáns szintézis oszcillátor jelének összege adja ki a visszaállított jelet. A fázis vokóderekben szinusz-oszcillátorok kimenetének keverésébõl állítják elõ a beszédjelet, ahol a kódolt beszég a lényeges frekvenciákat és azok erõsítését tartalmazza. A frekvenciatartománybeli vokódereket ma már önmagukban ritkán használják, de az itt kidolgozott elveket jól hasznosítják a hibrid vokóderekben. I dõtar tománybeli vokóder ek Az idõtartománybeli vokóderek alapja az LPC vokóder, amely egyben a jelenleg használt hibrid vokóderek legfontosabb

része. Az LPC vokóderben a következõ módon modellezik a beszédet: * hangszalagok rezgése: impulzussorozat a zöngés, zaj a zöngétlen keretekre * vokális traktus: néhány kétpólusú rezonátor kaszkádba kötve, ezek modellezik a toroküreget, a szájüreget, a nyelvet és a szájnyílást * spektrum korrekció: a pólusok kisfrekvenciás hatásait kompenzáló szûrõket alkalmaznak ezen a ponton 4 Frekvenciatartománybeli hibrid beszédkódolók Az hibrid beszédkódolók a fenti alapelveket alkalmazzák. A frekenciatartománybeli hibrid beszédkódolók az analízist a frekvenciatartományban végzik, míg az idõtartománybeliek döntõen az idõtartományban. A részsávos és transzformációs kódolók, emiatt nemcsak beszédkódolósra alkalmazhatóak. Ezek a módszerek általánosságuk miatt jobban mûködnek zajos beszéd, illetve nagyon sok beszélõ együttes beszédekor is. Speciális frekvenciatartománybeli hibrid beszédkódoló algoritmus a

szinuszos beszédmodell alapú kódoló, ahol a jelet (a fázis vokóderhez hasonlóan) néhány szinuszos jel összegeként állítják elõ az idõtartományban, ahol a szinuszhullámok amplitudója, frekvenciája és fázisa a kódolt beszéd. A másik legelterjedtebb frekvenciatartománybeli hibrid beszédkódoló az MBE-LPC kóder (Multiband Excitation - többsávos gerjesztés), ahol a gerjesztõjel részsávokra van osztva, és a részsávokon belül lehet megadni, hogy zöngés vagy zöngétlen a hang. I dõtartománybeli hibrid beszédkódolók Az idõtartománybeli hibrid kóderek a jelenlegi uralkodó beszédkódolók. A domináns módszer a lineáris predikció alkalmazása (mint rövidtávú predikció). Az egyszerûbb modellekben az analízis rész nem használja a rekonstruált beszédet (független analízis-szintézis módszerek), a közösített analízis-szintézis módszerek viszont igen. Ez utóbbi nagyobb kódolási komplexitás mellett több információt tud

kihasználni, amivel hatékonyabb tömörítést lehet végezni. Független analízis-szintézis módszer ek A legalapvetõbb ilyen módszer az adaptív prediktív kódolás (APC - Adaptive Predictive Coding). Az APC mind rövidtávú, mind hosszútávú prediciót használ A kódoló keretekre osztja a beszédjelet, meghatározza egy keret LPC együtthatóit (rövidtávú predikció), és elküldi a dekódolónak. Ezután a beszédjelet az inverz LPC szûrével megszûri, az így kapott jel a maradékjel, amely az LPC szûrõ gerjesztõjele. A maradékjelet ezután mintánként kvanálják és szintén elküldik a dekódernek. A dekóder LPC szûrõjének a gerjesztõjele így a visszaállított maradékjeljel lesz. Az APC továbbfejlesztett változatában a maradékjelet decimálják (tipikusan 3-as vagy 4-es faktorral), és az így kapott jelet kódolják, mint gerjesztõjelet. A dekóderben a maradékjelet interpolálják (a decimálás inverze), és az így kapott

impulzusokkalgerjesztik az LPC szûrõt. Ezt a kódolást nevezik RPE-LP-nek, ahol az RPE (Residual Pulse Excitation) maradékjel impulzusokkal való gerjesztést jelent, az LP pedig lineáris predikciót. K özösített analízis-szintézis módszer ek A közösített analízis-szintézis módszerek alapötletét az ún. MPLPC (Multi-Pulse excited LPC), többpulzusú LPC módszer adja. Ez a módszer Egy olyan LPC kódoló, amely gerjesztõ jele egy blokkon belül rögzített számú impulzusból áll, ahol az impulzus nem-nulla mintát jelent. A kódoló feladata megtalálni a blokk maradékjelében az adott számú impulzust, az impulzusok pozícióit egy iteratív 5 keresztkorrelációs algoritmussal határozza meg úgy, hogy egy ciklus alatt csak egy impulzus helyét rögzíti, majd a maradékjelbõl kivonja a megtalált impulzus hatását. Ennek az iteratív eljárásnak az egyszerûsítése az RPELP és az MPLPC szintéziseként létrehozott RPE-LPC módszer (ahol az RPE

szintén maradékjel impulzusokkal való gerjesztést jelent), ahol az impulzusok távolsága rögzített, és csak a kezdõ impulzus pozícióját kell megtalálni. A gerjesztõjel jelenlegi leghatékonyabb kódolási módszere a kódgerjesztésû lineáris predikciós (CELP - Code-Excited Linear Prediction) beszédkódolás. Ekkor a blokk maradékjelét részekre bontják (pl. a 20 ms-os blokkot 4 5 ms-os alblokkra), és ezeket vektorkvantálóval kvantálják. Mivel a vektorkvantálás nagy komplexitású mûvelet, ezért több módszer született a vektorkvantálás komplexitásának csökkentésére. A VSELP kódolában a gerjesztõjel alblokkjai nem egyetlen kódvektorból, hanem több (2-3) kódvektor összegébõl származnak. A vektorkvantálók kódkönyvtára lehet adaptív és sztochasztikus is. A SELP algoritmusnál az adaptív kódkönyvtárat maga a hosszútávú predikció adja ki, vagyis az eddigi gejresztõjelbõl a legmegfelelõbbet kell megkeresni, és azzal kell a

szinézis szûrõt gerjeszteni, majd beléptetni a memóriába, mikozben a legrégebbi vektor kilép. A SELP algoritmus annyival több a hosszútávú predikciónál, hogy mintavétel alatti távolságban is megenged pozíciókat, amit minták közötti interpolációval valósítanak meg. Szintén elterjedt és hatékony módszer az algebrai kódgerjesztésû beszédkódolás (ACELP - Algebraic Code-Excited LP). Itt a blokkon belül az impulzusoknak rögzített pozíciója van, ami algebrai úton írható le. Tipikus leírási mód a beszédkódolókban, hogy a blokkotot diszjunkt, de átlapoló részekre bontják (pl. modulo 5 a GSM EFR-ben, modulo 10 az MPEG-4 CELP-ben), és egy részen belül rögzített számú impulzust engednek meg. Az impulzusok amplitudója ±A, ahol A a rész amplitudója, a rész többi mintája 0. Az LPC szûrõ hatékony kódolása és implementálásas Mivel az LPC beszédmodellekben az LPC szûrõ adja a beszédjel spektrális burkolóját, ezért annak

hatékony kódolása nagyban meghatározza a rekonstruált beszéd minõségét. Mivel a beszédet veszteségesen kódolják, ezért a kvantált LPC együtthatók torzításán túl a szûrõ stabilitása is kérdéses. A szûrõ stabilitását általában úgy valósítják meg, hogy nem direkt formában, vagyis P A(z) = ∑ a i ⋅ z −i szûrõvel szûrnek, hanem az ún. lepkeszûrõvel (lattice filter) i=1 Σ z-1 Σ Σ Σ Σ Σ -kN -kN-1 -k1 -kN -kN-1 -k1 z-1 Σ Σ z-1 z-1 Σ z-1 A lepkeszûrõ ki paramétereire, az ún. PARCOR (parciális korrelációs) együtthatókra a stabilitási feltétel a |ki |≤1, ahol a PARCOR paraméterek száma megegyezik az LPC 6 paraméterek számával. Mivel a PARCOR paraméterek az 1 közelében nagyobb érzékenységet mutatnak a kvantálásra, ezért azok nemlineáris függvényét használják, mint például az IS (inverz szinusz) vagy a LAR (log area ratio) reprezentációt. A LAR definíciója:  1 − ki  LARi

= log   1 + ki  A LAR és IS paraméterek jól kvantálhatóak, és az elõbbit széles körben használják. A gyakorlatban a legjobb jelrekonstrukcióhoz mindig a fenti PARCOR alapú szûrést alkalmazzák, mégha a kvantálást nem is PARCOR együtthatókon végzik el. Szintén elterjedt és népszerû az ún. vonalas spektrum frekvenciás (LSF - Line Spectral Frequency) vagy a vele rokon spektrumvonal páros (LSP - Line Spectral Pairs) ábrázolás, ahol az LSP paraméterek az LPC szûrõ és annak konjungáltjából képezett összegpolinom, vagyis P(z)=A(z)+z-p-1A(z-1) és különbségpolinom, vagyis Q(z)=A(z)z-p-1A(z-1) gyökei párban, és mivel P(z) és Q(z) gyökei, vagyis az LSP-k az egységkörön vannak, vagyis ejϖ alakúak, ezért az LSP-knek megfelelõ frekvenciákkal is le lehet írni a szûrõt, és eze a frekvenciák az LSF paraméterek. A LSF frekvenciák kvantálásával a gyökök továbbra is az egységkörön vannak, a stabilitáshoz csak azt kell

biztosítani, hogy a szigorúan monoton növekedés tulajdonsága végig megmaradjon. Az LSF paraméterek nagyjából a beszédspektrum csúcsait és "völgyeit" veszik körbe, emiatt erõsen emlékeztetnek a beszéd formánsaira. A jelenlegi legjobb kódolók az LSF paramétereket használják, de pl. a beszédfelismerésben is népszerû Mivel az LSF paraméterek között kereten belül és keretek között is nagy a korreláció, ezért a jelenleg legjobb kódolási technika a keretek közötti prediktív vektorkvantálás. A beszédformánsokhoz való hasonlósága miatt az LSF paraméterekbõl jól becsülhetõ a kvantálási torzítás szubjektív hatása is, ezért a vektorkvantálást nem az egyszerú euklideszi távolsággal, hanem súlyozott négyzetes hibával valósítják meg a korszerû kódolókban, ahol a súlyt az LSF paraméterekbõl számítják. Végezetül meg kell említeni, hogy a legtöbb kódoló az ún. elõre adaptív kódolást alkalmazza, ami azt

jelenti, hogy a jelet blokkora osztják, a blokkok autokorrelációs mátrixából kiszámítják a szûrõparamétereket (az LPC paramétereket a Levinson-Durbin, a PARCOR paramétereket a Shur-algoritmussal), és azokat kvantálva elküldik. Az ún. visszafelé-adaptív módszer a jel autokorrelációs mátrixát az eddig dekódolt mintákból becsüli, így nincs szükség a szûrõparaméterek elküldésére, azonban a jó becslés érdekében csak kis kódolási késleltetést, azaz rövid blokkokat szabad használni (a lokális autokorrelációs mátrixok a távolság változásával egyre eltérõek lesznek), és a rekonstruált beszédjel minõségét is magas szinten kell tartani. A viszafelé adaptív szûrés nyilvánvalóan a közösített analízis-szintézis módszerek körébe tartozik. Az LPC szûrés hatékonysága természetesen nõ a fokszámmal, és mivel a nagy együtthatószám a visszefelé adaptív esetben nem okoz bitsebesség növekedést, ezért ekkor

tipikusan nagy fokszámú szintézis szûrõt alkalmaznak. 7 US szvetségi szabványok Az FS1015 és FS1016 szabványok (FS - Federal Standard) két alapvetõ beszédkóolási eljárást tartalmaznak. Az FS1015 kódoló 24 kbit/s-os kódolást hajt végre A 70-es évek végétõl sok változata került megvalósításra, az egyik ilyen, az ún. LPC 10-es lett igen népszerû. Az LPC10-es algoritmus 20 ms-os kereteket használ, ahol az LPC paramétereket PARCOR ábrázolásban 36 biten kódolja. A gerjesztõjel energáját és alapfrekvenciáját 6-6 biten kódolja le. Az alapfrekvencia 0 értéke zöngétlen hangot jelent, ekkor fehérzaj a gerjesztõjel, egyébként pedig periodikus impulzusok az alapfrekvenciának megfelelõen, vagyis ez az egyszerû módszer már használ zöngészöngétlen döntést és alapfrekvencia meghatározást. Az FS1016 egy 4.8 kbit/s-os beszédkommunikációra találtak fel. CELP beszédkódoló, amelyet modemes Az I TU (régebben CCI TT)

hangtömörítõ családja Az alapvetõ kódolási szabvány a G.711-es jelû szabvány, amely PCM (Pulse Code Modulation - Pulzus Kód Moduláció) mintákkal ábrázolja a folytonos hangjelet, a javasolt mintavételi frekvencia 8kHz. Ekkora mintavétellel legfeljebb csak 4kHz-ig ábrázolhatóak a frekvenciák, a gyakorlatban a mintavétel elõtti aluláteresztés miatt ennél valamivel kevesebbel. A G.711 szabványban egy mintát az adott 212 szint közül a négyzetes hiba értelmében legközelebbi szintre kvantálják és 8 biten ábrázolják. A szintek nem lineárisan, hanem vagy az ún. A-törvény, vagy pedig az ún µ-törvény szerint vannak kiosztva Az Atörvény inkább Európában, a µ-törvény pedig Amerikában terjedt el A logaritmikus kiosztás azzal magyarázható, hogy az emberi hallás alacsony jelszinten érzékenyebb, mint magasabb jelszinten, így alacsony jelszinten több szintet kell tartalmaznia a kvantálónak. A többi ITU-T szabvány a következõ:

Szabvány száma G.721 G.722 G.7231 G.725 G.726 G.727 G.728 G.729 Szabvány neve ADPCM 7 kHz sávszélességû hang kódolása 64 kbit/s-os bitsebeségre Beszédkódoló multimedia kommunikáció céljára 5.3 és 63 kbit/s-ra A G.722 használatának rendszervonatkozásai 40, 32, 24, 16 kbit/s-os ADPCM 5-, 4-, 3- és 2-bites ADPCM 16 kbit/s-os kis késleltetésû CELP beszédkódoló 8 kbit/s-os CS-ACELP beszédkódoló Az I TU ADPCM kódolói ADPCM (G.721) 32 kbit/s-os kimeneti bitsebességet produkálA G721 ADPCM-et használják a DECT (Digital European Cordless Telephone) és a CT2 (Cordless Telephone II) szabványokban. A G726 ADPCM lehetõvé teszi a 64 kbit/s-os PCM jel konverzióját 40, 32, 24, vagy 16 kbit/s csatornára. A G727-es szabvány a G726-os kiterjesztése, és lehetõvé teszi az ADPCM kódolást 40, 32, 24, vagy 16 kbit/s csatornára (mintánként 5, 4, 3 és 2 bittel) úgy, hogy képes a beszédcsomagok méretét igény szerint változtatni, ami kommunikációs

alkalmazásokban alapkövetelmény. A csomagméret változtatása így sokkal jobb beszéd-, illetve 8 hangminõséget produkál, mintha csak bizonyos csomagokat eldobtunk volna. A G.727 fenti módosítása a G726-hoz képest azért történt meg, hogy az alkalmas legyen csomagkapcsolt beszédátvitelre, kifejezetten az ITU G.764-es PVP (Packetized Voice Protokol) szabványára. A G.722 és G725 magasabb minõségi követkelményekre készült Míg az eddig említett szabványok 8kHz-es mintavételi frekvenciával mûködtek 3.4kHz-es maximális frekvenciát megengedve, addig a G.722 és G725 16 kHz-es mintavétellel mûködik, és 50Hz-tõl 7kHz-ig teszi lehetõvé a hanganyag átvitelét. E két ajánlás részsávos kódolást használ 2 részsávban, és a részsávokon belül pedig ADPCM kódolást. A nagyobb mintavételi frekvencia miatt ez a kódoló 64 kbit/s-os bitsebességet produkál, a 7kHz-en mintavétel lehetõségein belül jó minőségben. Az I TU beszédkódolói

Az ITU-T ajánlások között három beszédkódoló található, a G.7231-es és G729-es ajánlásokban elõre adaptív a szintézis szûrõ, míg a G.728-ban visszafelé adaptív A G.728-as kis késleltetésű CELP kódoló A G.728-as a többi beszédkódolóhoz képest ritkaságszámba menõ visszafelé adaptív szintézisszûrõt használ. Ennek a feltételei a kódolóban teljesülnek, hiszen kis kódolási késleltetést, azaz rövid blokkokat használnak (5 ms-os), és a rekonstruált beszédjel minõsége is magas, aminek az ára a magas bitsebesség, ami 16 kbit/s. A G.728 a maradékjelet vektorkvantálással kódolja le A bemeneti vektorok 5 mintából állnak (0.625 ms!), a vektrokvantáló egy 7 bites "forma"-kódkönyvtárat és egy 3-bites "erõsítés"-kódkönyvtárat alkalmaz. A 8 kHz-es mintavétel mellett tehát 16ezer bit jut egy másodpercre. A vektorkvantáló fix kódkönyvtárakat használ (tisztán CELP kódolás), ellentétben a többi

módszerhez, ahol éppen a kódkönyvtárat (illetve a kétszintû vektrokvantáló alsó szintjét) veszik adaptíven a jelbõl, és szûrõt kódolják le és küldik a dekódernek. A G.728-as beszédkódolója A G.728-as dekódoló része A fenti ábrán a G.728-as kódoló és dekódoló része látható A G728-as a vektorkvantálás során kapott gerjesztõjelet tovább skálázza visszafelé adaptív módon, ahol a skálázó tényezõt minden negyedik vektor után, vagyis 2.5 ms-onként újraszámítja. Hasonlóan az LPC szûrõt is visszafele adaptív módon számítja ki, és az elõre adaptív esethez képest nagy fokszámú szûrõt, 50-fokút alkalmaznak. 9 G.7231: Beszédkódoló multimedia kommunikáció céljára 53 és 63 kbit/s-ra A G.7231-es ajánlás kódolója LSP reprezentációt használ 10-edrangú LPC analízissel 30 ms-os keretre. A kereteket az LPC analízishez 75ms-mal átlapolódnak A gerjesztõjel kódolása 5.3 kbit/s-os bitsebességre ACELP, míg

63 kbit/s-on egy MPLPC, amit itt MP-MLQ-nak neveznek (MP-MLQ - Multipulse Maximum Likelihood Quantization ). Az LPC szűrőt LSP paraméterekként kódolják. A 10 LSP paraméterek előállításához az előzőleg dekódolt vektorból egy elsőrandú predoktorral megbecsülik a jelenlegi LSP vektort, majd a becslési hibajelet egy osztott vektorkvantálóval kódolják, amelynek dimenziói 3, 3 és 4, mindegyik vektorkvantáló 8 bites kódkönyvtárat használ. Mindkét bitsebességen használnak egy LTP kódolást is, ahol a késleltetést és az erésítést kódolják le. Az LTP kódolás előbb nyílt hurkú, majd ezt egy zárthurkú kereséssel pontosítják. Az alábbi ábrán a gerjesztőjel kódolásának egy általános modellje látható, amely ebben a kódolóban is megtalálható. A gerjesztőjel egyik részét az ún adaptív kódkönyvtár adja, amely a hosszútávú predikciónak (LTP-nek) felel meg. Az adaptív kódkönyvtár elemei az előzőleg dekódolt jelből

számított maradékjelek, de a vektorok nemcsak részkeret-határokon helyezkedhetnek el, hanem egy tartományon belül tetszőleg kezdőponttal. Ez a kódkönyvtár azért adaptív, mert csak egy lokális környezet vektorait tartja meg, a régivé vált vektorok a kódolás során kisenek a keresési tartomáynból, és így a kódkönyvtárból is. A fix kódkönyvtárat pedig vagy egy táblázattal, vagy valamilyen (kódolást is segítő) összefüggéssel adják meg. A két vektorkvantáló összegét kvantált erősítés-értékekkel szorozzák meg és úgy adják össze. Fix kódkönyvtár Kódszó index Kódszó index Gf LPC szintézis Ga Dekódolt LPC szû rõ Utófeldolgozás Dekódolt beezéd Adaptív kódkönyvtár Az MP-MLQ négy alkereten kódolja le a maradékjelet, a páros keretekre 6, a páratlanokra 5 impulzust kódol le. Az algoritmus csak annyi megszorítást ad meg az impulzusokra, hogy egy részkereten belül vagy csak páros, vagy csak páratlan

pozíciókban lehetnek. Az impulzusokhoz mellé még lekódolják az impulzusok energiáját is logaritmikus kvantálóval. 6.3 kbit/s MP-MLQ 0. rész 1. rész 2. rész 3. rész Össesen 24 LSP Adaptív kódkönyvtár késleltetés 7 2 7 2 18 Energiák/erõsítések együtt kódolva 12 12 12 12 48 Pulzus pozíció <20 <18 <20 <18 73 Pulzus elõjelek 6 5 6 5 22 10 Páros/páratlan pozíció 1 1 1 1 4 189 Össesen A CELP kódoló hagyományos felépítésű, az impulzusok helye modulo 8-ban 0, 2, 4 és 6 lehet páros pozcióban, és páratlan pozícióban eggyel feltolva, amit egy biten jeleznek. Minden impulzus pozíciója 3 biten van kódolva, az impulzus előjele további 1 bit. Egy részkereten belül összesen 4 impulzus tatlálható 5.3 kbit/s ACELP 0. rész 1. rész 2. rész 3. rész Össesen 24 LSP Adaptív kódkönyvtár késleltetés 7 2 7 2 18 Energiák/erõsítések együtt kódolva 12 12 12 12 48 Pulzus

pozíció 12 12 12 12 48 Pulzus elõjelek 4 4 4 4 16 Páros/páratlan pozíció 1 1 1 1 4 158 Össesen A G.729 CS-ACELP beszédkódoló A G.729-es kódoló 8 kbit/s-os bitsebességre készült A kódoló 10 ms-os (80 mintás) keretet használ, a hosszútávú predikcióra és az ACELP kódolásra egy keretet két félre oszt. A kódoló egyik érdekessége a nagyon jó minõségû LSF kvantálás A kódoló 10 ms-os kereteket használ, a gerjesztõ jel kódolása adaptív-kódkönyvtár és konjugált struktúrájú (CS- Conjugate Structure) ACELP kódolás felhasználásával történik. Az LSF kvantálása 4-szintû keretek közötti predikcióra, valamint kétszintû vektorkvantálásra épül. A 4-szintû predikcióhoz az elõzõleg dekódolt 4 LSP vektort kell megtartani. A becslési hibát elõször egy 10 dimenziós vektorkvantálóval kódolják, az így kapott hibát pedig egy 5+5 dimenziós osztott vektorkvantálóval. Az adaptív kódkönyvtár és az

ACELP kódolása hasonló a G.723-1 kódolásához, de annak kifinomultabb változata. Az adaptív küdkönyvtár érdekessége, hogy mintán belüli pozíciót is ki lehet jelölni (1/3 vagy 2/3 pozícióban), ekkor a dekódoláshoz az adaptív kódkönyvtár megfelelõ vektorát interpolációval lehet meghatározni. Az ACELP kódoló 4 impulzust keres a fél kereten belül, az elsõ 3 pozícióját 3, a negyedik impulzus pozícióját pedig 4 bittel írja le. A négy elõjelbittel együtt így 17 bit jut az ACELP paraméterekre. 8 kbit/s CS-ACELP LSP Adaptív kódkönyvtár késleltetés Energiák/erõsítések együtt kódolva Pulzus pozíció Pulzus elõjelek Össesen 0. rész 1. rész 9 7 13 4 4 7 13 4 11 Össesen 18 13 14 26 8 79 Az ETSI (European Telecommunications Standards Institute) GSM 6.10 LTP-RPE beszédkódolója A GSM 6.10-es algoritmusban a predikció rövidtávú és hosszútávú predikció is megtalálható. A 8kHz-en mintavételezett jelet 160 mintás (20

ms-os) blokkokra osztják, és azon 8-adrangú LPC analízist végeznek el a Shur-rekurzióval, vagyis PARCOR paramétereket határoznak meg. A szomszédos keretek között az LPC szûrõ interpolációját is a PARCOR paraméterek lineáris interpolációjával oldják meg, és a PARCOR paramétereket LAR reprezentációban skalár kvantálásával kódolják le. A 160 mintás keretet ezután négy 40 ms-os részkeretre bontják fel, és mind a négy keretre elvégzik a hosszútávú predikciót (LTP). A hosszútávú predikciót két paraméterrel adják meg, a késleltetés hossza legalább 40 minta (tehát csak az elõzõ részkeretre és azelõttre lehet hivatkozni), a másik paraméter pedig a csillapítás, amit szintén skalár kvantálással kódolnak le. A rövidtávú és hosszútávú predikció után közösített analízis-szintézis elven a szintézis szûrõkkel kiszámítják a maradékjelet, és mind a négy részkeretre meghatározzák a gerjesztõ impulzusokat RPE

elven. Egy részkereten belül 13 impulzus van, az elsõ impulzus 4 az elsõ négy minta bármelyike lehet, ezt 2 biten kódolják. A gerjesztõ impulzusok távolsága 3, így a maradékjelet aluláteresztik, és ebbõl határozzák meg a 13 impulzus amplitudóját, amit ezután ADPCM kvatnálóval kvantálnak. A gerjesztõ impulzusokhoz még 6 biten kódolják a gerjesztõjel enerigáját is. A keretenként kapott 260 bit kiosztását a következõ táblázat tartalmazza A kódolt keret bitjei bájthatárra kerekítik, így 264 bit (33 bájt) jut egy keretje. A GSM 6.10 LTP-RPE bitkiosztása 8 LAR paraméter LTP késleltetés LTP csillapítás Elsõ impulzus pozíciója A 13 impulzus amplitudója A 13 impulzus globális energiája Összesen Részkereten belül 7 2 2 13* 3 6 Kereten belül 36 28 8 8 156 24 260 bit/keret (13.2 kbit/s) CELP beszédkódolók az ETSI-tõl: a GSM 6.60 EFR és a Tetra beszédkódoló Az újabb kutatási eredményeknek köszönhetõen az ETSI 1997-ben és

1998-ban két új, LSF és CELP alapú beszédkódoló szabványt fogadott el, az ETSI EN 300 726os szabványszámú GSM 6.60 EFR (Enhanced Full Rate) és az ETSI EN 300 395-2-es szabványszámú Tetra (Terrestial Trunked Radio) beszédkódolót. A két beszédkódoló felépítése funkcionálisan ugyanaz, de más bitsebességre készültek, emiatt más kódolási paramétereket használnak. A GSM 660 EFR fõbb részei: * * * 8 kHz mintavétel, egy blokk 160 minta (20 ms). A 160 mintát 4 részblokkra osztják, egy részblokk így 40 minta (5 ms). A 2. és 4 blokkra végzik el az LPC analízist (10-edrangú LPC analízis a Levinson-durbin algoritmussal). 12 * * * * * Az LPC együtthatókat LSF paraméterekké konvertálják, a két részblokk LSF paramétereit együtt kvantálják. Az 1. és 3 részblokk LSF paramétereit interpolálják a szomszédos részblokkokból. Nyílthurkú LTP analízis a blokk elsõ és második félre, a késleltetésre mindkét félre összesen 3

jelölttel. Adaptív kódszó megkeresése részblokk alapon: a maradékjelet kiszámítják, és a 3 késleltetés jelölt kis környezetében kiválasszák a legjobbat (tört-pozíciós felbontási pontossággal!), illetve a hozzá tartozó csillapítást (SELP kódolás). Az 1. és 3 részblokkban abszolút pozíció, a 2 és 4 részblokkban az elõbbiekhez képest relatív pozícióval adják meg. Az adaptív kódszó hatását levonják a maradékjelbõl, és az így kapott maradékjelet a 4 részblokkra ACELP elven kódolják le a következõképpen: * a 40 mintára 10 impulzus tartozik, egy impulzus értéke ±1, * 5 sávot definiáltak modulo 5 alapon, egy sávban 2 impulzus. Paraméter 1. és 3 részblokk 2* 10 LSF LTP késleltetés 9 LTP erõsítés 4 Algebrai kód 35 Algebrai kódszó erõsítése 5 Összesen 2. és 4 részblokk bit/blokk 38 6 30 4 16 35 140 5 20 244 (12.2 kbit/s) Bitkiosztás a GSM 6.60 EFR beszédkódoló 20 ms-os blokkjára A GSM EFR ACELP kódolója

sokkal ellenállóbb a beszédre kevert nem-beszéd eredetû zajok ellen, mint a GSM 6.10 algoritmus, köszönhetõ ez mind a SELP jellegû adaptív kódkönyvtárnak, mind az ACELP impulzuskódolásnak, melyek érezhetõen nagyobb kódolási komplexitás mellett jobb minõséget biztosítanak az egyszrûbb LTP, illetve RPE algoritmusnál. Az LSF paraméterek használatával a beszéd spektrális burkolója nagyobb hûséggel kódolható, és az interpolációnak köszönhetõen a blokkok közötti átmenet is finom. Tovább növeli a beszédspektrum tisztaságát az a tény is, hogy 10 ms-onként számolják újra az LSF paramétereket. A Tetra beszédkódoló része hasonló a GSM 6.60 EFR beszédkódolóhoz, de a kisebb bitsebesség (4567 bit/s a 12.2 bit/s helyett) miatt bizonyos részekben egyszerûsítéseket vezettek be: * * * * Hosszabb blokkméret: 240 minta (30 ms) - így 2/3 részére csökkent a másodpercenkénti blokkszám. Az LPC analízist a teljes blokkra végzik, az

LPC számításkor a blokkok 40 mintát átlapolódnak. A minõség fenntartása érdekében egy LSF paraméterre több bit jut, de az átlagos bitszám így is csökken (csak 10 LSF van). A részblokkok között az LSF paramétereket súlyozottan interpolálják az elõzõ blokk végén lévõ LSF vektorral. A nyílthurkú LTP analízist csak egyszer végzik el a blokkra. 13 * * * Adaptív kódszó megkeresése részblokk alapon: a különbség annyi, hogy kisebb a tört-pozíciós felbontás finomsága, és csak az elsõ részblokkra van abszlút pozíció. Az ACELP kódolást is kisebb keresési tartományon hajtják végre. Az LTP erõsítést és az ACELP erõsítését együtt kvantálják vektrokvantálással. Paraméter 1.részblokk 10 LSF LTP késleltetés 8 Algebrai kód 16 Erõsítés VQ 6 Összesen 2.részblokk 3.részblokk 4.részblokk 5 16 6 5 16 6 5 16 6 Bitkiosztás a Tetra beszédkódoló 30 ms-os blokkjára 14 bit/blokk 26 23 64 24 137 4567 bit/s