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.
Kapitoly článku:
Vše, co bylo do teď řečeno, se vztahovalo ke zvuku, jak ho známe v reálném světě. Zde jde o čistě spojitý signál, jak bylo naznačeno na prvním obrázku. Jenže digitální svět nul a jedniček neumí reprezentovat reálný spojitý signál. Digitální svět zná pouze čísla, jejichž počet je vždy konečný. Proto je nutné převést spojitý signál zvuku do nespojitého digitálního světa.
Vezmeme-li v úvahu předchozí kapitoly, tak již víme, že lidský sluch není dokonalý, a tak si můžeme dovolit digitální verzi mírně očesat, aniž by to člověk poznal. Mikrofon převede zvuk na analogový elektrický signál, který je zdigitalizován analogově-digitálním (AD) převodníkem. Určitý rozsah signálu, například -1V až 1V, rozdělíme do hladin a k jaké hladině se analogový signál nejvíce blíží, reprezentujeme jako pořadové číslo této hladiny. Zbývá pouze rozhodnout, kolik hladin budeme mít. Čím více hladin, tím věrnější reprezentaci původního signálu získáme.
Ve světě bitů máme k dispozici vždy pouze 2^N hodnot, kde N je počet bitů. V počítačích je nejlepší násobek osmi bitů (byte), jeden byte dává 256 hodnot, což ještě lidské ucho pozná, proto se nejčastěji používají dva byty, tedy 16 bitů, které dávají celkem 65536 hodnot/hladin. To je již dostačující počet, aby to lidské ucho nerozeznalo. Používají se i ještě vyšší hodnoty, například 24 bitů (přes 16 miliónů hodnot) nebo i čísla v plovoucí řádové čárce (miliardy), ty mají ale smysl pouze při zpracování, finální výstup se převádí opět na 16 bitů. Rozdělení do hladin se říká kvantizace.
Při převodu samozřejmě vzniká chyba, která je dána šířkou hladiny. Ta také určuje, jak malý signál můžeme zaznamenat a určuje i tím i dynamický rozsah, tedy poměr mezi největším a nejmenším možným zaznamenatelným signálem. Výpočet je jednoduchý:
U šestnáctibitové kvantizace je dynamický rozsah 96 dB, což je pod úrovní možností sluchu. Jak již bylo řečeno, ten zvládne až 120 dB. Jenže pro využití plného rozsahu bychom potřebovali opravdu hrobové ticho, které je málokde. Komu to nestačí, tak 24-bitová kvantizace má již dynamický rozsah 144 dB. Nutné je ale připočítat i vliv převodníků, zesilovačů, akustické soustavy atd., takže v praxi se dosahuje na reproduktoru o dalších minimálně 10 dB nižších hodnot.
Další, co musíme rozhodnout, je jak často vzorkovat signál. Podle Nyquistova teorému musíme vzorkovat minimálně dvojnásobnou frekvencí, pokud chceme zachovat požadovaný frekvenční rozsah. My požadujeme 20 Hz až 20 kHz, zajímá nás ta vyšší hodnota, takže 20 kHz. Vzorkovat tedy musíme frekvencí větší než 40 kHz.
V praxi se používá nejčastěji hodnota 44,1 kHz. Možná se ptáte, jak se došlo k takto nesmyslnému číslu. Pochází to z dávných dob, kdy se teprve s digitálním záznamem zvuku experimentovalo a nebyla žádná záznamová média. Použila se tedy klasická VHS kazeta, na kterou se nahrávalo stejně jako video signál bílé a černé úrovně, které reprezentovaly jedničky a nuly, do řádků rotující hlavou, vynásobením šestnácti bitů, počtu byte na řádek a počtu řádků video-signálu se dostaneme k hodnotě 44100 Hz. Funguje to pro NTSC i PAL, přesný výpočet vám ale neřeknu, protože neznám detaily. Každopádně tato vzorkovací frekvence se dostala i na CD disky.
Druhou často používanou hodnotu 48 kHz zavedl záznam na DAT zařízení. Tato hodnota vychází jako násobek 8 kHz používaných v telekomunikacích. Tato hodnota byla také zvolena pro DVD disky. Problém nastává při převodu mezi 44,1 kHz a 48 kHz, což není žádný násobek a musí dojít k převzorkování a interpolaci.
Samozřejmě se používají i jiné vzorkovací frekvence, jak nižší, které ale omezují frekvenční rozsah, tak i vyšší. Nejčastější jsou 96 kHz, což je dvojnásobek 48 kHz a dokonce 192 kHz, což je čtyřnásobek. Ty mají výhodu ve větší čistotě vyšších kmitočtů, přinášejí ale větší nároky na datovou kapacitu.
Tato reprezentace signálu se nazývá pulzní kódová modulace (PCM - pulse code modulation) a je tím nejvíce základním způsobem reprezentace audio signálu v digitální podobě. Má ale i své varianty, například není nutné, aby rozdělení do hladin bylo lineární, u nižší úrovně hlasitosti lze provést jemnější rozdělení, má to výhodu ve vyšší dynamice, ale nevýhodu při zpracování a sčítání signálu. Aby bylo jasné, že se jedná o lineární rozdělení hladin, často je základní PCM kódování označováno jako LPCM.
Pokud budeme chtít dosáhnout prostorového zvuku, jednoduše doplníme další kanály zvuku, celkový datový objem se pak bude zvětšovat podle počtu kanálů. Stereo signál se dvěma kanály bude mít dvojnásobný počet dat, 5.1 má šest kanálů, tedy bude mít šestkrát vyšší počet dat. Jednotlivá datová náročnost pro různá nastavení je v tabulce.
Jak vidíme, jde o úctyhodné počty, pokud vezmeme v úvahu, že jde "jen" o zvuk. CD má kapacitu původně 650 MB, takže se na něj vejde něco přes hodinu, což je akorát pro jedno hudební album. Na druhé straně je prostorový zvuk pro DVD 48 kHz/5.1, který na hodinu zabere téměř 2 GB, pro dvouhodinový film to je 4 GB, což je kapacita jednovrstvého DVD disku. Právě v tomto případě je komprese nutností, přesto DVD ponechává možnost použít nekomprimovaný zvuk v kvalitě 48 kHz, ale pouze ve stereo režimu. Lépe je na tom Blu-ray s mnohem vyšší kapacitou až 50 GB, kde je možné nekomprimovaný zvuk použít i u prostorové varianty.
Na tomto místě si ještě definujeme tři pojmy, které se používají u kodeků vzhledem k datovému toku:
CBR - constant bitrate - datový tok je konstantní za každých okolností, to je typický případ u PCM
ABR - average bitrate - průměrný datový tok v určitém časovém okně je konstantní, v průběhu okna se ale může měnit
VBR - variable bitrate - datový tok se mění a není přesně definovaný, maximálně celkový průměrný a limity
Vezmeme-li v úvahu předchozí kapitoly, tak již víme, že lidský sluch není dokonalý, a tak si můžeme dovolit digitální verzi mírně očesat, aniž by to člověk poznal. Mikrofon převede zvuk na analogový elektrický signál, který je zdigitalizován analogově-digitálním (AD) převodníkem. Určitý rozsah signálu, například -1V až 1V, rozdělíme do hladin a k jaké hladině se analogový signál nejvíce blíží, reprezentujeme jako pořadové číslo této hladiny. Zbývá pouze rozhodnout, kolik hladin budeme mít. Čím více hladin, tím věrnější reprezentaci původního signálu získáme.
Ve světě bitů máme k dispozici vždy pouze 2^N hodnot, kde N je počet bitů. V počítačích je nejlepší násobek osmi bitů (byte), jeden byte dává 256 hodnot, což ještě lidské ucho pozná, proto se nejčastěji používají dva byty, tedy 16 bitů, které dávají celkem 65536 hodnot/hladin. To je již dostačující počet, aby to lidské ucho nerozeznalo. Používají se i ještě vyšší hodnoty, například 24 bitů (přes 16 miliónů hodnot) nebo i čísla v plovoucí řádové čárce (miliardy), ty mají ale smysl pouze při zpracování, finální výstup se převádí opět na 16 bitů. Rozdělení do hladin se říká kvantizace.
Při převodu samozřejmě vzniká chyba, která je dána šířkou hladiny. Ta také určuje, jak malý signál můžeme zaznamenat a určuje i tím i dynamický rozsah, tedy poměr mezi největším a nejmenším možným zaznamenatelným signálem. Výpočet je jednoduchý:
20*log(2^N) = 20*log(2) * N = 6.02 * N
kde N je počet bitů.U šestnáctibitové kvantizace je dynamický rozsah 96 dB, což je pod úrovní možností sluchu. Jak již bylo řečeno, ten zvládne až 120 dB. Jenže pro využití plného rozsahu bychom potřebovali opravdu hrobové ticho, které je málokde. Komu to nestačí, tak 24-bitová kvantizace má již dynamický rozsah 144 dB. Nutné je ale připočítat i vliv převodníků, zesilovačů, akustické soustavy atd., takže v praxi se dosahuje na reproduktoru o dalších minimálně 10 dB nižších hodnot.
Další, co musíme rozhodnout, je jak často vzorkovat signál. Podle Nyquistova teorému musíme vzorkovat minimálně dvojnásobnou frekvencí, pokud chceme zachovat požadovaný frekvenční rozsah. My požadujeme 20 Hz až 20 kHz, zajímá nás ta vyšší hodnota, takže 20 kHz. Vzorkovat tedy musíme frekvencí větší než 40 kHz.
V praxi se používá nejčastěji hodnota 44,1 kHz. Možná se ptáte, jak se došlo k takto nesmyslnému číslu. Pochází to z dávných dob, kdy se teprve s digitálním záznamem zvuku experimentovalo a nebyla žádná záznamová média. Použila se tedy klasická VHS kazeta, na kterou se nahrávalo stejně jako video signál bílé a černé úrovně, které reprezentovaly jedničky a nuly, do řádků rotující hlavou, vynásobením šestnácti bitů, počtu byte na řádek a počtu řádků video-signálu se dostaneme k hodnotě 44100 Hz. Funguje to pro NTSC i PAL, přesný výpočet vám ale neřeknu, protože neznám detaily. Každopádně tato vzorkovací frekvence se dostala i na CD disky.
Druhou často používanou hodnotu 48 kHz zavedl záznam na DAT zařízení. Tato hodnota vychází jako násobek 8 kHz používaných v telekomunikacích. Tato hodnota byla také zvolena pro DVD disky. Problém nastává při převodu mezi 44,1 kHz a 48 kHz, což není žádný násobek a musí dojít k převzorkování a interpolaci.
Samozřejmě se používají i jiné vzorkovací frekvence, jak nižší, které ale omezují frekvenční rozsah, tak i vyšší. Nejčastější jsou 96 kHz, což je dvojnásobek 48 kHz a dokonce 192 kHz, což je čtyřnásobek. Ty mají výhodu ve větší čistotě vyšších kmitočtů, přinášejí ale větší nároky na datovou kapacitu.
Tato reprezentace signálu se nazývá pulzní kódová modulace (PCM - pulse code modulation) a je tím nejvíce základním způsobem reprezentace audio signálu v digitální podobě. Má ale i své varianty, například není nutné, aby rozdělení do hladin bylo lineární, u nižší úrovně hlasitosti lze provést jemnější rozdělení, má to výhodu ve vyšší dynamice, ale nevýhodu při zpracování a sčítání signálu. Aby bylo jasné, že se jedná o lineární rozdělení hladin, často je základní PCM kódování označováno jako LPCM.
Pokud budeme chtít dosáhnout prostorového zvuku, jednoduše doplníme další kanály zvuku, celkový datový objem se pak bude zvětšovat podle počtu kanálů. Stereo signál se dvěma kanály bude mít dvojnásobný počet dat, 5.1 má šest kanálů, tedy bude mít šestkrát vyšší počet dat. Jednotlivá datová náročnost pro různá nastavení je v tabulce.
Vzorkovací frekvence [Hz] | Počet bitů | Kanálů | Za minutu | Za hodinu |
44100 | 16 | 2 | 10MB | 605MB |
48000 | 16 | 2 | 11MB | 659MB |
96000 | 16 | 2 | 22MB | 1,29GB |
192000 | 16 | 2 | 44MB | 2,57GB |
48000 | 16 | 5.1 | 33MB | 1,93GB |
48000 | 16 | 7.1 | 44MB | 2.57GB |
Jak vidíme, jde o úctyhodné počty, pokud vezmeme v úvahu, že jde "jen" o zvuk. CD má kapacitu původně 650 MB, takže se na něj vejde něco přes hodinu, což je akorát pro jedno hudební album. Na druhé straně je prostorový zvuk pro DVD 48 kHz/5.1, který na hodinu zabere téměř 2 GB, pro dvouhodinový film to je 4 GB, což je kapacita jednovrstvého DVD disku. Právě v tomto případě je komprese nutností, přesto DVD ponechává možnost použít nekomprimovaný zvuk v kvalitě 48 kHz, ale pouze ve stereo režimu. Lépe je na tom Blu-ray s mnohem vyšší kapacitou až 50 GB, kde je možné nekomprimovaný zvuk použít i u prostorové varianty.
Na tomto místě si ještě definujeme tři pojmy, které se používají u kodeků vzhledem k datovému toku:
CBR - constant bitrate - datový tok je konstantní za každých okolností, to je typický případ u PCM
ABR - average bitrate - průměrný datový tok v určitém časovém okně je konstantní, v průběhu okna se ale může měnit
VBR - variable bitrate - datový tok se mění a není přesně definovaný, maximálně celkový průměrný a limity