MPEG-audiokoodaus

Sami Lemmetty
TKK

Tiivistelmä

Viime vuosina tietoliikenteen käyttö on kasvanut valtavasti. Yhä useampia analogisia järjestelmiä ollaan hyvää vauhtia muuttamassa digitaalisiksi. Puhelinliikenteen digitalisoituminen on jo varsin pitkällä ja myös yleisradiotoiminta on pääsemässä hyvään vauhtiin. Nykyinen digitaalinen tietoliikennemäärä tarvitsee runsaasti resursseja, joten on tullut tarve kehittää erilaisia kompressointimenetelmiä siirrettävän datamäärän pienentämiseksi. Yksi tärkeimmistä on MPEG-standardi, joka määrittelee liikkuvan kuvan ja äänen tehokkaan kompressoinnin digitaaliseksi bittivirraksi ns. säästökoodausta (lossy compression) käyttäen eli kompressoinnissa hyödynnetään kuulon psykoakustisia ilmiöitä sekä silmän ominaisuuksia. Toisin sanoen, jätetään siirtämättä tai tallentamatta se informaatio, mitä korva ei kuitenkaan kuule tai silmä ei näe. MPEG-koodaus jakaantuu yleisesti MPEG-1, -2 ja -4 koodaukseen, joista tässä yhteydessä käsitellään etupäässä MPEG-1 audiokoodausta ja sen toimintaperiaatetta. Tarkoitus on myös perehtyä hieman MPEG-2 ja MPEG-4 audiokoodauksiin sekä eri MPEG-koodauksien ominaisuuksiin sekä joihinkin käyttökohteisiin. Lisäksi käsitellään MPEG-koodauksen vaikutusta äänenlaatuun sekä jonkin verran sen hyötyjä ja haittoja.

1 Johdanto

1.1 Yleistä

Digitaalitekniikan avulla toteutettu koko äänitaajuusalueen kattava laadukas äänentoisto vaatii varsin suuren bittinopeuden. Esimerkiksi DAT-järjestelmässä (Digital Audio Tape) käytössä olevalla 48 kHz:n näytteenottotaajuudella ja lineaarisesti 16 bitillä kvantisoitu PCM-stereosignaali (Pulse Code Modulation) vaatii 2 x 768 kbit/s bittinopeuden. Toki näin suurta bittinopeutta ei tarvita esimerkiksi puheen välittämisessä GSM-verkossa, jonka bittinopeus on erittäin alhainen, mutta äänenlaatu vastaavasti varsin heikko. Jotta pienemmillä bittinopeuksilla voitaisiin siirtää myös laadukasta audiosignaalia, on syntynyt tarve kehittää erilaisia menetelmiä pienentää siirrettävän informaation määrää. Signaalia voidaan koodata perinteisesti siten, että koodattu signaali vastaa bitilleen alkuperäistä signaalia. Näin päästään kuitenkin vain noin puoleen alkuperäisestä datamäärästä. Varsinkin audiosignaalissa on kuitenkin runsaasti kuulon kannalta epäoleellista informaatiota sekä runsaasti saman informaation toistoa eli redundanssia, joka on johtanut ns. säästö- eli reduktiokoodausmenetelmien (lossy compression) kehittämiseen. Säästökoodauksessa hyödynnetään kuulon psykoakustisia ominaisuuksia eli jätetään siirtämättä tai tallentamatta informaatio, jota emme kuitenkaan kykene kuulemaan. Valitettavasti eri ihmisten kuulon ominaisuudet poikkeavat varsin runsaasti toisistaan, joten täydellisen psykoakustisen mallin standardoiminen on erittäin hankalaa tai lähes mahdotonta.

1.2 MPEG-standardit

Näistä lähtökohdista kansainvälinen standardoimisjärjestö ISO (International Standardization Organization) kokosi 1980-luvun lopussa ns. ISO/MPEG-ryhmän (Moving Pictures Experts Group) kehittämään yleistä koodausjärjestelmää. Erityisesti audiota koskeva ryhmä sai tehtäväkseen kehittää standardin, jolla PCM-signaalin bittinopeus saataisiin pudotettua alle kymmenesosaan alkuperäisestä. Ryhmä sai pohdittavakseen useita eri koodausmenetelmiä, jotka jaettiin neljään ryhmään algoritmien samankaltaisuuden mukaan: ASPEC, ATAC, MUSICAM ja SB/ADPCM [2]. Näistä ryhmistä kaksi todettiin muita paremmiksi ja ne valittiin pohjaksi tulevalle standardille. Toinen oli ASPEC-koodaus (Adaptive Spectral Perceptual Entropy Coding), joka osoittautui äänenlaadultaan muita jonkin verran paremmaksi, ja toinen MUSICAM-koodaus (Masking pattern adapted Universal Subband Integrated Coding And Multiplexing), joka oli muita yksinkertaisempi ja näin ollen aiheutti pienimmän viiveen dekoodausvaiheessa.

