Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Filmy a seriály, streamovací služby
Televize  |  Projektory
Audio a domácí kina
Multimediální centra  |  Ostatní
Svět hardware  |  Digimanie
Svět mobilně

Mezi tichem a šumem - komprese zvuku

10.9.2008, Radek Jahoda, článek
Zvuk byl v počátcích kinematografie i kvůli opojení z pohyblivých obrázků opomenut a až později nastalo nedílné spojení. Nejprve jako doprovod hudbou, pak i se synchronizací dialogů. My se přeneseme do doby, kdy nastala potřeba zvuk efektivně komprimovat.
Dnes nejvíce používaná a také nejkvalitnější je komprese s využitím psychoakustického modelování. Jde o využití poznatků, které jsme si uvedli na prvních dvou stránkách. To nejkvalitnější znamená, že se zdá lidskému uchu kvalitní, výsledky při porovnávání matematických hodnot signálů jsou nesmyslné, protože právě neuvažují vliv lidského sluchu. Jediný proces porovnávání je tedy tzv. slepý test, kdy se posluchačům pouští zvuk z komprimovaných formátů, aniž by věděli, co je to za formát a hodnotí subjektivně kvalitu.

Tyto formáty také většinou (nebo nikdy?) nedefinují způsob enkódování, ale pouze dekompresi. Definují jen to, jakým způsobem je signál zakódován a jakým způsobem se má dekódovat a přehrát, jaká je struktura dat atd. Proto by také kvalita přehrávačů měla být stejná, protože používají stejné algoritmy. Ani jiné algoritmy používat nemohou, protože by pak výsledek nebyl správný. Jediná možnost změny je v tom, že se mohou použít různé algoritmy pro jejich části, například pro iDCT, které může být počítání v plovoucí řádové čárce, což je přesnější, nebo v celých číslech, což je rychlejší, ale ne tak přesné. Troufám si ale tvrdit, že tyto rozdíly lidský sluch nepozná, když, jak již bylo řečeno, dokáže sluch reagovat na rozdíly hlasitosti cca 0,5 dB, což je určitě nad chybou výpočtu. Možná si ale vzpomenete na dávné verze Winampu, které dokázaly přehrávat MP3 formát i na procesoru 486, ale se značným zhoršením přesnosti - díky značnému zjednodušení a možností počítat jen v osmi bitech a poloviční samplovací frekvenci. To ale není klasický případ.

Díky tomu, že není definován způsob enkódování, provádí toto různé kompresory pro ty samé formáty různě a právě toto určuje jejich kvalitu. Jelikož problematika kódování pomocí psychoakustických modelů je složitá, často nejsou ani k dispozici přesné algoritmy a autoři mohou zvolit různý přístup. Například mohou odstranit některé části signálu, které se jim nezdají důležité, ale jiný kompresor je tam může ponechat a odstranit jiné.



Model
Klasické enkódování zvuku s využitím psychoakustického modelování využívá čtyř základních bloků, které vidíte na obrázku.

Vstupní signál je ve formátu PCM nejprve mapován. Zde dochází k filtrování a podvzorkování na mnohem nižší samplovací frekvenci, čímž se vytvoří obálka zvuku, která řídí další bloky.

Psychoakustický model analyzuje vstupní signál a řídí celý proces kódování signálu a jeho kvantizaci. Tento blok může být v podstatě stejný pro všechny kompresory, protože bere v úvahu jen parametry lidského sluchu. Samozřejmě různé implementace u různých kompresorů mohou mít vliv na výslednou kvalitu a hlavně komprimovatelnost.

Blok kvantizace a kódování je pro různé kompresory jiný a právě tento blok určuje jejich kvalitu.

Framing vytváří ze zakódovaných dat souvislý datový tok, který je rozdělen na frames alias pakety. Přidává také další informace, které mohou řídit dekódování - parametry zvuku, použité metody kódování apod.

