Úvod do metód spracovania zvuku v súčasnom multimediálnom prostredí

<< Späť - Časť 4.8: Coherent Acoustics (CAC, DTS) <<
^^ Hore - Kapitola 4: Prehľad stratových zvukových formátovu ^^
>> Ďalej - Časť 4.10: Musepack (MPC) >>

Časť 4.9: Ogg Vorbis

Ogg Vorbis je bezpochyby najúspešnejším opensource formátom určeným na stratovú kompresiu zvuku. Pochádza z dielní neziskovej inštitúcie menom Xiph.org FoundationPozn. 1, rovnako ako kontajner Ogg, s ktorým a pre ktorý bol Vorbis (ako sa tento kompresný algoritmus správne označujePozn. 2) pôvodne vyvíjaný.

Ogg Vorbis bol od počiatku konštruovaný ako mimoriadne flexibilný formát. Je vhodný pre veľmi nízke i extrémne vysoké dátové toky, podporované rozlíšenie vzorky je 16 alebo 24 bitovPozn. 3, vzorkovacia frekvencia od 8 do 192 kHz. Rozloženie kanálov možno tiež ľubovoľne prispôsobovať – používateľovi poskytuje až 255 diskrétnych kanálovPozn. 4. Jednotlivé kanály možno zoskupovať do „podmáp“ (angl. submaps), každej možno nakonfigurovať vhodnú spektrálnu charakteristiku, spôsob kódovania atď. Tvorcovia vniesli flexibilitu aj do špecifikácie toku dát, keď zahrnuli možnosť neskoršieho rozšírenia súčasnej generácie kodeku (Vorbis I) o waveletovú dekompozíciu signálu či ambisonický zvuk (plánované vo Vorbis II).

Ogg Vorbis používa rámce veľkosti mocnín dvojky, siahajúc od 64 vzoriek po 8 192 vzoriek. MDCT sa (kvôli svojej konštrukcii) aplikuje na okná dvojnásobnej veľkosti. Frekvenčná charakteristika sa vo výstupnom toku dát prenáša najpv ako hrubý odhad (v dokumentácii označovaný ako floor), ktorý možno kódovať systémom LSP (teda je výsledkom LPC, frekvencie sú zapísané v Barkovej mierke), alebo zadaním po častiach lineárnej krivky vyjadrujúcej intenzitu (lineárne rastúcich) frekvenčných zložiek zvuku. Všetky súčasné kodéry používajú druhú možnosť. Floor je v skutočnosti akási spektrálna obálka, určujúca rozsah (a teda kvantovací krok) jednotlivých frekvenčných zložiek. K dátam sa následne pridáva presnejší odhad (v dokumentácii označovaný ako residue, teda reziduál; budeme radšej používať anglický variant), ktorý sa kóduje viacprechodovým vektorovým kvantovaním (s rôznou, najlepšie zmenšujúcou sa mierkou). Skutočná amplitúda pre danú frekvenciu je potom súčinom príslušných hodnôt floor a residue.

Združenie kanálov prebieha na úrovni residue. Vorbis používa dve metódy: buď sa hodnoty pre jednotlivé frekvenčné zložky a združené kanály prekladajú (angl. interleave), čo spôsobuje zoskupenie podobných hodnôt a ľahšie vyjadrenie pomocou VQ, alebo združené kanály použijú jedno residue ako súčtovú intenzitu a druhé na vyjadrenie „uhla“, teda rozdielu fáz medzi kanálmi. (Poznámka: rozdiel intenzít je vyjadrený dostatočne dobre hodnotou floor.)

