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ě zvuková 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 Američ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 kbps (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.
---vložit tabulku 1---
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 které 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. Toto 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.
datový proud [Kb/s] <TAB>režim <TAB>šířka pásma [kHz]
8 <TAB>mono <TAB>2,5
16 <TAB>mono <TAB>4,5
32 <TAB>mono <TAB>7,5
56...64 <TAB>stereo <TAB>11
96 <TAB>stereo <TAB>15
112...128 <TAB>stereo <TAB>>15
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
pouze 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!