Marraskuussa 1991 ryhmä sai valmiiksi MPEG-1 standardin ISO/IEC 11172 (Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s), joka koostuu neljästä osasta: System, video, audio ja compliance. Tässä yhteydessä käsitellään siis pääasiassa vain standardien audio-osia. Seuraavaksi huhtikuussa 1993 perustettiin MPEG-2 Audio -ryhmä, jonka tehtävänä oli kehittää MPEG-1:n kanssa yhteensopiva monikanavainen audio, tutkia dynamiikka-alueen digitaalista kompressointia sekä koodausta MPEG-1 pienemmillä näytteenottotaajuuksilla. Itse standardi ISO/IEC 13818 (Generic coding of moving pictures and associated audio, Part 3: Audio) valmistui vuonna 1994. MPEG-3 standardi oli myös valmisteilla, mutta se yhdistettiin MPEG-2:een. MPEG-4 (Very Low Bitrate Audio-Visual Coding) on kehitteillä ja tarkoitettu erittäin matalien bittinopeuksien, esim. Internetin, sovelluksiin. Aluksi ehkä varsin sekavalta tuntuvaa MPEG-ryhmittelyä on havainnoitu kuvassa 1.1.


Kuva 1.1. MPEG-audiokoodauksen ryhmittely.

MPEG-järjestelmät siis jakautuvat yleisesti kolmeen kerrokseen, joista alin on yksinkertaisin ja näin ollen sen bittinopeus on suurin, mutta myös koodaukseen tarvittava viive pienin. Eri kerrokset ovat alaspäin yhteensopivia eli Layer III kooderi osa purkaa kaikkien kerrosten informaation.

2 Psykoakustiset ilmiöt

Kuulo on itse asiassa varsin monimutkainen järjestelmä, eikä sen kaikkia ominaisuuksia, syy- ja seuraussuhteita tunneta vieläkään tarkasti. Lisäksi eri ihmisten psykoakustiset ominaisuudet poikkeavat toisistaan varsin runsaasti ja muuttuvat iän myötä. Tämän vuoksi tarkan standardoidun psykoakustisen mallin luominen on mahdotonta, joten MPEG-standardin koodausvaihetta ei ole standardoitu. Kuitenkin esimerkiksi MPEG-1 koodaukselle annetaan suosituksena kaksi erilaista psykoakustista mallia, jotka mainitaan standardissa [1]. Malleja voidaan käyttää periaatteessa kaikkien kerrosten koodauksessa, mutta käytännössä yksinkertaisempi malli 1 sopii parhaiten Layer I:een ja II:een ja monimutkaisempi malli 2 vastaavasti Layer III:een.

Tärkeimpiä psykoakustisia ilmiöitä audiokoodauksen kannalta ovat kuulokynnys, peittoilmiöt sekä kriittinen taajuuskaista, joita käsitellään seuraavassa hieman lähemmin.

2.1 Kuulokynnys

Ihmisen kuuloalue sijoittuu normaalisti välille 20 Hz ... 20 kHz. Kuulokynnys on pienin äänenvoimakkuus, jolla ääni tietyllä taajuudella on juuri ja juuri havaittavissa. Normaalikuuloisella ihmisellä kuulokynnys 1 kHz:n kohdalla on noin 0 dB. Kuulokynnys riippuu varsin voimakkaasti äänen taajuudesta. Kuulo on herkimmillään taajuudella 2-5 kHz, mikä johtuu lähinnä ulkokorvan rakenteesta. Korkeilla, yli 16 kHz, äänillä kuulokynnys nousee varsin jyrkästi. Varsinkin vanhemmilla ihmisillä yli 16 kHz:n äänet ovat yleensä kuuloalueen ulkopuolella. MPEG-koodauksessa käytetään kuulokynnykselle omia arvoja, jotka on taulukoituna standardissa [1] jokaiselle kerrokselle ja näytteenottotaajuudelle erikseen.

2.2 Peittoilmiöt

Hiljaisemman äänen peittyminen osittain tai kokonaan voimakkaamman äänen läsnäollessa on varmasti jokaiselle tuttu ilmiö. Ilmiötä kutsutaan peittoilmiöksi (masking effect) ja sitä hyödynnetään audiokoodauksessa varsin yleisesti. On selvää, ettei kannata siirtää tai tallentaa äänikomponentteja, joita emme kuitenkaan kuule. Myös joidenkin kuultavien äänikomponenttien poisjättäminen on joskus perusteltua. Esimerkiksi normaalissa puhelinliikenteessä ei aina ole kovin välttämätöntä siirtää ääntä korkeatasoisesti, onhan nykyisten kotipuhelimienkin taajuuskaista vain 300 .. 3 400 Hz, kun ihmisen kuuloalue yleensä luokkaa 16 .. 16 000 Hz, ja puhe täysin ymmärrettävää. Peittoilmiö esiintyy sekä taajuustasossa että aikatasossa. Molemmissa peittoilmiö on vahvasti epäsymmetrinen.

