4. ADPCM


4.1. Bevezetés

A 36. ábrán látható egy ADPCM kódoló egyszerűsített blokk vázlata. Az ADPCM kódoló azt az előnyt használja ki, hogy a szomszédos minták hasonlítanak egymásra. Minden egyes minta külön ábrázolása helyett, mint a PCM esetén, az ADPCM kódoló kiszámítja a minta jelenlegi és következő értéke közötti különbséget és az így kapott különbség kerül a kimenetre PCM kódolással. Fontos, hogy az ADPCM kódoló is (36.a ábra) az ADPCM dekóder (36.b ábra) legtöbb részét használja, hogy kiszámítsa a soron következő értéket.

A rekvantáló a minta értékét a kvantálási szint és a kvantálás lépésszámának összeszorzásával és esetleg egy fél kvantálási lépésköznek megfelelő offset hozzáadásával nyeri. A kvantáló típusától függően szükséges lehet ez az offset, hogy a rekvantált értéket centralizálják a kvantálási küszöbértékek között.
Az ADPCM kódoló a kvantálási, vagy a predikciós fgv. lépéseinek méretével, vagy mindkettő változtatásával alkalmazkodhat az audio jel karakterisztikájához. A következő érték kiszámításának és az ADPCM kódoló, ill. a prediktor alkalmazkodásának módja a különböző ADPCM kódoló rendszerekkel változik. Egyes ADPCM rendszereknek szükségük van a kódoló által előállított és a differenciális PCM értékekhez csatolt kísérő információra. Ez a kísérő információ két célt szolgálhat:
1. Némely ADPCM rendszerekben a dekóder ezt használja fel a prediktor, vagy a kvantáló, vagy mindkettő lépésközének meghatározására.
2. Tartalmazhat hibajavító kódot, hogy a dekóder elvégezhesse a hibajavítást, vagy véletlenszerű hozzáférést engedélyezhet a kódolt bit folyamhoz.
A következő részben az IMA (Interactive Multimedia Association) által elkészített ADPCM algoritmust tárgyaljuk. Ez 4:1 -es tömörítési arányt biztosít. Más ADPCM audio tömörítési eljárások pl. a CCITT G.721 (32 kbps tömörített adatfolyam), a G.723 (24 kbps tömörített adatfolyam) és a CD-I (Compact Disc - Interactive).
 

4.2. Az IMA ADPCM algoritmus

Az IMA számítógépes hardver- és szoftver kereskedőkből álló konzorcium, akik együttműködnek egy tényleges multimédiás szabvány kifejlesztésén. Az IMA azt tűzte ki céljául, hogy egy nyilvános audio tömörítési eljárást hozzon létre, amely jó hangminőséget és tömörítési arányt eredményez. Plusz az algoritmusnak elég egyszerűnek kellet lennie ahhoz, hogy el tudja végezni a valós idejű, tisztán szoftveres dekompresszióját egy 44,1 kHz -es mintavételezésű jelnek egy 20 MHz -es 386 -os számítógépen. A kiválasztott ADPCM kódolás nemcsak a fentieknek megfelelő, hanem még a szoftveres, valós idejű tömörítésre is képes.

Az IMA ADPCM egyszerűsége a prediktorának nyerseségében rejlik. A minta előre kiszámított értéke egyszerűen a közvetlenül előtte levő minta dekódolt értéke alapján képződik. Így a 36. ábrán látható prediktor blokk csupán egy késleltető, amelynek a kimenete és bemenete között egy minta időnyi késleltetés van. Ez a prediktor nem alkalmazkodó, így nem szükséges kísérő információ a prediktor rekonstruálásához.
A 37. ábrán látható az IMA algoritmus által használt kvantálási folyamat blokk diagramja. A kvantáló kiad egy 4 bitből álló mintázatot, amely az előjeles nagyságát mutatja a kvantálási szinteknek az egyes bemeneti mintákra. Az audio jelhez való alkalmazkodás csak a kvantáló blokkban valósul meg. A kvantáló a felbontást változtatja az éppen aktuális felbontás és a kvantáló előző bemenetre adott kimenete alapján. Ez a folyamat két, egymásra következő referenciatábla segítségével valósítható meg. Az első három bit - amely a kvantálási szintet adja meg - indexként szolgál az első referenciatáblában, aminek a kimenete index beállítást végez a második referenciatáblában. Ezt a beállító értéket egy tárolt, fix indexhez adják hozzá és a korlátozott tartományú eredményt használják indexként a második referenciatáblában. Az összegzett indexet letárolják és a következő iterációs lépésben kerül felhasználásra. A második referenciatábla kimenete az új kvantálási felbontás. Megjegyzendő, hogy egy, a második referenciatáblában található adott értékű index esetén az adaptációhoz használt adatok a kvantáló kimenetéből levezethetők; kísérő információkra nincs szükség. A 38. ábrán látható a kvantálási lépcsők meghatározásának blokkdiagramja, és a 7. és 8. táblázatban találhatók a két referenciatábla adatai.
 

 
7. táblázat: az első referenciatábla
Három bites felbontás
Index állítás
0 -1
1 -1
10 -1
11 -1
100 2
101 4
110 6
111 8

 
8. táblázat: a második referenciatábla
Index 
Lépésköz
Index 
Lépésköz
Index 
Lépésköz
Index 
Lépésköz
0 7 22 60 44 494 66 4,03
1 8 23 66
45
544 67 4,43
2 9 24 73 46 598 68 4,87
3 10 25 80 47 658 69 5,36
4 11 26 88 48 724 70 5,89
5 12 27 97 49 796 71 6,48
6 13 28 107 50 876 72 7,13
7 14 29 118 51 963 73 7,85
8 16 30 130 52 1,06 74 8,63
9 17 31 143 53 1,17 75 9,49
10 19 32 157 54 1,28 76 10,44
11 21 33 173 55 1,41 77 11,49
12 23 34 190 56 1,55 78 12,64
13 25 35 209 57 1,71 79 13,9
14 28 36 230 58 1,88 80 15,29
15 31 37 253 59 2,07 81 16,82
16 34 38 279 60 2,27 82 18,5
17 37 39 307 61 2,5 83 20,35
18 41 40 337 62 2,75 84 22,36
19 45 41 371 63 3,02 85 24,62
20 50 42 408 64 3,33 86 27,09
21 55 43 449 65 3,66 87 29,79
88 32,77