Vorbis (teda samotný zvukový formát) sám osebe produkuje len „surové dáta“ – sled dátových blokov (tzv. paketov), ktoré majú rozličné dĺžky (špecifikácia nijak neobmedzuje ich dĺžku) a nenesú žiadnu ochranu pred chybami alebo synchronizačné značky. Toto bremeno je na použitom kontajneri. Dekodér musí byť schopný tieto surové dáta dekódovať a správne synchronizovať. Navyše sa naň kladie ťažká požiadavka: nesmie mu prekážať ani „vypchatie“Pozn. 5 ani orezaniePozn. 6 paketov. Návrh dekodéra však nie je omnoho výpočtovo náročnejší ako v prípade dekodéra MP3, aj keď použitá pamäť je väčšia. Dôvodom je prenášanie kódových slov (či už ide o entropické kódy alebo tabuľku použitú pri vektorovom kvantovaní) a množstva ďalších informácií určených na presné nakonfigurovanie dekodéra (čo môže byť niekoľko stoviek položiek) v hlavičkách toku dát. Vorbis totiž silno stavia na doprednej adaptívnostiPozn. 7 v každej fáze kódovania a návrhu formátu, zatiaľ čo napr. MP3 používa statický slovník a premenlivé sú len jednoduché preddefinované značky v hlavičke každého rámca. Informácia zapísaná v hlavičkách toku dát formátu Vorbis však pre svoj rozsah nemôže byť súčasťou hlavičky každého paketu, ale po iniciovaní dekodéra informáciami v hlavičkách toku dát môže tento dekódovať tok dát už od ľubovoľného paketu. Táto negatívna vlastnosť je daňou za ohromnú flexibilnosť formátu Vorbis. V prípade vysielania (keď je potrebné začať prehrávanie od „ľubovoľného“ miesta) sa hlavičky zväčša prenášajú periodicky s určitým intervalom.

Ogg Vorbis používa tri rôzne hlavičky toku dát. V identifikačnej hlavičke sa nachádzajú základné informácie o vlastnostiach prenášaného zvuku, ako počet kanálov, vzorkovacia frekvencia atď. V komentárovej hlavičke sa prenáša identifikačná značka Vorbis comment. Konfiguračná hlavička obsahuje ďalšie nastavenia a informácie pre dekodér, najmä kódové slovníky pre entropické a VQ kódy.