Aikatasossa jälkipeitto on huomattavasti pidempi kuin esipeitto. Jälkipeitto on pituudeltaan noin 100-200 ms [4], mikäli peittävä ääni on riittävän pitkä eli yli 200 ms. Peittoäänen keston lyhentyessä, lyhenee jälkipeitto vastaavasti ollen vain 50 ms peittoäänen pituuden pudotessa 5 ms:iin. Esipeitto on vain noin 10..20 ms, eikä peittoäänen keston ole todettu vaikuttavan sen kestoon.

Taajuustasossa peittoilmiö on vastaavasti vahvempi peittoääntä korkeampitaajuisille signaaleille. Vain pienillä, alle 40 dB, äänipainetasoilla taajuusalueen peittoilmiö on jokseenkin symmetrinen. Peittoilmiöiden perusperiaate on esitetty kuvassa 1.1, missä katkoviivalla näkyy kuulokynnys. Varsinkin taajuuspeittoa hyödynnetään MPEG-audiokoodauksessa.


Kuva 2.1. Peittoilmiöt. Vasemmalla taajuuspeitto ja oikealla aikapeitto.

Taajuustasossa voidaan signaaliin sekoittaa kohinaa, joka on vain muutaman desibelin matalamalla kuin alkuperäisen signaalin spektri. Äänenlaatu ei kuitenkaan muutu merkittävästi. Ongelmia kuitenkin tuottaa se, että peittoilmiö on riippuvainen muös äänen tasosta. Toisin sanoen voimakkailla äänillä peittoilmiö, ja varsinkin sen symmetrisyys, on voimakkampi ja täten optimaalisen signaali-peittosuhteen löytäminen voi joskus osoittautua vaikeaksi.

2.3 Kriittinen kaista

Kriittinen kaista (critical band) on kuulon taajuusresoluution kannalta erittäin tärkeä käsite. Ihmiskorva analysoi laajakaistaista ääntä siten, että kunkin kriittisen kaistan sisälle osuvat osaäänekset analysoidaan yhtenä kokonaisuutena. Tämä johtuu basilaarikalvon aistinsolujen sijainnista. Lähellä toisiaan olevat solut toimivat yhdessä, kun taas kaukana toisistaan olevilla soluilla ei ole juuri lainkaan vuorovaikutusta. Tästä seuraa myös se, että peittoilmiö on voimakkaampi kriittisen kaistan sisällä oleville kuin vastaaville eri kriittisille kaistoille sijoittuville äänikomponenteille. Pienillä, alle 500 Hz, taajuuksilla kriittinen kaista on likimain 100 Hz ja tämän yläpuolella se kasvaa likimain logaritmisesti ollen vajaan terssin (1/3 oktaavia) suuruinen eli noin 20 % keskitaajuudesta. Kriittiset kaistat eivät ole diskreettejä vaan ne tavallaan elävät kuuloaistimuksen mukaan. Kriittistä kaistanleveyttä kuvaa yhtälö 2.1 [4]:

           (2.1)

MPEG-koodauksessa signaali jaetaan lineaarisesti eri taajuuskaistoihin pyrkien pitämään jokaisen yksittäisen kaistan kaistanleveys kriittistä kaistaa pienempänä, koska peittovaikutus on tehokkain kriittisen kaistan sisällä. Tosin, varsinkin MPEG-1 koodauksessa käytettävät alikaistat ovat kaistanleveydeltään matalilla taajuuksilla kriittistä kaistanleveyttä leveämpiä. Suurimmillaan alikaistan leveys on 750 Hz käytettäessä 48 kHz:n näytteenottotaajuutta. Tämä on alle kriittisen kaistanleveyden vasta useamman kilohertsin taajuudella.

Kriittisistä taajuuskaistoista voidaan muodostaa lineaarinen asteikko, jonka yksikkönä on Bark. Yksi Bark vastaa siis yhtä kriittistä taajuuskaistaa. Asteikko on kiinnitetty siten, että taajuusalueelle 0 - 16 kHz mahtuu 24 kriittistä kaistaa. Bark asteikko voidaan määrittää analyyttisesti koko taajuusalueella kaavalla 2.2 [4]:

            (2.2)

Bark-asteikon lisänä käytetään myös mel-asteikkoa, missä 1 Bark = 100 meliä.

3 MPEG-1

MPEG-1 audiokoodaus jakautuu kolmeen eri kerrokseen. Layer I on yksinkertaisin ja Layer III tehokkain järjestelmä. Järjestelmät ovat alaspäin yhteensopivia eli Layer III:n dekooderi osaa purkaa kaikkien muiden kerrosten informaation. Layer I on MUSICAM-koodauksen yksinkertaistettu versio ja vaatii siis varsin suuren bittinopeuden. Layer II vastaa lähes täysin MUSICAM-koodausta ja Layer III on tarkoitettu matalille bittinopeuksille ja siinä on yhdistetty MUSICAM- ja ASPEC-koodauksen parhaat puolet.

