MP3 nebo Ogg?

12. 9. 2002
Doba čtení: 7 minut

Sdílet

Aktualizováno! Většina počítačových uživatelů zná ogg alespoň z doslechu. Mnozí ale ani nevědí, že něco takového existuje. Tento článek si neklade jiný cíl, než seznámit čtenáře s tímto formátem jednoduchým testem. Malé srovnání těchto dvou formátu může pomoci při rozhodnutí, zda používat tento mladý a nadějný formát.

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:

Tabulka č. 332
-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:

Tabulka č. 333
 –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

320vbr

Tabulka č. 334
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

192vbr

Tabulka č. 335
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

160vbr

Tabulka č. 336
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

128cbr

Tabulka č. 337
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

128vbr

Tabulka č. 338
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

96vbr

Tabulka č. 339
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

80vbr

Tabulka č. 340
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

48vbr

Tabulka č. 341
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í.

bitcoin_skoleni

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.