V dôsledku viacprechodovosti pri kódovaní residue možno odstránením menej podstatných vektorov efektívne znižovať výsledný dátový tok už existujúceho toku dát bez nutnosti opätovného kódovania (samozrejme, za cenu zníženia kvality). Táto črta formátu sa v dokumentácii označuje anglickým slovom (bitrate) peeling („olúpanie“, „ukrojenie“ dátového toku). Faktom však je, že v súčasnosti (2006-04-25) nejestvuje aplikácia, ktorá by túto črtu formátu efektívne využívala. Kvalita výsledku experimentálneho programu bpeel (http://www.vinjey.com/ogg_downloads.html) je totiž spochybňovaná.

Otvorenosť formátu Vorbis spôsobila vznik rôznych alternatívnych kodérov. Asi najznámejším sa stal tzv. AoTuV kodér (http://www.geocities.jp/aoyoume/aotuv), ktorý svojou kvalitou presvedčil aj „oficiálnych“ vývojárov a jeho aktuálne verzie sú postupne zahŕňané do nových verzií referenčného kodéra. Navyše sa na internete objavujú aj rôzne kodéry s optimalizovanou výpočtovou náročnosťou (napr. na stránke http://homepage3.nifty.com/blacksword/index.htm). Ak pridáme otvorenosť a bezplatnosť formátu, nie je prekvapujúce, že sa Ogg Vorbis stále častejšie objavuje aj v počítačových hrách (Doom 3, Unreal Tournament 2003 a 2004, Halo a i.) a internetových rádiách (medziiným aj vysielanie Slovenského rozhlasu).

Formát Ogg Vorbis patrí medzi najrozšírenejšie formátyPozn. 8 na stratovú kompresiu zvuku. Dôvodov je mnoho: je úplne bezplatný, ohromne efektívny, veľmi flexibilný, má širokú podporu (čoraz častejšie už i na prenosných prehrávačoch) a mnoho ďalších výhod. Je však navrhnutý na všeobecný zvukový vstup – v prípade napr. kompresie hovoreného slova sú výhodnejšie iné formáty (napr. Speex, tiež od Xiph.org). Univerzálny referenčný kodér má navyše tendenciu používať veľké rámce (za účelom lepšej dekompozície zvuku a zmenšenia dátového toku), čo spôsobuje vysokú latenciu (oneskorenie), vlastnosť nevhodnú pre kompresiu zvuku (hovoreného slova) v reálnom čase. Definitívna špecifikácia dátového toku Vorbis I bola schválená v máji r. 2000, verzia kodéra 1.0 sa objavila v júli 2002, najnovšia oficiálna verzia (z novembra 2005) nesie označenie 1.1.2. Domovskú stránku organizácie Xiph.org Foundation možno nájsť na http://xiph.org, podrobná dokumentácia Ogg Vorbis je dostupná na stránke http://xiph.org/vorbis/doc. Filtre na prehrávanie v prostredí Windows možno nájsť na http://www.illiminable.com/ogg.


Poznámka 1: Zakladateľom a hlavným vývojárom je Američan Chris Montgomery. Z dielní Xiph.org pochádzajú aj formáty Speex, FLAC a mnoho iných. Domovská stránka: http://xiph.org. Možno na nej nájsť aj projekt Icecast, server na vysielanie multimédií prostredníctvom počítačovej siete, natívne podporujúci Ogg Vorbis.

Poznámka 2: V tejto práci budeme často používať celé spojenie Ogg Vorbis, a to z praktických dôvodov – formát Vorbis je často nesprávne označovaný ako „Ogg“, keďže sa zvyčajne ukladá do kontajnera Ogg (s príponou .ogg), zatiaľ čo názov „Vorbis“ je neznámy aj mnohým jeho používateľom. Formát a kontajner sú od seba síce nezávislé (a formát Vorbis možno často nájsť napr. v kontajneri Matroska), v mysliach používateľov sa však spájajú. Aj samotní tvorcovia dbali na ich vzájomnú „súhru“, preto dostáva slovné spojenie Ogg Vorbis svoje opodstatnenie. Na okraj treba uviesť, že Ogg je nielen kontajner, ale najmä názov projektu vývoja opensource multimediálnych riešení od Xiph.org Foundation.

Poznámka 3: Algoritmy podľa špecifikácie Vorbis (vrátane referenčného kodéra) pracujú zväčša v rozlíšení 48 bitov a viac, teda bitová hĺbka vzorky nie je obmedzená samotným formátom, ale kodérom.

Poznámka 4: Referenčný kodér podporuje najviac 5.1.

Poznámka 5: Angl. padding, teda dodanie údajov. P. tiež odsek 3.3.3 Ortogonálne transformácie v praxi.

Poznámka 6: Pod orezaním sa myslí ukončenie paketu (alebo poškodenie, a teda vnesenie chýb do paketu) ešte pred prenesením všetkých očakávaných dátových polí (napr. informácií zo všetkých prechodov pri kódovaní residue). Dekodér musí byť schopný dekódovať rámec na základe už obdržaných dát.

Poznámka 7: Princíp doprednej adaptívnosti porov. s termínom dopredne adaptívna predikcia v odseku 3.4.2 Kódovanie lineárnou predikciou.

Poznámka 8: Medzi formátmi rozšírenými na (zväčša nelegálnych) peer-to-peer sieťach v r. 2005 (Zdroj: http://www.cachelogic.com/research/2005_slide18.php) je v používanosti tretí s podielom 12,3% (za MP3 s 64,89% a WMA s 22,81% podielom).


<< Späť - Časť 4.8: Coherent Acoustics (CAC, DTS) <<
^^ Hore - Kapitola 4: Prehľad stratových zvukových formátovu ^^
>> Ďalej - Časť 4.10: Musepack (MPC) >>

(c) 2006 Pavol Adam
kontakt
Powered by:
ATRIP software