Autor: Ivan Doležal
Kvalitní zvuk býval ve světě PC spíše popelkou, než se na Internetu objevily malé zvukové soubory a v nich skvěle znějící nahrávky. Konečně technologie, kterou vyvinuli profesionálové! Její principy jsou základem většiny moderních kompresních standardů typu RealAudio. Pojďte si o ní přečíst něco víc.
Kde se vzal, tu se vzal, objevil se...
Není pravda, že počítače umějí jenom Ame-ričané, Japonci a Rusové. Evropa dala počítačům teoretické základy, vyrobila domácí ZX Spectrum, fanouškovský operační systém Linux a právě kompresi MP3. Posledně zmíněná vznikla v rámci profesionálního projektu digitálního rozhlasu EUREKA EU147, známějšího spíše jako Digital Audio Broadcasting, již v roce 1987 (!) v rámci spolupráce Ústavu integrovaných obvodů akciové společnosti Fraunhofer s Erlangenskou univerzitou v Německu (i když při pročítání seznamu spolupracovníků zjistíte, že i Asiaté se zde dosti vydováděli).
Vzniklá komprese byla akceptována jako dostatečně kvalitní algoritmus pro kompresi zvuku organizací Motion Picture Experts Group (MPEG), která pracuje pod záštitou ISO a IEC. Tato organizace se již předtím zabývala jinými podobnými algoritmy pro své formáty MPEG-1 a MPEG-2 pro přenos komprimovaného ozvučeného obrazu (za tyto standardy obdržela v r. 1996 prestižní americkou televizní cenu Emmy). Již dříve na stejných principech vznikly formáty pro kompresi zvuku Audio Layer I a Audio Layer II a jejich zdokonalením se teprve objevil Audio Layer III ("audio layer" = "zvuková vrstva"). Odtud tedy MP3. Pod těmito označeními byly komprese převzaty i do norem ISO (např. ISO-MPEG Audio Layer-3). Jsou pochopitelně předmětem zájmu prestižních mezinárodních profesních společností jako Audio Engineering Society.
...soubor rozhodně menší než váš běžný WAV,...
Když budete zaznamenávat a ukládat zvuk běžným programem a technologií používanou na současných audio CD, vyprodukujete každou sekundu právě 88 200 šestnáctibitových čísel, která popisují dva zvukové kanály (tedy zpravidla stereo). Každé číslo říká, jaké napětí by se mělo objevit v dané 1/44100 sekundy na výstupu číslicově analogového převodníku ve vaší zvukové kartě. Prostou násobilkou zjistíte, že vyprodukujete konstantní datový proud (bitstream) 1 411 200 bitů/s (1,34 Mb/s), bez ohledu na to, přenášíte-li ticho nebo death metal. A to je poněkud luxus. MPEG ustavil formáty, které přinášejí výrazné zlepšení, a to se ještě přizpůsobují skutečné informační hustotě přenášeného signálu, takže následující hodnoty jsou pouze přibližné: pro Layer I (který se vynořil ze tmy před několika lety v tzv. Digital Compact Cassette firmy Philips, a spolu s ní opět zmizel z mého obzoru) se udává jako dostačující datový proud pro zachování kvality srovnatelné poslechem s CD cca 384 Kb/s, pro Layer II 192-256 Kb/s a pro Layer III dokonce jenom 112-128 Kb/s. Hovoříme tedy jenom asi o jedné dvanáctině původního objemu! A pokud chceme přenášet lidský hlas a jde nám pouze o zachování základní srozumitelnosti (a samozřejmě v monofonním provedení), vystačíme si s asi 8-16 kb/s (tj. až 1 : 96 oproti "monofonnímu CD", abychom srovnávali srovnatelné). Této kompresi se neoficiálně říká MPEG 2,5.
Datovému proudu se navíc při kódování/dekódování přizpůsobí podle definic MP3 i režim mono/stereo a výsledná šířka pásma
při přehrávání viz tabulka. Připomínám, že ideální lidské ucho vnímá kmitočtový rozsah 20-20 000 Hz, s věkem tato hranice rychle klesá, takže dnešní padesátníci slyší už často jen do cca 12 kHz. A ještě dva příklady pro srovnání: časové znamení Českého rozhlasu představuje 6 pípnutí o frekvenci 1 kHz. Současné VKV rozhlasové vysílání ve stereu je z důvodu kódování přenosu stereofonní směrové informace záměrně kmitočtově omezeno tak, aby nepřenášelo zvuk do více nežli 15 kHz.
Dodávám, že tyto audio layery byly přeneseny a dovybaveny ve formátu MPEG-2, který "umí" až 5 audiokanálů pro vytvoření lepšího prostorového dojmu + 1 společný "nízkokmitočtový" LFE (low frequency enhancement člověk neumí rozeznat, odkud k němu přicházejí velmi hluboké kmitočty, proto příliš nezáleží na tom, odkud je pouštíte, ale jestli na to máte vhodný, zpravidla větší reproduktor) místo pouhého dvoukanálového sterea, a na druhou stranu připouští i velmi nízkou kvalitu zvuku za cenu nízkého datového proudu.
...kvalitnější než předchozí kompresní metody,...
Zatímco se pracovalo na kompresních technologiích, ze kterých vzešly tyto layery, existovaly i různé jiné směry vývoje. Ve své době posloužily, ale milovníci dobrého zvuku by od nich měli dát raději ruce dál. Komprese spočívala v tom, že místo aby se přenášela celá šestnáctibitová slova, vysílala se pouze hrubá informace typu "následující hodnota vzorku je o n větší/menší nežli předchozí". Někdy tyto komprese ani neudávaly, o kolik se nová hodnota liší proti staré a předpokládalo se, že vždy o 1, případně o různé Cimrmanovy konstanty. Fungování těchto kompresí ve světě PC je nevalné. Zvuk zní zpravidla zkresleně, všelijak prská a šumí a kupodivu, pokud by měly tyto komprese hrát opravdu pěkně, nepřinášejí úsporu větší než 1 : 2. Jejich pozůstatky najdete možná stále ještě ve svých Windows, když v Ovládacím panelu kliknete na položku Multimédia, na kartu Upřesnit a otevřete složku Kodeky pro kompresi zvuku. Pak vzdejte tichý hold dílkům jako Kodek ADPCM (Kodér/dekodér adaptivní delta pulzně kódované Modulace to je obecný terminus technicus pro jeden z principů, o kterých zde píši) firmy Microsoft, a pak potichu doufejte, že už jej nebudete nikdy potřebovat.
...a na zcela jiném principu.
Lidské ucho je, podobně jako oko, poměrně nedokonalý orgán. Pozorování na pokusných králících, pardon, posluchačích, ukázala, že když současně znějí dva tóny jeden silnější a jeden slabší, a jsou si kmitočtově velmi blízko, ucho rozezná pouze jeden z nich (frequence masking). Uchu dokonce nějakou chvíli trvá, než je opět schopno začít vnímat onen slabší zvuk, i když silnější už dozněl (temporal masking). U různých dvojic kmitočtů ucho reaguje jinak i provedly se rozsáhlé pokusy a vytvořily se tabulky, které popisují "průměrné ucho". Podle nich pak vznikly různé psychoakustické modely (Musicam, AT&T), které popisují, co všechno lze zahodit, aby se hodně ušetřilo a jen málo to vadilo.
Přestaneme tedy uvažovat o zvuku tak, že bychom jej popisovali jako nějaké vzorky v čase. Rozsekáme zvuk na krátké úseky v délce řádově desítek milisekund ("granule") a v nich pak pomocí matematických metod (zpravidla diskrétních transformací) rozeznáme v předepsaných 32 kmitočtových pásmech, jak silná je pro tu chvíli skupina zvuků té které výšky. Tím dostaneme informaci ve frekvenční doméně. Takto vytvořené údaje vyhodnotíme a odstraníme z nich ta data, která posluchačovo ucho nebude bez náhrady potřebovat. Výsledek výpočtů, jenž by měl být "řidší", budeme chápat jako bitové pole, na něž nasadíme Huffmanovo kódování (algoritmus pro bezeztrátovou kompresi dat; něco podobného, jako když komprimujete pomocí ARJ), výsledek zabezpečíme protichybovým kódem CRC a prokládáme synchronizačními slovy, která umožňují dekodérům zorientovat se i v náhodně roztrhaných kouscích souborů viz rozhlasová minulost souborů: takto lze začít přijímat bitový proud v libovolném okamžiku vysílání, ale také synchronizovat zvuk s obrazem.
Mezi synchronizační slova a data vkládáme "hlavičku", která obsahuje informace podobné těm, jež jsou v datových stopách klasického audio CD jako "Toto je copyrighted material.", "Toto je kopie souboru.", "mono / stereo / joint-stereo / dual zvuk". Najdeme zde pochopitelně bity udávající správnou rychlost reprodukce podle standardizované tabulky, i informaci, zda je na zvuk aplikováno "preemphasis" výrazné zdůraznění vysokých kmitočtů v nahrávce. To-to bývá aplikováno i u běžných CD proto, aby se mírně zdokonalil odstup signál/šum v reprodukčním zařízení po D/A převodu a zpracování v analogové části by mělo být jednoduchým prvkem v přehrávači toto zdůraznění opět potlačeno (deemphasis). (Mimochodem, je docela dobře možné, že pokud jste si zvuk z takového CD překopírovali pomocí vhodné CD--ROM jednotky digitální cestou do souboru WAV prostřednictvím vhodného softwaru, patrně teď máte od zlomové frekvence 3,2 kHz zdůrazněné výšky v nahrávce.) Výsledek práce pak odbavujeme jako rámce (frames) datového proudu.
Podrobné vysvětlování fungování algoritmů komprese či rozdílů mezi jednotlivými layery by bylo poměrně náročné a patrně přísluší spíše jiným časopisům a čtenářům, kteří se vášnivě kochají brilantními matematickými znalostmi. Ve výsledku lze ale říci, že Layer I při zpracování slotů nedbá důsledně na okolí granulí, a nedokáže tak při redukci využít temporal masking. Layer III oproti předchozím layerům používá navíc modifikovanou diskrétní kosinovou transformaci (abych přiložil alespoň něco vědy) pro vylepšení frekvenčního rozlišení. Dosahuje 18x lepšího frekvenčního rozlišení oproti Layeru II a potlačí tak kvantizační zkreslení. Entropickým kódováním sníží redundanci dat. Dokáže také lépe redukovat objem dat u "joint-stereofonního" signálu (stereo s velmi podobným signálem v obou kanálech) zohledňováním obsahu obou kanálů při zpracování. A s pomocí "bitového rezervoáru" lépe ošetří artefakty při kritických změnách zvuku. Znalci videokompresí JPEG vědí, o čem píši.
Nevýhodou kompresí je zpoždění, které vytvářejí kodeky v praxi je to u kodeků Layeru III zhruba 150 ms a více, což v některých případech (přímé přenosy) může přinášet uživatelům problémy, které musejí být kompenzovány zpožďovacími linkami.
8 0716/JL
MPEG je ambiciózní, a určitě bude zajímavé alespoň proběhnout jeho standardy:
- MPEG-1 řeší problém synchronizace datových proudů pro obraz a zvuk. Standardizuje způsob kódování videosekvencí vhodný pro evropskou i americkou televizi s datovým proudem kolem 1,5 Mb/s pomocí diskrétní kosinové transformace s kauzální a nekauzální predikcí pohybu v obraze. Dále standardizuje
způsob audiokódování (viz předchozí text). Popisuje, jak ověřit správnost implementace těchto postupů, a jako neveřejnou část standardu obsahuje plnou softwarovou implementaci kodeku.
- MPEG-2 vychází ze standardu MPEG-1, ale činí tento standard všeobecněji použitelným. Přichází například s přenosem prostorového obrazu Multiview, či s vícekanálovým zvukem. A popisuje protokol pro zpracování datových proudů technologií server/klient v heterogenních sítích.
- MPEG-3 neexistuje! Zdůrazňuji to ještě jednou, abych vykořenil zaběhaný omyl ve vysvětlování zkratky "MP3".
- MPEG-4, který by měl být přijat v prosinci r. 1998, bude popisovat tzv. media objects multimediální formáty vhodné pro objekty vzniklé snímáním nebo umělým vytvářením. Bude též popisovat optimální technologické postupy pro skládání těchto objektů. Bude se zabývat multiplexem a synchronizací dat, reprezentujících tyto objekty tak, aby mohly být přenášeny po rozsáhlých sítích, a bude popisovat standardní technologické postupy pro řešení interakce mezi objektem a uživatelem (má ambice zavést k tomu nový protokol DMIF, který jakoby konkuroval a zároveň rozšiřoval HTTP). K přenosu zvuku po sítích se staví čelem zaváděním nových algoritmů CELP (6-24 Kb/s) speciálně pro mluvené slovo a AAC a TwinVQ pro obecný signál se vzorkovacími frekvencemi od 8 kHz a kvalitou srovnatelnou se středovlnným rozhlasem.
Standard, který je poměrně objemný, má ještě mnoho dalších smělých ambicí (v audiooblasti ještě např. jazyk pro syntézu zvuku SAOL nebo "Text-To-Speech") a za jeden z důležitých cílů si rovněž klade výrazné zkomplikování nelegálního šíření materiálů chráněných autorskými právy po sítích.
- MPEG-7 "Multimedia Content Description Interface" by mělo být v budoucnu standardizované rozhraní postavené nad MPEG-1,
-2 a -4, které by pomocí zvláštního jazyka (Description Definition Language) umožňovalo hledacím strojům identifikovat multimediální objekty tak, aby je bylo možno organizovat, třídit a prohledávat.
Download!
Myslím, že vědy už asi bylo dost, a proto vás odkážu na trochu praxe. Domnívám se, že k přehrávání souborů MP3 je dnes asi nejoblíbenější velmi elegantní sharewarový program WinAmp a jeho freewarové imitace, pokud máte pomalejší počítač (486), osvědčí se vám možná lépe ovládáním poněkud těžkopádný program WinPlay3. Tento algoritmus je dokonce poskytován pro ukládání i samotným Microsoftem ale v omezené míře, kterou poskytuje program Záznam zvuku, s nekompatibilní koncovkou WAV a s některými netypickými formáty, s nimiž pak má WinAmp potíže. K vytváření MP3 z připravených souborů WAV tedy poslouží lépe MP3 Compressor a ke stahování zvuku digitální cestou z CD (tzv. grabbing) je s oblibou využíván program CD Copy. V této souvislosti pochopitelně upozorňuji na platnou právní úpravu, která uvádí, že z "copyrighted" materiálu si smíte pořídit pouze jednu kopii pro vlastní potřebu (takže chcete-li mít například v práci sbírku vaší oblíbené hudby a nechcete-li si s sebou neustále převážet svá CD, která máte doma, vyřešte to MP3 na vašem osobním počítači). Na závěr tedy snad jen dvě výmluvná URL, na nichž najdete snadno vše potřebné: www.mp3.com a www.mp3.cz. Dobrý poslech! |