MPEG-1 koodauksessa voidaan käyttää näytteenottotaajuuksia 32 kHz, 44.1 kHz ja 48 kHz. Käytettäviä bittinopeuksia on 14 kpl ja pienin käytettävä bittinopeus 32 kbit/s kanavaa kohti. Suurin mahdollinen bittinopeus vaihtelee kerroksittain. Standardin [1] mukaiset pienimmät ja suurimmat mahdolliset sekä suositeltavat bittinopeudet on esitetty taulukossa 3.1. Taulukossa on myös esitetty vastaavat kompressiosuhteet, jotka on laskettu ohjearvojen mukaan kullakin näytteenottotaajuudella.

Taulukko 3.1. MPEG-1 koodauksessa käytettävät bittinopeudet (/kanava).

Kerros

Pienin

Suurin

Ohjearvot

Kompressiosuhde

Layer I

32 kbit/s

224 kbit/s

192 kbit/s

1:3 .. 1:4

Layer II

32 kbit/s

192 kbit/s

128 kbit/s

1:4 .. 1:6

Layer III

32 kbit/s

160 kbit/s

64 kbit /s

1:8 .. 1:12

Lisäksi voidaan toimia neljässä eri kanavamoodissa:

Kaksoismonolla tarkoitetaan kahta toisistaan riippumatonta mono-kanavaa. Tätä voidaan käyttää esimerkiksi kaksikielisissä lähetyksissä. Yhdistetyssä stereokoodauksessa vähennetään kanavien välistä redundanssia. Layer I tason koodauksessa voidaan periaatteessa käyttää kaikkia bittinopeuksien ja kanavamoodien yhdistelmiä, mutta Layer II:lle eri kombinaatiot on rajattu standardissa [1].

MPEG-1 standardin mukainen lohkokaavio koodausketjusta on esitetty kuvassa 3.1. Koodausta ei siis varsinaisesti ole standardoitu. Aluksi signaali jaetaan alikaistoihin analyysisuodinpankin avulla. Suodinpankin ja rinnakkaisen FFT-muunnoksen perusteella estimoidaan psykoakustiseen malliin pohjautuva peittokuulokynnys. Tämän jälkeen kunkin alikaistan näytteet kvantisoidaan uudelleen pitäen kvantisointikohina peittokynnyksen alapuolella. Lopuksi kvantisoidut näytteet sekä kvantisointia ohjaava sivuinformaatio yhdistetään sarjamuotoiseksi bittivirraksi mahdollisen muun lisäinformaation (ancillary data) kanssa.


Kuva 3.1. MPEG-kooderin yleinen rakenne. [2]

Dekoodaus on yksinkertaisempi ja on esitetty kuvassa 3.2. Bittivirrasta eritellään sivuinformaatio sekä alikaistojen näytteet, joille suoritetaan dekoodaus ja lopuksi signaali rekontruoidaan synteesisuodinpankissa uudelleen PCM-signaaliksi.


Kuva 3.2. MPEG-dekooderin perusrakenne. [2]

Kuten kuvasta 3.2 nähdään, ei dekoodausvaiheessa enää tarvita psykoakustisia malleja. Kaavioissa esiintyvällä lisäinformaatiolla tarkoitetaan mitä tahansa MPEG-kehysrakenteeseen liitettävää informaatiota.

3.1 Layer I

Layer I on siis yksinkertaisin ja samalla vähäviiveisin koodaustapa, jonka lohkokaavio on esitetty kuvassa 3.3. Aluksi signaali jaetaan monivaihe-QMF-analyysisuodinpankissa (polyphase-QMF) tasavälein 32 alikaistaan. Jokaista alikaistaa kohden otetaan 12 näytettä eli kerrallaan käsitellään 384 PCM-näytettä. Kunkin alikaistan skaalaustekijä määritellään erikseen etsimällä näiden näytteiden joukosta voimakkain spektrikomponentti. Tämä absoluuttinen komponentti kvantisoidaan kuudella bitillä (64 tasoa). Saatua lukua verrataan taulukokoituihin arvoihin (63 kpl), joista valitaan skaalaustekijäksi kvantisoitua arvoa lähimpänä oleva suurempi lukuarvo. Tämän jälkeen muut näytteet normalisoidaan jakamalla ne alikaistakohtaisella skaalaustekijällään.


Kuva 3.3. MPEG-1 Layer I-kooderin lohkokaavio.

Koska alikaistoihin jako suoritetaan lineaarisin välein, on taajuusresoluutio matalilla taajuuksilla huono. Yhden alikaistan leveys on siis noin 750, 690 tai 500 Hz. Tämän vuoksi signaalin spektri analysoidaan peittokynnyksen laskemiseksi psykoakustisessa mallissa tarkemmin 512-pisteisen FFT-muunnoksen avulla käyttäen Hanning-ikkunaa. Tämän jälkeen määritellään äänipainetaso kullakin alikaistalla skaalaustekijän scfmax(n) ja FFT-muunnoksen suurimman spektrikomponentin X(k) avulla seuraavasti:

Lsb(n) = MAX [X(k), 20·log(scfmax(n)·32768) - 10] dB,    (3.1)

