Metódy kompresie
Kompresia audio signálov

Na kompresiu všeobecných audio signálov máme na výber veľké množstvo kódovacích štandardov a kompresných prístupov. Mnohé z nich sa zameriavajú na špecifické druhy zvuku (napr. reč) alebo vlastnosti (výpočtová náročnosť, oneskorenie, atď.).

Vzorkovacia frekvencia popisuje, koľko vzoriek bolo zo signálu získaných každú sekundu. Všeobecne platí, že čím vyššiu vzorkovaciu frekvenciu použijeme, tým presnejšiu, kvalitnejšiu a vernejšiu nahrávku získame. Medzi najpoužívanejšie vzorkovacie frekvencie patria: 8 kHz, 16 kHz, 22,5 kHz, 32 kHz, 44,1 kHz alebo 48 kHz pre každý audio kanál.

Sluchové maskovanie

Sluchové maskovanie je jav, ktorý sa prejavuje v dôsledku nedokonalosti ľudského sluchového aparátu. Uši nie sú schopné počuť zvuky všetkých intenzít, čo je vyjadrené tzv. absolútnym prahom počutia. Okrem toho jeden hlasný zvuk často prekryje blízko sa nachádzajúci tichší zvuk. To sa môže stať v časovej a frekvenčnej oblasti, preto maskovanie delíme na:

Hlasný zvuk sa označuje aj ako maskér. Ak sa dva zvuky vyskytnú v tom istom čase, môže nastať simultánne maskovanie. Maskér vytvorí prah maskovania, pod ktorým nebude počuť žiadne iné zvuky. Ak signál v blízkosti maskéra nemá dostatočnú intenzitu a padne pod prah, bude maskovaný. Nasledujúci obrázok ukazuje, ako maskér dokáže prekryť tichý signál vo frekvenčnej oblasti. Kombinácia prahov maskovania viacerých maskérov a absolútneho prahu počutia vytvára globálny prah maskovania, ktorý sa môže v čase meniť. Proces určovania maskovacích prahov sa označuje ako psychoakustická analýza.

Obr. 5.4: Maskovanie vo frekvenčnej oblasti. Ak je intenzita maskéra dostatočne vyššia než intenzita signálu a signály sú dostatočne blízko seba, signál nebude počuteľný a počuť bude iba maskéra.

Počas časového, nesimultánneho maskovania môže maskér prekrývať signál, ktorý sa vyskytne tesne pred (predmaskovanie) alebo po (postmaskovanie) zaznení maskéra. Opäť však platí, že intenzita maskéra musí byť oveľa vyššia než intenzita signálu.

Obr. 5.5: Maskovanie v časovej oblasti

Frekvenčné maskovanie je v súčasnosti už preskúmané dostatočne presne a má, ako neskôr ukážeme, široké využitie v mnohých audio kodekoch. Na druhej strane časové maskovanie zatiaľ nebolo prebádané tak dôsledne, čo je dôsledkom jeho pomerne krátkeho trvania. Postmaskovanie trvá priemerne najviac 300 ms od skončenia samotného maskéra a predmaskovanie trvá dokonca len menej ako 50 ms. Tieto časy sú príliš krátke na to, aby ich bolo možné dôsledne analyzovať, pretože kodeky pracujú zvyčajne s rámcami dĺžky aspoň 20 ms, takže na predmaskovanie sú použiteľné iba 2 až 3 rámce.

MPEG

V súčasnosti je väčšina audio kodekov založená na práci Expertnej skupiny pre pohyblivý obraz Motion Picture Experts Group (MPEG), ktorá je súčasťou Medzinárodnej štandardizačnej organizácie (International Standards Organization, ISO). Počas jej existencie skupina uviedla niekoľko audio formátov, ktoré sa celosvetovo používajú.

Ako bude ďalej zrejmé, kodeky z rodiny MPEG sú založené na stratovom kódovaní, čo znamená, že modifikujú pôvodný audio signál a rekonštruovaný signál nie je nikdy zhodný s pôvodným.

MPEG-1

Štandard MPEG-1 predstavuje flexibilnú kódovaciu techniku, ktorá využíva viacero metód, napr. subpásmové kódovanie, analýzu bankou filtrov, transformačné kódovanie, entropické kódovanie a psychoakustickú analýzu. Pracuje so vzorkovacími frekvenciami 32, 44,1 alebo 48 kHz so 16 bitmi/vzorka a výstupný dátový tok sa pohybuje od 32 do 192 kbit/s na jeden kanál. Štandard ponúka 4 režimy kódovania kanálov: mono, stereo, duálne mono a spojené stereo (iba vrstva III).