Kódování
Jedním ze základních principů kódování je vícepásmové kódování - Sub-Band Coding (SBC). Často se tímto způsobem označuje celý proces, jak ho máme vyznačen na obrázku, to ale není věcně správně. SBC rozdělí celé spektrum signálu (tedy 20 Hz až 20 kHz) na více pásem, které se zpracovávají zvlášť. Dosáhne se toho pomocí diskrétní kosinové transformace (DCT), která převede signál z časové oblasti do frekvenční. Pracuje vždy ve zvoleném časovém okně (úseku), místo průběhu signálu ve vzorcích dostaneme seznam obsažených frekvencí a jejich amplitudu (hlasitost). Tyto frekvence rozdělíme do více pásem, které se zakódují zvlášť. Kouzlo je v tom, že podle informací z psychoakustického modelu můžeme některé frekvence vypustit, například ty s malou amplitudou , které není schopný lidský sluch rozpoznat kvůli jiným frekvencím s mnohem větší amplitudou. Mnoho frekvencí lze také považovat za šum a lze je také odstranit. Dojde tak k úspoře místa, protože nemusíme ukládat všechny frekvence.

Vše, co nám zbyde, pak můžeme dále zakódovat podobně jako u nekomprimovaných kodeků - pomocí Huffmanova nebo Riceova kódu.

Téměř všechny dnešní kodeky používají SBC nebo jeho modifikace, liší se počet pásem a způsob uložení. A samozřejmě psychoakustický model.

V poslední době se začíná používat další algoritmus, který vyvinula firma Coding Technologies. Jmenuje se Spectral Band Replication (SBR). Ten vylepšuje kompresi pomocí odstranění harmonické redundance ve frekvenční oblasti. Zjednodušeně řečeno po zakódování klasickým způsobem jakýmkoliv kodekem se vezme rozdíl vůči originálu a zakóduje se navíc další informace - která obsahuje hlavně vyšší harmonické frekvence již zakódovaného signálu, ne skutečné z originálu, takže jde jen o velmi málo dat. Tyto informace se pak použijí při dekódování. Funguje to hlavně u nízkých bitrate, kdy dojde k většímu ořezání vyšších frekvencí, tento algoritmus dokáže vyšší frekvence do určité míry vrátit. Nejlepší výsledky dosahuje především u hlasu, i když funguje u hudby.

Ještě poznámka ke kvalitě. Za léta používání se zažil termín "kvalita blízká CD" (NCDQ - near CD quality), kterou je označován komprimovaný zvuk určitého datového toku, který je stěží rozpoznatelný od nekomprimovaného CD formátu. Nutné je brát v úvahu, že tato definice je značně pofidérní a firmy si zvykly tuto hranici posouvat dle vlastního uvážení, jak se jim to hodí. Zdůrazněme, že to závisí značně i na stáří posluchače, jak jsme si již ukázali, takže kvalitu může každý posoudit jinak. I my se zmíníme u každého formátu o této hranici, co o něm tvrdí autoři a naopak posluchači.


Podívejme se tedy na nejpoužívanější kodeky a jejich parametry:

MPEG-1 Audio Layer 1 (MP1)
Začneme s nejznámějšími kodeky, kterými jsou MPEG-1 Audio Layer 1, 2 a 3, přijaté jako standard v roce 1992. První verze s označením Layer 1 přišla na svět kolem roku 1990 a používá SBC kódování s rozdělením na 32 pásem, psychoakustický model má ale jednoduchý a příliš informací neodstraňuje. Nevýhodou tak je nízká komprese.Tento formát se příliš nerozšířil, použit byl ale pro digitální kazetové pásky Digital Compact Cassette (DCC), které představily firmy Philips a Matsushita v roce 1992. Ty používaly fixní datový tok 384kbit/s. Přestože DCC přehrávače byly zpětně kompatibilní s klasickými analogovými kazetami, tak se nedočkaly výraznějšího rozšíření. Doba CD totiž přicházela.

