Audioformaatit

Jan-Markus Holm

Ohjelmistotekniikan seminaari

5.12.1997

Jyväskylän yliopisto
Matematiikan laitos


Tiivistelmä

Tämä seminaariesitelmä sisältää katsauksen audioformaatteihin. Tarkoituksena on aikaansaada mahdollisimman hyvä kuva siitä, millaisia lähinnä tietokoneaudioformaatteja on olemassa, sekä tutustua niiden rakenteeseen.

Motivaationa kirjoitelmalleni on ollut oma kiinnostukseni aiheeseen. Lisäksi olen halunnut koota yhteen mahdollisimman paljon muutoin niin hajanaisen aiheryhmän tietoa. Seminaarikirjoitelmaksi tämä saattoi hieman venyä. Ajattelisin kuitenkin tämän olevan hyvänä pohjana 'peruskäsikirjaksi' itselleni, jota on mahdollista tarpeen vaatiessa aikojen saatossa täydentää. Erääksi valitettavaksi seikaksi muodostui myös ajan loppuminen, joten myöhemmin esille tulleita mahdollisia varteenotettavia tietolähteitä jäi tutkimatta.


Sisällysluettelo:



1. Johdanto

Seminaariesitelmäni pyrkii antamaan mahdollisimman laajan kuvan audioformaattien ja -käsittelytapojen alueelta.Tieto on koostettu useista eri tietolähteistä. Aihepiiristä ei ole helposti löydettävissä erillistä kirjallisuutta, vaan aihepiiriä koskevaa tietoa on sisällytettynä muihin yhteyksiin, josta olennaisimpia audioformaatteja koskevia asioita on koottu tähän kirjoitelmaan.

Kirjoitelmassa esiintyy paljon asioita, jotka voidaan ajatella soveltuvan useampaankin asiayhteyteen. Viittausten määrä olisi kasvanut niin suureksi, etten tämän vuoksi ole niitä käyttänyt, vaan lukijalla on mahdollisuus itse ottaa asiasta selvää kulloinkin kyseessä olevan asiasanan yhteydestä. Lisäksi liitteet sisältävät osviittaa useisiin kohtiin (mainittu erikseen ao. kohdassa).