Architektúra štandardu obsahuje 3 vrstvy, ktoré sa líšia výpočtovou náročnosťou, oneskorením a kvalitou výstupu. Vrstvy I (mp1) a II (mp2) sú si podobné a líšia sa iba v niekoľkých detailoch. Obe používajú rýchlu Fourierovu transformáciu (fast Fourier transform, FFT), avšak vrstva I využíva okno s veľkosťou 512 vzoriek, zatiaľ čo vrstva II používa 1024-vzorkové okno. Maximálne podporované rozlíšenie v subpásmovej kvantizácii je v prípade vrstvy I 15 bitov/vzorka a v prípade vrstvy II 16 bitov/vzorka. Hoci sa tieto rozdiely zdajú byť minimálne, ukázalo sa, že vrstva II poskytuje rovnakú či dokonca vyššiu kvalitu výstupu pri bitovom toku 128 kbit/s než vrstva I s bitovým tokom 192kbit/s na kanál.

Obr. 5.6: Zovšeobecnená schéma kodéra MPEG-1 vrstva I a II

Proces kompresie v oboch vrstvách I a II pracuje so vstupným PCM signálom, ktorý rozkladá na 32 subpásiem. Počas rozkladu sa vykoná FFT, ktorej výstup prejde psychoakustickou analýzou a určením jnd. V závislosti od prahu maskovania sa pre každé subpásmo stanoví najvhodnejší krok kvantovania tak, aby boli dodržané požadovaný dátový tok a úroveň maskovania. Výstup kodéra san a záver zakóduje Huffmanovým entropickým kódovaním.

Hoci MPEG-1 vrstva II poskytuje prijateľné výsledky, prevládajúcim formátom je MPEG-1 vrstva III, všeobecne známa svojou skratkou mp3. Vychádza z vrstiev I a II, pridáva však viaceré nové techniky, ktoré vedú k nižšiemu dátovému toku (okolo 64 kbit/s na kanál) pri zachovaní kvality svojich predchodcov.

Algoritmus pracuje s oknom 1152 vzoriek, ktoré rozdelí na dve tzv. granuly po 576 vzoriek. Každá z týchto granúl prejde hybridnou bankou filtrov (sústavou pásmových priepustí slúžiacich na rozdelenie vstupu na subpásma: každé subpásmo sa potom môže spracúvať samostatne), aby sa zvýšilo frekvenčné rozlíšenie. Každé subpásmo sa transformuje do frekvenčnej oblasti použitím modifikovanej diskrétnej kosínusovej transformácie (Modified discrete cosine transform, MDCT). Potom sa iteratívne vykoná priradenie bitov a kvantizácia: počas každej iterácie sa procesom analýzy pomocou syntézy odhadne úroveň kvantizačného šumu.

Modifikovaná diskrétna kosínusová transformácia vychádza z diskrétnej Fourierovej transformácie, je však špeciálne navrhnutá pre signály, ktorých bloky vzoriek sa prekrývajú. Vstupný signál rozkladá (transformuje) na sústavu kosínusových funkcií. V porovnaní s Fourierovou transformáciou, ktorej výstupom je sústava komplexných čísel, výstupom MDCT je sústava reálnych čísel charakterizujúcich kosínusové funkcie. Okrem toho výstupom DFT je rovnaký počet koeficientov ako je počet vzoriek vstupného signálu, zatiaľ čo pri MDCT je vďaka jej práci s prekryvom na výstupe polovičný počet koeficientov.

Obr. 5.7: Zovšeobecnená schéma kodéra MPEG-1 vrstva III