MPEG-1 Audio Layer 2 (MP2)
Tento formát vychází z původního Layer 1 a byl vyvinut pro digitální vysílání DVB a DAB a dostal se i na video disky VideoCD. Cílem byl robustní formát odolný proti chybám. Používá rovněž 32 pásem, definuje různé datové toky a také agresivnější psychoakustické modelování.
K dispozici jsou vzorkovací frekvence 32, 44.1 nebo 48 kHz a datové toky 32-384 kbit/s.
Kvalita blízká CD (NCDQ) je označována jako 192 kbit/s, což je často používáno při vysílání, mnoho stanic ale dává přednost plnému datovému toku 384 kbit/s.

MPEG-2 Audio Layer 2 (MP2)
Jde o identický formát ke MPEG-1 Audio Layer 2, ale definuje další datové toky již od 8kbit/s a vzorkovací frekvence 16, 22.05 a 24 kHz.

MPEG-1 Audio Layer 3 (MP3)
Dnes asi nejznámější a nejrozšířenější formát, který vychází opět z MP2. Vyvinut byl Fraunhofferovým institutem a AT&T Bell Labs a jeho použití v zařízeních je zpoplatněno licenčními poplatky. Využívá mnoho patentů, z nichž některé byly zaevidovány již v sedmdesátých letech 20. století. Nejde tedy o volný formát, jak se mnoho lidí domnívá.
Oproti MP2 zavádí kódování pomocí modifikované diskrétní kosinové transformace (MDCT), která pracuje na delších časových oknech, které se navíc překrývají. Používá celkem 576 pásem, díky čemuž si může dovolit agresivnější psychoakustický model a dosahuje vyššího stupně komprese. Zavedeno bylo dále zakódování dat pomocí Huffmanova kódu.
Jednou z vlastností je ale i tzv. joint-stereo mód, který nejprve odstraní redundanci mezi stereo kanály - vytvoří mono kanál L+R a rozdílový kanál L-R a pomocí psychoakustického modelu odstraňuje neslyšitelné stereo efekty. Tím je dosaženo dalšího zvýšení komprese, odstraňuje se tím ale většinou prostorová informace z matrixových systémů (Dolby Surround, ProLogic).
MP3 může používat vzorkovací frekvence 32, 44,1 a 48 kHz, ale nestandardně i 22 kHz. Nejpoužívanější je ale 44,1 kHz, protože většinou za zdroj sloužil CD disk.
Datový tok může být 32-320 kbit/s, nejpoužívanější je 128 kbit/s, který je označován jako NCDQ, časté jsou dnes ale i vyšší datové toky 192 nebo 256 kbit/s. Možné je použití variabilního datového toku VBR.
U nižších datových toků dosahuje lepší kvality než MP2, ale u vyšších od 192 kbit/s jsou již rozdíly menší nebo se stírají zcela. Navíc MP2 je více odolné vůči chybám, a proto se stále raději používá u digitálního vysílání.



Advanced Audio Coding (AAC)
AAC bylo definováno spolu s MPEG-2 a MPEG-4 videem a jde o další vylepšení MP3 formátu. Rozšiřuje maximální vzorkovací frekvenci na 96 kHz a možnost použití až 48 kanálů a 15ti nízkofrekvenčních kanálů (subwoofer, LFE). NCDQ je na toku 96 kbit/s a u 5.1 kanálů je to 320 kbit/s. AAC bylo zvoleno jako hlavní formát pro prodej hudby přes iTunes pro přehrávače iPod, rovněž ho používají další přehrávače nebo herní konzole PlayStation 3.
AAC obsahuje i kompatibilní mód s MP3, ten se ale v podstatě nepoužívá. Také používá MDCT, ale délka může být až 2048 vzorků (pásem), což zavádí již větší zpoždění při zpracování (až 100 ms), je ale volitelná od 256 vzorků a většinou se používá 1024 vzorků. Kvůli přenosovým chybám pak zavádí také detekci a korekci chyb.
Podobně jako MPEG-4 video existují čtyři varianty, označované jako profily (Profiles):
  • Low Complexity (LC) - nejjednodušší a nejrozšířenější varianta
  • Main Profile (Main) - přidává zpětnou predikci signálu ve frekvenční oblasti podobně jako bezeztrátové kodeky, které to ale dělají v časové oblasti
  • Scalable Sample Rate (AAC-SSR) - rozdělí frekvenční pásmo do čtyř menších pásem, které se zakódují zvlášť, to umožňuje zvolit velikost MDCT pro každé pásmo zvlášť a také odstraňovat jednotlivá pásma pro snížení bitrate, nevýhodou je ale zkreslení, které se tímto zavede do signálu. Zavedeno firmou Sony po vzoru ATRAC formátu, ale v praxi se nepoužívá
  • Long Term Prediction (LTP) - přidává k LC dopřednou predikci signálu
  • Low Delay (LD) - snižuje zpoždění kvůli synchronizaci s videem, přibližně na 20 ms

