Selathco 0.91 generated HTML
Predchozi ( Obsah ) Dalsi

1. Popis formátu MP3

Algoritmus standardizovaný jako ISO-MPEG Audio Layer-3 byl vytvořen v roce 1987 Fraunhoferovým Institutem pro integrované obvody ve spolupráci s univerzitou v Erlangenu.

Důvodem vzniku tohoto algoritmu byla následující skutečnost. Bez redukce dat se audio signál typicky skládá z 16bitových vzorků nahraných se vzorkovací frekvencí vyšší, než je dvojnásobek aktuální šířky pásma (např. 44,1 kHz pro kompaktní disk). Potom je potřeba 1,4 Mb k reprezentaci jediné sekundy stereo hudby v CD kvalitě. Použitím MPEG audio kódování lze zmenšit původní zvuková data z CD dvanáctkrát, aniž by došlo ke znatelnému snížení kvality zvuku. Toho je v zásadě docíleno použitím kódovacích technik využívajících vlastností lidského ucha při vnímání zvukových vln.

Používáním MPEG kódování lze dosáhnout typické redukce dat při použití Layer-1 na 1:4 (384 kbps pro stereo signál), Layer-2 na 1:6 až 1:8 (256 až 192 kbps) a Layer-3 na 1:10 až 1:12 (128 až 112 kbps) při zachování původní CD kvality. Využíváním stereo efektů a omezení šířky pásma lze dosáhnout přijatelné kvality zvuku při ještě nižších hodnotách datového toku (viz 1.1.3.).

V tab. 1. jsou uvedeny některé typické hodnoty při použití MPEG Layer-3:

kvalita šířka pásma režim datový tok komprese
telefonní 2,5 kHz mono 8 kbps 96:1
lepší než AM rádio 7,5 kHz mono 32 kbps 24:1
blízká FM rádiu 11 kHz stereo 56-64 kbps 26:1-24:1
téměř CD 15 kHz stereo 96 kbps 16:1

Tabulka 1: Vztah poměru komprese a kvality

1.1. Základní údaje o MPEG kódování

Je mnoho nejasností obklopujících termíny audio komprese, audio kódování a audio dekódování. Následující kapitola by měla poskytnout přehled o tom, co tyto termíny znamenají.

1.1.1. Cíl audio komprese

Před nástupem audio komprese zabírala vysoce kvalitní digitální audio data na disku mnoho místa (nebo velkou šířku pásma pro přenos). Udělejme si malý příklad. Chceme nahrát oblíbenou minutovou písničku a uložit si ji na harddisk. Protože chceme CD kvalitu, vzorkujeme při 44,1 kHz, stereo, 16 bitů na vzorek. Frekvence 44,1 kHz znamená, že máme 44100 hodnot za sekundu. Toto číslo je potřeba vynásobit dvěma, protože máme dva kanály (nahráváme stereo). Protože každý vzorek obsahuje dva byty (16 bitů), vynásobíme opět dvěma. Taková skladba potom na harddisku zabere celkem 44100 vzorků/s * 2 byty * 2 kanály * 60 s/min = 10 MB. Při nahrávání pomocí 28,8 kbps modemu z internetu bychom museli čekat přibližně 49 minut jen pro stažení jedné minuty stereo hudby.

Digitální audio kódování, v tomto kontextu také nazývané digitální audio komprese, je způsob, jak minimalizovat místo potřebné pro uložení zvukových dat. Moderní techniky kódování, jako je například právě MPEG Layer-3, využívají vlastností lidského ucha při vnímání zvuku k dosažení redukce velikosti v poměru až 1:12 s malou nebo nerozpoznatelnou ztrátou kvality. Takový postup je klíčovou technologií pro aplikace s vysokou kvalitou zvuku a nízkým datovým tokem, jako například zvukové stopy na herních CD-ROM, Internet audio a podobně.

1.1.2. Princip komprese

Audio komprese se skládá ze dvou částí. První část, nazývaná kodér (encoder) převádí zvuková data, například ve formě WAVE souboru, do vysoce komprimované formy nazývané bitstream (nebo kódovaná audio data). K přehrání takto komprimovaných dat na zvukové kartě je nutná druhá část nazývaná dekodér (decoder). Dekodér rekonstruuje bitstream do WAVE souboru.

Nejvyšší efektivnosti kódování se dosahuje použitím algoritmů založených na modelu lidského sluchového systému využívajících nadbytečností a bezvýznamností signálu ve frekvenční oblasti. Z uloženého zvuku se odstraní všechny jeho nadbytečné (lidským uchem neslišitelné) části.