K pôvodnej vrstve III vznikli dve rozšírenia, MP3pro a mp3 surround. MP3pro pridáva techniku nazývanú replikácia spektrálneho pásma (Spectral Band Replication (SBR), ktorá sa používa pri nižších dátových tokoch na odstránenie pôvodných vysokých frekvencií. Tie je možné zrekonštruovať pomocou prídavných informácií z komprimovaného signálu. mp3 surround umožňuje zakódovanie 5.1 kanálového zvuku (5 plnopásmových a jeden nízkofrekvenčný – basový – kanál) do dvoch kanálov mp3. Z nich je možné zrekonštruovať 5.1-kanálový zvuk pomocou postranných informácií. Ak dekodér rozšírenie MP3pro alebo mp3 surround nepodporuje, postranné informácie ignoruje a súbor prehrá ako štandardný súbor mp3.

MPEG-2

Štandard MPEG-2 je formálnym pokračovateľom MPEG-1. Zahŕňa 2 režimy, jeden spätne kompatibilný s MPEG-1 (Backward Comptible, MPEG-2 BC) a druhý spätne nekompatibilný (Non-Backward Comptible, MPEG-2 NBC), ktorý prináša nové metódy a techniky kódovania.

Jedinými zmenami MPEG-2 BC oproti MPEG-1 je podpora pre nižšie vzorkovacie frekvencie (LSF) a viackanálové kódovanie podobné rozšíreniu mp3 surround. Formát MPEG-2 NBC sa označuje aj ako pokročilé kódovanie zvuku (Advanced Audio Coding, AAC) a je zostavený ako súprava nástrojov na efektívne kódovanie. Čím viac nástrojov sa použije, tým lepšia kompresia sa dosiahne, pričom kvalita výstupu zostane zachovaná. Cenou je však vyššia výpočtová náročnosť a oneskorenie. Na rozdiel od MPEG-1 formát MPEG-2 NBC nepoužíva na analýzu signálu hybridnú banku filtrov, ale iba MDCT v kombinácii s novými oknovými funkciami. Formát MPEG-2 sa stal súčasťou rodiny štandardov MPEG-4.

MPEG-4 AAC

Formát MPEG-4 AAC sa pokúša pokoriť vládu formátu mp3. Prináša podporu pre vzorkovacie frekvencie od 8 po 96 kHz, 1 až 48 audio kanálov plus 15 basových a 15 dátových kanálov s rozlíšením 8, 16, 24 alebo 32 bitov/vzorka. Formát AAC s nízkou zložitosťou (Low Complexity (LC) AAC) predstavuje pôvodný kodek MPEG-2 AAC a je vhodný na kódovanie reči pri dátovom toku 8-12 kbit/s. Formát AAC s vysokou efektivitou (High Efficiency (HE) AAC) prináša podporu technológie SBR (verzia 1) a kanálového režimu parametrické stereo (verzia 2), ktorý je založený na profile spojené stereo štandardu MPEG-1 vrstva III.

Ogg Vorbis

Zvukový kodek Vorbis patrí medzi najúspešnejšie kodeky s otvoreným zdrojovým kódom. Od roku 2000, kedy bol štandardizovaný, sa stal priamym súperom formátu mp3 skupiny MPEG. Podporuje vzorkovacie frekvencie od 8 do 192 kHz, maximálne 255 kanálov a bitový tok jeho výstupu je variabilný.

Proces kódovania sa odlišuje od štandardov MPEG: signál sa najskôr transformuje pomocou MDCT. Vo frekvenčnej oblasti sa určí hrubý odhad spektrálnej obálky (krivky, ktorá spája jednotlivé amplitúdové koeficienty frekvenčného spektra) pomocou lomenej funkcie, ktorý sa nazýva floor. Rozdiel medzi floorom a skutočným spektrom sa potom zakóduje viacprechodovou vektorovou kvantizáciou.

Ogg Vorbis má vyššie nároky na pamäť než mp3, pretože jeho záhlavie obsahuje kódovú tabuľku entropického kódovania (mp3 má tabuľku pevne danú) a nastavenia dekodéra. Napriek tomu je formát veľmi vhodný na kompresiu všeobecných audio signálov a poskytuje rovnakú alebo vyššiu kvalitu zvuku pri rovnakom bitovom toku ako kodek mp3.

Windows Media Audio

Windows Media Audio (WMA) je proprietárny kodek vytvorený spoločnosťou Microsoft ako odpoveď na licenčné obmedzenia formátu mp3. Existuje viacero verzií kodeku: WMA 9 je priamym súperom mp3 s podporou pre vzorkovacie frekvencie do 48 kHz so 16 bitmi/vzorka a výstupným dátovým tokom od 64 do 192 kbit/s, podporujúc CBR aj VBR.

Verzia WMA 10 Professional rozširuje možnosti kodeku v súboji s MPEG-4 AAC pridaním vzorkovacej frekvencie 96 kHz s 24 bitmi/vzorka pre 7.1 kanálov. Ak zariadenie nie je schopné prehrať 7.1 nahrávku, signál sa automaticky degraduje (vzorkovacia frekvencia, počet bitov na vzorku, zníženie počtu kanálov) na úroveň vhodnú pre zariadenie.

WMA 10 poskytuje tiež režim pre kompresiu reči nazývaný WMA 10 Voice, ktorý poskytuje bitový tok od 4 až do 20 kbit/s. Jeho zaujímavosťou je schopnosť dynamicky prepínať medzi hlasovou a štandardnou verziou kodeku, ak je spracúvaný signál príliš zložitý. Okrem toho WMA 10 poskytuje bezstratový režim, ktorý údajne dokáže zredukovať veľkosť pôvodného PCM signálu na polovicu až tretinu.

Kodek WMA 10 Professional poskytuje vyššiu subjektívnu kvalitu pri 64 kbit/s v porovnaní s MPEG-4 AAC v2 pri 70% porovnaní.