Hlavní navigace

MP3 zní skvěle!

1. 1. 1999

Sdílet

Kvalitní zvuk býval ve světě PC spíše popelkou, než se na Internetu objevilymalé zvukové soubory a v nich skvěle znějící nahrávky. Konečně technologie, kterou vyvinuli profesionálov...
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!