Prvním využitím nedokonalostí lidského ucha je takzvané sluchové maskování. Při něm se využívá faktu, že člověk nerozpozná slabší zvukový signál od silnějšího na sousedním kmitočtu. Dále se využívá maskovací efekt před silným zvukem a po silném zvuku, protože mozku trvá určitou dobu než zpracuje změnu zvukové úrovně okolo silného zvuku. Při rozhodování se bere v úvahu, že na různé oblasti zvukového spektra je lidský sluch různě citlivý. Další úspory bitů se dosahuje například odříznutím neslyšitelných frekvencí. Zbylé části se zakódují Huffmanovým kódem.

Zdrojové texty kódovacích a dekódovacích programů jsou volně k dispozici například na stránkách Fraunhoferova institutu (www.iis.fhg.de).

1.1.3. Kompresní poměr, datový tok a kvalita

Doposud nebylo zmíněno, že po zakódování a dekódování nezískáme stejný audio soubor. Všechny nadbytečné a bezvýznamné části zvukového signálu byly vypuštěny. Rekonstruovaný WAVE soubor se od originálního WAVE souboru liší, ale měl by znít víceméně stejně, to je závislé na použitém stupni komprese.

Protože kompresní poměr je poněkud nepraktická míra, používá se termín bitrate (česky datový tok), pokud se mluví o kvalitě komprese. Bitrate vyjadřuje průměrný počet bitů potřebných na jednu sekundu zvukových dat. Obvyklou jednotkou je kbps (kilobits per second = počet kilobitů za sekundu). Pro audio signál z CD je bitrate 1,4 Mbps (megabitů/s).

1.2. Hlavička rámce

MPEG audio soubor (.MP3 soubor) se skládá z malých částí nazývaných rámce (frames). Každý rámec je nezávislý a má svoji vlastní hlavičku a audio informace. Není zde žádná hlavička celého souboru, díky čemuž lze vyjmout jakoukoliv část souboru a přehrát ji správně.

Jestliže chceme získat informace o MPEG souboru, obvykle stačí najít první rámec, přečíst jeho hlavičku a předpokládat, že ostatní rámce jsou stejné (to ale nemusí platit vždy).

Hlavička rámce se nachází v prvních čtyřech bytech (tj. 32 bitů) rámce. Prvních jedenáct bitů hlavičky je označeno jako frame sync (synchronizace rámce) a je vždy nastaveno na hodnotu 1. Proto lze najít v souboru první výskyt jedenácti nastavených bitů (tzn. najít první byte s hodnotou 255, který je následován bytem s nastavenými nejdůležitějšími třemi bity) a potom přečíst ze souboru celou hlavičku a zjistit její správnost.

délka [bit] poz. [bit] popis
11 31-21 Synchronizace rámce (všechny bity nastaveny)
2 20-19 Verze MPEG:
00 - MPEG verze 2.5
01 - rezervováno
10 - MPEG verze 2
11 - MPEG verze 1
2 18-17 Layer:
00 - rezervováno
01 - Layer-3
10 - Layer-2
11 - Layer-1
1 16 0 - chráněno pomocí CRC, 16bitové CRC následuje hlavičku
1 - není chráněno
4 15-12 Bitrate, viz následující tabulku
2 11-10 Vzorkovací frekvence [kHz]
bity    MPEG1    MPEG2    MPEG2.5
00      44100      22050      11025
01      48000      24000      12000
10      32000      16000      8000
11      rezervováno
1 9 Doplňující bit (padding)
0 - rámec není doplněn
1 - rámec je doplněn jedním bitem navíc
1 8 Tajný bit (neznámý účel)
2 7-6 Mód kanálů
00 - stereo
01 - Joint stereo
10 - dual channel (stereo)
11 - single channel (mono)
1 5 MS stereo (jen pro Joint stereo)
0 - ne
1 - ano
1 4 Intensity stereo (jen pro Joint stereo)
0 - ne
1 - ano
1 3 0 - je chráněno autorským právem
1 - není chráněno autorským právem
1 2 0 - kopie originálního média
1 - originální médium
2 1-0 Zvýraznění:
00 - žádné
01 - 50/15 ms
10 - rezervováno
11 - CCIT J.17

Tabulka 2: Hlavička rámce