AAC Plus (HE-AAC)
Další vylepšení již existujícího kódování, tentokrát AAC. Označuje se rovněž jako High Efficiency AAC (HE-AAC) a nejde o nic jiného než o aplikaci SBR.
Udává se, že NCDQ je díky tomu již na 64 kbit/s. Zatím ale tento formát není příliš rozšířen.
HE-AAC bylo nakonec přijato jako MPEG standard v roce 2004.



MP3 Pro
Tento formát dělá to samé co HE-AAC, tedy aplikuje SBR na formát MP3. To je přidáno jako další nezávislý tok dat do MPEG kontejneru, který normální MP3 přehrávač ignoruje, takže je zpětně kompatibilní. Udává se rovněž kvalita blízká CD NCDQ na 64 kbit/s, reálně je ale o něco výše. Normální MP3 přehrávač ale nedokáže využít SBR data, a tak zní přehrávání jako u normálního MP3 s nízkým bitrate (64 kbit/s) - tedy nic moc. Zpětná kompatibilita tedy není v praxi v podstatě použitelná.

ATRAC
Formát vyvinutý firmou Sony pro svůj přehrávač MiniDisc. Jde o zkratku Adaptive Transform Acoustic Coding a existuje několik verzí. Původní ATRAC je již z roku 1992 a používá datový tok 292 kbit/s, což je podle nich NCDQ. Rozděluje původní signál na tři pásma, která jsou zakódována zvlášť.

ATRAC3
Formát ATRAC se dále vyvíjel a novější ATRAC3 rozděluje signál na čtyři pásma, používá dále DCT o velikosti 1024 vzorků, NCDQ je prý 132kbit/s, tedy dosahuje podobnou kvalitu jako MP3.

ATRAC3plus
Další vylepšení, rozděluje signál na 16 pásem a používá MDCT o velikosti 4096 vzorků. Zavádí také více datových toků od 48 do 352 kbit/s.
Podle Sony dosahuje NCDQ již na 64 kbit/s.



Vorbis
Plně otevřený formát, který může být používán kýmkoliv jakkoliv, takže je čím dál více oblíbený. Objevila se již i podpora v přenosných a stolních přehrávačích. Používá MDCT kódování a různou velikost okna až 8192 vzorků. Podporováno je vícekanálové kódování s možnou provázaností kanálů (označované jako coupling) kvůli možné redukci dat. Formát je plně VBR a neexistuje CBR ani ABR kódování, nelze nastavit požadovaný bitrate, pouze kvalitu.
Zajímavou a jedinečnou vlastností Vorbisu je možnost překódování na nižší datový tok bez rekomprese, takže dosahuje vyšší kvality.
Jeho kvalita je často hodně diskutována, pravdou je, že formát je používán hlavně audiofily, kteří požadují vysokou kvalitu zvuku. Díky tomu je NCDQ většinou uváděno jako 112 kbit/s, v testech ale Vorbis překonává MP3 a je bok po boku s AAC, pouze HE-AAC je lepší. NCDQ tedy lze posadit na 96 kbit/s v porovnání s ostatními. Nenastavuje se ale u něj datový tok, ale kvalita v rozsahu 0-1, kde 0,3 odpovídá NCDQ při přibližném toku 112-128 kbit/s. Záleží na druhu zvuku. Od 0,5 již prakticky nikdo nerozezná rozdíl vůči originálu.



