mp3 ja ogg - tlu...koostöö tulemuseks sai iso-mpeg audio layer-3 (is 1172-3 ja is 13818-3) nime...
TRANSCRIPT
Tallinna Pedagoogikaülikool
Matemaatika-loodusteaduskond
Informaatika osakond
Pjotr Savitski
MP3 ja OGG
Proseminaritöö
Juhendaja:
lektor Andrus Rinde
Tallinn 2004
Sisukord
Sissejuhatus .....................................................................................................................................3
1 MP3 (MPEG Layer-3)..................................................................................................................4
1.1 MP3 standardi ajaloost ....................................................................................................4
1.2 Mis on MP3.....................................................................................................................4
1.3 Erinevad MPEG formaadid.............................................................................................5
1.4 MPEG kihid.....................................................................................................................6
1.5 Kodeerimine ....................................................................................................................7
1.6 Faili sisemisest struktuurist .............................................................................................9
1.7 MP3Pro..........................................................................................................................11
1.8 ID3.................................................................................................................................13
1.9 Patendid ja MP3 ............................................................................................................15
2 OGG ...........................................................................................................................................17
2.1 OGG Vorbis standardi üldfaktid ja ajalugu...................................................................17
2.2 Vorbis standardi kirjeldus .............................................................................................17
2.3 Dekodeerija ülesehitus (Decoder Configuration)..........................................................19
2.4 Kõrgetasemeline dekodeerimise protsess (High-level Decode Process) ......................21
2.5 OGG loogika ja bitivoo füüsiline ülevaade...................................................................26
2.6 OGG kokkuvõte ............................................................................................................29
3 Testid..........................................................................................................................................31
3.1 Testimise parameetrid ja kasutatud programmid ..........................................................31
3.2 Testimine.......................................................................................................................32
3.3 Järeldused ......................................................................................................................39
Kokkuvõte .....................................................................................................................................40
Kasutatud kirjandus.......................................................................................................................41
2
Sissejuhatus
Selle töö raames on vaatluse all kaks laialt kasutatud helikodeerimise standardit. Mõlemate
standardite arendajad väidavad, et just nende toode on kõige parem ja annab parimaid tulemusi.
Esimene vaadeldavatest standarditest on MP3. See lühend on tuttav kõikidele arvutitega seotud
inimestele ja mitte ainult neile. Peamiseks standardi loojaks oli tuntud Fraunhoferi instituut
(http://www.iis.fraunhofer.de/index.html). MP3 standard eksisteerib juba mitmeid aastaid, ning
on olnud pea-aegu konkurentsituks liidriks helikodeerimise valdkonnas. Selline olukord ei
saanud igavesti kesta. MP3 on kommertslik, tootjate jaoks tähendab see litsentsitasude maksmist.
1993. aastal tekis uue, avatud lähtekoodiga standardi loomise idee. Samal aastal moodustati ka
selle arendajate grupp. Omal ajal oli projekt tuntud huvitava nime all - "Squish" ("lirts"). Aja
möödudes liitus arendajatega üha rohkem inimesi, kuna igaüks sai oma ideid ja nende ideede
realiseerimise võimalusi pakkuda. Selline süsteem tagas kiire arendamisprotsessi.
Alguses ei saanud uus formaat eriti oma jõudu näidata, kuna temast eksisteerisid ainult beeta
versioonid, milles oli palju lahendamist vajavaid probleeme. Ja MP3 oli ikkagi helikodeerimise
maailma ainuvalitsejaks. Kuid kõik projektid saavad kunagi oma versiooniks numbri 1.0. See
juhtus ka uue vaadeldava formaadiga, mis sai endale nime OGG Vorbis. Praeguseks on jõutud
versioonini 1.0.1.
Antud töö eesmärgiks on testida mõlema vaadeldava standardi koodekit ning selgitada kumb on
parem, milleks nad sobivad. Töö on jaotatud kolmeks peatükis, millest esimesed kaks on
pühendatud võrreldavate standardite kirjeldamisele ning on referatiivsed.
Käsitletakse mõlema standardi ajalugu ning ülesehitust. Vaadeldakse mida need endast
kujutavad ja kus neid kasutatakse. Vaatluse alla satub ka faili sisemine struktuur ja mõned selle
tähtsamad aspektid. Käsitletakse ka metaandmete lisamise võimalusi mõlema standardi failidele,
mis on vajalik nende kasutamiseks muusikaäris (info autoriõiguste, esitaja jms kohta).
Vorbis projekti puhul vaadeldakse lühidalt sellega kaasnevaid või selle standardi põhimõtetel
baseeruvaid uusi projekte. Mainitud saavad ka neid laiendusi võimaldavad standardi omadused.
Kolmandas peatükis vaadeldakse töö autori poolt läbiviidud teste ja tehakse neist järeldusi.
Testimise eesmärgiks oli selgitada kas MP3 on ikka helikodeerimise maailma valitseja.
3
1 MP3 (MPEG Layer-3)
1.1 MP3 standardi ajaloost
MP3 standardi tekkimine põhjustas tõelise revolutsiooni muusika digitaalkujul levimises. Praegu
on see üks populaarsemaid sõnu internetipõhistes otsingu mootorites, kuna see on nii laialt
kasutatud. MP3 andis võimaluse kodeerida kõrge kvaliteediga muusikat ilma erilise kvaliteedi
kaota.
Standard loodi ülemaailmselt tuntud Frauenhoferi instituudis. Projekt sai alguse 1987. aastal,
üheks projekti kaasosaliseks oli tuntud Erlangeni Ülikooli professor Dieter Seitzer. Selle
koostöö tulemuseks sai ISO-MPEG Audio Layer-3 (IS 1172-3 ja IS 13818-3) nime all
standardiseeritud väga võimas algoritm.
[1]
Standardi alguslool on ka teine, vähem tuntud versioon. Selle järgi sai kõik alguse 1977. aastal ja
veel üheks standardi loojaks on Karlheinz Brandenburg, kes oli professor Dieter Seitzeri poolt
loodud meeskonna liige. Professor tahtis teha meetodi muusika tavalise telefoniliini kaudu
üleandmiseks. Kuid tema ideed tundusid omal ajal absurdsed olevat, sellepärast projekt ei saanud
finantseerimist, kuigi professor püstitas oma küsimuse korduvalt. Vaatamata sellele oli
moodustatud huviliste meeskond, kes hakkasid selle probleemi lahendust otsima.
Professor Brandenburgil olid teadmised nii matemaatika, kui ka heli ja elektroonika valdkonnas
ja temast sai üks tähtsamaid mehi MP3 standardi ajaloos. Kes andis teistele võimaluse oma
leiutise kasutamiseks, kuna esialgne litsents andis kõigile võimaluse kasutada projekti tegemisel
saadud tulemusi. Registreerimisel sai enda MP3 kodeerijaid ja dekoreerijaid ilma selle eest
tasumiseta luua.
[2]
1.2 Mis on MP3
MPEG lühend tähendab Moving Picture Experts Group, mida saab tõlkida kui Liikuva Pildi
Ekspertide Grupp. MPEG komitee töötab Rahvusvahelise Standardite Organisatsiooni
(International Standards Organisation ehk ISO) juhtimise all ja kehtestab digitaalse heli ja video
formaadis kodeerimise standarte. Samas tegeleb ISO ka liikuva graafikaga rakenduste
standardite kehtestamisega. MP3 on lihtsalt väike osa MPEG perekonna standarditest. Tänu
4
MPEG-ile on meil olemas sellised standardid nagu näiteks DVD (Digital Versatile Disk), mida
saab tõlkida kui Digitaalset Mitmekihilist Ketast.
MP3 (MPEG Audio Layer-3 ), mida saab nimetada MPEG heli kolmandaks kihiks, on
standardne formaat digitaalse heli kokkusurumiseks. MP3 pakib audiofailid kokku nii, et saadud
.mp3 faili suurus on umbes kümnendik originaalse faili suurusest. Saadud faili kvaliteet on aga
päris lähedane originaalse CD-audio omale. Faile MP3 formaadis leidub Internetis, samas saab
konverteerida .mp3 failiks juba olemasolevaid muusikafaile. Kaasaegseid
helisalvestusprogramme kasutades on võimalik ka otseselt .mp3 formaadis faile salvestada. Neid
faile saab mängida nii arvuti, kui ka teiste spetsiaalsete mängijatega. Näiteks sellised on:
muusikakeskus, Walkman stiilis kaasaskantavad mängijad, mp3 mängijad ja paljud teised
vahendid.
[3]
1.3 Erinevad MPEG formaadid
Kuna MPEG on küllalt vana standard ja on väga laialt kasutatud, siis on tal mitmeid alamliike.
MPEG 1
MPEG 1 (mille alla kuulus ka MP3) kinnitati 1992. aasta Novembris. See toetab bitikiirust kuni
1.5 Mbps (mega bits per second või megabitti sekundis) ja toetas 1 ja 2 kanaliga heli (mono ja
stereo). Toetab diskreetimise sagedusi on 32, 44.1 ja 48 kHz (kilohertsi).
MPEG 2
MPEG 2 lisab mitmekanalisuse (surround) toetust, madalamaid diskreetimise sagedusi nagu 16,
22.05 ja 24 kHz ning bitikiirust kuni 8 kbps (kilo bitte sekundis). Sellel võib olla kuni 5 kanalit
ruumilise heli jaoks ja üks madala sageduse lisakanal (5.1 surround). Laiend lisab veel kuni 7
kanali toetust (7.1 surround).
MPEG 4
MPEG 4 peaks saama kõigeks kõlbavaks kodeerimise standardiks tuleviku multimeedia
süsteemide jaoks. See on kavatsetud nii, et saab toime nii kõige lihtsamate, kui ka kõige
kvaliteetsemate professionaalsete helisüsteemidega. Siia on integreeritud sünteetiline ja loomulik
audio.
5
Selle formaadiga saab esitada audio ja video andmeid. MPEG-4 toetab suure hulka
andmekandjaid ja see töötab võrkudes ja traadita mobiilsetes ühendustes.
MPEG 2.5
MPEG 2.5 on üks mitte-ISO pikend, mis oli Fraunhoferi instituudi poolt loodud madalamate
bitikiiruste puhul heli kvaliteedi parandamiseks. See võimaldab kasutada selliseid sagedusi nagu
8, 11.025 ja 24 kHz. Mis teatud juhtudel annab parema kvaliteedi kasutamise võimaluse.
1.4 MPEG kihid
Iga kiht kasutab sama põhistruktuuri ja sisaldab endas allpool olevate kihtide omadusi.
Kõrgemad kihid pakkuvad palju paremat helikvaliteeti võrreldavate bitikiiruste puhul, kuid
vajavad kiiresti kasvava keerukusega kodeerimise tarkvara. See omakorda seab ka kõrgemaid
nõudmisi riistvarale, mille abiga hakatakse midagi kodeerima või dekodeerima.
Kiht I
Kiht I oli algselt kavatsetud Digitaalsete Kompaktsete Kassettide (Digital Compact Cassette või
DCC) jaoks ja ei ole nii laialt kasutatud.
Kiht II
Kiht II (tuntud kui MP2) on ringhäälingu tööstuse poolt laialt kasutatav. See oli tehtud
kompromissina keerukuse ja jõudluse vahel ja pakub väga kvaliteetset heli kõrgemate bitikiiruste
puhul. Samaaegselt on sellel lühemad viivitused kui MP3-el, mis osutub otseetris mängimisel
väga tähtsaks.
Kiht III
Kiht III on ülemaailma tuntud kui MP3. MP3 oli loodud parema kvaliteeti jaoks madalamate
bitikiiruste kasutamisel. Kõrge kokkupakkimise tase omab tähtsust, kuna Interneti ühenduse
kiirus nagu ka kõvaketta ruum on piiratud. Selline kokkupakkimine teeb teda sobivaks ka
portatiivsete mängijate jaoks.
Üks oluline nähtus on ka kokkusobivus. Kihid I, II ja III on tagurpidi ühilduvad. See tähendab, et
kolmanda kihi dekooder on suuteline töötlema teise ja esimese kihi infot. Samas teise kihi
dekooder on suuteline dekodeerima esimese kihi infot.
[3]
6
Kasutades MPEG audiot võib saavutada tüüpilist andmemahu vähendamist, see on näidatud
tabelis 1.
1:4 Kiht I (vastab 384 kbps stereo signaali jaoks)
1:6...1:8 Kiht II (vastab 256...192 kbps stereo signaali jaoks)
1:10...1:12 Kiht III (vastab 128...112 kbps stereo signaali jaoks)
Tabel 1 Erinevate kihtide bitikiirused.
Sellisete tulemuste saavutusega jääb meil heli kvaliteet peaaegu CD kvaliteedi tasemele.
1.5 Kodeerimine
Joonis 1 MP3 kodeerimise diagramm.
Filter (Filter Bank)
MP3 kasutatud filter on hübriidne filter, mis koosneb mitmefaasilisest filtrist ja Modifitseeritud
Diskreetse Koosinusteisendus (Modified Discrete Cosine Transform ehk MDCT). See hübriidne
vorm oli valitud ühilduvuse saavutamiseks MP3 eelkäijatega (Kiht I ja Kiht II).
Pertseptiivne mudel (Perceptual Model)
Peamiselt see mudel määrab antud kodeerija realiseerimise kvaliteedi. Kõrvaldatakse see osa
infost, mis on inimkõrvale märkamatu. See kas kasutab eraldi olevat filtrit või ühendab energia
7
väärtuste kalkulatsiooni (maskeerimise kalkulatsioonideks) ja põhilise filtri. Selle väljundiks on
arvud, mis näitavad lubatud määra iga kooderi jaotise jaoks. Kui kvantimise määr on väiksem
lubatud müra tasemest, siis kokkupakkimise tulemused ei peaks olema originaalsest signaalist
eraldatavad.
Liidetud stereo (Joint Stereo)
Liidetud stereo kodeerimine kasutab seda, et mõlemad stereo kanalid sisaldavad hulga
samasugust informatsiooni. Neid kasutatakse summaarse bitikiiruse vähendamiseks. Liidetud
stereot kasutatakse juhtudel, kui saadaval on ainult madala taseme bitikiirused, aga kasutaja
tahab siiski stereot saada.
Kvantiseerimine ja kodeerimine (Quantization and Coding)
Kvantiseerimine on ehitatud sellisel põhimõttel, et suuremaid väärtusi automaatselt kodeeritakse
vähema täpsusega. Mis näitab, et juba selle protsessi sees on näha mingit müra tekkimist.
Kvanti väärtused on kodeeritud Huffmani kodeeringu abil. Konkreetse entroopia kodeerimise
meetodina on Huffmani kodeering ilma mingisuguste kahjudeta. Seda nimetatakse mürata
kodeerimiseks, kuna mingit müra audio signaalile ei lisandu.
Järgmised kaks silmust annavad võimalust määrata antud plokile optimaalseid faktoreid:
Sisemise iteratsiooni silmus või kiiruse silmus (Inner iteration loop või rate loop)
Huffmani kodeerimise tabelid määravad lühikesemad koodi sõnad väiksematele kvantiseeritud
väärtustele (sagedased). Kui kodeerimise operatsioonil saadud bittide arv ületab selle plokki
jaoks olemasolevate bittide mahu, siis saab seda korrigeerida suurema kvantiseerimise sammuga,
mis toob endaga kaasa väiksemaid kvantiseeritud väärtusi. Selle sammu muutmise operatsiooni
korratakse niikaua, kuni saadud bittide arv on piisavalt väike ja vastab Huffmani kodeerimise
standarditele. Seda nimetatakse kiiruse silmuseks, kuna see muudab globaalse kooderi kiirust
kuni see on piisavalt väike.
Väline iteratsiooni silmus või müra kontroll (Outer iteration loop või noise control)
Selleks, et vähendada iga segmendi müra taset vastavalt saadud müra taseme piirile
suurusefaktorid on rakendatud igale tükile. Süsteem alustab oma tööd vaikimisi pandud faktorist
1.0 iga tüki jaoks. Kui kvantiseerimise müra antud segmendis ületab lubatud müra taset, mis on
8
pertseptiivse mudeli poolt antud, siis faktor muudetakse nii, et see vähendaks antud tüki
mürataset. Kuna müra vähendamise tulemuse saamiseks on vaja suuremat kvantiseerimise
numbrit ja sellega ka suurema bittide taseme, siis tehakse sageduse korrigeerimise silmus iga
kord kui uued suurusfaktorid on kasutatud. Väline silmus töötab seni, kuni reaalne müra tase
(saadud esialgsete spektraalsete väärtuste ja kvantiseeritud spektraalsete väärtuste vahe) on
väiksem kui lubatud müra tase iga suurusfaktori puhul.
[1]
1.6 Faili sisemisest struktuurist
MP3 formaadis kodeeritud failid koosnevad paljudest kaadritest (frame), igaüks sisaldab sekundi
murdosa jagu informatsiooni, mis on valmis dekodeerija poolt rekonstrueerimiseks. Iga
andmekaadri alguses paikneb nii nimetatud "päis kaader", mis salvestab 32 bitti metaandmeid
mis on seotud järgneva andmekaadriga (Joonis 2). Nagu näidatud joonisel 3 MP3 algab päis
sünkroniseeriva plokiga (sync), mis koosneb 11. bitist. See annab võimaluse heliga seonduvat
informatsiooni kiiresti kätte saada. Tabelis 2 on toodud päise kõigi elementide selgitus.
Joonis 2 Kaadri päise andmete paiknevus.
9
Joonis 3 MP3 kaadri päis.
Positsioon Eesmärk Pikkus bittides
A Sünkroniseeriv-plokk 11
B MPEG audio versioon 2
C MPEG kiht (kihid üks kuni kolm) 2
D Kaitsebitt (kui seda ei ole siis järgneb päisele kontrollsumma) 1
E Bitikiirus (spetsiaalne tabel erinevate MPEG-ide jaoks) 4
F Heli sageduse spetsifikaator 2
G Täidisbitt (kompenseerib bittide vahet) 1
H Privaatne bitt (omapoolsete sündmuste käivitamiseks) 1
I Režiimi väli (stereo, liidetud stereo, duaalse kanali ning mono) 2
J Režiimi laienduse väli (liidetud stereo kasutamise puhul) 2
K Autoriõiguse bitt (sisse või välja lülitatud) 1
L Originaal (jah kui originaal, ei kui koopia) 1
M Emfaasi ehk rõhutuse väli (pole enam kasutusel) 2
Tabel 2 Kolmteist kaadri elementi.
10
Pärast sünkroniseerivat plokki tuleb identifikaator ehk ID bitt, mis teatab millise MPEG
standardi järgi see kaader kodeeritud on. Järgmised kaks biti ütlevad kas kasutatakse Kiht I, Kiht
II, Kiht III kodeeringut või ei ole see defineeritud. Kui kaitsebitti ei ole kehtestatud, siis
paigutatakse enne audio andmete algust 16-bitine kontrollsumma.
Bitikiiruse väli paneb paika hetkel kasutatava kaadri bitikiirust, sellele järgneb heli sageduse
spetsifikaator (sõltub hetkel kasutusel olevast MPEG standardist). Täidisbitt jälgib iga kaadri
bitikiirusele vastavust. Näiteks kodeerides 128 kbps Kiht II 44.1 kHz võib juhtuda, et mõned
kaadrid on 417 baidised ja mõned on 418 baidised. 417 baidised kaadrid saavad vahe
kompenseerimiseks oma täidisbiti väärtuseks (1).
Režiimi väli määrab mono või stereo signaali kasutamise ja annab võimaluse määrata stereo,
liidetud stereo, duaalse kanali ning mono kodeerimise valikuid. Kui liidetud stereo (joint stereo)
olek on lubatud, siis seletab režiimi laienduse väli dekodeerijale kuidas täpselt sellega käituda.
Autoriõiguse bitt ei hoia endas autoriõiguse informatsiooni kuna see on ju ainult 1 biti
pikkusega. See pigem näitab originaalis oleva autoriõiguse sarnase biti peale. Kui see bitt on
paika pandud, siis ametlikult selle muusikapala (track) kopeerimine ei ole lubatud. Mõned sisu
kopeerivad programmid teatavad kasutajale sellise biti olemasolust. Kui sellist infot leidub
originaalse meedia peal, siis pannakse paika tagasituleku bitt. Privaatne bitt võib olla mõnede
rakenduste poolt kasutatud omapoolsete sündmuste käivitamiseks.
Rõhutuse ehk emfaasi väli on kasutatud lipuna, kui originaalses salvestuses oli see paika pandud.
Praegusel ajal seda praktiliselt enam ei kasutata.
Lõpuks dekodeerija liigub edasi kontrollsummale (kui selline eksisteerib) ja audio-andmete
peale. Siis protsess kordub ülejäänud tuhandete audiofaili kaadritega.
[4]
1.7 MP3Pro
Praegu on kasutusel ka MP3 täiendatud versioon MP3Pro. MP3Pro on täiendatud kodeeringu
parandamise instrumendiga SBR (Spectral Band Replication), mis on loodud Coding
Technologics poolt. SBR tagab kõrgemate sageduste parema esituse.
11
Joonis 4 MP3Pro kodeerimise skeem.
Kuidas SBR töötab
Tõeliselt SBR ei kodeeri kõrgemat sageduse osa vaid rekonstrueerib selle. 64 kbps MP3Pro failis
ligi 60 kbps on kasutatud vastavalt MP3 standardile. MP3 kodeerija kodeerib heli signaali kuni 8
kHz tavalise MP3 standardi järgi. See osa MP3Pro failist saab ka tavalise MP3 dekodeerija poolt
dekodeeritud, see tähendab, et ühilduvus tavaliste dekodeerijaga on paika pandud (alla poole
ühilduvus).
SBR tehnika kasutab madalama sagedusega signaali osa kõrgsagedusliku osa
rekonstrueerimiseks vahemikes 8 kHz kuni 16 kHz. Selleks kasutatakse spektri kopeerimise
tehnoloogiat. Sarnast trikki kasutasid juba Kenwood (D.R.I.V.E.) ja Pioneer (Legato-Link). Mida
uut siis SBR endaga kaasa toob? Vastus on päris lihtne, SBR omab märksa paremaid teadmisi
oma tehtavate operatsioonide kohta.
Kodeerimise faasi käigus püüab SBR kodeerija salvestada mingi hulga informatsiooni selleks, et
dekodeerimise protsessis oleks võimalik informatsiooni õieti rekonstrueerida. Salvestise millisest
originaalse signaali riba osast tuleb kõrgeid sagedusi kopeerida, informatsioonile lisandub ka
nende sageduste mõõt. Võrreldud originaalse kodeeritud informatsiooni suurusega on SBR-i osa
päris kompaktne ja on salvestatud .mp3 faili abistava informatsiooni ossa. Niimoodi saab SBR
tehnoloogiat toetav dekooder selle informatsiooni kasutada.
Tulemused
Tulemuseks on heli kvaliteedi paranemine, aga sellega kaasnevad ka mõned ebameeldivad
aspektid. Üks neist on see fakt, et SBR rekonstrueerimise protsess nõuab rohkem jõudlust. SBR
tehnoloogiat toetavad MP3 dekodeerijad vajavad kolm korda rohkem võimsust kui tavalised.
Teatud juhul see kolm korda rohkem tähendab, et seadmel peab olema 300% jõudlust võrreldes
eelmiste dekodeerijatega. Nüüdisajal see ei pruugi arvuti jaoks probleem olla, aga tuleb mõelda
12
ka väiksemate seadmete peale nagu iseseisvad mängijad (näiteks kaasaskandvad mängijad), seal
on ju riistvaraline dekodeerija sees.
Madalamate bitikiiruste puhul on tulemus päris hea, kuid SBR tehnoloogia kasutamine kõrgete
bitikiiruste puhul on piiratud. Muidugi ei anna 64 kbps MP3Pro fail CD kvaliteedile lähedaid
tulemusi, kuid selle helikvaliteet on võrreldav tavalise MP3 formaadis kodeeritud 100 kbps
failiga.
[5]
1.8 ID3
MP3 formaat nagu ka teised MPEG kihidki ei sisalda võimalust sisuga seotud informatsiooni
salvestamiseks, väljaarvatud mõned lihtsamad jah/ei parameetrid. Selle probleemi lahendust
tutvustati 1996. aastal programmi Studio3 poolt, mille autoriks oli Eric Kemp (NamkraD).
Lisades faili lõppu väikese informatsiooni ploki oli võimalik salvestada informatsiooni selle faili
sisu kohta. Standard sai nimeks ID3.
ID3 ei sega dekodeerijate tööd. Info ploki suuruseks on valitud 128 baiti, et oleks seda lihtsam
leida.
IDV3 info omab järgnevat struktuuri:
Laulu nimetus 30 märki
Artist 30 märki
Heliplaadialbum 30 märki
Aasta 4 märki
Kommentaar 30 märki
Žanr 1 bait
Tabel 3 ID3 struktuur.
Kui kõiki nende väljade suurusi summeerida, siis tuleb sealt 125 baiti mitte 128. Üle jäävad 3
baiti paiknevad selle informatsiooni osakese alguses ja nende väärtuseks on alati "TAG", mis
annab võimaluse ID3 infot lihtsamal moel leida.
Kui mingi osa ruumi jääb tühjaks, siis see täidetakse binaarse väärtusega 0. Vaadates žanri
(Gene) välja suurust tekib kahtlus, et sinna ei ole võimalik mingit nime panna, kuid see ei ole
13
tõsi. Sinna paigutatakse väärtused 0 kuni 79 mis vastavad nimekirjas olevate igasuguste žanride
nimedele.
See standard ei võimalda info hulka suurendada. Michael Mutscher leidis võimaluse sinna raja
numbri juurde panna. Kui algoritm näeb enda ees nulli, siis ta enam ei loe talle järgnevaid
väärtusi, aga seal ju võib olla vaba ruumi. Tema pani paika, et kommentaari välja suurus peaks
olema 28 baiti, 29. baidi väärtuseks oli pandud null ja viimast baiti sai kasutada raja numbri
kirjutamiseks. Uus standart oli paika pandud ja sai nimeks ID3v1.1.
[6]
ID3v2
ID3v2 on uus süsteem. Selle süsteemi järgi iga silt (tag) hoiab enda sees ühe või mitu
informatsiooni tükki, mida nimetatakse kaadriteks (frames). Sinna saab panna mistahes infot:
nimetust, autorit, laulu sõnu, ekvalaiseri valikuid, pilte jne.
Joonis 5 Võimaliku IDV3v2 struktuuri näide.
Üks peamiseid soove ID3v2 loomisel oli, et standard oleks
paindlik ja lahtilükatav. On väga lihtne lisada sinna
informatsiooni, kuna nagu HTML (Hyper Text Markup
Language) keele puhul teadmata informatsiooni
ignoreeritakse. Kuna iga kaadri suurus võib olla kuni 16
megabaiti ja kogu sildi suurus - kuni 256 megabaiti, siis
sellest peaks kõigeks piisama.
ID3v2 toetab Unicode kirjamärke, seal saab kasutada
kõikvõimalikke keeli. Saab ka paika panna mis keeles sa
hetkel kirjutad. Nii saab sama fail sisaldada laulu sõnu erinevates keeltes.
Kuigi selle uue sildi võimalused on laiendatud, püüab see siiski ruumi kokku hoida.
Konverteerides vanemast formaadist uuemasse saab sildi suurus isegi väiksem olla. Uuem
versioon kasutab iga välja jaoks ühesugust pikkust, milleks on 30 märki. See võib põhjustada
mingitel juhtudel mahu suurenemist.
[7]
14
1.9 Patendid ja MP3
Paljud inimesed arvavad, et MP3 standard on avalik ja tasuta nagu ka ISO etalonlähtekood. Kuid
1998. aasta alguses saatis Fraunhoferi instituut, mis oli tihedalt seotud MPEG-audio
kompressiooni väljatöötamisega, mõnedele MP3 "tasuta" kodeerijate väljatöötlejatele kirja.
Selles kirjas tehti selgeks, et kõik ISO etalonlähtekoodi kasutatavad MPEG-audio kiht 3
kodeerijate väljatöötajad ja väljaandjad peavad maksma Fraunhoferi instituudile litsentsi
kasutamise eest raha. Mis on siis tõeline situatsioon?
Üldiselt MPEG standardite väljatöötamine on tasuta, MPEG standardi väljatöötamise grupiga
saab ühineda ühe ainsa kirja saatmisega. Sellepärast töötab selles valdkonnas suur hulk inimesi,
kuid kõik nad töötavad mingisuguste firmade heaks ja saavad selle eest raha. Selline töö nõuab
kõrgetasemelisi teadmisi ja palju aega. Kui sa juba tegeled seda tüüpi MPEG standardi
väljatöötamisega, siis ei jää muude tööde tegemiseks eriti palju aega. See aga omakorda
tähendab, et nende inimeste töö tulemused kuluvad firmadele, kes selle eest maksavad.
Kui mingit MPEG standardit ISO poolt kehtestatakse, siis koosneb see mõnedest osadest. See
kehtestab kasutatava bitivoo süntaksi, dekodeerija poolt tehtavate operatsioone, sellega kaasneb
ka informeeriv lähtekood, mida tuleb kodeerimiseks ja dekodeerimiseks kasutada. See kood on
täiesti tasuta, kuid see on täielikult ülevaatlik, kuna MPEG kunagi ei defineeri mitte
mingisuguseid kodeerimise reegleid.
MPEG audio kiht 3 põhiliseks tegijaks oli Fraunhoferi instituut, ning MP3 standard põhiliselt
baseerub nende poolt tehtud tööl. Selle töö tulemused on mitmete patentide poolt kaitstud. Nad
otsustasid panna oma patendid Thomson Multimedia (RCA) omadega kokku. Selles patentide
portfoolios leiduvate leiutiste kasutamise eest tuleb maksta.
Fraunhoferi instituudil ja Thomson Multimeedial on vähemalt 18 MP3 standardiga seotud patenti
ja veel üks MP3Pro jaoks. See on väga suurte võimalustega portfoolio, mis katab erinevaid MP3
kodeerimise aspektid. Mõnedes patentides kirjeldatud algoritmide asemel saab kasutada
erinevaid algoritme, on võimalik ka mingisuguseid võimalusi mitte kasutada. Kuid mõnedest
patentidest ei saa üle ega ümber, mis omakorda tähendab, et ei ole võimalik MP3 standardiga
seotud programme teha ilma tasulisi algoritme kasutamata.
15
Ei saa unustada ka sellist fakti, et ka mõned teised firmad võivad omada veel mingisuguseid
patente, mis katavad MP3 standardi osi. Tulevikus võivad needki firmad oma patenteeritud
tehnoloogiate kasutamise eest raha nõuda. Alates MP3 standardi loomisest 1992. Aastal on ainult
Fraunhoferi instituut ja Thomson Multimedia oma tehnoloogiate kasutamise eest tasu küsinud.
[8]
16
2 OGG
Kuna OGG standard on suhteliselt uus ja paljud inimesed ei ole sellega eriti tuttavad, siis saab
OGG Vorbis veidi põhjalikumalt vaadatud.
2.1 OGG Vorbis standardi üldfaktid ja ajalugu
OGG standardi väljatöötamine sai alguse 1993. aastal. Tol ajal oli see tuntud projekt "Squish"
nime all. Juba algusest peale oli OGG avatud lähtekoodiga projekt ja selle kasutamiseks pole
vaja igasuguste patentide eksisteerimise peale mõelda. See oli ettekavatsetud MP3 ja WMA
(Windows Media Audio) standardite konkurendiks ehk isegi asendamiseks, juba praegu on see
ülemaailma tuntud ja populaarne standard. Veelgi enam selle algoritmi kallal tehakse veel tööd,
kuna see osutus väga painduvaks. Kuigi heli kvaliteet saab iga uuema versiooni ilmumisega
paremaks on failid tagurpidi ühilduvad, neid saab mängida ka vanemaid mängijaid kasutades.
Nagu MP3-gi annab OGG võimaluse kodeerida faile erinevastes bitikiirustes. Seda
kompressiooni kasutades on mõned laulu osad kodeeritud suurema kukkusurutusega kui teised,
mis täiesti sõltub loost endast. Paljudel juhtumitel see kokkusurumine toimub koos pisikeste
müradega või väikeste katkestustega. OGG on üks väheseid formaate, mis toetab mitme kanali
kokkusurumist. Nagu ka mõned tema eelkäijad saab OGG formaadis faili reaalajas levitamiseks
(streaming) kasutada, kuigi see võimalus peaks olema tarkvara poolt toetatud.
[9]
2.2 Vorbis standardi kirjeldus
Vorbis on üldine pertseptiivne helikoodek mis on skaleeritav laias bitikiiruste ulatuses. Kõrgema
kvaliteedi ehk suuremate bitikiiruste puhul on tema tulemused MPEG 2 standardi kasutamisel
saadud tulemustega samal tasemel. Kasutades bitikiirusi kuni 48 kbps saab kodeerija
konverteerida heli ilma suuremate kvaliteedi kadudeta. Vorbis on samuti ettenähtud nii
madalamate kui ka kõrgemate sagedustega failide loomise jaoks, ning omab laia valiku kanalite
esitamisviise (monofooniline, polüfooniline, stereo, kvadrofoonia, 5.1, või kuni 255 diskreetset
kanalit).
Klassifitseerimine (Classification)
Vorbis I on Modifitseeritud Diskreetse Koosinusteisenduse (Modified Discrete Cosine
Transform) tehnoloogia peal baseeruv edasikohanduv terviklik transformeerimise koodek. Oma
struktuuri tõttu annab see võimaluse kasutada laine filtri (wavelet filter) (Vorbis II), mis pakub
17
parema taastamise kvaliteedi kasutades ümberkujunemiseks paremini lokaliseeritud
ajasündmusi.
Vorbis koodeki omadustest (Assumptions)
Vorbis koodki disain eeldab akustikat tundvat keerulise kodeerija ja lihtsa ülesehitusega
dekodeerija olemasolu. Arvutusliku poolt vaadates saab öelda, et Vorbis formaadis dekodeerija
on lihtsam kui MP3 formaadi oma, kuid vajab rohkem mälumahtu, kuna ta ei kasuta staatilise
tõenäosuse mudelit. Kõik esimese faasi bitivoo dekodeerimisel kasutatavad vektorkoodiraamatud
on täismahus pakitud Vorbis formaadi bitivoogude päistesse. Oma kokkupakitud vormis võtavad
need koodiraamatud ainult mõne kilobaidi võrra ruumi. Dekodeerimisel tuleb nad vahemällu
lahti pakkida ja see ongi rohkema mälumahtu nõudmise põhjuseks.
Vorbis ei kanna endas mitte mingisugust kaadri joondamist, sünkroniseerimist või kaitset vigade
vastu. See on puhtalt sisendheli vastuvõtumeetod, mis saab heli-info üksikuteks kaadriteks
tükeldada ja neid kokku suruda (raw või reconfigurable architecture workshop) pakettideks.
Dekodeerija võtab neid pakette õiges järjekorras vastu, dekodeerib ja sünteesib neist heli
kaadrid. Lõpuks pannakse neid kaadre uuesti algse signaali täpse koopiana kokku.
Vorbis on varieeruvat bitikiirust VBR (Variable Bitrate) tehnoloogiat kasutav koodek. Seetõttu
ei oma paketid minimaalset, maksimaalset või oodatavat suurust. Paketid omavad sellist
struktuuri, et isegi kui neid tükeldatakse on dekodeerimine ikkagi võimalik. Mõlemad,
dekodeerija ja edasiandmise mehhanism peavad võimaldama paketi varieeruva suuruse
toetamist. Paketid võivad dekodeerijani jõuda ka enne või pärast eeldatavat aega.
Vaadeldava standardi paketid on mõeldud kasutamiseks sellise edastamise mehhanismiga, mis
oleks võimeline toetama kaadriteks muutmist, sünkroniseerimist, paigutamist ja vigade
parandamist täielikult vabas vormis. Üheks selliseks failide edasiandmiseks kasutatud vahendiks
on OGG. Kõige lihtsam oleks kasutada OGG standardit, kuid Vorbis kui selline ei nõua kindlasti
OGG kasutamise.
[10]
Koodeki ülesehitus ja Tõenäolisuse mudel (Codec Setup and Probability Model)
Vorbis nagu ka tema koodek on üürimustööks avatud, selle praegune kujundus viitab sellele, et
oleks võimalik veel palju aastakümneid arendustööd teha enne kui koodeki spetsifikatsiooniga
18
määratud ruum otsa saab. Sellepärast konfiguratsiooni aspektid polegi täielikult paika pandud ja
neid on kogu aeg võimalik igasuguste uuenduste jaoks kohandada.
Kõige vaieldavam otsus Vorbis standardi puhul on see, et kogu tõenäolisuse mudel (Huffmani ja
VQ koodiraamatud) on bitivoo päisse pandud koos paljude teiste parameetritega (tihti sadade
väljade mahus). See tähendab, et dekodeerimist ei saa alustada suvalise paketi pealt, kõige enne
peab kätte saama päistes sisalduva info. See erineb ka MPEG standardites kasutatud võttest. Seal
sai alustada dekodeerimist suvalise paketi pealt.
Seega on Vorbis formaadis kasutusel olevad päised vajalikud dekodeerimise protsessi
alustamiseks. Päised on suhteliselt mahukad, suurus ei ole otseselt piiratud, kuigi on soovitatav
kasutada neid suuruses kuni 4 KB.
See aspekt ei ole otsustav ja edasiarendajad arvavad, et see ei sea erilisi kitsendusi. Mõned
Vorbis standardi poolt määratud dekodeerimise protsessi aspektid on vältimatud, kuid ka mõned
neist võib vahele jätta.
2.3 Dekodeerija ülesehitus (Decoder Configuration)
Dekodeerija ülesehitus koosneb paljudest komponentide komplektidest, mis täidavad
konkreetseid funktsioone kogu dekodeerimise süsteemi konveieris. Iga erineva komponendi
konkreetse tüüpi eksemplar on semantiliselt samaväärne.
Joonis 6 Komponentide seadistuse väljanägemine.
Globaalne konfiguratsioon (Global Config)
Koodeki globaalne konfiguratsioon koosneb heliga seotud väljadest (diskreetimissagedus,
kanalid), Vorbis formaadi versioonist (kirjutatakse 0 kui versiooniks on Vorbis I), bitikiirus ja
19
komponentide eksemplaride nimekirjast. Kogu ülejäänud konfiguratsioon paikneb konkreetsete
komponentide kontekstis.
Režiim (Mode)
Iga kaader on kodeeritud vastavalt oma etaloni olekule (master mode). Bitivoos võib kasutada
neid üht või mitut.
Oleku mehhanismi kasutatakse iga konkreetse kaadri jaoks kõige parema kodeerimise režiimi
valimiseks. Neid režiime on suhteliselt palju, aga valida tuleb konkreetse situatsiooni jaoks kõige
sobilikum. Üheks selliseks režiimiks võib nimetada kaadri kaupa kaadri suuruse muutmist.
Režiimi number mängib kõigi teiste aspektide jaoks võtme rolli.
Režiim koosneb kaadri suuruse paigutamisest, akna tüübist (alati 0, Vorbis I kasutamise puhul),
teisenduse tüübist (alati 0, MDCT või Modified Discrete Cosine Transform, Vorbis I kasutamise
puhul) ja andmeteisenduse numbrist. Andmeteisenduse number määrab millist andmeteisenduse
konfiguratsiooni kasutada madala tasandi paketi dekodeerimiseks ja sünteesiks.
Andmeteisendus (Mapping)
Andmeteisendusskeem sisaldab kanalite liitmise kirjeldust ja asendusskeeme (submaps), mis
hoiavad kanali vektoreid grupeerituna kodeerimiseks ja dekodeerimiseks. Need ei ole viited
välistele komponentidele, asendusskeemide nimekiri on iga individuaalse skeemi sisene aspekt.
Asendusskeem on grupeering, mis on rakendatud aluse alamhulgale ja andmeteisendusskeemis
järelejäävatele vektoritele. See mängib viimase kihi osa, nii saab rakendada sätteid mitte ainult
selle skeemi sees olevatele vektoritele, kuid ka teatud skeemi konkreetsetele vektoritele. Iga
alamteisendusskeem määrab sobiva aluse ja selle dekodeerimise reegleid.
Alus (Floor)
Vorbis kodeerib spektraalse aluse (floor) iga PCM (Pulse Code Modulation ehk
impulssmodulatsioon) kanali jaoks. See vektor on hetkel kasutatava kaadri kanali
madalaresolutsiooniline helispektri kujutis.
On kaks tüüpi aluse dekodeerimist. Alus 0 kasutab kokkusurutud LSP kujutamist dB
amplituudide skaalal ja Bark sageduste skaalal. Alus 1 esitab dB amplituudideskaalat ja
lineaarset sagedusteskaalat. Mõlemad alused on semantiliselt vahetatavad nii kodeerimise, kui ka
20
dekodeerimise protsessi puhul. Kuid aluse tüüp 1 tagab stabiilsema kaadrisisese tööviisi,
sellepärast on see eelistatud kõrgete bitikiiruste puhul. Selle aluse puhul käib lihtsamini ka
dekodeerimise protsess. Praegu leiab alus 0 vähe kasutust.
Aluse poolt kodeeritavad või dekodeeritavad väärtused omavad mõlemad kompaktset vormingut
ja kasutavad entroopia kodeerimist ruumi säästmiseks. Sellepärast viitabki aluse konfiguratsioon
paljudele koodiraamatutele nende raamatute komponentide nimekirjast. Iga konkreetne aluse
eksemplar saab valida saadaval olevatest koodiraamatutest just vajalikud.
Jääk (Residue)
Spektraalne jääk on audiospektri järelejäänud struktuur pärast alus-kõvera lahutamist, ehk
bitivoogu sisse kodeeritud vektorite kvantiseerimise kaskaadülekannet (multi-pass). Selle
protsessi jaoks on olemas kolm eraldiseisvat algoritmi nummerdatud 0 kuni 2. Pakkimise
algoritmi üksikasjad on jäägi eksemplari poolt konfigureeritud. See algoritm käitub
koodiraamatutega sarnaselt.
Koodiraamatud (Codebooks)
Need raamatud on entroopia dekodeerimisi sooritavad kinnised struktuurid. Kasutades
entroopiliselt dekodeeritud täisarvulisi väärtusi tagastavad nad ettenäidatud väärtuste vektorit.
Vorbis I formaadis tagab entroopialist kodeerimist standardne Huffmani kahendpuu kujutus.
Puud surutakse kokku kasutades ühe paljudest meetoditest sõltuvalt kodeeritud sõna
segmentidest (korrastatud või mittekorrastatud).
Koodiraamatu vektori indeks on määratud vastavalt indeksi tunnusele. Tavaliselt see vektori
indeks on kodeeritud ühe väärtuste nimekirja vormis (kasutades võimalike väärtusi) ja siis
permuteeritud n - mõõtmeliste ridade nimekirja.
2.4 Kõrgetasemeline dekodeerimise protsess (High-level Decode Process)
Dekodeerimise ülesehitud (Decode setup)
Enne dekodeerimise protsessi algust peab dekodeerija ennast lähtestama bitivoo päiseid
kasutades. Vorbis kasutab kolme päise paketti ja kõik need paketid on talle vajalikud. Pärast
21
lähtestamise protsessi algust võib dekodeerimist alustada iga voo kuluva paketi pealt. Vorbis I on
nii ülesehitatud, et pärast kolmest päisest koosnevat komplekti järgnevad ainult helipaketid.
Päised on nii korraldatud: identifitseerimise päis, kommentaaride päis ja ülesehituse päis.
Identifitseerimise päis (Identification Header)
See identifitseerib Vorbis standardi versiooni ja lihtsamaid heli karakteristikud (nagu
diskreetimissagedus ja kanalite number).
Kommentaaride päis (Comment Header)
Kommentaaride päis hõlmab endasse kasutaja poolt lisatud kommentaare (tags) ja tarnija stringi
jaoks (programm). Kommentaaride mehhanism ei ole küll nii võimas nagu viimastel ID3
versioonidel, kuid seal leiduvad kõik tänapäeval vajalikud väljad. Üldine ehitus on pigem
standardne, kuid sealt leidub ka huvipakkuvaid osi. Üks kõige rohkem huvi pakkunud osi kandis
nime ISRC (International Standard Recording Code). See süsteem identifitseerib teatud
salvestuse jaoks olemasoleva numbri (iga salvestuse number on unikaalne). Sellist integreerimist
saab siin kasutada autoriõiguste kaitsel..
[11]
Ülesehituse päis (Setup Header)
Ülesehituse päis sisaldab nii ulatusliku koodeki ülesehituse informatsiooni, kui ka täielikke
dekodeerimiseks vajalikke VQ ja Huffmani kodeerimisraamatuid.
Dekodeerimise protseduur (Decode Procedure)
Dekodeerimise ja sünteesi protseduur on kõikide koodekite jaoks umbes samasugune.
1. Paketi tüübi lipu dekodeerimine
2. Režiimi numbri dekodeerimine
3. Akna kujundi dekodeerimine (ainult pikad aknad)
4. Aluse dekodeerimine
5. Jäägi dekodeerimine jäägi vektoriteks
6. Jäägi vektorite pöördkanalite liitmine
7. Dekodeeritud aluse andmetest aluse joone tekitamine
8. Arvutatakse aluse ja jäägi punktkorrutis, audiospektri vektori tegemine
22
9. Audieospektri vektori terviklik pöördtransformeerimine
10. Kattumine (overlap), ühendatakse vasakpoolne transformeerimise väljund eelmise kaadri
paremapoolse väljundiga
11. Salvestatakse hetkel kasutatava kaadri transformeerimise parempoolne informatsioon, hiljem
kasutatakse kattumisel
12. Kui ei ole esimene kaader, siis tagastatakse tulemused/lisatakse hetkel kasutatava kaadri
audiotulemusena.
Paketi tüübi dekodeerimine (Packet type decode)
Vorbis I kasutab nelja paketi tüüpi. Neis esimesed kolm määravad juba kirjeldatud päiste
pakette. Neljanda paketi tüüp määrab audiopaketi. Kõik ülejäänud pakettide tüübid on
reserveeritud, sellised reserveeritud lipuga määratud pakette tuleb ignoreerida. Esimene audio
pakettide dekodeerimise samm on paketi tüüpi kontrollimine. Kui oodatud audio paketi asemel
tuleb mingi teine, siis on kohe teada, et voo on kas rikutud või on tegemist vale voo
situatsiooniga. Kodeerija peab selliseid pakette ignoreerima ja mitte mingil juhul ei tohi alustada
nende dekodeerimist.
Selle järel tuleb juba kirjeldatud režiimi dekodeerimine.
Akna kujundi dekodeerimine [ainult pikad aknad] (Window shape decode [long windows only])
Aken on üks kadri suurust määravaid faktoreid. Kaadri suuruseks on võimalik valida üks PCM
näidistesuurustest. Seaduslikud kaadrite suurused on kahe astmed alustades 64 kuni 8192 näidist.
Vorbis kohtleb kanaleid (vasakpoolne ja parempoolne) sõltumatu vektoritena ja need kaadrite
suurused on antud näidistes kanali kohta.
Vorbis kasutab ühe kaadri teisega kombineerimiseks vaheliti transformeerimist (nimelt MDCT).
Sellega väldib ta tehislikkuse (artifacts) tekkimist. Kaadri MDCT väljund kadreeritakse vastavalt
MDCT vajadustele. Segatakse 50% eelmise kaadri väljundiga. See tagab vigadeta taastamise.
Juhul, kui kahe akna suurused erinevad teineteisest tuleb suuremat akent modifitseerida nii, et
eelpool kirjeldatud protsess oleks võimalik. Korrektse akna suuruse järeldamine on võimalik
juhul, kui on teada eelmise, hetkel kasutusel oleva ja järgmise akna suurusi. See
modifitseerimine on täielikult lubatud. Kuigi pika akna juhul kodeerib Vorbis ka kaks lipu tüübi
bitti selleks, et kirjeldada akna suurust enne ja pärast. See annab võimaluse dekodeerida paketi
23
ilma mingisuguse informatsiooni otsimata ja tagab lihtsama kodeerimise/dekodeerimise
protsessi.
Vorbis standardi akna kujundi dekodeerimise protsessis kasutatakse sellist tõusuvalemi:
y=sin(2PI*sin^2(x/n)).
Aluse dekodeerimine (Floor decode)
Iga alus on kodeeritud-dekodeeritud kanalite järjestuses, kuid iga alus kuulub asendusskeemile
(submap), mis omakorda määrab millist konfiguratsiooni kasutada. Kõik alused on dekodeeritud
enne jäägi dekodeerimise algust.
Jääki dekodeerimine (Residue decode)
Kuigi jäägi vektorite arv võrdub kanalite numbriga võib kanalite liitmine tähendada, et
dekodeerimise protsessi käigus saadud vektorid ei näita otseselt konkreetsete kanalite peale.
Mõned vektorid hakkavad vastama liidetud tähendustele või erinevustele. Need seosed on
eelnevalt kirjeldatud ja võivad kaadrist kaadrini muutuda, see on võimalik tänu erinevatele
režiimi numbritele.
Vorbis kodeerib neid vektoreid gruppidesse iga asendusskeemi jaoks. Kodeerimine toimub selle
asendusskeemi sees järjekorras 0 kuni n-1 (n on vektorite arv). See erineb alustest, neid
kodeeritakse kasutades asendusskeemi numbri poolt antud konfiguratsiooni, kuid on eraldi
kanalite järjestuses kodeeritud.
Pöördkanalite liitmine (Inverse channel coupling)
Kanalite liitmisega saavutatakse suuremaid bitikiirusi ja parem kvaliteet. Seda rakendatakse
samaaegselt vektorite paaridele. Lahtivõtmise käigus kasutatakse režiimi poolt määratud
vektorite paare. Protsess näeb kõikide vektorite paaride jaoks samamoodi välja.
Kui kogu vektorite paaride nimekiri on lahti võetud, kirjeldab saadud jäägi vektor iga väljuva
kanali spektraalseid üksikasju.
Alus-kõvera tekitamine (Generate floor curve)
Dekodeerija võib sellise alus-kõvera tekitada igal talle sobival ajal. Sellise aluse tekitamine omab
mõtet alusandmete dekodeerimisel raw pakettidest. Kuid see võiks ka täiesti olla genereeritud
24
pärast pöördkanalite liitumist ja olla rakendatud otseselt spektraalsele jäägile kombineerides
tekitamise ja punktikorrutise ühe sammu sisse, säästes sellega töö mahtu. Mõlema 1 ja 0
protsessi korral tekitatakse samasuguseid struktuure.
Aluse arvutamine/jäägi punktikorrutis (Compute floor/residue dot product)
Iga väljundkanali jaoks dekodeerija elemendihaaval korrutab alus-kõvera ja jäägi vektoreid,
tulemuseks on iga kanali valmis helispekter.
Alus-vektori väärtused saavad olla vahemikus ~140 dB piirides (span) (~24 bitti) ja heli enda
spekter peab esitama minimaalselt 120 dB (~21 bitti) isegi kui väljund on 16 bitti PCM seade.
Selleks, et jäägi vektor saaks anda täisulatuses skaala juhul kui aluseks on pandud -140 dB peaks
see olema suuteline olla vahemikus 0 kuni +140 dB. Kui aluseks on määratud 0 dB, siis peaks
see olema võimeline esitama -140 dB kuni +0 dB. Selleks ei täita dünaamikat täies mahus peaks
jäägi vektor olema suuteline töötama vahemikus -140 dB kuni +140 dB. Vahemik, mille
ulatuseks on 280 dB on umbes 48 bitti. See tähendab, et jäägi vektor peaks olema suuteline
esitama 48 bitist ulatust ja punktikorrutis (dot product) peaks olema võimeline 38 biti ja 24 biti
efektiivseks korrutamiseks. Sellega saab hakkama kasutades suuri (64 bitti või suuremad)
täisarve.
Terviklik pöördtransformeerimine (Inverse monolithic transform (MDCT))
Audiot saab PCM normaalkujule tagasi konverteerida kasutades pööratud MDCT tehnoloogiat.
Tuleb märkida, et otseselt MDCT transformeerimiste poolt saadud PCM ei ole veel valmis audio
signaal, see peaks olema mõhitud (lapped) ümbritsevate kaadritega sobivat akent kasutades
(üheks selliseks on Vorbis tehnoloogial baseeruv aken). Ainult pärast eelmainitud protseduuri
saab MDCT olla ortogonaalne.
Kattumine/andmete lisamine (overlap/add data)
Akna kasutamisega saadud MDCT väljundile rakendatakse kattumist ja talle liidetakse eelmise
akna parempoolne andmekogu. Nii saab valmis hetkel dekodeeritava kaadri keskpunkt.
25
Parempoolsete andmete vahemällu salvestamine(Cache right hand data)
Dekodeerija peab panema hetkel kasutusel oleva kaadri parempoolse andmetekogumi vahemällu
salvestama selleks, et võimaldada selle saadud osa liitmist järgmise kaadri vasakpoolse
andmekogumiga.
Saadud audio andmete tagastamine (Return finished audio data)
Tuleb märkida, et esimene kaader ei tagasta mingeid andmeid. Teda kasutatakse selleks, et
ülejäänud kaadritest tulevaid andmeid oleks võimalik kätte saada.
[10]
2.5 OGG loogika ja bitivoo füüsiline ülevaade
OGG bitivoogud
OGG koodekid kasutavad raw oktettvektoreid, kokkusurutud andmed. Need kokkusurutud
paketid ei oma mingit kõrge taseme struktuuri või rajainformatsiooni. Kokkupakituna paistavad
nad välja juhuslikke baitide vootena, mis ei oma mitte mingeid piire.
Neid raw pakette võib kasutada reaalajas edastamise (streaming) mehhanismide poolt, mis
omavad enda kadreerimise ja pakettide eraldamise võimalusi. Vorbis ja mõned teised koodekid
kasutavad OGG bitivoode formaati. OGG annab vajalikud piirid ja piisavalt infot, informatsiooni
pakettideks muutmiseks.
[12]
OGG voogude konstrueerimise piirangud
1. Tõeline voogamine. Täieliku bitivoo ehitamiseks ei ole vaja midagi otsida.
2. Pakettidele piirde seadmiseks, kõrge tasandi kadreerimiseks, sünkroniseerimiseks ja
otsimiseks e tohiks kasutada rohkem kui 1-2% kogu bitivoo läbilaskevõimest.
3. Originaali voos absoluutse positsiooni määramine.
4. Lihtne mehhanism piiratud redigeerimise kergendamiseks, nagu lihtsustatud
andmestruktuuride ühendamise mehhanism.
5. Vigade leidmine, andmevoo jätkamine pärast vea teket ja otsene juurdepääs voos vajalikuks
osutavale kohale.
[13]
26
Loogikalised ja füüsilised bitivood
Raw pakette grupeeritakse ja kodeeritakse struktureeritud andmetest koosnevateks külgnevates
lehekülgedeks, neid lehekülgi kutsutakse loogikalisteks bitivooteks (logical bitstreams). Selline
loogikaline bitivoo koosneb ühele koodeki eksemplarile (instance) kuuluvatest lehekülgedest.
Iga selline lehekülg on eraldi seisev objekt (kuigi on võimalik paketi tükeldamine ja paljude
objektide kasutamine). Dekodeerimise mehhanism on suuteline neid lehekülgi ära tundma ja
neid ükshaaval töötlema.
Paljud loogikalised bitivood võivad olla kombineeritud (piirangutega) üheks füüsiliseks
bitivooks (physical bitstream). Üks selline füüsiline bitivoo koosneb paljudest lehekülje tasemel
multipleksitud loogikalistest bitivoogudest ja võib hõlmata ka alguses paiknevat meta-päist
(meta header), mis võib identifikaatori rolli mängida. Kõiki olemasolevaid lehekülgi võetakse ja
pannakse kokku, selle protsessi käigus tekib üksainus füüsiline lehekülgede voog. Kõige
lihtsama füüsilise bitivoo rollis võib olla üks multipleksmata loogikaline bitivoog.
[12]
Bitivoogu struktuurist ja Andmeteisenduse piirangutest (Mapping restrictions)
Enne lehekülje kodeerimist toimub pakettide loogiline jagamine, pakette jagatakse paljudeks
segmentideks. See protsess on täielikult loogikaline, mis tähendab, et selle käigus kunagi ei
kasutata algse lehekülje andmeid. See tähendab, et mingeid lisaandmeid ei küsita.
Pakett jagatakse n 255 baidilisteks segmentideks ja viimane segment on väiksem kui 255 baiti.
Pakett või koosneda ka ühest ainsast segmendist ja see segment omakorda võib olla pikkusega 0.
Neid paketi pikkuse väärtusi kutsutakse seostatavateks väärtusteks (lacing values) ja
salvestatakse päiste segmentide tabelisse.
[13]
Andmeteisenduse piirangud (Mapping Restrictions)
Loogikalised bitivoogusid ei saa muuta füüsilisteks ilma teatud piiranguteta.
Lisaks loogilises andmevoos lehekülgede algusesse ja lõppu pandud lipukujulistele
konstruktsioonidele omab OGG andmevoo esimene lehekülg lisapiiranguid. Iga individuaalne
andmekandja paneb paika nende lisareeglite nimekirja.
27
OGG loogikalise bitivoo esimene lehekülg koosneb väikesest lähte päise (initial header) paketist,
mis hoiab endas täpse koodeki tüüpi identifitseerimiseks vajalikku informatsiooni, sellele
kaasnevad ka loogilisele bitivoole andmekandja poolt esitatavad nõuded. See annab võimaluse
bitivoo tüüpi ja sisu lihtsamini ära tunda. Ja selle protsessi jaoks on vajalik ainult väikese
mahuga andmehulk.
Konkreetselt OGG Vorbis paneb lähte päisesse: Vorbis koodeki nime ja versiooni numbri,
helikiiruse (audio rate) ja audio kvaliteedi. Sellega muutub voo identifitseerimine lihtsamaks.
Jadamultipleksimine (Sequential multiplexing (aheltöötlus))
Loogilise bitivoo multipleksimise lihtsaim näide on tihendamine (aheltöötlus või chaining).
Valmis saadud loogikalised vood pannakse üksteise järele, et moodustus teatud struktuur.
Bitivood ei kattu, hetkel kasutatava loogikalise bitivoo viimasele leheküljele järgneb järgmine
alguslehekülg. See on ainuke OGG Vorbis formaadi poolt lubatud andmeteisendus loogikalise
voo füüsikaliseks muutumise protsessis.
Iga ahelaks muudetud loogikaline bitivoo omab unikaalset numbri füüsilise bitivoo
kehtivusepiirkonnas.
Koosnev/samaaegne multiplksimine (Concurrent multiplexing (grupeerimine))
Veel üks multipleksimise võimalus on paralleelne multipleksimine (grupeeritult). See tähendab,
et ühe voo (streaming) sees saab edasi anda erinevaid audio ja video vooge. Seal saab kasutada
erinevaid koodekeid ja erinevaid loogikalisi bitivooge, kuid kõik see toimub sama füüsilise
bitivoo sees. Mitme loogilise bitivoo leheküljed on kokku segatud..
Iga bitivoo algusleheküljed peavad esimestena kohale saabuma, andmekandja andmeteisendus
määrab kindlaks nende lehekülgede korra. Andmeteisendus saab määrata, et füüsiline bitivoo
algab video bitivoo algusleheküljega, sellele järgneb audio voo alguslehekülg. Viimased ehk
lõpuleheküljed (terminal pages) ei pea külgnevalt ette tulema. Need võivad olla tühjad (nil)
leheküljed, kus sees on ainult lehekülje positsiooni informatsiooniga päis ja viimase bitivoo
lehekülje (last page of a bitstream) lipp.
Iga grupeeritud bitivoog peab omama selle füüsikalise bitivoo ulatuses unikaalse numbrit.
28
Samaaegselt multipleksitud bitivoode grupid võivad olla järjestatud. Selline füüsiline bitivoo
vastab mõlema meetodi reeglitele. Kui neid gruppe lahutada, siis peavad nad eraldi seisma ja
vastama grupeerimise reeglitele.
[12]
2.6 OGG kokkuvõte
OGG Vorbis on suhteliselt uus formaat ja mitte kõik arvutikasutajad ei ole sellega tuttavad.
Suurem hulk inimestest siiski juba teab mis see on.
Siin olid vaadeldud OGG peamised struktuursed aspektid, aga needki annavad mingisuguse
ettekujutuse OGG Vorbis omadustest ja kasutamisvõimalustest. Vorbis standardi struktuur on
suhteliselt lai ja küllaltki paindlik. Kõige huvitavam on fakt, et tegemist on täiesti avatud
formaadiga. Igaüks saab liituda OGG Vorbis projekti meeskonnaga, igaüks saab oma ideid
pakkuda ja neid pärast ka realiseerida. Alguses tuli välja OGG helifailide kodeerimise formaat.
Aastate käigus on lisandunud uued võimalused, näiteks FLAC (Free Lossless Audio Codec), mis
tähendab Vaba Kadudeta Audio Koodek. Selle koodeki töö käigus pakitakse audiot kokku, aga
mingeid kadusid selle protsessi käigus ei teki. Põhimõtteliselt peaks heli kvaliteet originaali
omaga võrdseks jääma. Praegu leidub ka FLAC standardit toetavaid mängijaid.
Teine uus OGG Vorbis projekti osa on Speex. See audio formaat on mõeldud inimkõne
salvestamiseks. Veel üks neist projektidest kannab nime THEORA, avatud koodiga video
koodek. Olles veel üks selle projekti osa THEORA realiseerib suure osa OGG Vorbis
ettekavatsetud laienduste võimalustest. Kuna see võimaldab panna kokku OGG Vorbis heli ja
video faili. Selles konkreetses situatsioonis on OGG Vorbis kasutatud audio osa realiseerimiseks.
Siin võivadki olla kasutatud multipleksimise võimalused.
Nende nimedega hetkel projekti laiendused piirduvadki. Oodata on kindlasti palju muudatusi,
sest kaasatud on hulk inimesi ja projekt on täies elujõus.
Hetkel on olemas versioon 1.0.1.
Hetkeseisuga toetavad OGG Vorbis formaadis tehtud faile juba paljud tuntud mängijad. Üks
esimestest oli hästi tuntud WINAMP (http://winamp.com/). OGG vorbis formaadis failide toetust
omas juba 2004 I poolaastal valminud versioon 5.0. Hetkel on viimaseks versiooniks 5.05. Omal
29
ajal aitas see mängija noort MP3 standardit kuulsaks saada. Näiteks võib veel tuua ühe paljudest:
foobar2000 (http://www.foobar2000.org/).
Natuke halvem on situatsioon riistvaraliste kaasaskantavate mängijatega, kuid ka need on
olemas. Nende kohta leidub informatsiooni ühel projektiga seotud lehel
(http://wiki.xiph.org/VorbisHardware#Portable_Players). On näha, et OGG formaati toetavate
mängijate tegemisega on juba seotud mitu firmat. Üks mängijatest kannab nime iriver
(http://www.iriver.com/product/). Enamus OGG formaati toetavatest mängijatest toetab ka MP3
formaati.
30
3 Testid
Antud peatükis vaatleme läbiviidud teste, mille põhjal võrdleme MP3 ja OGG formaate. Testide
tulemuste põhjal teeme järeldusi, kumb kahest formaadist omab hetkel paremat
kodeerimise/dekodeerimise mehhanismi.
Testis salvestati MP3 ja OGG formaati järgmised muusikapalad: "Queen" ja "I Was Born To
Love You"; "The Prodigy" ja "No Good (Start The Dance) " ning "Vivaldi" ja "Spring (I
Allegro)". Sellise valiku põhjuseks on asjaolu, et kõiki neid meloodiaid võib nimetada oma žanri
tüüpilisteks esitajateks.
3.1 Testimise parameetrid ja kasutatud programmid
Muusika CD-plaatidelt arvuti kõvakettale salvestamiseks (rip) ja sagedusdiagrammide
koostamiseks on kasutatud helitöötlusprogrammi "Adobe Audition", mis on peamiselt
professionaalidele ja asjaarmastajatele mõeldud, paljude võimalustega laialt kasutatav tarkvara.
Programmi piiratud ajakasutamisega versiooni ja dokumentatsiooni saab selle internetilehe pealt
(http://www.adobe.com/products/audition/main.html).
CD plaadilt salvestati muusika PCM audioformaadis WAV failideks järgmiste parameetritega:
bitikiirus 1411 kbps, diskreetimissuurus (sampling size) 16 bitti, diskreetimissagedus 44.1 kHz, 2
stereo kanalit. Sellised failid on CD-audio muusika üks-ühele koopiad. Saadud failid olid kõik
mahuga 10.5 MB minuti kohta, ehk kõik umbes 40 MB.
Failide konverteerimiseks MP3 ja OGG formaatidesse kasutasime "OrlSoft MPeg eXtension"
nimelist tarkvara, mis toetab suurt hulka erinevaid audioformaate. MP3 jaoks kasutab see
tarkvara LAME (Lame Ain't an MP3 Encoder) koodeki versioon 3.96
(http://lame.sourceforge.net/), mis on hetkel laialt kasutatud ja annab väga häid tulemusi. OGG
formaadi jaoks kasutab see tarkvara OGG 1.0.1 koodekit, mis on eespool mainitud OGG Vorbis
projekti raames loodud.
Mõlemad koodekid kasutavad VBR (Variable bitrate) ehk nii nimetatud "Varieeruva bitikiiruse"
režiimi. Režiimi nimetatakse ka ABR (Average bitrate) ehk "Keskmine bitikiirus". See tähendab,
et bitikiirus failis ei ole kogu aeg samal tasemel, vaid varieerub vastavalt sisendsignaali
vajadustele. Varieeruv bitikiirus võimaldab saada paremat kvaliteeti.
[http://orlsoft.djbobo.ru/osmpx.asp]
Kuna OGG koodek kasutab VBR-i, siis oli MP3 koodeki valimise üheks eelduseks samuti
VBR-i tugi. Muidu oleks meie testis OGG formaadil olnud eelis.
31
Testis kasutasime järgmiseid bitikiiruseid:
1. 320/350 kbps, CD-lähedane kvaliteet (near CD)
2. 256 kbps.
3. 192 kbps, väga laialt kasutatav bitikiirus
4. 160 kbps
5. 128 kbps, internetis vahetatavate helifailide puhul praktiliselt standardiks muutunud
Tulemuste analüüsimist segas natuke asjaolu, et "Adobe Audition“ ei toeta OGG formaati.
Tulemuste saamiseks tuli OGG formaadis failid uuesti WAV-failideks (PCM) teisendada. Testi
tulemustele see mõju ei avalda, kuna sellesuunaline teisendus helikvaliteeti ei mõjuta. Igaks
juhuks, täiesti võrdsete testitingimuste tagamiseks teisendati ka MP3 failid WAV-failideks.
3.2 Testimine
Bitikiirus 320/350 kbps
Alustagem siis kõige parema kvaliteediga salvestustest. Selliste parameetritega kodeerimise
eesmärgiks on võimalikult paremate tulemuste saamine. Mõlema koodeki puhul kasutatakse
paremaid võimalikke parameetreid. Need on: 320 kilobitti ja 22 kHz MP3 (LAME) ning 350
kilobitti ja 22 kHz OGG kodeerija puhul. Selliste parameetritega kodeerimise tulemused peaksid
olema CD kvaliteedile võimalikult lähedad.
Tulemuste parema esitamise ja lihtsama arusaamise jaoks on kasutatud sonogrammi (sonar ehk
sonogram), mis on heli ajasageduslik esitus. Vertikaalteljel on sageduste riba (0 kuni 22kHz)
ning horisontaalteljel ajahetkede riba. Veel üks võimalus on amplituudisageduslik esitus, kuid
see ei ole nii piltlik ja arusaadav. Amplituudisageduskikku esitamisega saavad hästi hakkama
peamiselt kallid professionaalsed programmid.
Joonis 7 Queen CD kvaliteet. Joonis 8 Queen OGG 350.
32
Joonis 9 Queen MP3 320. Joonis 10 Prodigy CD kvaliteet.
Joonis 11 Prodigy OGG 350. Joonis 12 Prodigy MP3 320.
Joonis 13 Vivaldi CD kvaliteet. Joonis 14 Vivaldi OGG 350.
Joonis 15 Vivaldi MP3 320.
Tulemused näevad väga head välja, kuid MP3-es kodeeritud failide diagrammidel on näha
kõrgemate sageduste osalist kadumist. Tasub meeles pidada, et kodeerimise protsessi käigus me
igal juhul kaotame kvaliteedis ja võidame suuruses. Kõikide failide madalamad ja keskmised
sagedused on väga sarnased originaalile, mis näitab kodeerimise algoritmide kvaliteeti.
Erinevused aga tulevad juba mainitud kõrgete sageduste puhul. Kõige kõrgemate sageduste
osaline kadumine ei tähenda veel helikvaliteedi märkimisväärset langust. Tavakasutaja jaoks ei
osutu see kuigi suureks probleemiks, kuna enamik kodused helisüsteeme ei anna võimalust vahet
märgata.
33
Lisaks sonogrammi hindamisele tuli testimises kasutatud faile ka kuulata. Kuulamiseks
kasutatud arvutis: helikaardiks oli "Creative Sound Blaster Audigy" ja kõlaritekomplektiks on
"Creative I-Trigue 3300", millel on kaks satelliitkõlarit ja madalsagedusväljundi (subwoofer).
Kuulamise käigus ei olnud võimalik originaali ja kodeeritud faile teineteisest eristada. Kõik kolm
kasutatud salvestust on oma helikvaliteedi poolt samasugused, see tähendab et nii klassikalise,
kui ka populaarse muusika puhul töötavad kodeerijad võrdselt hästi.
Testidest tuli välja, et mõlemate formaatide piirvõimaluste kasutamisel saadud failide kvaliteet
on võrdselt hea. Formaadi valik sellisel juhul sõltub peamiselt kasutaja enda eelistustest.
Kõrgemate sageduste osaline kadu ei oma erilist tähtsust, kuna madalamad ja keskmised on
äärmiselt heal tasemel. Sellise kvaliteediga failid on küllaltki suured, kuid originaaliga võrreldes
siiski 4-5 korda väiksemad.
Bitikiirus 256 kbps
Eelmises osas vaadeldud parima kvaliteediga kodeerimine annab küll väga häid tulemusi, kuid
see ei oli nii laialt kasutatav. Põhjuseks on saadud failide suurused ligi 11 MB (Queen), aga
väiksemat faili. Paljud kasutajad eelistavad natuke halvemat kvaliteedi - 256 kbps, mis on päris
mõistlik kompromiss. Kompromiss on veelgi mõistlikum VBR tehnoloogia kasutamise puhul.
Selle osa saaks muudetuna eelmise (320/350) jutu juurde sobitada.
Joonis 16 Queen OGG 256. Joonis 17 Queen MP3 256.
Joonis 18 Prodigy OGG 256. Joonis 19 Prodigy MP3 256.
34
Joonis 20 Vivaldi OGG 256. Joonis 21 Vivaldi MP3 256.
Vaatame siis testimise käigus saadud tulemusi. OGG ja MP3 formaatide graafikutel on näha
veidi suuremaid erinevusi. OGG-l on kõrgemate sageduste osalise väljakukkumisega märksa
vähem probleeme. MP3-e puhul algab kadu juba 17 kHz tasemel, OGG formaadil on peaaegu 1
kHz edumaad. Mõlema formaadi graafikud on halvemaks muutunud. Nagu varemgi öeldud -
madalamates ja keskmistes sagedustes on mõlematel väga hea kvaliteet. Siit saab järeldada, et
režiim tagab ikka enam kui lihtsalt hea kvaliteedi.
Failide kuulamine annab ikka väga häid tulemusi. Keskmise kuulaja ja keskmise süsteemi puhul,
ei saa eristada mingit märgatavat vahet. Kõik fragmendid on kvaliteetsed ja neid ei saa eristada
mitte ainult teineteisest, vaid nad on väga sarnased ka eelmises testis vaadeldutega. Erinevused
on kindlasti märgatavad kvaliteetsema helisüsteemi puhul.
Selleski režiimis sõltub formaadi valik peamiselt konkreetse kasutaja eelistest. Kui on tahtmist
kõrgesagedusrikkaid meloodiaid konverteerida, siis kasutagem OGG-d. Kodeerimine annab väga
häid tulemusi, osaliselt eelmisega samal tasemel, fail on aga väiksem.
Bitikiirus 192 kbps
See bitikiirus on laialt kasutusel, väljundil on talutav helikvaliteet. Failide suurused lähevad veel
väiksemateks, kuid samas ei saa märgata liiga suurt kvaliteedi kadumist. Failide näitajad on
sellised: 192 kilobitti ja suuruseks on umbes 1.5 MB minuti kohta (Queen-i failid võtavad umbes
6.5 MB ruumi). Need ei ole kõige parematest (320/250 kilobitti omavatest) failidest küll kaks
korda väiksemad, kuid suuruste vahe on märgatav.
Joonis 22 Queen OGG 192. Joonis 23 Queen MP3 192.
35
Joonis 24 Prodigy OGG 192. Joonis 25 Prodigy MP3 192.
Joonis 26 Vivaldi OGG 192. Joonis 27 Vivaldi MP3 192.
Nüüd vaatame aga saadud tulemusi. Mõlematel formaatidel on kõrgemate sagedustega märksa
rohkem probleeme kui suuremate bitikiiruste puhul. Siin on juba hästi näha, et kadu algab 16
kHz pealt. MP3-e puhul on probleem juba tõsisemaks muutunud (eriti Vivaldi failis, kus kõrgeid
sagedusi palju järele polnud jäänud). OGG-l ei ole kõrgemad sagedused nii selgelt muutunud,
kuid saame näha juba märksa tõsisemaid kadusid. Kuid siingi on näha keskmiste ja madalamate
sageduste korraliku kvaliteeti.
Sünteetilised testid näitavad, et failide kvaliteet ei ole enam nii hea kui eelmistel. Kuulamisel aga
tuleb jälle ette juba tuttav situatsioon – kõigi saadud failide helikvaliteet tundub hea olevat ja
need on teineteisega sarnased. Kui kuulata palju kordi järjest, siis tundub OGG natuke parem
olevat. Kuid seda saab märgata helitugevust märkimisväärselt suurendades. Kuigi need failid
võtavad parema kvaliteediga omadest (320/250 kilobitti omavatest) märkimisväärselt vähem
ruumi, ei tundu nad teatud olukorras kvaliteedikao tõttu nii hea lahenduseks.
Selles testis saab juba rääkida liidrist. OGG ei oma veel rõhuvat ülekaalu, aga MP3 ei tundu siin
enam väärilise vastasena. Mõlemad omavad küll head kvaliteedi, kuid paremate või
professionaalsete süsteemide kasutamisel võivad nad juba ennast natuke nõrkadena näidata.
Bitikiirus 160 kbps
160 kilobitilisest kiirusest ei piisa enam tõeliselt hea või normaalse helikvaliteedi
edasiandmiseks, kuid saadud failid võtavad vähe ruumi. Peamiselt kasutatakse seda bitikiirust
internetis muusika levitamisel. Siin ei saa rääkida kõrgete sageduste heast edasiandmisest (eriti
36
MP3-e puhul), kuna vähendades bitikiirust me võidame ainult ruumis ja mitte mingil juhul
kvaliteedis. Saadud failide suurusteks on umbes 1.1 MB minuti kohta (5.3 MB (Queen)). See on
juba hea tulemus, mis on jõukohane enamuse interneti ühenduste jaoks.
Joonis 28 Queen OGG 160. Joonis 29 Queen MP3 160.
Joonis 30 Prodigy OGG 160. Joonis 31 Prodigy MP3 160.
Joonis 32 Vivaldi OGG 160. Joonis 33 Vivaldi OGG 160.
Testide tulemused vastavad juba enne märgatud suunale. Nii OGG kui MP3 kaotavad oma
kõrgemaid sagedusi, kuid OGG puhul jällegi ei ole need kaod nii märkimisväärsed. Kadu on
juba väga selge, kuid kõrged sagedused või mõned nende osad on OGG-l veel olemas. MP3 aga
ei saa kõrgete sagedustega enam üldse hakkama. Tema piiriks on 16 kHz, on küll olemas
väikesed kõrgemal tasemel asuvad osakesed, esimeste kompositsioonide puhul, kuid see ei oma
enam erilist tähtsust. Selle bitikiiruse juures tekivad mõlemate formaatide kodeerijatel
probleemid ning neid on juba hästi näha.
Saadud faile kuulates jõudsin järeldusele, et need ei ole üldse nii halvad kui näitavad graafikud.
Neid ei saa juba tavalise kvaliteedi omadega täielikult võrrelda, kuid siiski kõlavad nad päris
normaalselt. Eriti tore on selliseid kaasaskandvate mängijate väikeste kõrvaklappidega kuulata.
37
Need väikesed kõrvaklapid on suhteliselt kehvade parameetritega ning failide kvaliteet on nende
jaoks täiesti normaalne.
Selles testis saab selgeks võitjaks kuulutada OGG koodeki. OGG jättis alles suurema osa
kõrgematest sagedustest, MP3 aga on juba peaaegu kõik neist kaotanud. Failide suurused on
väikesed, aga kvaliteedi-ruumi suhe ei ole enam nii heal tasemel kui see oli 192 kbps juures.
Bitikiirus 128 kbps
Siin on meil tegemist omal ajal (tundub et ka nüüd) kõige populaarsema bitikiirusega. Siin ei saa
enam heast kvaliteedist rääkida. Failid on juba piisavalt väikesed (4.2 MB Queeni fail) ja neid
kasutades saab märkimisväärselt ruumi kokku hoida. Selliseid faile kasutatakse näiteks
kaasaskantavates mängijates.
Joonis 34 Queen OGG 128. Joonis 35 Queen MP3 128.
Joonis 36 Prodigy OGG 128. Joonis 37 Prodigy MP3 128.
Joonis 38 Vivaldi OGG 128. Joonis 39 Vivaldi MP3 128.
Mida siis võivad testid näidata? See on pigem retooriline küsimus, kuna tulemused ei saa
eelmistest suurel määral erineda. Mõlemad OGG ja MP3 kaotasid veel natuke oma kõrgetest
38
sagedustest. OGG nagu ikka säästis rohkem kõrgeid sagedusi. MP3-e failide kõrged sagedused
on juba täielikult kadunud.
Kuulates ei saa neid faile küll 160 kbps failidest eristada, kuid nende ja suurema bitikiirusega
failide vahet tajub juba suhteliselt hästi. Isegi keskmise kvaliteediga süsteemi kasutades. Samas
pole kvaliteet nii halb, et kuulata üldse ei saaks.
Saab ka järelduse teha - selle testi võitjaks on OGG. Ja võit on täielik, nii sonogrammi hindamise
kui ka kuulamise põhjal.
3.3 Järeldused
Testide põhjal teeme mõned järeldused.
Järeldus 1. Tippkvaliteediga kodeerimisel ei esine mingit märgatavat kvaliteedikadu kummagi
kodeerijaga (nimetud near-CD on õigustatud). Kumba valida, kas MP3 või OGG, sõltub kasutaja
maitsest ning kättesaadavatest vahenditest.
Järeldus 2. Madalamate bitikiiruste korral on OGG kvaliteet tunduvalt parem. OGG pakub
vähemalt 1 kHz võrra kõrgemaid helisid kui MP3.
Järeldus 3. Mõlema formaadi puhul tuleks madalaimat testitud bitikiirust (128 kbps) kasutada
vaid juhul, kui helifaile kavatsetakse kuulata madalakvaliteediliste seadmetega, näiteks
portatiivsed mängijad odavate kõrvaklappidega.
Järeldus 4. Madalamad bitikiirused kui 128 kbps pakuvad originaaliga võrreldes liiga kehva
kvaliteeti, saavutatav sääst andmemahus ei õigusta ennast. Testis küll madalamaid bitikiiruseid ei
proovitud, kuid 128 kbps näitas juba selgelt, mida on oodata.
39
Kokkuvõte
Käesolevas töös vaadeldi kahte helikodeerimise standardit, MP3 ja OGG Vorbis. Kuna OGG on
vähem tuntud, siis keskenduti töös rohkem selle formaadi kirjeldusele. Mõlema puhul on
tegemist keerulise ja omapärase struktuuriga, mõlemal on oma plussid ja miinused.
Töö eesmärgiks oli selgitada, mida kujutab endast OGG Vorbis ja võrrelda teda kõigile hästi
tuntud MP3 standardiga. OGG autorid väidavad, et nende formaat võib MP3-e asendada, läbi
viidud testidega püüti selgitada, kas sellel väitel ka alust on.
Testide tulemused näitasid, et mõlemad formaadid on head , kuid MP3 kui nii öelda etaloni
positsioon on ohus. Testides oli OGG täielikuks võitjaks. Kõrgema kvaliteedi puhul ei olnud neil
märkimisväärset erinevust, vaid sonogrammi pildil nägid OGG graafikud natuke paremad välja.
Madalamate bitikiiruste juures oli pilt täiesti selge – MP3 ei suuda enam OGG-ga konkureerida.
MP3-e eeliseks OGG ees on praegusel hetkel veel kindlasti tema laiem levik ja toetus erinevate
tarkvaralise ning riistvaraliste mängijate poolt (isegi mitmed autostereod suudavad MP3 faile
mängida).
OGG suurem levik seisab alles ees, juba toetab teda hulk mängijaid, ka mõned riistvaralised
seadmed.
Antud töö autor, toetudes läbiviidud testide tulemustele, soovitab isiklikult eelistada just OGG-d.
40
41
Kasutatud kirjandus
1. http://www.iis.fraunhofer.de/amm/techinf/layer3/index.html
2. http://www.bbc.co.uk/h2g2/guide/A406973
3. http://www.teamcombooks.com/mp3handbook/MP3_Handbook.htm
4. http://www.mp3-converter.com/mp3codec/mp3_anatomy.htm
5. http://www.mp3-tech.org/sbr.html
6. http://www.id3.org/id3v1.html
7. http://www.id3.org/easy.html
8. http://www.mp3-tech.org/patents.html
9. http://www.litexmedia.com/article/audio_formats.html
10. http://www.xiph.org/ogg/vorbis/doc/vorbis-spec-intro.html
11. http://www.ifpi.org/site-content/online/isrc_intro.html
12. http://www.xiph.org/ogg/vorbis/doc/oggstream.html
13. http://www.xiph.org/ogg/vorbis/doc/framing.html