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.
|
(Hz)* |
|
(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 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.
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.
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.
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.