Windows Media Audio (WMA)
Kodek vyvinutý firmou Microsoft, který ale používá podobné metody jako MP3, Vorbis nebo AAC. Používá MDCT o různé velikosti až 2048 vzorků, Huffmanovo kódování a maximální vzorkovací frekvence je 48 kHz. Existuje několik verzí, které se ale liší v podstatě jen enkodérem, dekodér je stále stejný a kompatibilní. První verze WMA1 z roku 1999 uváděla lepší kvalitu než MP3 a NCDQ na 96 kbit/s, WMA2 pouze lehce změnila algoritmus a tok dat, kvalita zůstala v podstatě shodná. Pozdější verze WMA7 z roku 2000, WMA8 z roku 2001 a WMA9 z roku 2003 vylepšovaly způsob enkódování, formát ale zůstal stejný. Firma u WMA9 tvrdí, že dosáhne NCDQ při 64 kbit/s, což dokazovala svými poslechovými testy. Ve všech jiných testech ale WMA zůstalo za očekáváním a reálné NCDQ je 112 kbit/s s o něco lepší kvalitou než MP3. Firmě se ho podařilo prosadit i do některých přenosných přehrávačů, takže se stal docela populárním.

Windows Media Audio Professional (WMA Pro)
WMA Pro bylo uvedeno s příchodem deváté verze WMA a mění algoritmus kódování, není tedy kompatibilní s WMA. Rozšiřuje možnosti o vícekanálový zvuk až do 7.1 (i když teoreticky neomezeně), podporuje 24-bitové vzorky s frekvencí až 96 kHz.
WMA Pro zavedlo Dynamic Range Compression do kódování, takže lze snadno měnit dynamiku zvuku. Existují dvě verze WMA9 Pro a novější WMA10 Pro, které přidalo možnost frekvenční interpolace - kódování s nižším vzorkovacím kmitočtem a při přehrávání jeho obnovu na původní kmitočet.
NCDQ uvádí Microsoft na 64 kbit/s, což ho pasuje po bok HE-AAC, tato hodnota byla potvrzena i některými slepými poslechovými testy.
Podpora WMA Pro je ale zatím malá, přehrát lze snad jen v přehrávači Zune od Microsoftu.

Real Audio
Formát vytvořený pro streamování po internetu firmou Real Networks. Technické detaily firma nikdy nezveřejnila, aby byli uživatelé nuceni používat jejich přehrávač RealPlayer. Existuje mnoho verzí kodeků, většinou jde ale o jiné nebo přepracované kodeky. Například Real Audio 8 je téměř identické k ATRAC3 a předchozí jsou velmi podobné k MPEG formátům, takže se nakonec objevily i další dekodéry, které dokážou alespoň dřívější verze Real Audio přehrát. Poslední současná verze je 11.

Dolby Digital (AC3)
Formát vyvinutý firmou Dolby Laboratories s podporou stereo a 5.1 režimu. Používá svázání více kanálů podobné joint-stereu, MDCT a predikce využívá 256 vzorků.

TwinVQ/SoundVQ
Formát vytvořený firmou Nippon Telegraph and Telephone Corporation (NTT) pro kódování hlasu při velmi nízkém datovém toku až 8 kbit/s. Dosahuje ale dobré výsledky i při vysokém toku. Kodek je výjimečný tím, že jako jediný používá vektorovou kvantizaci, která ale zapříčiňuje poměrně značnou náročnost na enkódování i dekódování. Jeho NCDQ je 96 kbit/s, což je na úrovni Vorbis a AAC. Formát se snažila podporovat Yamaha pod názvem SoundVQ, ale nedočkal se výraznějšího rozšíření.

Musepack (MPC)
Kodek odvozený od MPEG Layer 2, ale dále vyvíjený samostatně se zaměřením na co nejvyšší kvalitu při vyšším bitrate 160-225 kbit/s, funguje ale výborně již od 128 kbit/s. V porovnání s MP3 dosahuje mírně lepší kvality při vyšších bitrate, naopak při nižších je na tom hůře.