MIDIä (Musical Instrument Digital Interface) en käsittele kirjoitelmassani ollenkaan, sillä se jää toimintaperiaatteeltaan ja asiasisällöltään hieman aihepiirin ulkopuolelle. Sitä kuitenkin sivutaan muutamien formaattien yhteydessä. MIDI-ääni on viestejä esimerkiksi sähköisten soittimien (syntetisaattorit) ja tietokoneiden välillä. Se siis sisältää vain tietoa siitä, miten toiminta suoritetaan, eikä lainkaan yksittäistä signaalitietoa. MIDI on kuitenkin massiivinen järjestelmä, josta on saatavilla paljon tietoa niin kirjallisuudessa kuin tietoverkossakin. Lisätietolähteenä voin mainita esimerkiksi Musiikki internetissä -kirjoitelmani (Jan-Markus Holm, http://www.jyu.fi/~hojakr/Intermus.html, kevät 1997), jossa käsitellään mm. MIDIn yleisiä piirteitä.

Kirjoitelman aluksi käydään läpi ääneen liittyviä yleisiä seikkoja ja sen elektroniseen käsittelyyn liittyviä perusperiaatteita, sekä signaalinkulkua ja -käsittelyä. Luvussa 3 tarkastellaan äänen digitaaliseen muokkaukseen sisältyviä perustapahtumia ja yleisesti tietokoneella tapahtuvassa äänenkäsittelyssä huomioonotettavia tekijöitä. Tämän jälkeen siirrytään digitaalisen äänen ja koodauksen perusteisiin, josta päästään sujuvasti äänen koodauksen ja kompressointimenetelmien tarkastelemiseen.

Luvussa 6 tullaan kirjoitelman varsinaiseen pääteemaan, eli audion koodaus- ja tallennusmuotoihin, joita voidaan kutsua myös tallennusstandardeiksi tai audioformaateiksi. Sokeriksi pohjalle olen ottanut luvussa 7 esille tapauksia reaaliaikaisen tiedonsiirron digitaaliaudioprotokollista.


2. Ääni tietokoneessa

Ääniaaltoja on mahdollista muokata ja käsitellä. Luonnollisessa ympäristössä ihminen voi työntää pumpulitupot korviinsa ja näin vaimentaa tulevia ääniaaltoja. Megafonilla ääntä voidaan vahvistaa ja eri instrumenteilla saatu ääni on suora tulos fysikaalisista ilmiöistä, kuten kielen tai ilmapatsaan värähtely. Koska ääni on oikeastaan ilmanpaineen vaihtelua ilmassa, voidaan se muuttaa esimerkiksi jännitevaihteluiksi. ([El, 1994],[Ba, 1985], [Bu, 1993], [Fda, 1997], [Ko, 1993]).

Elektroninen media tarjoaa mitä suurimpia mahdollisuuksia äänen muokkaamiseen. Elektronisessa muodossa ääntä voidaan mm. suodattaa, muuttaa sen aika-arvoja, kääntää takaperin, vertailla toiseen informaatioon, lajitella, kasvattaa tai pienentää intensiteettiä ja säröttää. Digitaalista informaatiota voidaan prosessoida eri prosessointilaitteilla, kuten esimerkiksi sekvenssereillä (music sequencers) ja kovalevyäänittimillä (direct-to-disk audio recorders).

Eräs elektronisen signaalin muokkaamisen perusparametreista on amplitudin (äänenvoimakkuus) muokkaaminen. Tämä tapahtuu linjavahvistimien avulla. Lisäksi ohjelmasignaalia on mahdollista muokata lukemattomilla muilla tavoilla. Tätä varten on suotimia (filters), jotka toimivat eri medioita yhdistävinä prosessoreina. Nämä siis nimensäkin mukaisesti valikoivat tarvittavan informaation, äänen tapauksessa halutut taajuudet. Suotimia ovat muun muassa sulkusuotimet (cut-off filters), yli- ja alipäästösuotimet (high-and low-pass filters), sekä kaistansuotimet (band-pass filters).

Signaalia voidaan myös tuottaa ja syntetisoida elektronisesti. Tästä voi olla joskus hyötyäkin. Esimerkiksi edullinenkin systeemi voi tuottaa laaja-alaisemman äänen kuin yksikään mekaaninen instrumentti tai luonnollinen äänilähde. Elektronisia signaaleja tuottava komponentti on nimeltään oskillaattori (oscillator), joka on nimetty muodostamiensa oskilloivien aaltojen mukaan. Monimuotoisemmat signaalit muodostetaan modulaatiotekniikalla. Siinä signaaliin vaikutetaan toisen aallon tiedossa olevilla parametreillä (taajuus, amplitudi, pulssinleveys). Syntetisaattoripiirien äänenprosessointi perustuu pitkälti juuri tähän.


2.1. Digitaalinen audio

Äänenkäsittely tietokoneessa on aina digitaalista. Ääni voi olla peräisin useasta eri äänilähteestä, jotka voidaan yhdistää tietokoneessa. Mikrofonin tai muun äänilähteen välityksellä saadun analogisen audiosignaalin sisäänlukemiseksi tarvitaan esimerkiksi äänikortti. Digitaalisessa aaltomuodossa tallennettuun ääneen voidaan ajatella olevan kuin äänilähteestä tulevien ääniaaltojen kuvan. Tallennus ja toisto tapahtuvat tietokoneen äänijärjestelmän toimiessa digitaalisen ääninauhurin tapaan. Ääniaallot, puhe, musiikki tai hälyäänet, muuttuvat mikrofonissa sähköiseksi, analogiseksi värähtelyksi, joka johdetaan tietokoneen äänijärjestelmän analogia/digitaalimuuntimeen. Malli signaalin kulusta on esitetty kuvassa 1.

Ääni digitoidaan tietokoneeseen liitetyllä A/D-muuntimella (Analog/Digital Converter). Tämä on mikropiiri, jolla värähtelystä (aalloista) otetaan näytteitä tasavälein (ts. aalto 'katkaistaan') ja otetaan siitä 'poikkileikkaus', joka kertoo aallon korkeuden (amplitudin) katkaisuhetkellä. Tämä tieto tallennetaan numeerisessa muodossa. Äänen digitoinnissa vallitsevat yleiset digitoinnin pelisäännöt: näytteenottotaajuus vaikuttaa äänen taajuuskaistaan eli äänen kirkkauteen. A/D-muunnoksen tasojen määrä (kvantisointi) määrää digitoidun äänen dynamiikan eli hiljaisten ja voimakkaiden äänien suhteen. Molemmat vaikuttavat digitoidun äänen sisältämään tiedon määrään ja siten myös näin saatavan tiedoston kokoon. Kun näytteitä otetaan riittävän tiheästi, esimerkiksi 22000 kertaa sekunnissa, niistä muodostuu varsin hyvä kuva alkuperäisestä ääniaallosta.


Kuva 1. A/D- ja D/A-muunnoksen informaatio analogisen ja digitaalisen signaalin välillä.


Seuraavassa pieni katsaus digitaalisen audion kehityshistoriaan:


2.2. A/D- ja D/A -muunnokset

A/D- ja D/A -muuntimet (Analog-To-Digital and Digital-To-Analog Converter, ADC and DAC) ovat laitteita, jotka saattavat audiosignaalin tietokoneella käsiteltävään muotoon ja siitä takaisin. Nämä ovat siis erillisiä muunninpiirejä, jotka voivat sijaita esimerkiksi tietokoneeseen liitettävässä äänikortissa. ([Ba, 1985]).

A/D-muunnin vastaanottaa analogisen jännitepulssin ja muuntaa sen diskreettien lukujen sarjoiksi prosessissa, jota voidaan kutsua digitoinniksi (digitizing) tai näytteistykseksi (sämpläykseksi, sampling). D/A-muunnin taas kääntää diskreetin sarjan jatkuvaksi analogiseksi jännitteeksi. Näitä piirejä käytetään joko erikseen tai yhdessä useissa eri digitaalisen median laitteissa.

A/D-muuntimen ulostulosignaali on nykyisin usein 8- tai 16-bittinen digitaalinen 'sana', joka sisältää analogisen jännitesignaalinäytteen amplitudin.


2.2.1.Digitaalisen suotimen käsite

Digitaaliset suotimet voidaan jaotella kahteen pääluokkaan: äärelliseen impulssivasteeseen (Finite Impulse Response FIR) ja äärettömään impulssivasteeseen (Infinite Impulse Response, IIR) perustuviin. IIR-suodin on samanlainen analogisen kanssa siinä, että impulssi vaimenee eksponentiaalisesti ajan suhteen katoamatta koskaan kuitenkaan täysin. Yleisen digitaalisen suotimen lohkokaavio on esitetty kuvassa 2.

Analoginen signaali muunnetaan näytteistetyksi dataksi digitaalista suodatusta varten. Yleinen Nyquistin teoria näytteistyksestä kertoo sen, että näytetaajuuden tulee olla ainakin kaksinkertainen korkeimpaan sisääntulosignaalin perustaajuuskaistaan verrattuna prosessoituakseen virheettömästi. Tavallisesti käytetään analogista alipäästösuodinta (Low-pass filter) signaalin esiprosessoimiseksi niin, ettei A/D-muuntimelle pääse kuin suuruudeltaan korkeintaan puolet näytteistystaajuudesta olevia signaaleja.


Kuva 2. Tyypillinen digitaalisen suotimen lohkokaavio.


Näytteistys- ja pidätyspiirin (Sample-and-hold circuit) tarkoituksena on varmistaa, ettei A/D-muuntimelle tulevan signaalin jännite muutu aikana, jonka analogisesta digitaaliseksi tapahtuvan muunnos vaatii.

Jokaisen näytteistysvaiheen lopuksi digitaalisuodin tuottaa 8- tai 16-bittisen 'sanan' D/A-muuntimelle, joka muodostaa analogisen amplituditiedon digitaalisesta merkistöstä riippuen. Joskus voidaan käyttää alipäästösuodinta signaalia pehmentävänä jälkiprosessointisuotimena eliminoimaan signaalissa mahdollisesti tapahtuneita virheitä.


2.2.2. Näytteistys- ja pidätyspiiri

Analoginen signaali näytteistetään ja pidätetään (pidätyspiiri) useasti analogisesta digitaaliseksi tapahtuvan muunnoksen aikana. Sisääntuleva analoginen signaalinäytteistetään muunnoskierroksessa ensimmäisenä. Näytteistysvaiheen lopussa kapasitori (kuva 3) puretaan valmistauduttaessa vastaanottamaan uusi sisääntuleva näyte.


Kuva 3. Näytteistys- ja pidätyspiiri näytteistystaajuudella 1/T Hz.


2.2.3. A/D-muunnos

Kuva 4 esittää 8-bittisen riittävän approksimaation A/D-muuntimelle (ADC). Tämän tyyppinen konvertteri vaatii kahdeksan kellobittiä muunnoksen suorittamiseksi sisääntulosignaalista huolimatta. Pääsääntöisesti tällaisella muuntimella on tarpeeksi suuri konversionopeus. Muunnos alkaa aloituspulssilla ja päättyy kahdeksan kellokierrosta myöhemmin. Sisääntulosignaali pysyy vakiona koko muunnosprosessin ajan, kunnes se kulkee näytteistys- ja pidätyspiirin kautta.

Kuva 4. A/D-muunnin


A/D-muunnin löytää sisääntulevalle jännitesignaalille V(in) 'digitaalisten sanojen' maksimin, joka tämän perusteella asettaa vertaimen (comparator) ulostulojännitteen V(c) nollaksi. N-bittiselle konvertterille tämän voi suorittaa N:nä askeleena. Aluksi kaikki kahdeksan bittiä on asetettu nollaksi. Ensimmäisen askelen aikana 'kaikkein tärkein bitti' MSB (Most Significant Bit) nostetaan jännitteeseen (+5V). Jos V(c) on silti nolla, on ensimmäinen askel suoritettu ja kuudes bitti nostetaan toisen kierroksen alussa. Jos V(c) on ollut nostettuna ensimmäisellä askeleella on MSB laskettu takaisin alas nollaksi ja kuudes bitti nostettu toisen kierroksen alussa. Prosessia jatketaan niin kauan että kaikki kahdeksan bittiä on asetettu.

Kuvan 3 jännitteen V(-) vertaimen negatiivinen sisääntulo voidaan ajatella kahdeksan binaarisen jännitteen lineaarisena summana kaavan

V(-)=1/2{V(7)+1/2[V(6)]+1/4[V(5)]+1/8[V(4)]+1/16[V(3)]+1/32[V(2)]+1/64[V(1)]+1/128[V(0)]}

mukaisesti, jossa V(7) on MSB ja V(0) LSB (Least Significant Bit). Porrasmainen vastusverkosto on oikeastaan D/A-muunnin, joka uusii analogisen jännitteen lähimpänä oikeaa olevan bittijärjestyksen tarkistamiseksi sisääntulojännitteen ja uusitun jännitteen välillä. Maksimaalinen muunnosnopeus riippuu vertaimen tarvitsemasta ajasta ja vaihtomuutosten asettumisen vaatimasta ajasta. Jännitteen ja virran vastineet vertaimessa vaikuttavat vertauspisteeseen ja näin ollen koko A/D-muuntimen tarkkuuteen. Muunnoksen ollessa ohitse on digitaalisen ulostulon tarkkuus ±½ LSB.


2.2.4. D/A-muunnos

D/A-muunnos on kuvailtu jo aikaisemmin muunninapproksimaation esittelyssä luvussa 2.2.3. Kuva 5 osoittaa D/A-muuntimen (DAC) perustuvan vastusportaistoon. Muunnosprosessi on hyvin nopea, sillä se riippuu ensisijaisesti yksinkertaisen operaatiovahvistimen asettumisajasta. Binäärijännite D/A sisääntulossa täytyy olla tarkkaan verrattu tietyille korkeille ja matalille tasoille täsmällisen analogisen signaalin uudelleenmuodostumiseksi.


Kuva 5. D/A-muunnin.


2.3. Analogisen äänen käsittely

Ääntä voidaan tietokoneessa käyttää tietyssä määrin myös analogisessa muodossa. Se käsittää äänen, joka tulee ulkoisesta lähteestä, eikä sitä ole tallennettu tietokoneeseen digitaalisessa muodossa käsiteltäväksi. Ulkoisesta lähteestä tulevaa ääntä voi kuitenkin ohjata tietokoneen avulla. Tärkein ulkoinen äänilähde on usein kuitenkin CD-asemassa oleva CD-äänilevy. Ulkoisena äänilähteenä voi olla myös puhelin, jolloin multimediatekniikka mahdollistaa tietokoneen käytön esimerkiksi puhelinvastaajana, tai erilaiset puhelinpalvelinsovellukset. Lisäksi on mahdollista liittää tietokoneeseen radio- tai televisioviritinkortti ja saada lähetyksistä tuleva ääni tietokoneen käytettäväksi.


3. Aaltomuotoisen äänen perustekijät

Seuraavassa perehdytään äänen laatuun vaikuttaviin tekijöihin. Se, miten hyvin tallennettu (ylipäätään tietokoneella prosessoitu) ääni toistettaessa vastaa alkuperäistä, riippuu siitä, miten tarkka kuva siitä on tallennettu. Tähän vaikuttaa ennen kaikkea kaksi tekijää: näytteistystiheys ja näytekoko. Kuvassa 6 on esitetty Windows-sovelluksella muokattu ääninäyte. ([Ko, 1993], [Bu, 1993], [AFF1, 1995]).


Kuva 6. Esimerkki näytteistetystä äänestä wav-muodossa eräällä editorilla kuvattuna.


3.1. Näytteistystaajuus

Näytteistystaajuus (sampling rate) tarkoittaa sitä, kuinka tiheästi näytteitä on otettu. Näytteistystaajuus ilmoitetaan taajuutena, kiloherzeinä (tai herzeinä eli n kertaa sekunnissa), joka tarkoittaa näytteiden määrää sekunnissa (samples/sec). Mitä tiheämmin näytteitä otetaan, sitä suurempi kiloherziluku ilmoittaa näytteistystiheyden, ja sitä parempi on saadun äänen laatu. Koska näytteitä otetaan ajan mukaan etenevistä aalloista, näytteistystiheys määrää, miten korkeat äänet tallentuvat ja toistuvat. ADC ottaa tilannekuvan eli näytteen (sample) analogisen signaalin tasosta tietyllä ajanhetkellä. Näytteistystaajuus ilmoittaa, kuinka usein analoginen signaali digitoidaan.

Äänen korkeus riippuu sen värähtelytaajuudesta. Jos näytteitä otetaan esimerkiksi 11 000 kertaa sekunnissa eli näytteistystiheys on 11 kHz, mutta äänen taajuus on vaikka 15 kHz eli 15 000 värähdystä sekunnissa, ei kaikista värähdyksistä saada lainkaan näytettä. Jos äänen taajuus on 11 kHz, saadaan kustakin ääniaallosta vain yksi näyte, joka ei riitä. Vasta kun kustakin aallosta saadaan kaksi näytettä (suurin piirtein pohjalta ja huipulta, positiivinen ja negatiivinen amplitudin taso), muodostuu niistä suurin piirtein oikea kuva. Siksi 11 kHz:n näytteistystaajuudella toistuvat hyvin vain 5,5 kHz:ä matalammat äänet. Hyvään toistoon vaaditaan kuitenkin useampia näytteitä kustakin aallosta. Nyquistin teoreeman mukaan tietyntaajuisen äänen toistumiseen vaaditaan siksi vähintään kaksinkertainen, ja korkealaatuiseen nelinkertainen näytteistystaajuus. Näytteistystaajuudet esitetään aina kanavakohtaisesti laskettuina, joten esimerkiksi äänitettäessä stereodataa 8000 näytettä sekunnissa, on näytteitä oikeastaan 16000 sekuntia kohden.


44,1 kHz CD-äänilevyn standardi
22,1 kHz keskiaaltoradion taso
11,025 kHz puheen tallennus, hyvän puhelinlinjan taso
5,5 kHz vastaa huonon puhelinlinjan tasoa

Taulukko 1. PCM-standardin näytteistystaajuudet.



Tietyt näytteistystaajuudet ovat monestakin syystä suositumpia kuin toiset. Toiset tallennuslaitteet ovat rajattuja tietylle alueelle ja taas tietyt toistolaitteet tukevat suoraan niitä. Tavallisimpien taajuuksien suosio voidaan selittää yksinkertaisemmin myös kellotaajuutta jakavilla piireillä.


Näytettä sekunnissa Kuvaus
5500 Neljäsosa Macin näytteistystaajuudesta (tavataan harvoin).
7333 Kolmasosa Macin näytteistystaajuudesta (tavataan harvoin).
8000 Puhelinstandardi yhdessä u-law (ja a-law) -enkoodauksen kanssa. Jotkut systeemit käyttävät hieman eri taajuutta. Esim. NeXT-työasema käyttää taajuutta 8012.8210513 eli samaa, jota myös Telco CODECit käyttävät.
11 k Joko neljäsosa CD:n (11025) tai puolet Macin näytekoosta (kenties yleisin Macin koko).
16000 Käytetään mm. G.722-kompressointistandardissa.
18.9 k CD-ROM/XA -standardi.
22 k joko puolet CD:n näytekoosta (22050) tai Macin näytekoko. Taso on tarkalleen 22254.545454545454, mutta yleensä lyhennetään 22000:een.
32000 Käytetään digitaaliradiossa, NICAMissa (Nearly Instantaneous Compandable Audio Matrix [IBA/BREMA/BBC]), sekä monessa muussa TV-työskentelyssä. Myös pitkäsoittoinen DAT ja HDTV.
37.8 k CD-ROM/XA -standardi (korkeampi laatu).
44056 Tämä oudompi taajuus on ammattimaisten audiolaitteiden käytössä (mm. eri tyyppinen näytteiden sovittaminen medioiden kesken).
44100 CD:n näytekoko. (Myös DAT äänittäessä digitaalisesti CD:ltä käyttää tätä).
48000 DAT-nauhurin näytteistystaajuus.

Taulukko 2. Esimerkkitaulukko näytteistystasoista.


3.2. Näytekoko

Äänen laatuun vaikuttaa systeemin erottelukyky (resolution). Mitä suurempi määrä signaalin tasoa kuvaavaa dataa on, sitä hienompi on kuvattavan signaalin tarkkuus. Signaalin resoluutiolla eli erottelukyvyllä tarkoitetaan siis sitä, millainen määrä bittejä on varattu kuvaamaan signaalin kunkin pisteen amplitudia. Mitä suurempi bittiresoluutio on, sitä suurempi määrä diskreettejä amplitudiarvoja voidaan esittää. Esimerkiksi normaalille audio-CD:lle on standardoitu 16 bitin resoluutio, jolloin jokaisen audiosignaalin pisteen amplitudiarvo voidaan esittää 65536 eri arvolla. Vastaavasti 8-bittisessä audiossa on vain 256 eri amplituditasoa.

Erottelukyvyn bittien lukumäärä määrää myös signaalin dynamiikan, jolloin jokainen bitti vastaa 6 dB. Täten 8-bittinen audio antaa 48 dB:n dynamiikan (kasettidekki), 12-bittinen 72 dB:n (avokelanauhuri), ja 16-bittinen 96 dB:n dynamiikan (lähellä ihmiskorvan dynamiikkaa).

Kvantisointia (quantization) esiintyy silloin, kun lähdesignaalin arvot sijoittuvat erottelukyvyn mahdollistavien arvojen väliin. ADCn tapauksessa analoginen arvo pyöristetään eli kvantisoidaan lähimpään tarjolla olevaan digitaaliarvoon. Kvantisointi siis tuottaa eräänlaisen porrasefektin, joka voidaan havaita pienenä luonnottomuutena DACsta ulostulevassa signaalissa. Audion tapauksessa tämä voidaan havaita hieman rakeisena tai suhisevana äänenä. Kvantisoinnista aiheutuvat haittavaikutukset siis pienenevät resoluution kasvaessa.

Kvantisoinnissa täytyy aina ottaa huomioon virheiden mahdollisuus, joskin ne ovat hyvin pieniä. Suuriamplitudisella signaalilla on hyvin pieni korrelaatio signaalin ja virheen välillä. Virhe on siis erittäin satunnaista ja ilmenee analogisen valkoisen kohinan tapaan. Matalatasoisilla signaaleilla virheiden muoto signaalin suhteen muuttuu ja se ilmenee signaalissa säröytymisenä (distortion). Korrelointia voidaan poistaa lisäämällä analogista signaalia, värinää (dither), ensisijaisesti lineaariseen A/D-muuntimeen. Tästä hyödytään siinä, että kvantisoinnin virheet satunnaistuvat. Tällöin värinä ei peitä häiriöitä, vaan poistaa ne.

Värinäsignaalin lisäys siis minimoi säröytymisen. Se tarjoaa myös mahdollisuuden enkoodata amplitudeja pienemmiksi kuin 'vähäpätöisimmän bitin tekniikassa' (esim. luku 2.2.3.). Tällaisia tekniikoita ovat mm. pulssinleveysmodulaatio (pulse width modulation) ja keskiarvoistus (averaging). Värinä vaikuttaa ääneen digitointisysteemissä nostamalla äänentasoa hieman.

Äänentason vuodot yli normaalitasosta ilmenevät suhisevina ääninä. Tätä kutsutaan äänen rakeutumiseksi (granulation noise).


3.3. Äänen tiedostokoko

Aaltomuotoisena tallennetun äänen vaatima tila T (tavuina) voidaan laskea kaavalla:

T=(K*F*B*t)/8

jossa

Kaavasta voidaan nähdä tiedostokoon nopea kasvu pyrittäessä korkealaatuiseen ääneen. Esimerkiksi 10 sekunnin CD-tasoinen stereoääni vaatii 1.7 Mt tallennustilaa, mutta 8-bittinen, 11 kHz:n monoääni vain 110 kt.

Tallentamisen ja toistamisen tarkkuus riippuu käytettävän tietokoneen äänijärjestelmän ominaisuuksista. Äänikortteja (A/D- ja D/A-muuntimia) on sekä 8- että 16-bittisinä. 8-bittinen äänikortti käsittelee vain 8-bittistä ääntä, mutta 16-bittisellä on mahdollista sekä 8- että 16-bittinen käsittely. Äänen lopullinen laatu riippuu luonnollisesti tallennustason lisäksi monista eri tekijöistä, kuten alkuperäisen äänen tasosta, tietokoneen äänijärjestelmän ominaisuuksista (kohinasuhde, häiriöttömyys) ja toistolaitteistosta (vahvistin, kaiutin, kuulokkeet) sekä kuunteluympäristöstä (melu). Äänen tallennustasoa määriteltäessä on siksi otettava huomioon äänijärjestelmän kokonaisuus ja arvioitava, millaisessa tilanteessa ja millaisin välinein ääntä tullaan tarvitsemaan.



4. Digitaalisen audion ja koodauksen perusteita

Tietokonepohjaiset digitaaliaudiotuotteet käyttävät hyväkseen muunnintekniikkaa, jossa ADC digitoi audion ja DAC muuntaa numeerisen informaation takaisin analogiseen muotoon. Laitteistovaatimuksissa ja digitaalisen esityksen muodoissa on eroja yksinkertaisten audiodigitoijien (audio digitizers) ja kovalevyäänityssysteemien (hard disk recording systems) välillä. ([Bu, 1993], [Ida, 1996]).

Digitaalitekniikalla pystytään koodaamaan lähes virheettömästi koko äänikaista, mutta sen laadukas toteuttaminen vaatii suuren bittinopeuden. Studiokäytössä yleisessä DAT-järjestelmässä (Digital Audio Tape) käytetään 48 kHz:n näytteenottotaajuutta sekä lineaarisesti 16 bitillä kvantisoitua PCM-signaalia (Pulse Code Modulation). Perinteisillä koodausmetodeilla päästään noin puoleen tämän vaatimasta tilasta, jolloin saavutettu hyöty on vasta liian pieni.

Seuraavassa muutamia esimerkkejä myös muista digitaalisista äänilähteistä. CD (Compact Disk) sisältää 16-bittistä, PCM-moduloitua, 44.1 kHz:stä signaalia. DCC (Digital Compact Cassette) on 16-18-bittistä, kompressoitua (PASC) signaalia. MD (MiniDisc) myös 16-bittistä kompressoitua (ATRAC) signaalia. DSR (Digital Satellite Radio) on 16:sta 14:ään bittiin kompanderoitua (companding, kompressori-ekspanderi) signaalia.

Ominaisuuksina digitaalisella audiosignaalilla edellisiin on 32, 44.1 ja 48 kHz:n näytteistystaajuudet ja vähintään 16-bittinen pituus, sekä dynamiikka-alue, joka on laajempi kuin 96 dB. Vaatimuksina lähinnä ovat 18-bittinen A/D-muunnin ja vähintään 16-bittinen signaaliprosessori.

Koodausmenetelmiä käsitellään enemmän luvussa 5 ja koodausstandardeja luvussa 6.


4.1. Tavallinen audiodigitointi

Audiodigitoijassa on yleensä suhteellisen halpa ADC-systeemi muuntamassa balansoimattomasta sisääntulolinjasta saatavaa signaalia audioaalloista näytteistettyyn muotoon. Laatu on usein 8-bittistä näytteistystaajuuksilla 22 kHz:stä alaspäin aina 11 kHz:iin (jopa alemmas). DAC on samaa tasoa.

Laitteistoissa voi olla usein sisäänrakennettuja ominaisuuksia (kaiuttimia, (puhe)mikrofoneja). Esimerkiksi Macintoshin sisäänrakennettu audiojärjestelmä on 8-bittinen 22 kHz:n taajuudella. Tuotteet, kuten MacRecorder ja sisäänrakennettu mikrofoni ovat hyvä esimerkki edullisesta systeemistä.

Audion digitoinnin piirissä on suurena taipumuksena standardoida pääasiassa vain muutama näytteistystaajuus, tiedostoformaattien eroista huolimatta. Näitä ovat 8000 Hz:n 8-bittinen u-law mono, 22050 Hz:n 8-bittinen merkitsemätön mono ja stereo, sekä 44100 Hz:n, 16-bittinen merkitty mono ja stereo.

Laitteistojen kehitys menee eteenpäin huimaa vauhtia ja aina tehokkaampia laitteistoja ja lisäosia (äänikortit ym.) tulee markkinoille. Taulukossa 3 on kuitenkin listattuna suuntaa-antavaa laitteistotietoa äänenkäsittelyn näkökulmasta. On otettava huomioon se, että taulukkoon on merkitty laitetiedot ilman erillisosia. Laitteille on olemassa suuri määrä erillistä 'hardwarea' mm. äänityksiin ja digitointiin. Laitteet tarvitsevat luonnollisestikin erilliset ohjelmistot. ([AFF1, 1995]).


Laite Bittejä Maksimi näyt.taajuus Kanavien määrä (output)
Acorn Archimedes ~u-law ~180k 8 (stereo)
Amiga 8 vaihteleva 15k - 29k (max.) 4 (stereo)
Apple IIGS 8 32k 16 (stereo)
Apple Macintosh (kaikki) 8 22.05k 1
Apple Macintosh (uudet) 16 64k 4 (128)
Atari ST 8 22k 1
Atari STE, TT 8 50k 2
Atari Falcon 030 16 50k 8 (stereo)
DEC 3000 u-law 8k 1
DEC 5000/20-25 u-law 8k 1
HP9000/705, 710, 425e u, a-law, 16 8k 1
HP9000/715, 725, 735 u, a-law, 16 48k 1 (stereo)
HP9000/755 u, a-law, 16 48k 1 (stereo)
NCD MCX terminal u, a, 8, 16 52k 1 (stereo)
NeXT (perus) u-law, 8, 16 44.1k 1 (stereo)
PC/soundblaster pro 8 22.05k / 44.1k 1 (stereo)
PC/soundblaster 16 16 44.1k 1 (stereo)
PC/pas 8 44.1k / 88.2k 1 (stereo)
PC/pas-16 16 44.1k / 88.2k 1 (stereo)
PC/turtle beach multisound 16 44.1k 1 (stereo)
PC/roland rap-10 16 44.1k 1 (stereo)
PC/gravis ultrasound 8/16 44.1k 14-32 (stereo)
SGI (Silicon Graphics) Indigo 8, 16 (Motorola 24-bit DSP) 48k 4 (stereo)
SGI Indigo2,Indy 8, 16 (Motorola 24-bit DSP) 48k 16 (stereo)
Sony NWS-3xxx u, a, 8, 16 8-37.8k 1 (stereo)
Sony NWS-5xxx u, a, 8, 16 8-48k 1 (stereo)
Sun Sparc u-law 8k 1
Sun Sparcst. 10 u-law, 8, 16 48k 1 (stereo)
Tandy 1000/*L* 8 44k 1
Tandy 2500 8 44k 1
VAXstation 4000 u-law 8k 1

Taulukko 3. Laitteistokohtaista esimerkkitietoa bittimääristä, näytetaajuuksista ja kanavamääristä.


4.2. Kovalevyäänitys

PC-tietokoneiden uusin aluevaltaus musiikkistudioissa ovat kovalevyäänittimet (Hard Disk Recorder). Järjestelmä korvaa perinteisen analogisen moniraitanauhurin digitaalisella systeemillä. Kovalevyäänityksessä analoginen tulosignaali muunnetaan digitaaliseksi AD-muuntimella ja tallennetaan (yleensä SCSI-liitäntäiselle) kovalevylle. Toistossa tiedosto luetaan levyltä ja muunnetaan jälleen analogiseksi.

Äänen laatu on samaa tasoa kuin CD:ssä tai DATissa ja editointimahdollisuudet ovat suuret. Ääntä pääsee käsittelemään jopa tuhannesosasekunnin tarkkuudella.

Kovalevyäänittimiä on pääasiallisesti kahta tyyppiä: tietokoneen sisälle asennettavalla lisäkortilla toimivat ja ulkoiset, tietokoneesta riippumattomat, järjestelmät. Tässä esitelmässä keskitytään ainoastaan tietokoneeseen asennettaviin systeemeihin.

Sisäiset järjestelmät (esim. DigiDesign Session 8) käyttävät PC:n sisälle asennettavaa lisäkorttia, joka sisältää järjestelmän tarvitsemat AD-muuntimet ja ohjauselektroniikan. Tietokoneeseen asennettava ohjelmisto ohjaa kortin toimintaa. Etuna perinteiseen analoginauhuriin ja ulkopuoliseen digitaaliäänittimeen tarjoaa sisäinen kovalevyäänitin tutun käyttöliittymän ja toiminnan integroitumisen yhdelle koneelle.

Useimmat kovalevyäänittimet ovat 8-raitaisia. Kotikäyttöön on myös neliraitaversioita, esim. Turtle Beachilta. Turtle käyttää äänen tallennukseen ja toistoon tietokoneen omia kovalevyjä (myös AT/IDE-liitäntäisiä). Kovalevyäänitysten laitteistojen tekniikka edistyy huimaa vauhtia.

Ilmoitettu raitamäärä kovalevyäänittimissä ei kuitenkaan kerro koko totuutta. Useimmissa laitteissa hyödynnetään ns. non-destruktiivista editointia. Tämä tarkoittaa sitä, että jokainen yksittäinen äänitys joka laitteella tehdään, varaa levyltä oman tilansa. Vaikka sama kohta kappaleesta äänitetään samalle raidalle uudestaan, ei edellinen otto tuhoudu, vaan se on tarpeen vaatiessa palautettavissa. Näin käyttäjä voi tallettaa käytettävissä olevasta levytilasta riippuen suuren määrän 'virtuaaliraitoja', joista voidaan valita ne, joita lopulta käytetään.

Toinen raitamäärään vaikuttava seikka on tehdä ns. downmix. Downmixissä useampi raita yhdistetään miksaamalla yhdeksi ja tallennetaan tulos uudelle raidalle. Näin nämä kaksi ensimmäistä raitaa vapautuvat uudelleen käytettäviksi. Sama onnistuu tietenkin myös analogilaitteissa, mutta digitaaliäänityksessä ei kohina lisäänny raitojen yhdistämisestä, joten summaamista voidaan tehdä huomattavasti laajemmassa mittakaavassa kuin analoginauhureissa.


5. Digitaalisen äänen koodaus

Tavanomaisen audiosignaalin talteenotto ja säilytys sellaisenaan vaatii resursseja. Niinpä on tehty kokeiluja muistitilan pienentämiseksi. On esimerkiksi kokeiltu jättää hiljaisia tai muita ihmisen kuulemattomia hetkiä tallentamatta, poistaa usein toistuvia komponentteja tai muuttaa koodausta. Voidaan esimerkiksi tallentaa kahden näytteistetyn arvon erotus varsinaisten arvojen sijaan. Tämä vie vähemmän tilaa, sillä aalto ei juurikaan muutu näytteiden välillä. Edellä mainitut toimenpiteet perustuvat ns. säästö- eli reduktiokoodaukseen. ([Coas, 1996], [Wab, 1997]).

Lisäksi hyödynnetään kuulokynnystä, joka on äänentaso, jolla ihminen pystyy kuulemaan tietyntaajuisen äänen. Ihmisen kuulokynnys on parhaimmillaan 4kHz:n taajuudella. Se on erittäin alhainen (~0 dB) 1-5 kHz:n taajuusalueella, jolla alueella kuulokynnyksestä ei ole hyötyä äänenkoodauksessa. Mutta koska korkeammilla äänillä (>16kHz) kuulokynnys nousee jyrkästi, käytetään koodausta näille alueille.

Edellisten lisäksi voidaan vielä mainita kriittinen kaista. Ihmiskorva analysoi kuulemaansa ääntä siten, että tietyn kriittisen kaistan sisälle osuvat taajuudet analysoidaan yhtenä kokonaisuutena. Tämä johtuu pelkästään ihmiskorvan fyysisistä ominaisuuksista. Esimerkiksi MPEG-koodauksessa signaali jaetaan lineaarisesti taajuuskaistoihin. Tällöin saadaan tilanne, jossa yksittäisen kaistan leveys saadaan pidettyä ihmiskorvan kriittisen kaistan edellyttämissä rajoissa.

Koodauksesta ja kompressoinnista huomattavasti enemmän luvussa 6 audioformaattien yhteydessä.


5.1. Audiosignaalin koodaus

Hyvää, ellei erinomaista, audiokoodausta saadaan erilaisilla taajuuspainoitetuilla koodereilla (frequency domain coders). Tällaisia ovat mm. alikaistakoodaus (subband coding, SBC) ja mukautuva muunnoskoodaus (adaptive transform coding, ATC). Kooderien erot riippuvat lähinnä äänen spektrikomponenttien määrästä, kvantisointistrategioista ja tapahtuvien koodausvirheiden peittämisestä. ([Coas, 1996]).


5.1.1. Taajuuspainotettu koodaus (Frequency domain coders)

Taajuuspainotetussa koodauksessa lähetettävän tiedon määrää vähennetään muokkaamalla alkuperäisestä signaalista lyhyempimuotoista äänispektritietoa. Lisäksi käytetään hyväksi korvan peitto-ominaisuuksia. Taajuuspainotetut kooderit tarjoavat suoran menetelmän taajuuskomponenttien häiriöiden muotoilemiseksi ja vaimentamiseksi niin, ettei niitä tarvitse lähettää.

Alkuperäisen signaalin spektri on jaettu taajuuskaistoihin. Jokainen taajuuskomponentti on kvantisoitu erikseen. Kutakin taajuuskomponenttia kohti käytetty bittien määrä vaihtelee. Mitä olennaisempi ja tärkeämpi komponentti on kyseessä, sitä hienommin se kvantisoidaan, ts. käytetään enemmän bittejä. Lähdesignaalin dynaamisen bittien sijoittelun kontrollointia varten tarvitaan eräänlainen spektrivaippa. Tämä tarkoittaa siis sitä, että bittien sijoitteluinformaatiota tulee lähettää jatkuvasti dekoodaajalle rinnakkaisinformaationa toiminnan tehokkuuden vuoksi.

Ratkaiseva merkitys taajuuspohjaisessa audiosignaalin koodauksessa on esikaikujen (pre-echoes) esiintymisellä. Esimerkiksi, kun hiljaista kohtaa seuraa jokin perkussioääni samassa koodausalueessa (coding block), on mahdollisuutena verrattaen suuri hetkellinen kvantisointivirhe. Esikaiuista voi tulla hyvin selvästi kuuluvia, varsinkin virheherkillä alhaisilla bittimäärillä.

Esikaiut voidaan peittää aikapohjaisella esipeitto-efektillä (pre-masking). Ne voidaan välttää käyttämällä lyhyempiä koodausalueita. Kuitenkin rinnakkaisinformaation siirtoon tarvitaan suurempi bittimäärä, jos alueet ovat liian lyhyitä.


5.1.2. Alikaistakoodaus (Subband coding)

Lähdesignaali syötetään analysoivaan suodinsarjaan (analysis filter bank). Se sisältää M -kappaletta kaistansuotimia taajuudellisesti rinnakkain niin, että sarja alikaistasignaaleja voidaan lisätä yhdistellen niitä halutulla tavalla ja näin tuottaa alkuperäinen signaali tai sitä lähellä oleva.

Jokaisen suotimen ulostuloa on häivytetty määrällä M, joka on siis summa alkuperäiseen sig-naaliin verrattavista alikaistasignaaleista. Jokaisen suotimen signaali on kvantisoitu erikseen.

Vastaanottopuolella jokaisen alikaistan näytteistystaajuutta lisätään vastaamaan alkuperäistä signaalia. Tämä toteutetaan lisäämällä signaaliin tarpeellinen määrä nollanäytteitä. Synteesisuodinsarjan (synthesis filter bank) kaistaulostuloissa voi ilmetä laajentunutta, interpoloitunutta alikaistasignaalia. Jos systeemissä on 'täydelliset' jälleenmuokkaussuotimet, on summasignaali vastaava kuin kvantisoimaton lähdesignaali.

Esimerkkejä alikaistakoodauksesta ovat ISO/MPEG -Audiokoodauksen tasot I ja II sekä Presicion Adaptive Subband Coding (PASC), jota käytetään DCC:ssä.


5.1.3. Muunnoskoodaus (Transform coding)

Sarja sisääntulevia näytteitä muutetaan lineaarisesti erikseen sarjaksi muunnoskertoimia. Tämän jälkeen nämä kertoimet kvantisoidaan ja lähetetään digitaalisessa muodossa dekoodaajalle. Siellä käänteiset muuntimet kartoittavat signaalin takaisin aikapohjaiseksi.

Tyypillisimpiä muunnoksia ovat diskreetti Fourier-muunnos (DFT) tai diskreetti kosinimuunnos (DCT) laskettuina FFT:n (Fast Fourier Transform) periaatteella. Diskreetit muunnokset voidaan esittää suodinsarjoina. Kaistojen impulssivasteiden lopullisia pituuksia voidaan kutsua lohkojen raja-efektiksi (block boundary effect). ATC-kooderit käyttävät modifoitua DCT:tä (MDCT). Siinä käytetään päällekäisiä analyysilohkoja, jotka voivat olennaisesti muuttaa näitä efektejä.

Nämä muunnokset täyttävät tehokkaasti heikosti näytteistetyn muunnosperäisen suodinsarjan. Niissä ei ilmene lohkojen rajaefektejä ja niillä on korkeampi muuntokoodaushyöty kuin DCT:llä. Lisäksi niiden perusfunktioilla on paremmat taajuusvasteet.

Esimerkkejä muunnoskoodauksesta ovat mm. Dolby AC-2 -koodaus ja AT&T:n perceptual audio coder (PAC).


5.1.4. Hybridikoodaus (Subband/Transform)

Hybridikoodaus on yhdistelmä diskreetistä muunnoksesta ja suodinpankkien käytöstä. Erilaisia taajuusresoluutioita voidaan järjestää eri taajuuksille joustavasti käyttämällä suodinpankkien 'rypästä' ja lineaarista MDCT-muunnosta (hybrid filterbank). MDCT-muunnos jakaa jokaisen alikaistasekvenssin myöhemmin taajuussisältöiseksi saavuttaakseen korkeataajuisen resoluution. Tästä esimerkkinä on mm. Sonyn Adaptive transform acoustic coding (ATRAC), joka on käytössä MiniDiscissä ja MPEG-1:n layer III:ssa.


5.1.5. Useampikanavaisten audiosignaalien koodaus

Epämääräisyydet ja asiaankuulumattomuudet voidaan poistaa useilla tavoilla saaden näin kokonaisbittimäärää pienemmäksi. Näitä ovat kanavienvälinen riippuvuus ja kanavienvälinen peittoefekti. Lisäksi stereo-kuulumattomat komponentit monikanavasignaalissa, jotka eivät edesauta äänilähteiden paikantamisessa, saattavat tulla tunnistetuiksi ja uudelleenmuokatuiksi monofonisessa muodossa. Esimerkkeinä tästä mm. MPEG-2:n monikanavakoodaus ja Dolby AC-3 -koodaus.


5.1.6. Olemassaolevien koodausalgoritmien tuolla puolen

Parempi stereoesityksen binauraalisen (molemmin korvin kuultavan) kuvan aistimuksen ymmärtäminen johtaa uusiin koodausratkaisuihin. Useita hankkeita on jo valmisteilla korkeatasoisen koodauksen suorittamiseksi alhaisilla bittitasoilla (MPEG-2 ja MPEG-4). Myös digitaalisen surround-järjestelmän alueella on odotettavissa lisätoimia. Matkapuhelinverkoissa koodereiden ei tule toimia vain alhaisilla bittitasoilla, vaan myös pysyä vakaana purskevirheiden ja pakettihäviöiden alueilla. Tätä varten kehitellään virheidenpiilotustekniikoita.


5.2. Audion pakkausmenetelmiä

Signaalin koodausta jokaista arvoa tallentamatta kutsutaan kompressoinniksi (compression, pakkaus). Kompressoinnista on eri valmistajien ja kehittelyryhmien omia malleja ja ne ovat vahvasti kehitystyön alla jatkuvasti. ([Af, 1997], [Coas, 1996], [Bu, 1993]).

Aluksi bittimäärän pienentäminen oli vaatimatonta. Ensiaskelia kompressoinnin maailmaan tarjoilivat muun muassa seuraavat tekniikat. Hetkellinen yhdistely (instantaneous companding) muuntaa tasaisen 11-bittisen PCM:n epäsäännölliseksi PCM-esitykseksi (u-law, a-law). Eri muotoja lohkoyhdistelystä (block companding) ovat järjestelmät kuten DSR ja NICAM. Mukautuvaa differentiaalista PCM:ää (ADPCM) käytetään mm. CD-I -järjestelmissä.

Audiodata on yllättävän hankalaa pakattavaksi tehokkaasti. 8-bittiselle datalle oli suhteellisen onnistunut Huffmanin enkoodausmalli, joka perustuu hyvien näytteiden välisiin 'deltoihin'. 16-bittisen datan pakkausmenetelmien kehittämiseen ovat yhtiöt, kuten Sony ja Philips, käyttäneet miljoonia dollareita. Philipsin luonnos aiheesta on PASC.

Audiodatan kompressointitapoja on useita, ja on syytä ottaa huomioon jokaisen hyvät ja huonot puolet. On otettava huomioon myös se, että jokaista äänitiedostoa (eri formaateissa) voi olla useita eri mahdollisuuksia enkoodata. Esimerkiksi AIFF-tiedostot voidaan purkaa (uncompress) ja pakata MACElla tai kompressoida vaikka ADPCM/IMAlla.

Kuvataan seuraavaksi hieman yleisimpiä kompressointimenetelmiä, niiden vahvuuksia ja heikkouksia. On huomioitavaa, että kaikki menetelmät ovat todellisuudessa häviöllisiä eli ne kompressoivat näytteistyksen laadun kustannuksella.

Julkiset äänenpakkausstandardit saavat yhä suurempaa suosiota. Näitä ovat mm. CCITT G.721 (32 kbit/s ADPCM (Adaptive Delta Pulse Code Modulation)) ja G.723 (24 ja 40 kbit/s ADPCM). Esimerkiksi Sun Microsystems on asettanut lähdekoodinsa liitteenä näihin algoritmeihin (kuten G.711, joka määrittelee u-lawin ja a-lawin).

MACEn pakkaus ja purku ovat äärimmäisen nopeita, mutta näytteistyksen laatu heikkenee aika paljon. MACEn nopeudesta on osoituksena mm. se, ettei esimerkiksi QuickTime-elokuvan ääniraidan (MACE-kompressoitu) dekoodaaminen tietokoneella lisää merkittävästi tietokoneen kuormaa. MACE-koodaus kuuluu pääsääntöisesti Macintosh-maailmaan, sillä muut järjestelmät eivät käsittele MACEa helposti. MACE tukee vain 8-bittistä äänidataa. Kompressiosuhteet ovat 3:1 ja 6:1. Huonosta yhteensopivuudesta ja alhaisesta näytteistyksestä johtuen en pitäisi MACEa kovin varteenotettavana vaihtoehtona.

IMA/ADPCM -systeemi on hyvä vaihtoehto MACEn ja MPEGin välissä. IMA tarjoaa varteenotettavan nopean koodauksen ja purun sekä laskee näytteen tasoa vain hieman. IMA-standardin pakkaussuhde 16-bittiselle äänelle on 4:1 (8-bittistä ei tueta).

MPEG (Motion Picture Experts Group) on kehittänyt standardeja käsittämään yhdistettyä audio-visuaalista tiedonsiirtoa. Standardi tunnetaan lyhenteellä MPEG. Audiossa MPEG noudattaa psykoakustiikan perusperiaatteita, eli ottaa huomioon sen, kuinka aivot tulkitsevat äänen laadullisia seikkoja ja mitä taajuusalueita korva aistii herkimmin. MPEG-standardi vaatii myös suorituskykyä laitteistolta. MPEGistä lisää luvussa 6.

U-Law on nopea 2:1 -pakkausmenetelmä16-bittiselle Sun Microsystemsin käyttämälle audiolle. Tällä kompressointimenetelmällä on on kenties suurin yhteensopivuustuki audiokompressointimenetelmien kentässä. Koodausstandardeja esitellään tarkemmin luvussa 6.



6. Audion koodaus- ja tallennusmuodot, eli tallennusstandardit ja audioformaatit

Kautta historian lähestulkoon joka laitteistolla on ollut oma tiedostotyyppinsä audiodataa varten. Toiset niistä ovat enemmän tai vähemmän yhteensopivia, mutta yleensä kaikki tiedostoformaatit ovat muunnettavissa toiseksi, tosin joskus informaatiota hukkaavasti. ([Af, 1997], [Ko, 1993], [AFF1, 1995], [AFF2, 1995], [Ja, 1997], [Pa, 1996], [Fr, 1997], [Da, 1995]).

Digitaalisen audion tallennusstandardeja käsittelevät sekä yksityiset että julkiset organisaatiot. Aktiivisesti tällä alueella toimivia organisaatioita ovat mm.

Äänen tiedostoformaatit ovat laitteen muihin piirteisiin verrattuna oma, erillinen osa-alueensa. Tiedostotyypit voidaan jakaa kahteen eri kategoriaan. Itsekuvailevat (self-describing) tiedostotyypeissä laiteparametrit ja koodaus ovat määriteltyinä jonkinlaisena erillisenä otsakkeena, 'headerina'. 'Raa'oissa' formaateissa laiteparametrit ja koodaus ovat yhdistettyinä. Itsemäärittelevät formaatit muodostavat oman 'koodausperheensä', jossa otsakekentät ilmaisevat tapauskohtaisen käyttötarkoituksen, toisin kuin otsakkeettomat formaatit, jotka eivät salli parametrivariaatioita.

Otsakekentät sisältävät näytteistys(laite)parametrejä ja muuta informaatiota (kuten äänen kuvaus ja copyright-tietoa). Useimmat headerit alkavat nk. maagisella luvulla (magic number) (kts. luku 6.4.2.), joka on jokaiselle formaatille ominainen luku. Jotkut formaatit eivät välttämättä määrittele mitään otsakekentässä, vaan ne muodostuvat osioista, joissa itsessään on sisällä osiot koodausinformaatiosta. Datan koodaus määrää sen, millä tavoin näytteet tallennetaan (esim. ovatko ne merkittyjä, merkitsemättömiä, tavuina vai lyhyinä kokonaislukuina). Myös kanavien lomittaminen on tietynlaista koodausta.

Tässä luvussa perehdytään varsinaisesti audioformaatteihin. Standardit ja formaatit on käsitelty tyyppikohtaisesti. Jokaisen kohdalle on kerätty niihin liittyvää olennaista, ja ylipäätään saatavilla olevaa, tietoa. Luvussa sijaitsevat sulassa sovussa nekin formaatit, jotka voitaisiin yleisesti ryhmitellä vaikka koodaukseksi, kompressoinniksi tai normaaleiksi tiedostoiksi. Kuitenkin useista niistä löytyy yhtymäkohtia toisiinsa.

Joidenkin formaattien kohdalla on esitelty myös koodausmetodeita ja (tieto)rakenteita. Karkeana yleistyksenä voitaisiin sanoa niiden olevan samankaltaisia useiden muidenkin formaattien kohdalla, joten kirjoitettuja pätkiä kannattaa ajatella tukirunkoina myös muille tapauksille.


6.1. MPEG

MPEG (Moving Pictures Experts Group) (tiedostotarkentimina mm. .mp2, .mp3) on ISOn (International Standard Organization), eli kansainvälisen standardoimisliiton komitea, joka kehittää liikkuvan kuvan ja audion pakkaamisen standardeja. Tämä alati laajeneva komitea on perustettu vuonna 1988 ja edustajia on 20 maasta.

MPEG/audio on geneerinen äänen kompressiostandardi. Useista vokaalimalleihin perustuvista puheelle optimoiduista koodausmenetelmistä poiketen se kompressoi signaalia olettamatta mitään itse lähteen luonteesta. MPEG/audio koodaa kaiken, minkä ihmiskorva voi kuulla. Standardissa on useita kompressiomoodeja. MPEG/audion bittijonoon voidaan lisäksi kohdistaa satunnaishakuja ja suorittaa nopeutettua kelausta.

MPEG-komitea, kuten muutkin standardoimiskomiteat, luo standardeja versioittain. Tämän vuoksi myös MPEG on nimennyt standardinsa numeroimalla ne taulukon 4 osoittamalla tavalla.

MPEG-1 Coding of Moving Pictures and Associated Audio for Digital Storage Media at up to about 1.5 Mbit/s (valmistui 10/92)
MPEG-2 Generic Coding of Moving Pictures and Associated Audio (valmistui 11/94)
MPEG-3 Suunniteltiin HDTV-sovelluksiin, mutta on nyttemmin sisällytetty MPEG-2:een. Ei siis enää olemassa.
MPEG-4 Very Low Bitrate Audio-Visual Coding (MPEG-komitean päätehtävä nyt, kehitellään vielä, mutta periaattelliset speksit valmistuivat 1995)

Taulukko 4. MPEG-standardit


MPEG-1 ja -2 ovat täysin valmiita standardeja, joita useimmat äänen ja/tai kuvan pakkausta tarvitsevat sovellukset käyttävät. Molemmat standardit koostuvat taulukossa 5 esitellystä neljästä pääosasta.

System Määrittelee audio- ja videosignaalin synkronoinnin ja multipleksauksen
Video Määrittelee videosignaalin kompression
Audio Määrittelee audiosignaalin kompression
Testaus Määrittelee koodekin bittivuon ominaisuudet ja dekoodausprosessin

Taulukko 5. MPEG-standardien pääosat


6.1.1. MPEG-1 ja -2 sekä niiden rakenne

MPEG-1 ISO/IEC JTC1/SC29 WG11 (tunnetaan myös nimellä Moving Pictures Expert Group) on ensimmäinen, muttei suinkaan vähäpätöisin standardi. Se sai kansainvälisen standardin aseman lokakuussa 1992. Siinä on viisi osaa, joista neljä on MPEG-1:lle ja MPEG-2:lle yhteisiä. Viides osa on ohjelmistosimulaatio, joka on raportti kolmen ensimmäisen osan teknisestä ohjelmistorakenteesta. Näytteenottotaajuudet MPEG-1:ssä ovat 32, 44.1 ja 48 kHz.

Kompressoitu bittijono voi tukea yhtä tai kahta äänikanavaa jollakin neljästä vaihtoehdosta:

MPEG-1:llä on ennalta määrätyt bittinopeudet. Kompressoidulla bittijonolla voi olla useita ennalta määrättyjä kiinteitä nopeuksia välillä 32...224 kbit/s per kanava. Kompressiotasoja MPEG-1:llä on kolme erilaista.

Lisää standardin yksityiskohdista löytyy seuraavasta julkaisusta:[ISO/IEC 11172-3:1993 Information technology -- Coding of moving pictures and associated audio for digital storage media up to about 1,5 Mbit/s -- Part 3: Audio].

MPEG-2 ITU ja ISO/IEC JTC1/SC29 WG11 on MPEG-1:n seuraaja ja valmistui marraskuussa 1994. Tämän standardin tarkoitus ei siis ole korvata MPEG-1:stä, vaan täydentää sitä. Tästä syystä MPEG-2:n yhdeksästä osasta viisi ensimmäistä ovat lähes samoja kuin MPEG-1:ssä.

MPEG-2:ssa on monikanava-äänituki. Se tukee viittä hifi-audiokanavaa. Nämä ovat pääkanavat (vasen & oikea etu), keskikanava, sekä takakanavat (niinsanotut surround-kanavat). Lisäksi on optionaalinen pienitaajuuksinen lisäkanava, joka on tarkoitettu subwoofer-informaatiolle eli alhaisimmille taajuuksille. Tämä kanava on nimetty LFE:ksi (Low Frequency Enhancement).

Standardissa on myös lisäys seitsemän itsenäisen kanavan järjestelmälle, jolloin saadaan lisää sovelluksia standardin piiriin. Tämän lisäyksen pääkäyttökohteena on kuitenkin monikieliaudiodatan tallennus.

MPEG-2 ja MPEG-1 on toteutettu keskenään yhteensopiviksi. Eteenpäin yhteensopivuuden mukaisesti MPEG-2:n pitää hyväksyä kaikki MPEG-1:n näytteenottotaajuudet ja bittinopeudet. Taaksepäin yhteensopivana MPEG-1:n koodekki osaa avata MPEG-2:lla tehdyn koodauksen. Matrixing-laskentametodilla surround-informaatio lasketaan mukaan downmix-koodauksessa, jossa MPEG- 1:n dekooderilla koodataan auki MPEG-2:sen monikanavaista informaatiota. MPEG-2:ssa on myös pienempiä näytteenottonopeuksia.

Standardi sisältää 32, 22.1 ja 48 kHz näytteenottonopeuksien lisäksi näiden puolinopeudet (16, 22.05 ja 24 kHz).

Bittijonot ovat alhaisemmin kompressoituja. Standardi sisältää lisäksi matalia nopeuksiin 8 kbit/s saakka kompressoituja bittinopeuksia.

Lisäinformaatiota lähteessä [ISO/IEC DIS 13818-3/ITU H.222 Information technology -- Coding of moving pictures and associated audio information -- Part 3: Audio].

MPEG-1 ja MPEG-2 -standardien Audio-osa (numero 3) määrittelee MPEG-audiokoodauksen perusrakenteen, joka koostuu kolmesta kerroksesta. Näitä kutsutaan myös kolmeksi algoritmiksi, layeriksi, joka terminä on yleisesti käytössä monissa kielissä, ja on näin joissakin yhteyksissä käytetympi nimi kuin kerros. Layerit ovat tehokkuusjärjestyksessä Layer 3:n ollessa tehokkain ja Layer 1:n taasen yksinkertaisin.


6.1.2. MPEG-koodaus

MPEG-koodauksen perustana on MUSICAM-koodaus. Tämä on algoritmi, joka kehitettiin ennen MPEG-standardeja. Algoritmi oli siinä määrin hyvin tehty, että se otettiin käyttöön MPEGssä. MUSICAMista tehtiin yksinkertaistettu versio, joka lanseerattiin käyttöön Layer 1:ssä. Huonona puolena MPEG-1:ssä on se, että se tarvitsee varsin suuren bittinopeuden, eikä siis pakkaa audio-dataa tehokkaasti.

MPEG-koodauksen perusrakenteen ensimmäisessä vaiheessa PCM-audiosignaali jaetaan alikaistoihin, kunhan se ensin muutetaan taajuusjakoiseksi käyttämällä suodinpankkia. Seuraavassa vaiheessa muodostetaan psykoakustinen malli, jossa käytetään apuna nopeaa Fourier-muunnosta (FFT, Fast Fourier Transform). Psykoakustinen malli laskee tehotasot ja määrittelee näitten avulla peittoäänten tehon.

MPEG-purkaja on huomattavasti yksinkertaisempi kuin kooderi, sillä sen ei tarvitse muodostaa mitään malleja, eikä suorittaa ylimääräisiä laskutoimituksia. Dekooderi ainoastaan purkaa paketit, rakentaa kvantisoidun spektrin ja muuntaa taajuusjakoisen koodin aikatasoon.


6.1.3. MPEG-audiokerrokset (layers)

MPEG-audiokoodaus on jaoteltu kolmeen kerrokseen, eli jo aiemmin mainittuihin kolmeen kerrokseen. Kooderin rakenne monimutkaistuu huomattavasti siirryttäessä Layer 2:sta kolmanteen. Tämä on suora seuraus siitä, että pakkauskertoimet suurenevat huomattavasti juuri tällä askeleella. Kaikilla kerroksilla on samat perustoiminnot, joissa kooderi analysoi datan, muodostaa mallin ja koodaa datan.

Koodauksessa syntyy paketteja, jotka sisältävät eri määrän audiosignaalin näytteitä kerroksesta riippuen. Ensimmäisen kerroksen paketissa on 384 näytettä, sekä 2. ja 3. kerroksilla on 1152 näytettä yhdessä paketissa. Tässä on siis huomattava ero. Jokaisen paketin alussa on 32 bittinen otsikko- eli header-kenttä. Otsikkokenttä pitää huolta synkronoinnista ja sekä kuljettaa koodausparametrit.

Layer-1:stä käytetään pääasiassa DCC-kaseteissa (Digital Compact Cassette). Järjestelmässä käytetään maksimibittitasoa, eli 192 kbit/s/kanava.

Layer-2 on eräänlainen kompromissimalli. Se sijoittuu kahden enemmän käytetyn layerin väliin, eikä sille tehtyjä sovelluksia ole paljoa.


6.1.4. MPEG-Layer 3

MPEGin layer 3 on ehdotonta eliittiä audiokoodausmaailmassa tällä hetkellä. Sen perusominaisuuksiin kuuluu laadukas äänenlaatu tiiviistä pakkauksesta huolimatta. Pakkaussuhde on 1/12 alkuperäisestä, jolloin saadaan CD-tasoista ääntä ilman havaittavaa äänenlaadun heikkenemistä. Tästä voidaan laskea, kuinka mainio tilankäyttö systeemillä on. Layer 3 on määritelty sekä MPEG-1:ssä että MPEG-2:ssa.

Layer 3 soveltuu korkean äänenlaatunsa puolesta kaikenlaiseen musiikin tallennukseen ja kohtalaisen alhaisten bittinopeuksiensa vuoksi myös audiodatan siirtoon. Esimerkkeinä voitaneen mainita korkealaatuinen stereoääni ISDN-linjan läpi. Tällä on useita käyttötarkoituksia, kuten äänen radiotyylinen lähettäminen alhaisen bittinopeuden omaavien satelliittikanavien kautta, äänen siirto tietokoneverkoissa (kuten Internetissä), lähinnä musiikin tallennus huomattavan pieneen tilaan, korkealaatuisen puheen siirto (käyttöä esimerkiksi uutisraportoinnissa) ja DVD-levy.

Äänen laatu Kaistanleveys (kHz) Mono/stereo Siirtonopeus (kbps) Pakkaussuhde
puhelin 2.5 mono 8 96:1
LA-puhelin 4.5 mono 16 48:1
AM-radio 7.5 mono 32 24:1
FM-radio 11 stereo 56...64 26...24:1
lähes CD 15 stereo 96 16:1
CD >15 stereo 112...128 14...12:1

Taulukko 6. Vertailutaulukko eri lähteiden mukaan


PC-koneisiin on suunniteltu ohjelmistoja, joilla voidaan koodata ja purkaa Layer 3 -dataa, sekä soittaa mp3-musiikkia (Layer 3 –musiikin maailmanlaajuinen nimitys) reaaliajassa. Real-Time-Player eli reaaliaikainen toistosovellus on ollut vaikea kehittää, mutta innostus mp3:a kohtaan on suurta ja markkinoille tulee jatkuvasti uusia sovelluksia käyttöön. Näitä ovat mm. Audioactive, Winplay ja MuseArc sekä Xing-Technologyn StreamWorks, joka on eräs nykysovelluksia ajatellen kenties varteenotettavin.


6.1.5. MPEG-4

MPEG-4 on uusin stardointivaiheessa oleva komitean projekti, joka on tarkoitettu erittäin matalia bittitaajuuksia tarvitseville järjestelmille. Suurin muutos on interaktiivisuus. Vastaanottaja voi kesken tiedonsiirron esimerkiksi muokata bittinopeutta ja/tai muuttaa stereo-signaali mono-signaaliksi, jolloin bittinopeus kasvaa.

Audio-osan perustavoitteena on multimedia-sovellukset, kuten video/internet-puhelimet. MPEG-4 -audiokoodaus jaetaan synteettiseen ja luonnolliseen koodaukseen. Standardi tukee erilaisia audioformaatteja, kuten näytteenottotaajuutta, amplitudiresoluutiota, kvantisoinnin luonnetta sekä kanavien lukumäärää. Synteettinen audio on tulevaisuuden alaa ja MPEG-4:ssä on määriteltynä mm. synteettinen puhedata ja 3D-kuuleminen.


6.2. RealAudio-formaatti

Progressive Networkin RealAudio (tiedostotarkennin .ra) teknologia mahdollistaa RealAudion player- ja server-ohjelmien välisen interaktiivisen linkityksen, jonka avulla voidaan toteuttaa äänilähetyksiä koko Internet-verkkoon.

Lähetyspäässä tarvittaan palvelinohjelmisto, joka soveltuu laajamittaiseen verkossa tapahtuvaan lähetystoimintaan. Lähetystoimintaan tarvitaan oma kotisivu ja kiinteä liittymä Internet-verkkoon. RealAudio Server -ohjelmisto on yhteensopiva minkä tahansa MIME-koodia tukevan palvelinohjelman kanssa, joita ovat esimerkiksi Netscapen Netsite ja Macin HTTPD.

Riippuen äänen pakkaustiheydestä yksittäisen kanavan kaistanleveyden pitää olla 10 - 22 kb sekunnissa. RealAudio-ohjelmisto vaatii keskimäärin 2MB kiintolevytilaa. Riippuen pakkaustiheydestä RealAudio-formaatissa olevat tiedostot vaativat keskimäärin 1.1-2.4kb jokaista äänisekuntia koh-den. Näinollen esimerkiksi yhden tunnin pituinen lähetys vaatii levytilaa 3.6MB:stä 8 MB:aan.

RealAudio encoder on ohjelma, jolla voidaan muuntaa eri ääniformaatissa olevia tiedostoja (wav, au, pcm...) RealAudio-formaattiin. Koodattu RealAudio-materiaali voidaan soittaa Internetissä reaaliaikaisesti, käyttämällä asianmukaisia ohjelmia (player ja server). Koodaus voidaan suorittaa kahden vaihtoehtoisen algoritmin mukaisesti. RealAudio 14.4 -algoritmi mahdollistaa monofonisen AM- tasoisen äänen, joka vaatii vähintään 14.4Kbps modeemiyhteyden Internetiin. 28.8 -algoritmi mahdollistaa lähes FM-tasoisen äänen ja vaatii vähintään kaksi kertaa nopeamman yhteyden. RealAudio -encoder on suunniteltu toimimaan Windows 95 ja Windows NT -ympäristöissä sekä Macintoshissa.

14.4-algoritmissa tarvitaan vapaata levytilaa 1K jokaista koodattavaa sekuntia kohti. 28.8- algoritmi vaatii vastaavasti 1.8K vapaata levytilaa sekuntia kohti. "LIVE" -koodaus edellyttää vähintään Pentium-tasoisen suorittimen ja enemmän keskusmuistia.


6.3. Audio IFF, AIFF, AIFC

AIFF (Audio Interchange File Format) (tiedostotarkentimet .aif, .iff, .aff) on Apple Computer Inc.:n kehittämä standardi. Se on kehitetty audioinformaation siirron yhteensovittamiseksi eri tietokonejärjestelmien välillä, tallentamaan mahdollisimman hyvälaatuista ääntä (digitaalisia audionäytteitä) ja instrumentti-informaatiota. Tämän laajennus AIFC tai AIFF-C tukee kompressointia. Molemmat formaatit ovat vahvasti myös SGI:n (Silicon Graphics) suosiossa.

Standardi on yhdenmukaistettu Electronic Artsin kehittämän standardin EA-IFF-85 Standard for Interchange Format Files kanssa. Tämä rakentuu palasista seuraavalla tavalla. Yleinen osa (Common Chunk) pitää sisällään määritteet kanavien määrästä, näytteiden määrästä, näytekoon ja näytteistystaajuuden (näytteiden määrä sekunnissa). Äänidataosa (Sound Data Chunk) taas määrää näytteen kehykset. Jokainen kehys sisältää 1-6 kanavaa. Mono- ja stereoääni, sekä kolmi-, neli-, viisi- ja kuusikanavainen surround-ääni ovat tuotettavissa. Varioitu näytekoko (1 ja 32 bitin välillä) on paketoitu erikokoisina 8-bittisinä tavuina. Merkkiosaa (Marker Chunk) voidaan käyttää identifioimaan äänitieto-osien synkronointipisteet. MIDI- ja instrumenttiosa voidaan luokitella osaksi yleistä informaatiota. Sovellusosa (Application Specific Chunk) mahdollistaa tiettyä sovellusyhteensopivuutta koskevan perustiedon lisäämisen. EA-IFF-85:n tekstiosa (Text Chunk) mahdollistaa kommentoinnin. Siihen voidaan sisällyttää mm. nimi, tekijä ja tekijänoikeustiedot ja äänitystiedot.

AIFF on kenties paras audioformaattivaihtoehto sovellusyhteensopivuutta ajatellen. Se tukee 16-bittistä, 44 kHz:n stereoääntä, mutta tämä ei koske välttämättä kaikkia AIFF:ää tukevia sovelluksia. Kuten aiemmin todettiin AIFF tukee myös polyfonista ääntä, eli ääntä useammalla kuin kahdella kanavalla.

AIFF-C tai AIFC on pakattua AIFF-tietoa. Kompressointivaihtoehdoista AIFF-tiedostomuodon kanssa voi käyttää MACEa ja ADPCM/IMAa.

MACE-pakatut tiedostot ovat harvinaisia. Koodaus ja purku ovat nopeita, mutta laatu on huono verrattuna ADPCM/IMA- tai MPEG-pakkaukseen. MacIntoshin Sound manager hallitsee MACE-purkamisen automaattisesti. Todennäköisesti myös erillisiä MACE-työkaluja on olemassa, mutta esimerkiksi AIFC-MACE -soittimia ei ole tiedossa.

Useat nykyiset ohjelmat tukevat ADPCM/IMA-pakattuja AIFF-tiedostoja. Windowsille tällaisia sovellusohjelmia on esimerkiksi Goldwave. MacIntoshille riittää mikä tahansa normaali AIFF-soitinsovellus (esim. SoundApp tai SoundManager) mahdollisine 'työkalulaatikkoon' (toolbox) lisättävine ADPCM/IMA-tukineen.

AIFF-ohjelmia ovat mm. seuraavat:

Ammattimaisia sovelluksia ovat mm. Passport Designin Alchemy ja Digidesignin Sound Designer, sekä äänen editointiohjelmista mm. SoundEdit 16 ja OSC:n Deck II.

Lisätietoa standardista on dokumentoituna lähteessä. [Apple Computer Inc, Audio Interchange File Format (AIFF): A Standard for Samples Sound Files, Version 1.2.] Lisäksi AIFF-C spesifikaatio on saatavilla FTP:llä osoitteesta ftp://ftp.sgi.com/sgi/aiff-c.9.26.91.ps.Z.

Liitteessä 1 on lista ja kuvaukset AIFC:n määrittelemistä funktioista.


6.4. NeXTin ja Sunin UNIX-formaatit .au ja .snd

Unix/NeXT audio -muotoa (tiedostotarkennin .au tai .snd) olevissa tiedostoissa voidaan käyttää u-Law, A-Law tai lineaarista PCM-tallennusta. Tätä tiedostoformaattia käsitteleviä apuohjelmia on Windowsille ja DOSille. Tiedostomuotoa voidaan joissakin tapauksissa lukea myös raakamuodossa. Normaali tilanne on juuri itsekuvaileva (header) formaatti, jota tässä luvussa tullaan käsittelemään. Lisäksi snd-tiedostoja on myös Mac/PC-formaateissa otsakekentittöminä (headerless), joten sekoittamisen mahdollisuus on olemassa (SOX-tyyppi on NxTS).


6.4.1. SNDSoundStruct: Kuinka NeXT-järjestelmä esittää ääntä

NeXT-ääniohjelmisto määrittelee SNDSoundStruct -tallennusrakenteen äänen esittämiseksi. Tallennusrakenne kertoo äänitiedoston, Mach-O -äänisegmenttiformaatit ja äänen tyyppitiedot. Sitä käytetään myös kuvailemaan ääntä 'Interface Builderille'. Tavallisimmat äänenmuokkausoperaatiot, kuten toisto, äänitys ja leikkaa-liimaa -operaatiot, on esitetty helpoiten ääniobjektissa. Useissa tapauksissa äänen muokkaussovellus tarvitsee tietoa SNDSoundStruct -arkkitehtuurista. Jos äänidataa halutaan tarkastella tai muokata tarkemmin, täytyy tietorakenteesta olla perillä.

SNDSoundStruct sisältää otsikkotiedon (header), äänen attribuutteja kuvailevaa informaatiota ja ääntä vastaavan datan. Määrittelyn rakenne näyttää seuraavalta (sound/soundstruct.h):

typedef struct {


6.4.2. SNDSoundStructin kentät.

Magic on maaginen luku joka identifioi struktuurin SNDSoundStructiksi. Se sisältää myös muun tietyksi äänidataksi tekevän identifiointitiedon.

Aikaisemmin mainittiin SNDSoundStructin sisältävän otsakekentän, jota seuraa äänidata. Todellisuudessa talletusrakenne sisältää vain otsakekentän, kun data on kokonaan erillinen osa, kuitenkin jatkuen heti talletusrakenteen jälkeen. dataLocationia käytetään osoittamaan data. Yleensä luku on tavutieto talletusrakenteen alusta äänidatan ensimmäiseen tavuun. Tässä tapauksessa data tulee välittömästi talletusrakenteen jälkeen, joten dataLocation voidaan ajatella myös otsakekentän kokona. Toinen dataLocationin käyttötapa on määrittää osoite paikantamaan data, jos se ei seuraa välittömästi talletusrakennetta. Tätä kuvaillaan luvussa 6.4.3. Formaattikoodit.

dataSize, dataFormat, samplingRate ja channelCount -kentät kuvailevat äänitiedon. dataSize on koko tavuina (ei sisällä SNDSoundStructia). dataFormat on koodi, joka identifioi äänen tyypin. Näytteistetyille äänille tämä on kvantisointitieto. Tieto voi olla myös ohjeet DSP:lle äänen syntetisoimiseksi. samplingRate kertoo näytteistystaajuuden (näytteistetty äänidata). Laitteisto tukee kolmea taulukossa 7 esitettyä näytteistystaajuutta (ilmoitettu integer-lukuina).

Vakio Näytteistystaajuus (näytettä sekunnissa) Huom.
SND_RATE_CODEC 8012.821 (CODEC input)
SND_RATE_LOW 22050.0 (low sampling rate output)
SND_RATE_HIGH 44100.0 (high sampling rate output)

Taulukko 7. SNDSoundStructin kolme näytteistystaajuutta

channelCount kertoo näytteistetyn äänen kanavien lukumäärän.

info on NULL-loppuinen merkkijono, johon voi sisällyttää äänen kuvauksen tekstimuodossa. Infon koko asetetaan talletusrakenteen luonnissa, eikä sitä voi sen jälkeen muuttaa. Tämän tulee olla vähintään neljän tavun mittainen (jos käytössä).


6.4.3. Formaattikoodit

Äänen formaatti esitetään positiivisina 32-bittisinä kokonaislukuina (integer). NeXT varaa luvut väliltä 0-255. Oman formaatinkin voi määritellä luvuilla, jotka ovat suurempia kuin 255. Suurin osa NeXTin määrittelemistä formaateista kuvaavat näytteistetyn äänen amplitudikvantisointia, kuten taulukosta 8 on havaittavissa. Formaattikooditaulukko on lähteen alkuperäisessä asussa. Muutamia puutteita koodien selityksissä on havaittavissa.

Value Code Format
0 SND_FORMAT_UNSPECIFIED unspecified format
1 SND_FORMAT_MULAW_8 8-bit mu-law samples
2 SND_FORMAT_LINEAR_8 8-bit linear samples
3 SND_FORMAT_LINEAR_16 16-bit linear samples
4 SND_FORMAT_LINEAR_24 24-bit linear samples
5 SND_FORMAT_LINEAR_32 32-bit linear samples
6 SND_FORMAT_FLOAT floating-point samples
7 SND_FORMAT_DOUBLE double-precision float samples
8 SND_FORMAT_INDIRECT fragmented sampled data
9 SND_FORMAT_NESTED ?
10 SND_FORMAT_DSP_CORE DSP program
11 SND_FORMAT_DSP_DATA_8 8-bit fixed-point samples
12 SND_FORMAT_DSP_DATA_16 16-bit fixed-point samples
13 SND_FORMAT_DSP_DATA_24 24-bit fixed-point samples
14 SND_FORMAT_DSP_DATA_32 32-bit fixed-point samples
15 ? ?
16 SND_FORMAT_DISPLAY non-audio display data
17 SND_FORMAT_MULAW_SQUELCH ?
18 SND_FORMAT_EMPHASIZED 16-bit linear with emphasis
19 SND_FORMAT_COMPRESSED 16-bit linear with compression
20 SND_FORMAT_COMPRESSED_EMPHASIZED A combination of the two above
21 SND_FORMAT_DSP_COMMANDS Music Kit DSP commands
22 SND_FORMAT_DSP_COMMANDS_SAMPLES ? (Some new ones supported by Sun)
23 SND_FORMAT_ADPCM_G721
24 SND_FORMAT_ADPCM_G722
25 SND_FORMAT_ADPCM_G723_3
26 SND_FORMAT_ADPCM_G723_5
27 SND_FORMAT_ALAW_8

Taulukko 8. Formaattikoodit.


Useimmat em. formaateista määrittelevät erikokoista ja -tyyppistä näytteistettyä tietoa. Seuraavassa joistakin tarkempia tietoja:


6.4.4. Pilkkoutunut äänidata

Äänitieto tallennetaan yleensä peräkkäisiin muistilohkoihin. Kuitenkin editoitaessa näytteistettyä äänidataa (leikkaus, liittäminen), data saattaa tulla epäjatkuvaksi tai paloitelluksi. Jokaiselle dataosalle on annettu oma SNDSoundStruct -otsakekenttä, jolloin jokaisesta osasesta tulee näin erillinen SNDSoundStruct -rakenne. Näiden uusien rakenteiden osoitteet on koottu jatkuvaksi, NULL-päätteiseksi lohkoksi. Alkuperäisen SNDSoundStructin dataLocation-kenttä on asetettu uuden lohkon osoitteeksi samalla kun alkuperäinen formaatti, näytteistystaajuus ja kanavien lukumäärä on kopioitu uusiin SNDSoundStructeihin.

Pilkkoutuminen sallii suuren määrän liikkuvaa dataa sillä aikaa, kun ääntä editoidaan. Pilkkoutuneen äänen toisto on suoraa, sillä koskaan ei tarvitse tietää, onko ääni paloiteltuna vai ei. Kuitenkin todella vahvasti pilkkoutuneen äänen toisto on aavistuksen heikompaa kuin jatkuvan. C-funktiota SNDCompactSamples() voidaan käyttää liittämään pilkkoutunut äänidata.

Näytteistetty äänidata on luonnollisesti pilkkoutumatonta. Juuri äänitetty, äänitiedostosta saatu ääni tai 'Mach-O'-segmentti eivät ole pilkkoutunutta. Ainoastaan näytteistysdatasta voi tulla pilkkoutunutta.


6.4.5. NeXT sndfile header -formaatti

Taulukossa 9 on esitettynä NeXT sndfilen otsakekentän osat.

0 1 2 3
0 0x2e 0x73 0x6e 0x64 'magic'
4 dataLocation
8 dataSize
12 dataFormat (enum)
16 samplingRate (int)
20 channelCount
24 info

Taulukko 9. NeXT sndfilen header.


NeXT:n yleisimmät kombinaatiot on esitetty taulukossa 10.

Näytetaajuus Kanavien lkm. Dataformaatti
Puhetiedosto 8012 1 1 8-bittinen mu-Law
Järjestelmä-ääni 22050 2 3 16-bittinen lineaarinen
CD-taso 44100 2 3 16-bittinen lineaarinen

Taulukko 10. NeXT-järjestelmän kombinaatiot.


6.5. IFF/8SVX-äänitiedosto

IFF/8SVX:llä tarkoitetaan Amigan äänitiedostoa (*.iff). IFF-tiedoston ensimmäiset 12 tavua on käytetty erottamaan Amigan kuva (FORM-ILBM), Amigan ääninäyte (FORM-8SVX), tai jokin muu yhdenmukainen IFF-spesifikaatioinen tiedosto.

IFF FORMit löytyvät myös EA-IFF-85 -dokumentaatiosta, jossa ovat eriteltyinä spesifikaatiot mm. grafiikalle, äänelle ja muokatulle tekstille. IFF/8SVX mahdollistaa amplitudin korkeuskäyrien hahmottamisen (iskun, vaimenemisen, jne.). Kompressio on valinnainen.

Huomionarvoinen seikka on CD-I -järjestelmän käyttämä standardiformaatti, joka on myös IFF-formaatti, mutta tosin ainoastaan reaaliaikamuodossa.

Seuraavassa tiedosto-otteessa on esimerkkinä FutureSound-audiotiedosto, jossa on 15000 näytettä 10.000KHz:n taajuudella. Tiedosto on 15048 tavun mittainen. Määrittelystä löytyy tietoa taajuudesta, kanavista sekä instrumenttitietoa.


"BODY":sta ei voida tehdä oletusta sen alkavan 48 tavun jälkeen. Kuten "VHDR", palaset nimeltä "NAME", "AUTH", "ANNO" tai "(c)" voivat kuulua mukaan ja voivat esiintyä missä järjestyksessä tahansa.


6.6. ADPCM

ADPCM (Adaptive Differential Pulse Code Modulation) käsittää audiosignaalin digitointia alueilla 16, 24, 32 ja 40 kbit/s.

ITU:n suositus G.726 sisältää pääpiirteet 64 kbit/s a-law ja u-law PCM-kanavamuunnokselle alueilla 40, 32, 24 tai 16 kbit/s. Muunnos on lisätty PCM-bittivirtaan käyttäen ADPCM muunnoskoodausta. Pääsovellus kanaville 24 ja 16 kbit/s on kanavien kantoääni (carrying voice) DCME:ssä (Digital Circuit Multiplication Equipment). Ensisijainen sovellus kanavalle 40 kbit/s on kantaa modeemisignaalia DCME:ssä, varsinkin modeemeille yli 4800 kbit/s.

Standardin peruskäyttökohteet ovat korkeiden nopeuksien digitaalisissa telekommunikaatiosysteemeissä.

Lisätietoa standardin yksityiskohdista on saatavilla osoitteesta International Telecommunications Union (ITU), Place des Nations, CH-1211 Geneva 20, Switzerland.

Standardin yksityiskohtia löytyy myös seuraavista julkaisuista: ([G.726a, 1991], [G.726A, 1995], [G.726III/G.727II, 1995], [G.727a, 1991] ja [G.727A, 1995]).


6.7. ACE/MACE

Applen audion kompressointi- ja ekspandiontijärjestelmä. Päästandardi on ACE, joka Macintosheille tunnetaan kirjainyhdistelmällä MACE. Tämä häviöllinen systeemi pyrkii ennustamaan aallon kulkua seuraavaan näytteeseen.


6.8. Microsoftin ADPCM (.wav ja .pcm)

Microsoftin ADPCM (Adaptive Delta Pulse Code Modulation) (tiedostotarkentimet .wav, .pcm) on tiivistysmuoto, jota käytetään mm. CD-I -järjestelmässä videoäänenä. Tiivistyssuhde on noin 1:2-1:8, mutta tiivistys ei ole hävikitön. 16-bittinen ääni tallentuu tässä 4-bittiseksi. Äänikortit, joissa on digitaalinen signaaliprosessori (DSP), voivat tiivistää äänen samalla hetkellä.


6.9. IMA/DVA ADPCM (.wav ja .pcm)

IMA/DVA ADPCM (tiedostotarkentimet .wav, .pcm) tiivistää äänen eri algoritmiä käyttäen kuin Microsoftin ADPCM perusmenetelmän ollessa sama. Tämä menetelmä mahdollistaa myös 16-bittisen äänen tiivistyksen 3-bittiseksi, mutta sen toistamiseen kykenevät vain harvat ääniohjaimet. Menetelmä on alunperin kehitetty videotallennukseen.


6.10. CELP

CELP (Code Excited Linear Prediction) on digitaalisten lähetysten puheenkoodaussysteemi. Se toimii samanlaisella mallinnuksella kuin LPC (luku 6.13.). Systeemi laskee alkuperäisen puheen ja synteettisen mallin välillä tapahtuneet virheet ja lähettää sekä malliparametrit että hyvin tiivistetyn esityksen virhetiedoista. Pakattu esitys on kooderien ja purkajien käytössä olevan 'koodikirjan' 'sisällysluettelo', josta nimitys 'Code Excited'. CELP-kooderi tekee LPC:hen verrattuna enemmän työtä, mutta myös tulos on laadukkaampi. Esimerkiksi FIPS-1016 CELP on laadultaan samaa tasoa kuin 32 kbit/s ADPCM, mutta käyttää vain 4.8 kb/s (samoin LPC).

CELPin takana on US Department of Commerce ja standardin yksityiskohtia löytyy standardista ([Fs1]).

Lisätietoa osoitteesta US National Technical Information Service (NTIS), U.S. Department of Commerce, 5285 Port Royal Road, Springfield, VA 22161, U.S.A. (Phone: +1 703 487 4650).


6.11. GSM

GSM (Global System for Mobile Communication) on puheen digitaalinen enkoodaussysteemi matkapuhelinten satelliittivälityksessä. Organisaatio järjestelmän takana on ETSI ja tietoa standardista löytyy ([IE]).

GSM on euroopassa ja nykyisin monin paikoin muuallakin käytössä oleva puheen koodausjärjestelmä. GSM06-10 kompressoi 160 13-bittistä näytettä 260 bittiin (33 tavuun), 1650 tavua/s (8000 näytettä/s).

Lisätietoa systeemistä saa osoitteesta ETSI, F-06921 Sophia Antipolis Cedex, France (+33 92 94 42 57).


6.12. LD-CELP

LD-CELP (Low Delay Code Excited Linear Prediction) on avoimien järjestelmien digitaalisten lähetysten puheenkoodaussysteemi. Järjestelmän takana oleva organisaatio on ITU ja standardin yksityiskohtaista tietoa löytyy ([G.728a, 1992]).

Järjestelmä on ITUn standardi käytettäväksi matalaviiveisenä versiona CELPistä. Se digitoi 4kHz:n puhetta nopeudella 16 kb/s.

Lisätietoa standardista saa osoitteesta International Telecommunications Union (ITU), Place des Nations, CH-1211 Geneva 20, Switzerland.


6.13. LPC-10E

LPC-kooderi (Linear Prediction Coder (Enhanced)) on puheen digitoinnin analyyttinen malli. Se sovittaa puheen yksinkertaiseen, analyyttiseen muotoon (traktaatti). Tämän jälkeen se erottaa puheen kokonaan pois ja toimittaa parametrit parhaiten sopivassa muodossa. LPC-purkaja käyttää näitä parametreja muodostamaan synteettistä puhetta. Puhe on ymmärrettävää, mutta kuulostaa konemaiselta.

Systeemin takana ovat yhteistyössä US DoD ja NATO. Tietoja standardista löytyy lähteestä ([FIPS]). Myös US DoD Federal Standard 1015.

Lisätietoa standardista saa osoitteesta GSA Federal Supply Service Bureau, Specification Section, Suite 8100, 470 E. L'Enfant Place S.W., Washington, DC 20407, U.S.A. (Phone +1 202 755 0325).


6.14. ODA ACA

ODA ACA (Open Document Architecture Audio Content Architecture) sallii audioinformaation sisällyttämisen ODAlla koodattuihin dokumentteihin. Standardi on määritelty standardissa ISO/IEC JTC1/SC18 WG3 ja yksityiskohdat standardista löytyvät lähteestä ([T.419, 1995]).

ODA-standardin osa 9 sallii ääniviestien tai muun audiosisällön liittämisen ODA-dokumentteihin. Äänitiedostot voidaan koodata käyttämällä ITU-standardeja G.711 (A-law & U-law PCM), G.722 (SB-ADPCM), G.726/7 (ADPCM) ja J41/2 (käytetään korkealaatuiselle 384kb/s signaaleille), standardeja ISO MPEG-1 ja MPEG-2, standardeja GSM 06-10 ja ANSI S4, sekä AES3.

ODA-audiotiedostot on aina vaihdettavissa toisiksi prosessoitaviksi formaateiksi. Monikanava-audiodataa voidaan toimittaa lisättynä loogisilla attribuuteilla, kuten kontrollin rajauksella ja tarkoituksenmukaisilla kestoilla, sekä ulkoisilla attribuuteilla, kuten kontrolloinnin supistamisella ja taajuusvaippakäyrillä (frequency envelope). Taajuusvaippakäyrä käyttää 33:a ISO 266:1975:ssa määriteltyä näytteistystaajuutta kontrolloidakseen kaventamistasoa kaikkien äänien sovittamiseksi.

Käyttö on rajoitettu. Lisätietoa on saatavilla ITUsta, ISOsta tai kansallisesta standardointiorganisaatiosta.


6.15. PCM

PCM (Pulse Code Modulation) on analogisen äänen muunnos esimerkiksi digitaalista puhelinliikennettä varten. Taustaorganisaatio on ITU ja standardin yksityiskohdat löytyvät lähteestä ([G.711, 1990]).

PCM:ää käytetään analogisten signaalien, kuten puheen ja musiikin, digitoinnissa. Sitä on käytetty alunperin pääasiassa digitaalisten verkkojen lähetyksissä. ITUn suositus G.711 sisältää kansainvälisesti hyväksytyn metodin PCM:n käyttämiseksi äänisignaalien digitoimiseen 64kb/s-tasoiselle (4kHz) audiosignaalille.

PCM:ää on kahta formaattia: A-law (Eurooppa) ja u-law (USA). Bittien lukumäärän spesifiointi u-law:lle on jokseenkin hankalaa näytteiden ollessa logaritmisesti koodattuja 8 bittiin, mutta niiden dynaaminen säde kuitenkin on lineaarista 12-bittistä dataa.

Kuten kaikessa digitaaliaudiossa, ADCt, DACt, bittiresoluutio ja näytteistystaajuudet, kaikki seikat esiintyvät myös digitaaliäänittimissä. Tähän liittyen kiinnostaa myös se, kuinka audio itse asiassa sijoittuu 'digitaalinauhalle'. Yleisin koodaustekniikka on PCM. Se konvertoi bittivirran ketjuksi kapeita suorakulmaisia pulssiaaltoja, jotka edustavat bittiarvoja. Tämä virta pulsseja kirjoitetaan kohteeseen. Toistettaessa prosessi on käänteinen ja pulssit konvertoidaan takaisin bittiarvoiksi.

Digitaalinen informaatio kirjoitetaan yleensä kohteeseen 'ylikorostetusti' niin, että informaatiosta on aina olemassa 'varmuuskopio' virheiden varalle. Tämän prosessin varustamiseksi data on usein limitetty nauhalle samankaltaisella pyörivän kuvapään tekniikalla kuin videonauhureissa. Tämä limitysprosessi poistaa mahdollisuuden käsineditointiin.

Lisätietoa standardista on saatavilla osoitteesta International Telecommunications Union (ITU), Place des Nations, CH-1211 Geneva 20, Switzerland.


6.16. SB-ADPCM

SB-ADPCM (Sub-Band Adaptive Differential Pulse Code Modulation) kattaa puheen koodauksen ISDN-linjoilla yli 64kb/s toimituksissa. Taustaorganisaationa on ITU ja standardin yksityiskohdat löytyvät lähteestä ([G.722, 1990]).

SB-ADPCM kuvailee, kuinka laadultaan keskinkertaisen audiosignaalin tulisi olla koodattu käyttämällä varianttia ADPCM:ää yli 64kb/s:n lähetyksissä Integrated Service Digital Network (ISDN) -linjoilla. Standardia käytetään signaaleille taajuuksilla 7kHz:iin saakka.

ISDN:n esiintyminen on vielä vähäistä, mutta siellä missä ISDN on käytössä, on SB-ADPCM standardimetodi puheen digitoinnissa.

Lisätietoa standardista on saatavilla osoitteesta International Telecommunications Union (ITU), Place des Nations, CH-1211 Geneva 20, Switzerland.


6.17. SMDL

SMDL (Standard Music Description Language) on eräänlainen yleisyhteys musiikin, merkintäjärjestelmien (scores) ja kriittisen musiikkianalyysin välillä. Taustalla on standardi ISO/IEC JTC1/SC18 WG8 ja standardin yksityiskohdat ovat lähteessä ([ISO10743]).

Standardi käytää Hypermedia/Time-based Structuring Language (HyTime) -formaattia yhdistämään musiikin, merkintäjärjestelmät ja musiikin selitykset. Yksittäisten komponenttien (esim. synkronointiyksityiskohdat, esitysmetodit) suhteet tallennetaan käyttämällä Standard Generalized Markup Languagea (SGML).

SMDL perustuu neljään alueeseen (domain): loogiseen alueeseen, ele/liikealueeseen, visuaaliseen alueeseen ja analyyttiseen alueeseen. Musiikin työ (musical work) rakentuu tietystä määrästä musiikkisegmenttejä. Jokaisen työn voi liittää johonkin työluokkaan ja siihen voi sisältyä informaatiota asianomaisesta ja tallennuslähteestä.

Loogisen alueen työ esitetään yksittäisinä cantus-komponentteina, joista jokainen on oman aikajanansa kanssa virtuaalisessa ajassa ilmaistuna. Cantuksella voi olla useita säikeitä, sanoituksia, tai 'tahtipuikkoja' ajan kontrolloimiseksi ja 'tahtipuikkoja' (sound modification statements) toimimaan yhteistyössä sen kanssa. Kuormitus ja korkeustaso on kontrolloitavissa ja synkronoitavissa.

Loogisessa alueessa määritelty musiikki voidaan linkittää HyTime standardilinkityksellä merkintätavaksi visuaaliseen alueeseen, esitystavan kontrollin spesifikointiin elealueeseen, ja yksittäisiksi analysoitaviksi komponenteiksi analyyttiseen alueeseen. Eri cantusten linkittämiseksi voidaan käyttää 'teemoja'.

Standardin lisätietoja on saatavilla ISOsta tai kansallisista standardointiorganisaatioista.


6.18. US Federal Standard 1016

Tämä äänikoodausstandardi perustuu 4800 bps kiihdytettyyn lineaariseen äänikooderiin (CELP 3.2). Julkaisuja aiheesta ovat mm. "Details to Assist in Implementation of Federal Standard 1016 CELP", sekä virallinen "Federal Standard 1016, Telecommunications: Analog to Digital Conversion of Radio Voice by 4,800 bit/second Code Excited Linear Prediction (CELP)".

Toinen rinnasteinen systeemi saman otsikon alle on US DoD's Federal Standard 1015/ NATO STANAG 4198. Se perustuu 2400 bps lineaariseen ennustuskoodaukseen (LPC-10) ja se uudelleenjulkaistiin standardina Federal Information Processing Standards Publication 137 (FIPS Pub 137).


6.19. Macintosh SND

Macintoshin äänitiedostot ovat SND-tiedostoja (*.snd). Resurssina se on samantyyppinen kuin esimerkiksi Microsoft Windowsin WAV-formaatti. Macintosh-snd -tiedostolla on alussaan alkutiedot (header) kuten AIFF:ssä ja WAVissa, mutta ne ovat muutoin samantyyppistä äänitietoa. Tiedostot ovat merkitsemätöntä tyyppiä (unsigned).


6.20. MIME

MIME on Internet-standardi, jossa on määritelty audiodatan siirtämistä koskevaa koodaustietoa, sekä laite- ja ohjelmatietoa. Tämä on laajoja mittasuhteita saava formaatti, ja määrittelee oikeastaan eräänlaisen jälkiäänitetyn perusaudion, 8-bittisen u-lawin näytteistettynä 8000 näytettä/sekunnissa.


6.21. Creative Voice (VOC)

Creative Labsin SoundBlaster VOC (*.voc) on DOS-ympäristössä (esim. peleissä) yleisin aaltomuotoisen äänen formaatti. Se on aina 8-bittinen ja tiedoston pituus on rajoitettu (16 minuuttia). Useat muutkin äänikortit Sound Blasterin lisäksi tukevat sitä ja se voidaan tarvittaessa muuntaa WAV-muotoon.

Seuraavassa esitettynä esimerkki VOC-tiedostoformaatista (tavut heksamuodossa). Se sisältää otsakekenttäosan (tavut 00-19) ja sarjoja datalohkoista (tavut 1A+).


6.22. Raw PCM

Raaka PCM (SAM, Signed Raw Format, *.sam) sisältää pelkän äänitiedon ilman lisätietoja tai tiivistystä. Näytteet on tallennettu etumerkillisinä (signed) 7-bittisinä.

Muutamia vanhoja header-esimerkkejä on esitetty liitteessä 4.


6.23. RIFF WAVE (.wav)

Microsoftin Waveform, WAV (tiedostotarkennin .wav) on Windowsin aaltomuotoisen äänen perusformaatti ja tässä ympäristössä yleisimmin käytetty. Se tukee kaikkia näytteistystaajuuksia, 8- ja 16-bittistä näytekokoa sekä mono- ja stereokanavia. WAV-tiedostot ovat RIFF (Resource Interchange File Format) -tyyppisiä, eli nämä määritykset tallentuvat osaksi tiedostoja niin, että ääniajuri osaa toistaa ne oikeassa muodossa. RIFF-muodossa tiedostoihin voidaan tallentaa myös paljon muuta tietoa, mm. kappaleen nimi ja esittäjä. Käytetty tallennustekniikka on Microsoft PCM.


6.24. CCITT u-Law ja A-Law

CCITT u-Law (myy-) ja A-Law tiivistysmuodot tiivistävät 16-bittisen äänen 8-bittiseksi. Tulos vastaa laadultaan suunnilleen 12-bittistä ja on parempi kuin ADPCM. Tiivistys tapahtuu muuttamalla lineaariset numeroarvot logaritmisiksi. Muunnoksen lähdekoodi u-Law -muunnoksissa toimitetaan osina nk. SOX-paketteja, jotka ovat helposti otettavissa erilleen muiden sovellusten käyttöön. Virallinen määrittely on CCITT-standardi G.711.

Samankaltainen u-Lawin kanssa on toinen enkoodausmenetelmä, A-Law. Tämä on käytössä eurooppalaisena puhelinstandardina. UNIX-työasemille tuki on heikompi.

u-Law on muotoa

a-Law on muotoa

tai

u:lle käytetään arvoja 100 ja 255, A:lle 87.6, mp on piikkitiedon arvo (Peak message) ja m on kvantisointiarvo (kaavat yksinkertaistuvat, jos asetetaan x=m/mp ja sgn(x)=sgn(m), jolloin -1<=x<=1). Muunnos u-Lawista A-Lawiin on järjetöntä, jos muunnoksessa esiintyy kvantisointivirheitä.

8-bittisen u-Lawin resoluutio (erottelukyky) on samaa suuruusluokkaa kuin 12-bittisellä lineaarisella ja vastaavasti 12-bittisellä u-Lawilla sama kuin 16-bittisellä lineaarisella koodauksella. Vertailua on tarkasteltu taulukossa 11.


Laite/Koodaus Maksimitason resoluutio Alemman tason resoluutio Käyttötarkoitus
8-bittinen lineaarinen 8 8
8-bittinen u-Law 6 12 Käytetään digitaalipuhelimissa
12-bittinen lineaarinen 12 12
12-bittinen u-Law 10 16 Käytetään DAT:ssa
16-bittinen lineaarinen 16 16

Taulukko 11. u-law vertailu.

Lisätietoa on saatavissa lähteistä ([La], [TSC]).


6.25. AVR

AVR (Audio Visual Research) on Macintosh-ympäristössä käytössä oleva, usein kaupalliseen toimintaan liittyvä tiedostoformaatti. Tällä formaatilla on 128 tavun mittainen otsakekenttä, josta esimerkki seuraavassa:


6.26. Amiga MOD (.mod ja .nst)

MOD-tiedostot tulivat kuuluisiksi Amigan äänitiedostoina ja siirtyivät sieltä muihinkin järjestelmiin. MIDI-tiedostojen lailla MODit (ja johdannaiset, kuten S3M, 669 ja MADx) varastoivat musiikkitietoa. Taasen toisin kuin MIDI, MODit ja niiden sukulaiset eivät varastoi ainoastaan nuottitietoa, vaan myös digitoidut näytteet instrumenteista. Toisin kuin kunnollinen MIDI-toisto tarvitsee wavetable-äänikortin PC:ssä tai QuickTimen Macintoshissa, jokainen kone saa aikaan hyvätasoista MOD-musiikkia kohtalaisella 8-bittisellä äänikortilla. Kuitenkin MODien sisältäessä myös digitoituja näytteitä, on ne huomattavasti tiedostokooltaan MIDI-tiedostoja suurempia.

MOD-tiedostot ovat musiikkitiedostoja, jotka sisältävät kaksi osaa: digitoitujen näytteiden pankin ja kuvailevaa sekvenssointitietoa siitä, milloin ja miten soittaa näytteitä. Joustavan systeeminsä ja tarjolla olevien MOD-tiedostojen määrän, sekä täten suunnattoman suuren suosionsa, ansiosta MOD-player -sovelluksia on tarjolla useimmille laitesysteemeille.

MOD-tiedostojen näytteet ovat 'raakoja', 8-bittisiä, merkittyjä ja otsakekentättömiä, lineaarista digitaalista dataa. Siinä voi olla jopa 31 erilaista näytettä, joista jokainen voi olla pituudeltaan jopa 128K (yleensä pienempiä, luokkaa 10K-60K). Vanhempi MOD-formaatti salli vain 15 näytettä, mutta näitä ei ole enää juurikaan liikkeellä. MOD-sämpleille ei ole varsinaista standardinäytteistystaajuutta.

MOD-tiedostojen informaatio alkaa neljällä raidalla informaatiota siitä, mitkä, milloin, kuinka pitkään ja millä taajuudella näytteet tulee esittää. Tämä tarkoittaa sitä, että tiedostossa voi olla 31:n eri digitoidun instrumentin soundit. Näistä neljän äänen yhdenaikainen toistaminen on mahdollista. Tämä mahdollistaa laajan skaalan orkestraatiomahdollisuuksia aina puhe-, laulu- ja omien instrumenttien näytteitä myöten, toki laitteistosta ja ohjelmistosta riippuen. Omien näytteiden käyttömahdollisuus instrumenttina onkin omalta osaltaan syynä MODien suosioon.

Edellämainittu 15 instrumentin MOD on muutoin samanlainen kuin 31 instrumentin, mutta muutama eroavaisuus formaateista löytyy:

MOD-ohjelmistoa eri laitteistoille, kuten

ProTracker-formaattiesimerkki on nähtävissä liitteessä 3.


6.27. Sample Vision (.smp)

Sample Vision on laitekohtainen äänimuoto (tiedostotarkennin .smp). Se on yleensä ammattimuusikoiden käyttämä ohjelma näytteiden lähettämiseen ja vastaanottamiseen PC-koneeseen MIDI-liitännän kautta. Järjestelmässä on mahdollista muokata useita parametreja (kuten luuppikohtia, korkeutta, aikakompressiota ja näytetaajuutta). 'Sämplerit'(erillisiä soitinmoduleja), joita järjestelmä tukee, ovat mm. AKAI (S700, X700, S900, S950, S612, S1000/ 1100), Casio (FZ1, FZ10M, FZ20M), Ensoniq (EPS, EPS16, ASR10, Mirage), Emu (Emax, EmaxII), Korg (DSS1, DSM1, T workstation), Oberheim DPX-1, Peavey DPM-3, Roland (S10, MKS100, S220, S50, S330, S550), Sequential Circuits Prophet 2000/2002, Sample Dump Standard devices ja Yamaha TX16W.

smp-formaatti eriteltynä näyttää seuraavalta:

Käytännön kokeet ovat havainnollistaneet, että Sample Vision kirjoittaa tiedostoon vain seitsemän 'luuppistruktuuria' (silmukkarakennetta) kahdeksan väitetyn sijaan.


6.28. Tandy Deskmate (.snd, .sng)

Tandyn .snd-tiedostot tulevat Sound.pdm:ltä, joka on ohjelma DeskMate-ympäristön yksityisessä hallinnassa. Ne ovat käytettävissä Music.pdm:ssä, joka kehittää musiikkimoduleita (.sng-tiedosto). DeskMate-ääni ja -musiikki vaatii Tandyn äänipiirin. Ohjelmistoihin, jotka kääntävät RIFF WAVE:n tai muun 8-bittisen PCM formaatin .snd-muotoon, kuuluu mm. Conv2snd-niminen ohjelma (Kenneth Udut). Uudemmat ohjelman versiot tulevat Snd2wav:n kera, joka muuttaa snd:n RIFF WAVEksi. On syytä huomioida, että myös NeXTillä ja Mac/PC:llä on omat snd-formaattinsa.

DeskMaten snd-tiedostoja on kahden tyyppisiä: äänitiedostoja ja instrumenttitiedostoja. Molemmat sisältävät 8-bittisiä merkitsemättömiä PCM-näytteitä.

Äänitiedostot ovat yksinkertaisempia. Nämä ovat sekalainen valikoima näytetiedostoja, joissa on kiinteänmittainen otsakekenttä sisältäen äänen nimen, äänitystaajuuden ja äänen pituuden. Äänet voivat olla äänitettyjä 5500 Hz:n, 11kHz:n tai 22kHz:n taajuudella.

Instrumenttitiedostot sisältävät Music.pdm:n käyttämiä näytteitä sekä taajuus- ja 'luuppitietoa' edustamassa instrumenttia. Instrumenttitiedostoissa on valmistauduttu iskuihin (attack), vaimennuksiin (sustain) ja 'häivennyksiin' (decay) useammilla näytteillä, jotka sisältävät eri liitetaajuuksia ollakseen Music.pdm:n käytössä mallintamaan soittimia eri taajuuksilla. Yhteen instrumenttitiedostoon voidaan sisällyttää 16 eri nuottia (16:lla eri näytteellä). Tiedostot on aina tallennettu 11kHz:llä. Sekä ääni- että instrumenttitiedostoja on myös mahdollista kompressoida.

DeskMaten snd-tiedoston otsikkokenttä muodostuu 16-tavusta aiemmin mainittua informaatiota, jonka jälkeen tulee yksi tai useampia 28-tavun nuottitallenteita. Näyteinformaatio, joka voi olla kompressoitua, seuraa otsakekenttää. Tiedosto-ote Deskmate snd-tiedostosta on nähtävissä liitteessä 6.


6.29. Sound Designer(II)/Audio Media

Tämän formaatin SOX (Sound Exchange) -tyyppi on Sd2f. Se on muokattavissa mm. SoundHack -ohjelmalla. Sovellusohjelmia tietokonejärjestelmille on saatavissa mm. Macintoshille SoundHack.


6.30. AVI

AVI-äänimuoto (*.avi) on videoiden ääniraita, joka voidaan erottaa erikseen muokattavaksi ja tallennettavaksi.


6.31. Dialogic ADPCM

Dialogic ADPCM on laitekohtainen äänimuoto (tiedostotarkennin .vox). Sovellusohjelmia on olemassa.


6.32. Muita formaatteja

Edellä on mainittu tärkeimmät ja pitkäaikaisimmat äänen tiedostoformaatit ja koodausjärjestelmät. Näiden lisäksi on olemassa suuri joukko muita, harvinaisempia, erikoisempia laite- tai sovelluskohtaisia, audioformaatteja. Näitä on listattuna seuraavassa.

Näiden lisäksi on suuri määrä eri ohjelmavalmistajien sovellusten määräämiä projektiformaatteja sovellusohjelmilta, kuten mm. Cakewalk ja Sound Forge (mm. .wrk, .mff, .rmi, .bun, .sds, .sfr, .dig, .sd, .). Nämä sisältävät sovelluksen omaa tietoa. Näitä formaatteja ei tarkastella tässä esitelmässä.

Kuva 7. Esimerkki erään korkeatasoisen äänenmuokkausohjelman näytteestä.


6.33. Sovellusohjelmista

Audiotyöskentelyn sovellusohjelmia on olemassa tänä päivänä paljon. Osa on 'vanhoja hyviä' ja osa uudempia, moninaisemmilla 'lisäherkuilla' varustettuja. Sovellusohjelmia on esiteltyinä erikseen joidenkin audioformaattien kohdalla luvussa 6. Useat sovellukset ovat hyvin laaja-alaisia, ts. pystyvät käsittelemään useamman eri valmistajan formaatteja.

Liitteessä 2 on esimerkkinä informaatiota Antexin sovelluksesta NuWave Digital Audio Editor for Compressed Files.


7. Digitaaliaudioprotokollat

Toisinaan digitaalinen audioinformaatio tulee siirtää laitteiden välillä reaaliajassa. Yleisimmin vastaantulevat tiedonsiirtoprotokollat (esim. multimediatuotteet) ovat AES/EBU, SDIF-2 ja S/PDIF.

AES/EBU on Audio Engineering Societyn ja European Broadcast Unionin kehittämä. Se on yleisin käytössä oleva järjestelmä ammattimaisissa digitaaliaudiosysteemeissä. Se on 2-kanavainen RS-422 liittymä käyttäen balansoituja linjoja ja joko XLR- tai D-sub -liittimiä.

SDIF-2 (Sony Digital Interface Format) on kehitetty videonauhapohjaisiin PCM-äänityslaitteisiin. Systeemi käyttää 75-ohmisia balansoituja linjoja BNC-liittimillä.

S/PDIF (Sony/Philips Digital Interface Format) kehitettiin yhteistyössä Sonyn ja Philipsin kesken. Keskeisintä on, että se on balansoimaton versio AES/EBU -protokollasta käyttäen joko RCA- tai kuituoptisia liitäntöjä. S/PDIFia käytetään mm. DAT-nauhureissa, CD-soittimissa ja F1-koodaajissa (DATin edeltäjä, videostandardin tyyppinen järjestelmä) digitaalisin liitännöin.


8. Yhteenveto

Tässä seminaarityössä on pyritty tuomaan esille mahdollisimman laaja katsaus digitaalisen äänen tuottamiseen ja sen tallentamiseen tietotekniikkaympäristössä ja sitä hieman sivuavissa järjestelmissä. Erillisistä osa-alueista on varmasti olemassa hyvinkin tarkkaa erikoistietoa, mutta tähän kirjoitelmaan on kerätty lähinnä pääseikkoja mahdollisimman monesta eri tapauksesta.

Kirjoitelma on tästä vielä laajennettavissa huomattavasti varsinkin tekniikan huiman kehitysvauhdin vuoksi. On selvää, ettei kirjoitelmaan ole välttämättä saatu viimeisintä tietoa, mutta edustettuna on mahdollisimman laaja otanta mahdollisimman uudesta tiedosta.


9. Lähteet ja lisämateriaalia

[Ba, 1985] Bartee Thomas C.,"Digital computer fundamentals", Sixth edition, McGraw-Hill book company, 1985

[Bu, 1993] Burger Jeff, "The Desktop Multimedia Bible", Addison-Wesley Publishing Company, 1993

[Da, 1995] Davis Pan, "A Tutorial on MPEG/Audio Compression", IEEE Multimedia, 1995.

[El, 1994] Ellis Michael G., Sr., "Electronic filter analysis and synthesis", Artech house inc., 1994

[Ko, 1993] Koski Arto & Oesch Klaus, "PC-multimedia", Kustannusosakeyhtiö Otava, 1993

[St, 1997] Stroud's Index of 32-bit Apps by Category, http://papa.indstate.edu:8888/ CWSApps/ inx32.html, 1997.

[Str, 1997] Stroud's Reviews for Audio Apps, http://cws.avalon.nf.ca/32audio-reviews.html, 1997.

[Fr, 1997] Frequently Asked Questions about MPEG Audio Layer-3, http://www.iis.fhg.de/departs/ amm/ layer3/sw/index.html, 1997.

[Pa, 1996] Partanen Antti, "MPEG", Seminaariesitelmä 1996, TKK.

[An, 1997] Antex Electronics, "Audio Interchange Formats and Standards", http://www.antex.com/ audioformats.html, 1997.

[SV, 1996] Strategic Visions, Katsaus audio- ja videosovelluksin verkossa, http://www.nettiradio.fi/ test/ digi/ audvid.htm, 1996.

[Coas, 1996] Coding of audio signals, http://www.cs.tut.fi/~ypsilon/80545/CodingOfAS.html, 1996.

[Ida, 1996] Introduction to digital audio, http://www.cs.tut.fi/ ~ypsilon/80545/ IntroductionToDigital Audio.html, 1996.

[SM, 1996] 13.3 Standard Module aifc, http://python.via.ecp.fr/doc/lib/node150.html, 1996.

[Fda, 1997] Fundamentals of digital audio, http://www.cs.tut.fi/~ypsilon/ 80545/ FundamentalsOfDA.html, 1997.

[AFF1, 1995] Audio File Formats (part 1 of 2), http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/ part1.html, 1995.

[AFF2, 1995] Audio File Formats (part 2 of 2), http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/ part2.html, 1995.

[Ja, 1997] Jalonen Marko, "Radio Internetissä", Internet-kurssin harjoitustyö, 1997.

[Ant, 1997] Antex - Software And Audio Development Kits, http://www.antex.com/software.html, 1997.

[Wab, 1997] Wideband audio coding, http://www.cs.tut.fi/~ypsilon/80545/WBACoding.html, 1997.

[Af, 1997] The Cross-Platform Page: Audio Formats, http://www.mcad.edu/guests/ericb/ xplat.aud.html, 1997.

[G.726a, 1991] G.726 [Julkaistu huhtikuussa 1991 korvaamaan G.721 ja G.723] 40, 32, 24, 16 kbit/s adaptive differential pulse code modulation (ADPCM).

[G.726A, 1995] G.726 A [Kesäkuu 1995] Extensions of Recommendation G.726 on 40, 32, 24, 16 kbit/s adaptive differential pulse code modulation for use with uniform-quantized input and output.

[G.726III/G.727II, 1995] G.726 III/G.727 II [Toukokuu 1995] Appendix III/II to Recommendation G.726/G.727 - Comparison of ADPCM algorithms.

[G.727a, 1991] G.727 [Toukokuu 1991] 5-, 4-, 3- and 2-bits/sample embedded adaptive differential pulse code modulation (ADPCM).

[G.727A, 1995] G.727 A [Kesäkuu 1995] Extensions of Recommendation G.727 on 5-, 4-, 3- and 2-bits/sample embedded adaptive differential pulse code modulation for use with uniform-quantized input and output.

[Fs1] Federal Standard 1016, Telecommunications: Analog to Digital Conversion of Radio Voice by 4,800 bit/ second Code Excited Linear Prediction (CELP).

[IE] I-ETS 300 036 European digitial cellular communications system (phase 1): Full rate speech transcoding (GSM 06-10).

[G.728a, 1992] G.728 [Julk. joulukuussa 1992] Coding of speech at 16 kbit/s using low-delay code excited linear prediction.

[FIPS] US Federal Information Processing Standard 137/NATO-STANAG-4198 2400 bps linear prediction coder (LPC-10).

[T.419] ITU-T Recommendation T.419 (1995) | ISO/IEC 8613-9 (DIS) Information technology -- Open Document Architecture (ODA) and interchange format -- Audio content architectures.

[G.711, 1990] G.711 [Book Fasc. III.4: julkaistu kesäkuussa 1990] Pulse code modulation (PCM) of voice frequencies.

[G.722, 1990] G.722 [Blue Book Fasc. III.4: published June 1990] 7 kHz audio-coding within 64 kbit/s.

[ISO10743] ISO/IEC DIS 10743 Information technology -- Document processing and related communications -- Standard Music Description Language (SMDL).

[La] Modern Digital and Analog Communication Systems, B.P.Lathi., 2nd ed. ISBN 0-03-027933- X.

[TSC] Transmission Systems for Communications, Fifth Edition, Bell Telephone Laboratories, Incorporated.



Liitteet:

Liite 1. AIFC:n määrittelemiä funktioita.


Liite 2. Esimerkki Antexin NuWave Digital Audio Editorista.

Antex NuWave Digital Audio Editor for Compressed Files

When it comes to editing digital audio data two things are important. First is compatibility. With NuWAVE you are assured of compatibility of virtually any Windows audio file format - including several compressed file formats. The second is speed. NuWAVE was designed with simplicity and efficiency in mind. Because you can edit in real-time, you will find NuWAVE to be one of the easiest and fastest editors available. Edit Compressed Audio Files With NuWave Take advantage of editing in more efficient compressed file formats such as Dolby AC-2, MPEG Layer I&II, MS-ADPCM. Edit these fileslike any other. File format is completely transparent to NuWAVE and the user. NuWAVE allows you to avoid conversion delays and results in no generation loss.

Why edit compressed audio files? More and more broadcast facilities, multimedia developers, and interactive/on-line applications are using compressed files. Compressed files maximize audio and video quality at a limited bandwidth, demand less from a computer's CPU and take up less disk space than non-compressed files. The ability to edit these files is more efficient and allows editing of multiple formats within a single editor.

What is non-destructive editing? Non-destructive editing is a process that records all edits in an Edit Decision List (EDL). The actual audio files/clips are never altered. The EDL actually contains a list of all audio files to be used with information on when the file will play, how much of the clip to play, and all other characteristics of the file as directed by the NuWAVE editor.

Edit 8 and 16-Bit PCM .WAV Formats Virtually all Windows digital audio files formats (.WAV) files are fully editable with NuWAVE.

True Audio Scrubbing NuWAVE allows true reel-rocking type performance for fast and precise edit point location.

Non-Destructive EDL Based Digital Audio Editing NuWAVE never alters the original audio file. Instead it creates an edit decision list which instructs the editor how to compose and playback the edited version. This speeds the editing process plus it means your library of audio clips remains intact. You can use the same clip in a multitude of files. In addition, standalone composite files can also be created from the EDL.

Four-Track Real-time Operation Simultaneous, independent operation of two stereo (four mono) audio tracks is provided. (Compatible digital audio adapters are required to take advantage of this feature). All mixing, gain adjustments, and fades (in/out) are accomplished in real-time. This is possible due to the advanced capability of DSP-based Antex digital audio adapters. You never have to wait.

Intuitive Drag-and-Drop Interface NuWAVE is extremely simple to use. Editing is easily accomplished by dragging file "regions" and dropping them into place. Standard Windows features including Cut, Copy and Paste are fully supported.

Audio Region: Waveform Mode View and edit files in Waveform view. Cropping audio regions is as simple as dragging the region's handles while holding SHIFT down.

Audio Region: Gain Mode View and edit a region's gain contour by clicking on the region while holding the SHIFT key and then dragging the fade-in, fade-out and gain adjustment handles.

Recommended Hardware Requirements 486DX-33 or above 8 MB RAM Microsoft Windows 3.1 At least 10 MB of hard disk space available Microsoft Windows compatible audio card


Liite 3. ProTrackerin formaattiesimerkki

Liite 4.

/* ------------------------------------ NIST ---------------------------------
*
* 0: "NIST_1A"
* 8: data_location as ASCII representation of integer * (apparently always " 1024")
* 16: start of complicated header -- full details available upon request
*
* here's an example:
*
* NIST_1A
* 1024
* database_id -s5 TIMIT
* database_version -s3 1.0
* utterance_id -s8 aks0_sa1
* channel_count -i 1
* sample_count -i 63488
* sample_rate -i 16000
* sample_min -i -6967
*sample_max -i 7710
* sample_n_bytes -i 2
* sample_byte_format -s2 01
* sample_sig_bits -i 16
* end_head
*/
/* ------------------------------------ SNDT ---------------------------------
*
* this taken from sndrtool.c (sox-10):
* 0: "SOUND"
* 6: 0x1a
* 8-11: 0
* 12-15: nsamples
* 16-19: 0
* 20-23: nsamples
* 24-25: srate
* 26-27: 0
* 28-29: 10
* 30-31: 4
* 32-> : <filename> "- File created by Sound Exchange"
* .->95: 0
*/
/* ------------------------------------ ESPS ---------------------------------
*
* 16: 0x00006a1a or 0x1a6a0000
* 136: if not 0, chans + format = 32-bit float
* 144: if not 0, chans + format = 16-bit linear
*
* from AFgetInfoES.c:
*
* Bytes Type Contents
* 8 -> 11 -- Header size (bytes)
* 12 -> 15 int Sampled data record size
* 16 -> 19 int File identifier
* 40 -> 65 char File creation date
* 124 -> 127 int Number of samples (may indicate zero)
* 132 -> 135 int Number of doubles in a data record
* 136 -> 139 int Number of floats in a data record
* 140 -> 143 int Number of longs in a data record
* 144 -> 147 int Number of shorts in a data record
* 148 -> 151 int Number of chars in a data record
* 160 -> 167 char User name
* 333 -> H-1 -- Generic header items, including "record_freq"
* {followed by a "double8"}
* H -> ... -- Audio data
*/
/* ------------------------------------ INRS ---------------------------------
*
* from AFgetInfoIN.c:
*
* INRS-Telecommunications audio file:
* Bytes Type Contents
* 0 -> 3 float Sampling Frequency (VAX float format)
* 6 -> 25 char Creation time (e.g. Jun 12 16:52:50 1990)
* 26 -> 29 int Number of speech samples in the file
* The data in an INRS-Telecommunications audio file is in 16-bit integer
* format.
/* old Mus10, SAM formats, just for completeness
*
* These were used for sound data on the PDP-10s at SAIL and CCRMA in the
* 70's and 80's.
* The word length was 36-bits.

Liite 5. Uusi formaatti lähes kaikkiin CCRMA ohjelmistoihin.

* WD 0 - '525252525252
* WD 1 - Clock rate in Hz (PDP-10 36-bit floating point)
* WD 2 - #samples per word,,pack-code
* (has # samples per word in LH, pack-code in RH)
* 0 for 12-bit fixed point
* 1 for 18-bit fixed point
* 2 for 9-bit floating point incremental
* 3 for 36-bit floating point
* 4 for 16-bit sambox fixed point, right justified
* 5 for 20-bit sambox fixed point
* 6 for 20-bit right-adjusted fixed point (sambox SAT format)
* 7 for 16-bit fixed point, left justified
* N>9 for N bit bytes in ILDB format
* WD 3 - # channels
* 1 for MONO
* 2 for STEREO
* 4 for QUAD
* WD 4 - Maximum amplitude (if known)
* is a floating point number
* is zero if not known
* is maximum magnitude (abs value) of signal
* WD 5 number of Sambox ticks per pass
* (inverse of Sambox clock rate, sort of)
* WD 6 - Total #samples in file.
* If 0 then #wds_in_file*#samps_per_wd assumed.
* WD 7 - Block size (if any). 0 means sound is not blocked.
* WDs '10-'77 Reserved for EDSND usage
* WDs '100-'177 Text description of file (in ASCIZ format)
*
*
* "Old" format
*
* WD 0 - '525252525252
* WD 1 - Clock rate
* has code in LH, actual INTEGER rate in RH
* code=0 for 6.4Kc (or anything else)
* =1 for 12.8Kc, =2 for 25.6Kc, =3 for 51.2Kc
* =5 for 102.4Kc, =6 for 204.8Kc
* WD 2 - pack
* 0 for 12 bit
* 1 for 16 bit (18 bit)
* 2 for 9 bit floating point incremental
* 3 for 36-bit floating point
* N>9 for N bit bytes in ILDB format
* has # samples per word in LH.
*WD 3 - # channels
* 1 for MONO
* 2 for STEREO
* 4 for QUAD
* WD 4 - Maximum amplitude (if known)
* is a floating point number
* is zero if not known
* is maximum magnitude (abs value) of signal
* WDs 5-77 Reserved for future expansion
* WDs 100-177 Text description of file (in ASCIZ format)
*/

Liite 6. DeskMate snd-tiedostoformaattiesimerkki.

DeskMate .snd File Format - Fixed Header ----------------------------------------
offset size what ------ ---- ----
0 byte 1Ah (.snd ID byte)
1 byte Compression code: 0 = no compression; 1 = music compression; 2 = sound compression.
2 byte Number of notes in the instrument file. 1 if sound file.
3 byte Instrument number. 0 if sound file; 0FFh if instrument file with no number set. Valid instrument numbers in an instrument file are 1 to 32. Use this field to distinguish a sound file from an instrument file.
4 10 bytes Sound or instrument name. Filled on the right with nulls if less than 10 characters.
0Eh word Sampling rate in samples per second. Note that although a sampling rate other than 5500, 11000 and 22000 can be entered here, Sound.pdm will not actually play at other rates.
10h variable Note records begin, 28 bytes each. Number of records given in byte 2 above.
DeskMate .snd File Format - Note Record ---------------------------------------
0 byte Pitch of the note: 1 = A1 in American Standard Pitch; 2 = A#1; etc. A1 is lowest note allowed; highest note allowed is B6 (3Fh). Sound files have 0FFh here; so do instrument files with no note set. Note that Sound.pdm does not designate notes in the standard manner to the user. Although A1 and B6 in Sound.pdm are the same as A1 and B6 in standard pitch, Sound.pdm starts octaves at A rather than at C (as is standard). Thus, middle C, C4 in standard pitch, is C3 in Sound.pdm.
1 byte Sound files, and instrument files with no pitch set, have 0 here. If the pitch is set, this byte is 0FFh.
2 2 bytes Range of the note, first byte is lower limit, second is higher limit. Byte encoding as for offset 0 (i.e., 01h to 3Fh). Sound files have FF FF here; so do instrument files with no range set.
4 dword Offset in the file where samples for this note begin (zero-relative), after compression if that was done.
8 dword If compressed, the length of the compressed data in the file for this note. Uncompressed files have 0 here.
0Ch 4 bytes Unknown. Set to zero.
10h dword Number of samples in the note, after decompression if necessary.
14h dword Number of sample at start of sustain region for the note, relative to the first (zeroth) sample of the note. For sound files, or if sustain is not set, this field is 0.
18h dword Number of sample at end of sustain region for the note, relative to the first (zeroth) sample of the note. For sound files, or if sustain is not set, this field is 0.