5. MPEG/audio tömörítés


5.1. Az MPEG/audio tömörítési eljárás alapjai

Az MPEG/audio tömrítési algoritmus egy ISO, Hi-Fi minőségű audio tömörítési szabvány. Ez egy része egy három részből álló tömörítési szabványcsoportnak. A másik két résszel együtt a szinkronizált, digitális video és audio jel tömörítéséhez szükséges kompozit szabványt adja. Az így kialakuló adatsebesség durván 1,5 Mbps.

Bár az Mpeg algoritmus transzparens, azaz érzékelhető minőségromlás nélküli tömörítést valósíthat meg, azért mégiscsak veszteséges. Az MPEG/audio bizottság széleskörű, szubjektív hallásteszteket végzett a szabvány fejlesztése során. A vizsgálatok azt eredményezték, hogy még 6:1 arányú tömörítés esetén (sztereo, 16bit, 48 kHz, 256 kbps -re tömörítve) és optimális hallgatási körülmények között sem tudták statisztikailag számottevő esetben megkülönböztetni egymástól a tömörített és az eredeti jelet még a "profi hallgatók" sem. Továbbá olyan jeleket választottak, amiket tipikusan nehéz tömöríteni.
A tömörítési algoritmus jó hatásfoka a maszkolási effektus kihasználásán alapszik. A fülnek van még egy, ide kapcsolódó hiányossága: korlátolt frekvencia szelektivítással rendelkezik, amely 100 Hz -től (a legmélyebb hallható hangokra) 4 kHz -ig (a legmagasabb hangokra) terjed. Emiatt lehetséges a hallható frekvenciatartomány felosztása kritikus sávokra, amelyek a fül frekvencia függő hangkezelését tükrözik. A 9. táblázat tartalmazza az algoritmus által használt kritikus sávok listáját.

 
9. táblázat: az MPEG algoritmus által használt kritikus sávok
A sáv száma
Frekvencia

(Hz)*

A sáv száma
Frekvencia

(Hz)*

0
50
14
1,97
1
95
15
2,34
2
140
16
2,72
3
235
17
3,28
4
330
18
3,84
5
420
19
4,69
6
560
20
5,44
7
660
21
6,38
8
800
22
7,69
9
940
23
9,38
10
1,13
24
11,63
11
1,27
25
15,38
12
1,5
26
20,25
13
1,74
* A frekvenciák a sáv felső határai.

A fül fenti tulajdonsága miatt a zaj maszkolás kizárólag egy frekvencia sávon belüli jelaktivítás függvénye. Ez a tulajdonság a tömörítési eljárás esetén úgy hasznosítható, hogy az audio jelet a frekvencia tartományba transzformálják, az így kapott spektrumot felosztják a kritikus sávoknak megfelelő alsávokra, és végül az egyes alsávokat a kvantálási zaj hallhatóságának függvényében kvantálják. Optimális tömörítés esetén minden egyes sávhoz éppen akkora kvantálási szintet kell biztosítani, amely feltétlenül szükséges ahhoz, hogy a kvantálási zaj hallhatatlan legyen. A továbbiakban részletesen foglalkozunk az MPEG/Audio algoritmussal.

5.2. MPEG/audio kódolás és dekódolás

A 39. ábrán látható az MPEG kóder és dekóder blokkdiagramja. Ebben a megjelenítésben a kódolás nagyon hasonlít a fent leírt folyamatra. A bemeneti jel egy szűrőcsoporton halad keresztül, amely alsávokra osztja fel azt. A jel egyidejűleg áthalad egy pszihoakusztikai modellen is, amely meghatározza a jel-maszk viszonyt (signal-to-mask ratio = SMR) az egyes alsávokra. A bit- vagy zaj allokációs blokk használja az SMR-t a kvantáláshoz rendelkezésre álló összes bit alsávok közötti kiosztásakor, a kvantálási zaj minimalizálását célként kitűzve. A legutolsó blokk fogja a kvantált mintákat egy dekódolható bit folyammá alakítani. A dekóder ezt az átalakítást egyszerűen megfordítja, felépíti a kvantált alsávok értékeit és végül visszatranszformálja ezeket egy időtartománybeli jellé. Az MPEG elvárásainak megfelelően az audio jelhez tartozó kísérő információkra nincs szükség, de alkalmazható a kódolt bit folyamban.

