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,1
9 -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ő