Peittokynnyksen laskemiseksi etsitään kriittisten taajuuskaistojen sisäpuolelle jäävät soinnittomat äänet, joiden intensiteetti arvioidaan kullakin kriittisellä kaistalla erikseen. Soinnillisista komponenteista etsitään dominoivimmat puolen Barkin välein pienillä taajuuksilla ja alle puolen Barkin välein korkeimmilla taajuuksilla, jonka jälkeen estimoidaan näiden aiheuttamat peittokynnykset kunkin kriittisen kaistan sisällä. Seuraavaksi näihin summataan absoluuttinen kuulokynnys, joka saadaan standardin [1] taulukoista, ja saadaan globaali peittokynnys koko taajuusalueella. Tämän jälkeen lasketaan jokaisen alikaistan minimipeittokynnys sekä signaali-peittosuhde SMR (Signal-to-Mask-Ratio) kunkin alikaistan äänipainetason Lsb(n) ja minimipeittokynnyksen LTmin(n) erotuksena:

SMR = Lsb(n) - LTmin(n) dB,    (3.2)

missä n on alikaistan järjestysluku.

Bittiallokoinnissa määrätään näytteiden kvantisointitarkkuus sekä optimoidaan kvantisointikohinan taso mahdollisimman alhaiseksi. Ensimmäiseksi on tarkastettava, kuinka paljon bittejä on jäljellä näytteiden ja skaalaustekijöiden koodausta varten. Tämä tapahtuu vähentämällä sallitusta kokonaisbittimäärästä Btot datakehyksen alkuun Bhdr (32 bittiä), mahdolliseen virheenkorjaukseen Bcrc, bittiallokointiin Bbal sekä lisäinformaatioon Banc tarvittavien bittien määrä:

B = Btot - (Bhdr + Bcrc + Bbal + Banc),    (3.3)

Bittiallokointi on iteratiivinen algoritmi, missä maksimoidaan peitto-kohinasuhde MNR alikaistoittain siten, että datakehyksen sallittua maksimibittimäärää ei ylitetä. Jokaisen alikaistan bittiallokointi-informaatio koodataan neljällä bitillä. Aluksi määritellään kunkin alikaistan MNR-arvo, joka saadaan signaali-kohinasuhteen SNR ja signaali-peittosuhteen SMR erotuksesta:

MNR = SNR - SMR,    (3.4)

Signaali-kohinasuhde saadaan standardin [1] taulukosta. Signaali-peittosuhde saadaan psykoakustisesta mallista yhtälön 3.2 mukaan. Pienimmän MNR-arvon omaavan alikaistan kvantisointitarkkuutta kasvatetaan yhdellä bitillä, jonka jälkeen lasketaan alikaistoittain uusi MNR-arvo. Tämän jälkeen tarkistetaan jäljellä olevien bittien lukumäärä yhtälöstä:

B= Btot - (Bhdr + Bcrc + Bbal + Bscf + Bspl + Banc),    (3.5)

missä Bscf on skaalaustekijöiden ja Bspl näytteiden bittimäärä, joiden alkuarvo iteroinnin alussa on siis nolla. Iterointia jatketaan kunnes jäljellä olevien bittien lukumäärä ei enää riitä iteraatiosilmukassa Bscf:n ja Bspl:n lisäykseen.

Kunkin alikaista näytteet jaetaan omalla skaalaustekijällään ja kvantisoidaan lineaarisesti bittiallokoinnin määräämällä tarkkuudella. Kvantisoinnissä käytettävien bittien lukumäärä voi olla välillä 2 ≤ n ≤ 15. Peittokynnyksen alapuolelle jääviä näytteitä ei kvantisoida lainkaan. Nollasta poikkeavia kvantisointiaskelia voi olla 2n-1 kappaletta.

Kehysrakenne, joka on esitetty kuvassa 3.4, alkaa otsikkolohkolla, jonka pituus on 32 bittiä. Otsikkolohko sisältää synkronointisanan (12 bittiä) sekä järjestelmäinformaation (20 bittiä), joka ilmoittaa mm. käytetyn kerroksen (2 bittiä), bittinopeuden (4 bittiä), näytteenottotaajuuden (2 bittiä) sekä kanavamoodin (2 bittiä). Seuraavana ovat virheenkorjaus, kvantisoidut bittiallokointitiedot, skaalaustekijät sekä alikaistojen näytteet. Kehyksen ajallinen pituus vaihtelee välillä 8 .. 12 ms näytteenottotaajuudesta riippuen [1]. Kehyksen lopussa on varattu tilaa ylimääräiselle lisäinformaatiolle, joka kuitenkin vähentää alikaistanäytteille varattua osaa. Lohkon pituutta ei ole määritelty ja se on varattu osittain MPEG-2:n monikanavasovelluksille [2].


Kuva 3.4. MPEG-1 kehysrakenne.