Az MPEG/audio szabványnak három, elkülönített rétege van. A Layer I tartalmazza az alap algoritmust, a Layer II és III pedig továbbfejlesztések, amelyek használják az I -es bizonyos részeit. Minden egyes plusz réteg javítja a kódolás hatékonyságát, de növeli a kóder és dekóder bonyolultságát is.

5.2.1. Layer I

Az alap szűrőcsoportot használja, amit minden réteg tartalmaz. Ez a szűrőcsoport a jelet 32 állandó szélességű frekvencia sávra osztja. A szűrők viszonylag egyszerűek és a fül képességeihez mérten jó idő- és frekvencia tartománybeli felbontást biztosítanak. Ez egy kompromisszumos megoldás három fontos engedménnyel. Először, a 32 állandó szélességű frekvencia sáv nem tükrözi a fül kritikus sávjait (40. ábra). A sávszélesség túl nagy az alacsoy frekvenciák esetén, így a kvantálási bitek számát nem lehet speciálisan egy-egy kritikus sávra meghatározni. Ehelyett a sávba eső legnagyobb zajérzékenységű kritikus sáv határozza meg a kvantáló bitek számát. Másodszor a szűrőcsoport és inverze nem veszteségmentes átalakítások. Még a kvantálást elhagyva sem kapnánk vissza tökéletesen az eredeti bemeneti jelet. Szerencsére a szűrők által bevitt hiba kicsi és nem hallható. Harmadszor a szomszédos szűrők jelentős frekvenciaátlapolással rendelkeznek. Egy adott frekvenciájú jel így két szomszédos szűrőt befolyásolhat.

A szűrőcsoport 32 mintát készít - frekvenciasávonként egyet minden egyes audio mintára a 32 -ből. A Layer I-es algoritmus csoportba foglal 12 mintát minden egyes sávból. Minden egyes 12 mintából álló csoport megkapja a bit allokációt és ha ez nem nulla, akkor a felbontási tényezőt is. Sztereo többletkódolás esetén - amit később tárgyalunk - ez másképp működik. A bit allokáció határozza meg, hogy egy mintára hány bit jut. A felbontási tényező egy szorzó, ami úgy méretezi a mintákat, hogy maximális legyen a kvantáló felbontása. A Layer I -es kóder 32 db 12 mintát tartalmazó csoportot foglal egy keretbe (32 * 12 = 384 minta). Az audio adat mellet minden keret tartalmaz egy fejrészt, egy opcionális CRC szekvenciát és esetleg egyéb többlet információkat.

5.2.2. Layer II

A Layer I egyszerű továbbfejlesztése. Úgy éri el a jobb hatásfokot, hogy az adatokat nagyobb csoportokban kódolja. A kereteket 3 * 12 * 32 mintából készíti egy audio csatornára ( csinál egy csoportot 3 * 12 mintából, majd az így kapott csoportból 32-t egybefog és ez lesz a keret, ami 1152 mintát jelent). A Layer I 12 mintát fog csoportba alsávonként, míg a Layer II 3 * 12 mintát. A kóder csak akkor használ egyéni felbontási tényezőt a 12 mintát tartalmazó csoportok mindegyikére, ha ez szükséges a hallható tozítás elkerülése miatt. A kóder még két esetben osztja meg a felbontási tényező értékeit két vagy három csoport között:

1. amikor a felbontási tényezők értékei elég közel esnek egymáshoz.

2. amikor előre látható, hogy a fül időleges maszkolása elfedi a következményként fellépő torzítást.
A Layer II algoritmus azért is jobb hatásfokú a Layer I -nél, mert a bit allokációt, a felbontási tényező értékeit és a kvantált mintákat egy sokkal hatékonyabb kóddal rögzíti.

5.2.3. Layer III

Ez már egy sokkal kifinomultabb megoldás. Bár ez is a Layer I és II -ben alkalmazott szűrőcsoportra alapszik, annak néhány hiányosságát kompenzálja a szűrő kimenetének MDCT feldolgozásával (41. ábra).