4.3. IMA ADPCM hibajavítás.

Egy szerencsés mellékhatása az ADPCM ezen típusának, hogy a dekóderben keletkező hibáknak - amelyeket okozhatnak az egyes kódszavakban fellépő hibák, szerkesztések, összeillesztések, vagy véletlenszerű hozzáférések a tömörített bit folyamhoz - általában nincs jelentős hatása a dekóder kimenetére. Ez általában nem igaz az olyan tömörítési eljárásokra, amelyek becslést (prediction) használnak. A becslés az előző minta helyes dekódolásától függ, így a hiba egyre inkább terjed. A továbbiakban megtudhatjuk, hogy ez a terjedés miért korlátos és miért nem végzetes az IMA ADPCM algoritmusra nézve.

A dekóder az Xp(n) mintát az előző minta (Xp(n-1)), a kódszó végeredményének előjeles nagyságának (C(n)), a kvantáló lépésközének és a fél lépésköznyi offset összeadásával állítja helyre:

            Xp(n) = Xp(n-1) + lépésköz(n) * C'(n)

ahol C'(n) C(n) +/- egy fél lépésköznyi offset.
Egy, a második referenciatáblán végzett vizsgálat kimutatja, hogy az egymást sorban követő bemenetek kb. 1,1 -szer hosszabak az őket megelőzőeknél. Amíg nem korlátozzuk az index nagyságát, a lépésköz értéke az előző lépésköz és a kódszó (F(C(n-1))) függvénye:

            lépésköz(n) = lépésköz(n-1) * F(C(n-1))

A két fenti egyenlet átalakítható úgy, hogy a dekódolt mintát (Xp(n)) a lépésköz és a dekódolt minta értékének függvényeként írja le az egyenlet m időpillanatban, és kódszavak csoportjával m és n időpillanatok között:

Figyeljük meg, hogy csak a kódszavakat összegezzük az m+1 -ik időpillanattól kezdődően. Egy hiba a kódszóban, vagy egy véletlen hozzáférés a tömörített bit folyamhoz q időpillanatban hibát okozhat a dekódolt kimenetben és a lépésközben a q+1 idöpillanatban (lépésköz(q+1)). A fenti egyenletből látható, hogy a hiba mértéke az Xp(m) -ben egy konstans értéket ér el Xp(n) jövőbeli értékeire. Ez az érték hallhatatlan mindaddig, míg a dekódolt kimenet nem lépi túl a megengedhető tartományt és így nem kell megvágni. A vágás egy pillanatnyi hallható torzításban jelentkezik, de ugyanakkor a konstans hiba részleges, vagy teljes javítását is szolgálja. Továbbá a dekóder kimenetére egy digitális felüláteresztő szűrőt kötve ez a konstans hiba kiszűrhető. A fenti egyenletből az is kitűnik, hogy a lépésközben keletkező hiba a dekódolt kimenet nem kívánt erősítését, vagy csillapítását is okozhatja. A kimeneti jelalak mindaddig nem változik, amíg a második referenciatáblának szóló index nem skála határolt. A skála határolás a lépésköz értékének részleges, vagy teljes módosítását eredményezi.

A lépésköz adaptáció természeténél fogva behatárolja a hiba fellépés lehetőségét a lépésközben. Egy hiba a lépésköz(m+1) -ben, amit egy hibás kódszó okozott 1,19 -szeres, vagy 7,45 dB -es változást okozhat a lépésköz értékében. Minden 88 kódszóból álló sorozat, amelyben a kódszavak hosszúsága 3 vagy kevesebb (az 7. táblázatnak megfelelően), teljes mértékben korrigálja a lépésközt a konstans hiba minimális értékére. Még a legkisebb mintavételi frekvencia esetén is - ami tipikusan 8 kHz - a 88 minta 11 ms -nyi audio jelnek felel meg. Így a véletlen hozzáféréshez és szerkesztéshez 11 ms-ként nyílik lehetőség.

Előző    Kezdőlap   Tartalomjegyzék   Következő