Dekoodaus on huomattavasti yksinkertaisempi kuin koodaus ja vie ajallisesti vain puolet koodaukseen käytetystä ajasta [2]. Dekooderin lohkokaavio on esitetty kuvassa 3.5. Aluksi sarjamuotoisesta bittivirrasta etsitään synkronointisana, järjestelmä- sekä virheenkorjausinformaatio. Tämän jälkeen erotellaan alikaistojen näytelohkot, dekoodataan bittiallokointitiedot ja skaalaustekijät. Lopuksi näytteet dekvantisoidaan, kerrotaan skaalaustekijöillään ja rekonstruoidaan synteesisuodinpankissa PCM-signaaliksi.


Kuva 3.5. Dekooderin lohkokaavio.

3.2 Layer II

Layer II on laajennettu versio Layer I:stä. Sen koodausvaiheen lohkokaavio on esitetty kuvassa (3.6). Dekoodausvaihe on samanlainen kuin Layer I:ssä (kuva 3.5). FFT-spektrianalyysissä näytemäärä on kaksinkertainen (1024), joten taajuusresoluutio on parempi.


Kuva 3.6. MPEG-1 Layer II-koodauksen lohkokaavio.

Skaalaustekijät lasketaan 12 alikaistanäytteestä, mutta käytettävä aikalohko on kolminkertainen Layer I:een verrattuna eli 36 näytettä. Skaalaustekijöitä lähetetään yhdestä kolmeen kappaletta kutakin aikalohkoa kohden kahdella bitillä koodatun erityisen valintainformaation perusteella. Jos skaalaustekijässä havaitaan vain pieniä muutoksia (sinisignaali) edelliseen verrattuna, lähetetään vain suurin skaalaustekijä. Mikäli muutokset ovat suuria (transientti), lähetetään kaksi tai kaikki kolme skaalaustekijää. Pahimmassa tapauksessa tarvitaan siis yhtä paljon ja parhaassa tapauksessa vain kolmasosa skaalaustekijöitä Layer I:een verrattuna. Käytännössä skaalaustekijöitä tarvitaan keskimäärin puolet [2].

Bittiallokoinnissa on luonnollisesti otettava huomioon skaalaustekijöiden valintaan käytetyt bitit. Bittiallokointi-informaatio koodataan siten, että pienillä taajuuksilla käytetään neljää, keskitaajuuksilla kolmea ja korkeilla taajuuksilla kahta bittiä.

Kvantisointivaiheessa käytetään neljää eri taulukkoa, joiden arvot riippuvat näytteenottotaajuudesta ja bittinopeudesta. Kvantisointiluokkia on yhteensä 17 ja askelmien määrä voi olla 3, 5, 7, 9, ... ,32767, 65535. Käytettävien askelmien määrä riippuu alikaistan järjestysluvusta.

Kehysrakenne on alku- ja loppupäältään samanlainen kuin Layer I:ssä ja se on esitetty kuvassa 3.7. Lisänä on skaalaustekijöiden valintatiedot. Näytteiden lukumäärä on 3 x 12 kpl jokaista kaistaa kohden eli 1152 näytettä kehystä kohti. Kehyksen ajallinen pituus on 24 ms näytteenottotaajuudella 48 kHz [2].


Kuva 3.7. Layer II:n kehysrakenne.

Dekoodaus on vastaavanlainen kuin Layer I:ssä. Lisänä on ainoastaan skaalaustekijöiden valintainformaation dekoodaus. Layer II:n dekoodaus tarvitsee kolmanneksen vähemmän laskentatehoa kuin koodausvaihe [2].

3.3 Layer III

Layer III on jo huomattavasti monimutkaisempi ja poikkeaa varsin runsaasti muista MPEG-1:n kerroksista. Tästä syystä sitä ei käsitellä tässä yhteydessä kovinkaan tarkasti. Esiin tuodaan kuitenkin tärkeimmät ominaisuudet.

Jokainen 32 alikaistaa jaetaan vielä 18 osaan käyttäen MDCT-muunnosta (Modified Discrete Cosine Transformation). Näin ollen alikaistoja on 576 kappaletta. Taajuusresoluution parantuessa aikaresoluutio vastaavasti heikkenee. Tätä parannetaan MDCT:n adaptiivisella ikkunoinnilla. Koska taajuuskaistat ovat erittäin kapeat, tapahtuu myös laskostumista ja vuotoa viereisille kaistoille. Laskostumista kompensoidaan siten, että laskostunut komponentti vähennetään toisella kaistalla sijaitsevasta komponentista standardissa [1] määriteltyjä optimoituja painokertoimia, ns. perhosyhtälöitä, käyttäen.

Poiketen muista kerroksista, näytteet kvantisoidaan epälineaarisesti siten, että heikot signaalit koodautuvat tarkemmin kuin lineaarisella kvantisoinnilla.