Az MDCT -k tovább osztják a szűrők kimeneteit a frekvencia tartományban, hogy jobb spektrális felbontást biztosítsanak. Az elkerülhetetlen idő- és frekvencia tartománybeli felbontási különbség miatt a Layer III két különböző hosszúságú MDCT blokkot definiál: hosszú blokk, amely 36 mintából áll és rövid blokk 12 mintából. A rövid blokk javítja az idő tartománybeli felbontást és így megbírkózik a tranziensekkel. Egy rövid blokk hossza pont harmad része egy hosszú blokknak; így alkalmazásakor három rövid blokk helyettesít egyetlen hosszút. A hosszú- és rövid blokkok közti átváltás nem azonnali. Egy speciális hosszúból rövidbe, vagy rövidből hosszúba ablakkal rendelkező hosszú blokk végzi el az átalakítást. A Layer III -nak háromféle blokkolási módja van: két mód, amikor a szűrők kimenetei egyforma blokkhosszúsággal haladhatnak át az MDCT -n, és egy kevert mód, amikor a 2 alsó frekvenciasáv hosszú blokkot, a többi 30 pedig rövidet használ.

További jelentős fejlődések a Layer I -hez és II -höz képest:
5.3. A pszihoakusztikai modell
 
Az MPEG kódoló kulcsfontosságú eleme a jó hatásfok elérésében. Feladata a bemenő audio jel analizálása és annak meghatározása, hogy a spektrumban hol és milyen mértékben lép fel a kvantálási zaj maszkolása. A kódoló ezt az információt arra használja, hogy eldöntse mennyire pontosan ábrázolja a bemenő audio jelet a korlátosan rendelkezésre álló bitjeivel. Az MPEG/audio szabvány két példát tartalmaz a pszihoakusztikai modell megvalósítására. Az alábbiakban a két modell által végzett számítások alapvető lépéseit írjuk le általánosan.
Időrendi audio adat: a pszihoakusztikus modellnek foglalkoznia kell a jel szűrőn való áthaladásakor keletkező késleltetésével és az offsettel is, így a lényeges adat az analizáló ablakban centralizálódik. Pl. a kettes számú pszihoakusztikai modell használatakor Layer I esetén a szűrők miatti késleltetés 256 minta és az offset ami a 384 minta centralizálásához szükséges az 512 pontos pszihoakusztikai analizáló ablakban: (512 - 384)/2 = 64 pont.
Az audio jel spektrális összetevőkre bontása: a pszihoakusztikai modell az idő tartományt a frekvencia tartományra egy 512, vagy 1024 pontos Fourier transzformáció segítségével képezi le. Az adatok egy hagyományos Hann súlyozással a Fourier transzformáció előtt beállíthatók úgy, hogy csökkenjenek a transzformációs ablak élhatásai. A modell ezt az elkülönített és független leképezést használja a szűrőcsoportok kimenetei helyett, mert finomabb frekvencia felbontásra van szüksége, hogy kiszámítsa a maszkolási küszöbértékeket.
5.4. Sztereo többlet kódolás (Stereo redundancy coding)
 
Az MPEG/audio algoritmus két típusát támogatja a sztereo többlet kódolásnak: az intenzitás sztereo kódolást és a közép/oldal (Middle/Side = MS) sztereo kódolást. Mindkét többlet kódolás a fül egy újabb érzékelési gyengéjét használja ki. A pszihoakusztikai eredményekből kitűnik, hogy a kb. 2 kHz -nél magasabb frekvenciákat lefedő kritikus sávokon belül a fül a sztereo hangtér leképezését már inkább a hangjel burkológörbéje, és nem a finom szerkezete alapján végzi.
Mindhárom réteg támogatja az intenzitás sztereo kódolást, de csak a III támogatja az MS-t.
Intenzitás sztereo kódolás esetén a kóder néhány magasabb frekvenciájú szűrő kimenetet egyetlen, összegzett jellel kódol, mintsem különálló kódokkal a jobb és a bal csatorna számára a 32 szűrő kimenet mindegyikére. A dekóder a jobb és bal csatornát egyedül a független jobb és bal csatorna felbontási tényezőire alapozva állítja helyre. Intenzitás sztereo kódolás esetén a spektrális alakja a jobb és bal csatornának ugyanolyan egy intenzitás kódolt szűrőcsoport jelén belül, de az abszolút értékek különböznek.
MS sztereo módban a kódoló a jel jobb és bal csatornáját egy közép- (a bal és jobb összege) és egy oldal csatornában (a bal és jobb különbsége) kódolja. Ezen kívül a kódoló speciálisan beállított technikákat alkalmaz az oldal csatorna további tömörítésére.

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