V tabulce 1.2. je vysvětlen význam všech bitů hlavičky. Každá hodnota, která je označená jako rezervovaná, by měla označovat chybnou hlavičku (pokud této hodnotě nebyl již přiřazen význam).

V tabulce 1.2. jsou uvedeny hodnoty datového toku podle hodnot 15. až 12. bitu hlavičky. Všechny hodnoty jsou v kbps. Písmena V a L v záhlaví tabulky mají následující význam:
V1 - MPEG verze 1, V2 - MPEG verze 2 nebo 2.5
L1 - Layer-1, L2 - Layer-2, L3 - Layer-3

Rámce mohou mít kontrolní součet (CRC), ale je to poměrně vzácné. Kontrolní součet je 16 bitů dlouhý. Jestliže existuje, následuje přímo hlavičku. Po CRC následují audio data. Lze spočítat délku rámce (viz 1.3.) a použít ji, pokud chceme číst další hlavičky nebo spočítat kontrolní součet rámce pro porovnání s CRC načteným ze souboru.

bity V1, L1 V1, L2 V1, L3 V2, L1 V2, L2 V2, L3
0000 proměnná bitrate
0001 32 32 32 32 32 8
0010 64 48 40 64 48 16
0011 96 56 48 96 56 24
0100 128 64 56 128 64 32
0101 160 80 64 160 80 40
0110 192 96 80 192 96 48
0111 224 112 96 224 112 56
1000 256 128 112 256 128 64
1001 288 160 128 288 160 80
1010 320 192 160 320 192 96
1011 352 224 192 352 224 112
1100 384 256 224 384 256 128
1101 416 320 256 416 320 144
1110 448 384 320 448 384 160
1111 zakázaná hodnota

Tabulka 3: Hodnoty bitrate

1.3. Velikost rámce

Z hlavičky rámce načteme hodnotu datového toku (bitrate), vzorkovací frekvenci (SampleRate) a doplnění (Padding) a použijeme následující vzorec pro určení velikosti rámce:
FrameSize = (144 * BitRate) / SampleRate + Padding
Příklad:
BitRate = 128000, SampleRate=44100, Padding=0
FrameSize = (144*128000) / 44100 + 0 = 417 B

1.4. MPEG Audio Tag MP3v1

K popisu MPEG audio souboru se používá tag. Obsahuje informace o umělci, titulu, albu, roku vydání a žánru. Je přesně 128 bytů dlouhý a je umístěn na úplném konci MPEG audio souboru. Lze jej tedy získat pouhým načtením posledních 128 bytů souboru. Jeho struktura je uvedena v tabulce 1.4.. Seznam žánrů je uveden v tabulce 1.4.. Jakákoliv jiná hodnota je považována za neznámý žánr.

0Blues
1Classic Rock
2Country
3Dance
4Disco
5Funk
6Grunge
7Hip-Hop
8Jazz
9Metal
10New Age
11Oldies
12Other
13Pop
14R&B
15Rap
16Reggae
17Rock
18Techno
19Industrial
20Alternative
21Ska
22Death Metal
23Pranks
24Soundtrack
25Euro-Techno
26Ambient
27Trip-Hop
28Vocal
29Jazz+Funk
30Fusion
31Trance
32Classical
33Instrumental
34Acid
35House
36Game
37Sound Clip
38Gospel
39Noise
40AlternRock
41Bass
42Soul
43Punk
44Space
45Meditative
46Instrumental Pop
47Instrumental Rock
48Ethnic
49Gothic
50Darkwave
51Techno-Industrial
52Electronic
53Pop-Folk
54Eurodance
55Dream
56Southern Rock
57Comedy
58Cult
59Gangsta
60Top 40
61Christian Rap
62Pop/Funk
63Jungle
64Native American
65Cabaret
66New Wave
67Psychadelic
68Rave
69Showtunes
70Trailer
71Lo-Fi
72Tribal
73Acid Punk
74Acid Jazz
75Polka
76Retro
77Musical
78Rock&Roll
79Hard Rock

Tabulka 4: Seznam žánrů



délka [byte] pozice [byte] popis
3 0-2 Identifikace tagu. Musí obsahovat 'TAG', pokud tag existuje a je správný.
30 3-32 Titul (Title)
30 33-62 Umělec (Artist)
30 63-92 Album (Album)
4 93-96 Rok (Year)
30 97-126 Komentář (Comment)
1 127 Žánr (Genre)

Tabulka 5: Struktura TAGu


Predchozi
Converted by Selathco 0.91 on 21.06.2000 16:14
Dalsi