Lisäksi Layer III:ssa hyödynnetään Huffman-koodausta sekä lyhyttä puskurimuistia. Huffman-koodaus tapahtuu siten, että taajuuskaista jaetaan useampaan osa-alueeseen ja koodataan erilaisten kooditaulukoiden avulla. Puskuroinnin ansiosta bittinopeus voi vaihdella tiedonsiirron aikana ja puskurissa olevat bitit voidaan käyttää kvantisoinnin tarkentamiseen transienttisignaaleiden koodauksessa. Puskurin koko on kehyksen pituus maksimibittinopeudella eli (2 × 160 kbit/s / 48 kHz) × 2 × 576 näytettä = 7680 bittiä [2]. Näin ollen puskuria ei voida hyödyntää tiedonsiirtonopeuden ollessa 160 kbit/s/kanava.

4 MPEG-2

MPEG-1 audiokoodauksessa on keskitytty etupäässä hyvän äänenlaadun säilyttämiseen. Korkean äänenlaadun säilyttäminen ei kuitenkaan ole tärkeintä kaikissa sovelluksissa ja monessa sovelluksessa halutaan pyrkiä mahdollisimman pieneen bittinopeuteen. Esimerkiksi puhesignaalille 48 kHz:n näytteenottotaajuus on luonnollisestikin turhan suuri. Vaikkakin MPEG-1 koodausella päästään periaattessa 32 kbit/s bittinopeuteen, ei äänenlaatu säily enää edes kohtuullisena, koska näytteenottotaajuudet on suunniteltu korkeatasoiselle audiolle. Näin ollen on ollut tarpeen kehittää matalien bittinopeuksien MPEG-2 standardi. Se sisältää kaksi tärkeää laajennusta MPEG-1 standardiin verrattuna:

MPEG-2:n näytteenottotaajuudet ovat puolet MPEG-1:n näytteenottotaajuuksista eli 16, 22.05 ja 24 kHz. Näin saadaan siis matalilla bittinopeuksilla huomattavasti parempi äänenlaatu kuin MPEG-1 koodauksessa. MPEG-2:n Layer I ja Layer II vastaavat MPEG-1:n kerroksia, mutta Layer III:een on tehty joitakin parannuksia, varsinkin matalille bittinopeuksille.

Toinen huomattava parannus MPEG-1:een verrattuna on tuki monikanavaäänelle, mikä sisältää viisi surround audiokanavaa sekä option yhdelle matalien taajuuksien lisäkanavalle (subwoofer). Monikanavaäänessä käytetään samoja näytteenottotaajuuksia kuin MPEG-1:ssä.

MPEG-2 on myös varsin hyvin yhteensopiva MPEG-1:n kanssa. MPEG-1 dekooderi osaa avata MPEG-2 koodatun informaation mikäli matalimpia näytteenottotaajuuksia ei ole käytetty. Monikanavaäänessä menetetään myös luonnollisesti ylimääräisten kanavien informaatio.

5 MPEG-4

MPEG-4 audiokoodaus on vielä kehitteillä ja se on tarkoitettu lähinnä erittäin matalia bittinopeuksia tarvitseville järjestelmille, kuten Internetille tai videopuhelimille. Tärkein uutuus siinä on eräänlainen interaktiivisuus. Vastaanottaja voi siis toiminnallaan vaikuttaa lähtevään informaation. MPEG-4 on suunniteltu myös varsin joustavaksi. Nykyisillä modeemi- ja ISDN-yhteyksillä bittinopeus vaihtelee runsaasti verkon kuormituksen mukaan ja juuri MPEG-4 tarjoaa mahdollisuuden lukea eritasoista koodia yhdestä ja samasta lähetetystä bittivirrasta. Äänisignaali voidaan siis muuttaa esimerkiksi stereosignaalista monoksi kesken kaiken, jos bittinopeus putoaa liian alhaiseksi, sekä takaisin stereoksi bittinopeuden jälleen kasvaessa. Muissa MPEG-järjestelmissä on lähettäjän tarjottava oma bittivirta kullekin eritasoisille vastaanottajille [5].

6 Käyttökohteita

Tällä hetkellä MPEG-audiokoodausta käytetään varsin vähän kuluttajatason sovelluksissa. Lähinnä se on käytössä digitaalisessa radiolähetyksessä (DAB) sekä DCC-järjestelmässä.

Digitaalinen radio eli DAB (Digital Audio Broadcasting) on tällä hetkellä ehkä tärkein MPEG-koodauksen käyttökohde. Järjestelmä perustuu MPEG-1 layer II koodaukseen, joka vastaa siis lähes täysin MUSICAM-koodausta. Yksi DAB-lähete voi kerralla sisältää jopa kuusi korkealuokkaista stereo-ohjelmaa, ja mikäli äänenlaadusta voidaan tinkiä, enemmänkin. Ensimmäiset DAB-koelähetykset aloitettiin Suomessa helmikuussa 1994. [2]

DCC-järjestelmä (Digital Compact Cassette) on Philipsin ja Matsushitan vuonna 1992 markkinoille tuoma digitaalinen äänikasetti. DCC-soittimella voidaan toistaa myös tavallisia analogisia C-kasetteja, joten se on hintatason putoamisen myötä saamassa kohtuullista jalansijaa äänentoistomarkkinoilla. Järjestelmä perustuu MPEG-1 Layer I:n pohjalta kehitettyyn PASC-koodaukseen (Precision Adaptive Subband Coding), jossa on määritelty sekä koodaus että dekoodaus. Koodauksessa käytetään bittinopeutta 2 ´ 192 kbit/s.

