Az MP3 és AAC kódolás dinamikatartománya
- Egy fixpontos és egy lebegőpontos MP3 dekóder mérése
- Az MP3 és AAC kódolás dinamikatartományát meghatározó tényezők
- Dinamikatartomány számítása formula alapján
2018.08.10.
Általános tévhit, hogy az MP3 kódolás tönkreteszi a zene dinamikáját. Valójában pont az ellenkezője az igaz: MP3 és az AAC kódolással nagyobb dinamikatartomány érhető el, mint amivel a 24 bit-es PCM (tömörítetlen wav) fájlok rendelkeznek.
Az MPEG audió kódolás részben az ún. skálatényezők használatára épül, azaz a hangerő és a felbontás szétválasztására. A hangerő elválasztása a bitmélységtől (valamint az idő-frekvencia transzformáció) lehetővé teszi, hogy az egyes MP3 keretek alacsony jel-zaj viszonnyal (kb. 40 dB) rendelkezzenek, ugyanakkor megmaradjon a nagy dinamikatartomány. Az MP3 és AAC tömörítők a hangerőt az ún. global gain-ben tárolják, az eredeti hangerő visszaállítása pedig csak egy szorzás a dekódolóban. A global gain egyszerre betölti a globális kvantáló és globális skálatényező szerepét.
Természetesen ez egy nagyon leegyszerűsített nézet, és egy igazi kódoló / dekódoló rengeteg transzformációs lépést tartalmaz. Ráadásul a hangerő szintje és a global gain közötti kapcsolat 'közvetett', egy adott audio jelnél a global gain más értéket vesz fel különböző tömörítési szintek esetén.
Fixpontos MP3 dekóder teszt
MP3 tömörítő: | LAME 3.9.100. |
MP3 dekóder: | Audacity (MAD dekóder) |
Tesztjel: | szinusz (f = 1 kHz, -120 dBFS) |
Forrás wav: | 24 bit, dither: háromszög |
Dekóder kimenete: | 24 bit, dither: nincs |
FFT paraméterei: | 1024 pontos FFT, Hann-window, 0,4 sec átlaga |
Lebegőpontos MP3 dekóder teszt
MP3 tömörítő: | LAME 3.9.100. |
MP3 dekóder: | Foobar2000 (ffmpeg) |
Tesztjel: | szinusz (f = 1 kHz, -150 dBFS) |
Forrás wav: | 32 bit lebegőpontos, dither: nincs |
Dekóder kimenete: | 32 bit lebegőpontos, dither: nincs |
FFT paraméterei: | 1024 pontos FFT, Hann-window, 0,4 sec átlaga |
Az MP3 és AAC kódolás dinamikatartományát meghatározó tényezők
Az MP3 és AAC kódolás dinamikatartományát az alábbi tényezők befolyásolják:
- Kódoló:
- Forrásfájl dinamikatartománya (bitmélység, dither típusa)
- A tömörítő belső adattípusa (32 bites fixpontos vagy 32 bites lebegőpontos)
- Pszichoakusztikus modell (abszolút hallásküszöb)
- Dekóder:
- A dekóder kimeneti felbontása és az alkalmazott dither típusa
- Dekóder belső adattípusa (32 bites fixpontos vagy 32 bites lebegőpontos)
- Formátum korlátai:
- A global gain (globális kvantáló és skálatényező) dinamikatartománya
- Huffman-kód max. értéke (8206)
Néhány érdekesség:
- A dinamikatartomány független a bitrátától.
- Az MP3 tömörítők többsége (FhG, LAME) a 16 vagy 24 bites PCM fájlok eredeti dinamikatartományát érintetlenül hagyják.
- A 32 bites fixpontos kódolók és dekóderek maximális (elméleti) dinamikatartománya kb. 150 dB.
- A 32 bites lebegőpontos kódolók és dekóderek maximális dinamikatartománya kb. 200 dB.
A dinamikatartomány számítása
A következő számításnál csak a formátum korlátozásait vettem figyelembe, és figyelmen kívül hagytam a többit. A feladat egyszerű: meg kell határozni a legnagyobb és legkisebb numerikus értéket (MDCT értéket), amelyet az MP3 formátum ábrázolni képes. Ehhez a dekóderek által használt formulába be kell helyettesítenünk a minimális és maximális értékeket. Mivel a skálatényezők csak 'finomhangolást' végeznek az egyes részsávokban (kivéve MP3-nál az sfb21-et, ahol nincs skálatényező), ezért kihagytam őket a számításból.
Legnagyobb MDCT érték:
Global gain maximális értéke: 2048
Legmagasabb Huffman kód értéke: 8206
A legmagasabb MDCT érték = 2048 * 8206 (4/3) = 338978356
Legkisebb MDCT érték:
Global gain minimális értéke: 1,57009E-16
A legalacsonyabb Huffman kód értéke: 1 (a legalacsonyabb nem zéró egész szám)
Legkisebb MDCT érték = 1,57009E-16 * 1 (4/3) = 1,57009E-16
Az MP3 / AAC dinamikatartománya: 20 * log (MAX / MIN) = 486,685 dB!
Ez az eredmény tiszta szinuszos jelek esetében érvényes, anélkül, hogy bármilyen kikötésünk lenne a tömörítés minőségére. Meghatározott bitráta vagy minőség esetén a dinamikatartomány megegyezik a global gain dinamikatartományával, amely 382,5 dB (1,5 dB * 255).
Horváth Csaba
További cikkek az oldalon:
A két legnagyobb tévhit a digitális audió működéséről és a CD formátumról