Co je to Ogg-Vorbis?
Ogg Vorbis je formát souboru pro ukládaní zvukových záznamů založený na ztrátové kompresi. Ta spočívá ve vypouštění signálů o vyšších frekvencích ze záznamu. Formát ogg vznik na zelené louce, není proto zatěžkán komerčními licencemi. Pro mnohé vyznavače svobodného softwaru to je jistě dostatečný důvod používat jej místo mp3. Ostatní uživatele určitě zajímá, jestli je skutečně srovnatelný nebo dokonce lepší, jak tvrdí autoři, než jejich stávající favorit mp3.
Digitální záznam
Nejběžnější digitální nosič, kterým je audio CD, má vzorkovací frekvenci 44,1kHz, Vzorkovací věta (Shanonova) nám říká, že takto můžeme spolehlivě rekonstruovat signál o frekvenci nižší než polovina vzorkovací frekvence, tedy 22,5kHz. Čím menší počet vzorků, tím menší výsledná velikost souboru, ale také nižší kvalita, nerekonstruujeme všechny frekvence. Hranice lidské slyšitelnosti se udává okolo 20kHz.
Bitrate
Bitrate je datový tok souboru zvukového záznamu. Udává se v kbps, což je počet bitů za sekundu. Používají se techniky komprese s pevným bitrate, kdy je celý záznam uložen stejným datovým tokem, pevnou vzorkovací frekvencí. Výhodnější je použití proměnného bitrate, kdy části záznamu, které neobsahují vysoké kmitočty, ukládáme s nižším datovým tokem, odpovídá nižší vzorkovací frekvenci.
Jak na ogg?
Základním balíčkem pro práci s tímto formátem jsou vorbis-tools. Obsahují nejen přehrávač ogg123, ale i nástroje pro převod do formátu ogg.
Jak jsem testoval
Z audio cd jsem získal referenční záznam v nekomprimovaném formátu wav (16bit, stereo, 44,1kHz). Jedná se o skladbu A Blue Bayou od Mireille Mathieu. Délka záznamu je 238 sekund a velikost wav souboru 40,8MB. Referenční záznam jsem komprimoval do formátu mp3 a formátu ogg s různými parametry. Sledoval jsem přitom: rychlost převodu, zátěž CPU při přehrávání, velikost souboru a kvalitu komprese.
Rychlost převodu je uvedena jako kolikrát je doba komprimace kratší než celková doba záznamu.
Zátěž je vypočtena z celkové doby záznamu a doby, kdy byl procesor přidělen přehrávači pro přehrání celého záznamu, a je uvedena v procentech. Tato hodnota je závislá na typu a frekvenci procesoru. Použil jsem procesor AMD Athlon 1.3GHz a při komprimaci i přehrávání jsou využity instrukce sad MMX a 3DNow!.
Velikost souboru je vyjádřena v procentech, kde 100% je velikost souboru ve formátu wav referenčního záznamu.
Test kvality zvukového záznamu je založen na porovnání frekvenčních spekter komprimovaného zvukového záznamu s původním záznamem. Frekvenční spektrum, konkrétně je použita výkonová spektrální hustota, nám říká, jak jsou zastoupeny jednotlivé frekvence. Čím větší číslo máme pro každou frekvenci, tím více je frekvence v signálu zastoupena. Pro znalé: při výpočtu je využito algoritmů FFT, velikost okna 1024 vzorků, okno hanning. Spektrum je počítáno vždy pro jeden stejný kanál sterea.
Pro komprimaci do formátu mp3 jsem použil program lame s parametry:
-h -k -b bitrate | konstantní bitrate |
-h -k –vbr-new -abr bitrate | proměnný bitrate, nastavená střední hodnota |
-h –vbr-new -abr bitrate | proměnný bitrate, nastavená střední hodnota, použití filtru |
-h -k –vbr-new -abr bitrate –resample 44.1 | proměnný bitrate, nastavená střední hodnota vynucená vzorkovací frekvence 44.1kHz |
-h -k –vbr-new -B bitrate –resample 44.1 | proměnný bitrate, nastavená maximální hodnota vynucená vzorkovací frekvence 44.1kHz |
Soubory ogg jsem získal programem oggenc s parametry:
–manage -b bitrate | konstantní bitrate |
-b bitrate | proměnný bitrate co nejblíže zadané hodnotě |
-b bitrate -M maxbitrate | proměnný bitrate s nastaveným maximálním bitrate |
-m minbitrate -M maxbitrate | proměnný bitrate s nastaveným minimálním a maximálním bitrate |
Těmito parametry jsem dosáhl přibližně stejné skutečné střední hodnoty bitrate.
Pro výpočet zatížení procesoru při přehrávání jsem použil následující sekvence příkazů:
time mpg123 -t jméno_souboru
resp. time ogg123 -d null jméno_souboru
Čas potřebný pro přehrávání jsem určil z hodnot user a sys.
Testoval jsem pro hodnoty bitrate 320kbps, 192kbps, 160kbps, 128kbps, 96kbps, 80kbps a 48kbps. Vše pro proměnlivý bitrate, neboť ten poskytuje lepší kvalitu s co nejmenší možnou velikostí výsledného souboru. Test pro konstantní datový tok jsem udělal pouze pro bitrate 128kbps.
Proměnný bitrate 320kps
formát | bitrate (kbps) |
rychlost kódování |
zátěž cpu přehrávání |
velikost (%) |
---|---|---|---|---|
mp3 | 320 | 8.6× | 0.93 | 22.5 |
ogg | 320 | 6.9× | 2.22 | 23.5 |
Kvalita obou záznamů je srovnatelná s původním záznamem, odchylky jsou lidským uchem těžko rozeznatelné. Rychlost komprese do mp3 je větší než do ogg. Výsledná velikost je přibližně stejná. Přehrávání ogg je více než 2× náročnější než přehrávání mp3.
Proměnný bitrate 192kbps
formát | bitrate (kbps) |
rychlost kódování |
zátěž cpu přehrávání |
velikost (%) |
---|---|---|---|---|
mp3 | 192 | 8.1× | 0.80 | 13.6 |
ogg | 192 | 7.4× | 1.68 | 13.6 |
Kvalita obou záznamů je srovnatelná a blíží se původnímu záznamu. Komprese do mp3 je opět rychlejší než do ogg. Přehrávání ogg s 192kbps je méně náročné než 320kbps, ale i zde se mp3 spokojí s méně než polovinou času procesoru.
Proměnný bitrate 160kbps
formát | bitrate (kbps) |
rychlost kódování |
zátěž cpu přehrávání |
velikost (%) |
---|---|---|---|---|
mp3 | 160 | 6.7× | 0.77 | 11.2 |
ogg | 160 | 7.0× | 1.57 | 11.4 |
Rozdíly mezi oběma formáty jsou minimální.
Konstantní bitrate 128kbps
formát | bitrate (kbps) |
rychlost kódování |
zátěž cpu přehrávání |
velikost (%) |
---|---|---|---|---|
mp3 | 128 | 7.5× | 0.73 | 9.0 |
ogg | 128 | 7.2× | 1.40 | 8.8 |
Ač se zdá, že mp3 zachytí vyšší frekvence lépe, není tomu tak, zkreslení začíná už při 16kHz, u ogg se zkreslení výrazněji projevuje až od 20kHz. Velikost souboru ogg je menší než mp3. To je způsobeno absencí striktního konstantního bitrate u ogg, který standardně používá variabilní bitrate.
Proměnný bitrate 128kbps
formát | bitrate (kbps) |
rychlost kódování |
zátěž cpu přehrávání |
velikost (%) |
---|---|---|---|---|
mp3 | 128 | 6.8× | 0.72 | 8.8 |
ogg | 128 | 7.2× | 1.40 | 8.8 |
Situace obdobná jako při konstantním bitrate. U mp3 se snížila velikost, která je stejná jako u ogg. Kvalita záznamu v ogg je vyšší než u mp3.
Proměnný bitrate 96kbps
formát | bitrate (kbps) |
rychlost kódování |
zátěž cpu přehrávání |
velikost (%) |
---|---|---|---|---|
mp3 | 96 | 5.3× | 0.56 | 6.8 |
mp3-filter | 96 | 5.6× | 0.54 | 6.9 |
mp3–44.1 | 96 | 8.2× | 0.68 | 6.5 |
ogg-96 | 96 | 7.1× | 1.26 | 6.2 |
Při převodu do mp3 s nízkým bitrate dochází automaticky k převzorkování signálu do nižší frekvence, pro 96kbps do 32kHz. Takový záznam je mnohem horší než ogg, který končí přibližně na 17kHz. V případě, že necháme frekvenci na 44.1kHz, je kvalita záznamu v mp3 mnohem vyšší než u ogg, přesto je velikost jen o málo větší. Velmi zajímavá je velikost souborů mp3, kde nejmenší je zároveň tím nejkvalitnějším. Světle modrou barvou je vykresleno zastoupení frekvencí při kompresi do mp3 s použití předvolených filtrů (komprimace bez přepínače -k).
Proměnný bitrate 80kbps
formát | bitrate (kbps) |
rychlost kódování |
zátěž cpu přehrávání |
velikost (%) |
---|---|---|---|---|
mp3 | 80 | 5.5× | 0.53 | 5.6 |
mp3-filtr | 80 | 5.7× | 0.52 | 5.7 |
mp3–44.1 | 80 | 8.5× | 0.65 | 5.4 |
ogg | 80 | 7.1× | 1.20 | 5.4 |
ogg-32 | 80 | 7.2× | 0.98 | 5.1 |
Situace s frekvencí u mp3 je totožná s 96kbps. U záznamu v ogg je limitní frekvence shodná jako u 96kbps, ale zkreslení začíná dříve. Hnědou barvou je vykreslen průběh frekvencí souboru ogg převzorkovaného do 32kHz, velikost souboru je menší a zátěž při přehrávaní je pod 1%. Kvalita se však výrazně snížila.
Proměnný bitrate 48kbps
formát | bitrate (kbps) |
rychlost kódování |
zátěž cpu přehrávání |
velikost (%) |
---|---|---|---|---|
mp3 | 48 | 10.3 | 0.28 | 3.3 |
mp3–44.1.mp3 | 48 | 8.7 | 0.57 | 3.4 |
mp3-M48–44.1 | 48 | 7.8 | 0.53 | 2.6 |
ogg-48 | 48 | 7.0 | 1.09 | 3.3 |
ogg-b48-M80 | 48 | 2.6 | 1.08 | 3.5 |
ogg-m32-M80 | 48 | 2.2 | 1.17 | 4.9 |
Při takto nízkém bitrate dochází u mp3 k převzorkování do 16kHz, kvalita je už velmi nízká. Pokud omezíme maximální bitrate na 48kbps, klesá velikost souboru a samozřejmě také kvalita. V případě ogg je nejmenší velikost při nastavené střední hodnotě. Nastavíme-li maximální použitý bitrate nebo vymezíme pásmo použitých bitrate, velikost souboru vzroste, avšak všechny průběhy frekvencí splývají.
Závěr
Pro vysoké hodnoty bitrate (320kbps, 192kbps) je kvalita obou formátu srovnatelná. Pro hodnoty 128kbps a 160kbps je formát ogg kvalitnější. Pro nízké hodnoty bitrate ztrácí formát mp3 v případě, kdy dochází k převzorkování na nižší frekvenci. Při velmi nízkých hodnotách bitrate (48kbps) dochází u mp3 k postupnému zkreslování. Naproti tomu u ogg typický průběh kopíruje původní záznam a od jisté frekvence, závislé na použitém bitrate, velmi rychle klesá zastoupení frekvencí. Uvedené chovaní tak může mít zásadní vliv třeba na kvalitu záznamu klavírního koncertu, kde jsou zastoupeny pouze určité frekvence. Naproti tomu u záznamu populární hudby tomu tak být nemusí. Tam bývá zastoupeno poměrně rovnoměrně celé spektrum. Přehrávání ogg je přibližně 2× náročnější než přehrávání mp3 a navíc se potřebný strojový čas příliš nemění s hodnotou bitrate. Parametry převodu do ogg nejsou tak bohaté jako u mp3. Navíc nemají příliš zásadní vliv na kvalitu záznamu. To může být výhodou oproti mp3, kde je dodatečné nastavení při nízkých hodnotách bitrate velmi důležité. Z výsledků testů nevyplývá, že formát ogg je úspornější. To je dáno především sledováním kvality při stejných hodnotách bitrate.
Relativně mladý formát ogg je velmi dobrou alternativou letitého mp3. Příznivá licence a vyšší kvalita zvukového souboru jsou jeho hlavními devizami. Je však nutné počítat s vyššími nároky na strojový čas při přehrávání. Doufám, že toto porovnání pomůže při rozhodování, jaký formát zvolit pro ukládání zvukových záznamů. Přeji mnoho pěkných chvil při poslechu souborů ogg.