ATRAC (Adaptive Transform Acoustic Coding) on Mini Disc-järjestelmässä käytetty koodausmenetelmä, joka ei varsinaisesti perustu mihinkään standardiin. Sillä on kuitenkin samoja piirteitä kuin MPEG-1 Layer III:ssa tai ASPEC-koodauksessa. Se on kuitenkin näitä huomattavasti yksikertaisempi. Järjestelmän bittinopeus on 2 ´ 140 kbit/s.

7 Yhteenveto

Tulevaisuudessa tiedonsiirron tarve on nähtävästi edelleen sen tarjontaa suurempi. Tämä aiheuttaa tarvetta MPEG- ja muiden vastaavien säästökoodausmenetelmien käytölle ja kehittämiselle. Varsinkin nykyisillä tietokoneiden laskentatehoilla, itse koodausalgoritmin monimutkaisuus ei yleensä aiheuta ongelmia vaan puollonkaulan aiheuttaa yleensä hidas siirtotie, esimerkiksi tavallinen puhelinlinja.

Säästökoodauksessa törmätään myös yleensä jonkinasteiseen optimointiongelmaan. On löydettävä kompromissiratkaisu bittinopeuden ja äänenlaadun välille. Lisäksi säästökoodaus aiheuttaa ongelmia, jos signaalia koodataan ja dekoodataan useampaan kertaan eri järjestelmien välillä. Esimerkiksi, jos audiosignaalia siirretään DCC- ja Mini Disc-järjestelmien välillä useita kertoja, putoaa äänen laatu huomattavasti käytettävien koodausmenetelmien eroista johtuen.

Eri MPEG-koodausmenetelmien subjektiivistä äänenlaatua voidaan kuvata seuraavalla asteikolla: 5. ei havaittavissa, 4 havaittavissa, muttei häiritsevä, 3. hieman häiritsevä, 2. häiritsevä ja 1. erittäin häiritsevä. Testit perustuvat ns. "Triple stimulus with hidden reference"-menetelmään. Bittinopeudella 64 kbit/s/kanava MPEG 1 Layer II saa arvosanan 2,1...2,6 ja Layer III 3,6...3,8. Nopeudella 128 kbit/s/kanava Layer II 4,6...4,8 ja Layer III 4,4...4,8. Eli voidaan todeta, että yksinkertaisilla koodausalgoritmeilla äänenlaatu putoaa huomattavasti käytettäessä matalia bittinopeuksia.

Tulevaisuudessa varsinkin MPEG-4 audiokoodaus tulee todennäköisesti saamaan jalansijaa Internet-verkossa. Tällä hetkellä Internetin www-sivuilla voi toki kuunnella midi-tiedostoja, mutta lähiaikoina myös normaalin musiikin ja laulun kuuntelu tulee olemaan mahdollista. Nykyisten kotimikrojen teho riittää varsin hyvin nykyistä tehokkaampiinkin koodausmenetelmiin, mutta pullonkaulana on ja tulee myös pitkään olemaan nykyiset modeemiyhteydet. Varsinkin, jos sallitaan jonkin verran viivettä tasoittamaan verkon kuormituksesta johtuvia nopeuseroja, on kohtuullisen audion kuunteleminen Internetissä jo nykyisillä menetelmillä varsin mahdollista. Suora ja korkealaatuinen Internet-audio vienee kuitenkin vielä oman aikansa.

Lähdeluettelo

  1. ISO/IEC JTC1/SC29/WG11 MPEG, IS11172-3 "Information techonology - Coding of moving pictures and associated audio for digital storage media ta up to about 1,5 Mbit/s - Part 3: Audio" (1993), 150 s.
  2. M. Hahkio: "Bittireduktion vaikutus äänenlaatuun yleisradiotasoisessa tuotantotekniikassa", Diplomityö, TKK Akustiikan laboratorio 20.11.1994, 71 s.
  3. S. Shlien. Guide to MPEG-1 Audio Standard. IEEE Transactions on Broadcasting, 40 (4): 206-217, Dec 1994.
  4. E. Zwicker, H. Fastl: Psychoacoustics - Facts and Models. Berlin/Heidelberg 1990, Springer-Verlag, 354s.
  5. M. Diez, H. Popp, K. Brandenburg, R. Friedrich. Audio Compression for Network Transmission. AES Vol. 44 No. 1/2: 58-73. Jan/Feb 1996.
  6. K. Brandenburg. Psychoacoustic Modelling in Sound Quality Measurements and Coding of Audio Signals. NAM96.
  7. J. Johnston, K. Brandenburg. Wideband Coding - Perceptual Considerations for Speech and Music. Advances in Speech Signal Processing. Ed. Purvis, Sondhill. pp. 109-140, Marcel Dobber 1992.