MP3 im Detail

Datenkomprimierte Musik wie z.B. MP3, OGG, AAC und Konsorten ist für den Musikliebhaber ein zweischneidiges Schwert: aus Qualitätsgründen lehnt er auf solche Art "kastrierte" Musik natürlich ab - aber unterwegs lässt er sich gerne mal vom kleinen MP3-PLayern oder iPods mit Musik versorgen. Und auch im Auto ist der MP3-fähige CD-Player heutzutage deutlich häufiger anzutreffen als der CD-Wechsler.

Das Rippen, kodieren und "aufhübschen" (ID3-Tags, Cover) kostet viel Zeit, die man natürlich "richtig" investieren will. Neben einer subjektiven Beurteilung kann man der Problematik auch mit objektiven Kriterien zu Leibe rücken, in dem man z.B. das komprimierte Musikstück (dekodieren) wieder zurückwandelt (enkodieren) und das Original mit der de- und wieder enkodierten Version auf digitaler Ebene vergleicht (Pegelstatistik, spektrale Analyse etc.). Dabei sind wir auf sehr interessante Erkenntnisse gestoßen, die wir euch nicht vorenthalten wollen.




Datenkomprimierte Musik wie z.B. MP3, OGG, AAC und Konsorten ist für den Musikliebhaber ein zweischneidiges Schwert: aus Qualitätsgründen lehnt er auf solche Art "kastrierte" Musik natürlich ab - aber unterwegs lässt er sich gerne mal vom kleinen MP3-PLayern oder iPods mit Musik versorgen. Und auch im Auto ist der MP3-fähige CD-Player heutzutage deutlich häufiger anzutreffen als der CD-Wechsler.

Die Konvertierung einer CD in z.B. MP3-Dateien kostet Zeit. Vor allem wenn man sich die Mühe macht die Musik auch mit sogenannten ID3-Tags zu versehen in denen z.B. das Musikgenre, der Künstler, der Titel des Stücks, der Titel der CD etc. angegeben ist. Ansonsten findet man sich ja auf seinem 4 GB MP3-PLayer und seinen bis zu 1000 darauf gespeicherten Titeln gar nicht mehr zurecht. Ganz Fleißige scannen auch noch das Cover ein - das Auge hört und sucht schließlich mit. Auch wenn es dafür schöne Tools und Online-Datenbanken gibt: es kostet ca. 15-20 Minuten pro CD (inkl. Rippen).

Bei jeder verlustbehafteten Datenkompression gibt es einige Stellschrauben, mit denen man das Verhältnis zwischen Kompressionsfaktor (es passt mehr Musik auf einen Datenträger) und Qualitätsverlust (es klingt ggf. hörbar schlechter) beeinflussen kann. Da möchte man natürlich den "richtige" Kompromiss finden: eine möglichst hohe Datenreduktion die man gerade eben noch nicht als Klangverschlechterung wahrnimmt.

Andererseits möchte man aber auch eine Datenkompression wählen, die auf möglichst vielen Geräten auch abgespielt werden kann. Was macht man in solchen Fällen:

 

  1. man wählt ein oder mehrere Teststücke aus,
  2. man wählt ein Programm zu kodieren und dekodieren aus,
  3. wandelt sie in mehreren Qualitätsstufen um,
  4. probiert aus, welche Qualitätsstufen überhaupt abgespielt werden können,
  5. und beurteilt subjektiv, ob man einen Unterschied hört
Manche setzen noch einen drauf und gehen messtechnisch an die Sache ran in dem sie einen Vorher-/Nachher-Vergleich machen. Da kann man z.B. die gerade kodierte MP3-Datei wieder in eine WAV-Datei zurückwandeln und z.B. statistisch (energetischer Mittelwert, Max-/Min-Wert etc.) oder spektral untersuchen.

Da wir kürzlich eine Anfrage hatten welche MP3-Formate denn der von uns vertriebene CD-Player XTZ CD-100 wiedergeben kann und ich damit beginnen wollte, meine bereits umgewandelten MP3-Dateien nachträglich mit ID3-Tags und Covern zu versehen habe ich mich intensiv mit dieser Problematik auseinander gesetzt.

 


 

Der "Versuchsaufbau"

  1. Als Teststück haben wir aus der neuen Yello-CD Touch Yello das 4. Stück "Bostich (Reflected)" ausgewählt. Dort kommen sehr hohe und sehr tiefe Töne vor, es klingt sehr dynamisch und hat jede Menge Panorama-Spielereien zu bieten. Bei der objektiven Analyse bestätigt sich, dass das Stück kaum dynamikkomprimiert (DR10) ist und überdurchschnittlich viel hoch- und tieffrequente Energie enthält:

     

  2. Als "Programm" zum Kodieren und dekodieren von MP3-Dateien haben wir das weit verbreitete LAME in der aktuellen 32bit-Version 3.98 verwendet. Als Bedienoberfläche verwenden wir RazorLame, da dieses Programm so nett ist die aktuell an Lame gesendete Befehlszeile mit allen Kommandozeilenparametern zu "verraten". So kann man genau sehen was man macht ohne dass man LAME tatsächlich auf der Kommandozeilenebene nutzen muss.

     

  3. Es wurden insgesamt 14 verschiedene Komprimierungsarten untersucht:

    LAME-KommandozeileWAV-PegelBitrate
    (Mittelwert)
    [kBit/s]
    Bitrate
    (Maximum)
    [kBit/s]
    StereoResamplingQualitätFilterung
    -b 128 -m s -h100%128128Normalneinhoch (q=2)auto
    -b 128 -m s -h --abr 128 -B 256100%128256Normalneinhoch (q=2)auto
    -b 96 -m s -h100%9696Normal32000 Hzhoch (q=2)auto
    -b 96 -m s -h --abr 96 -B 192100%96192Normal32000 Hzhoch (q=2)auto
    -b 64 -m s -h100%6464Kompromiss24000 Hzhoch (q=2)auto
    -b 64 -m j -h --abr 64 -B 128100%64128Kompromiss24000 Hzhoch (q=2)auto
    -b 192 -m s -h100%192192Normalneinhoch (q=2)auto
    -b 192 -m s -h --abr 192 -B 320100%192320Normalneinhoch (q=2)auto
    -b 256 -m s -h100%256256Normalneinhoch (q=2)auto
    -b 256 -m s -h --abr 256 -B 320100%256320Normalneinhoch (q=2)auto
    -b 320 -m s -h100%320320Normalneinhoch (q=2)auto
    -b 128 -m s -h50%128128Normalneinhoch (q=2)auto
    -b 128 -m s -h -k50%128128Normalneinhoch (q=2)nein
    -b 128 -m s -h -q 0 -k50%128128Normalneinhöchste (q=0)nein

    Hinweis: der Parameter "Filterung" steht normalerweise auf automatisch (was immer das bedeutet). Um den Effekt zu verstehen wurden die beiden letzten Varianten mit explizit ausgeschaltetem Filter (Option -k) kodiert.

     

Bei der Rückwandlung von MP3 nach WAV gibt es keine Einstellparameter (LAME-Option --decode). Die rückgewandelten MP3-Dateien wurden zunächst amplitudenmäßig mit dem Original verglichen (minimale/maximale Amplitude Min/Max), Mittelwert (Avg), energetischer Mittelwert (Rms)), . Dazu wurde das Programm WaveAnal.exe verwendet.

Danach wurde für jede Datei das mittlere Frequenzspektrum berechnet, und zwar mit dem Programm WaveAnalyzer.

Wie funktioniert WaveAnalyzer?
Es wird das Spektrum von vielen, sich teilweise überlappenden Teilstücken der Datei berechnet (FFT) und die Spektren dann energetisch gemittelt. Je größer die Teilstücke desto feiner ist die Frequenzauflösung, aber spektrale Spitzen gehen evtl. verloren. Wer genauer wissen will wie WaveAnalyzer vorgeht kann es im Bericht Musik "vergleichen" mit dem Waveanalyzer nachlesen (der erste graue Technik-Kasten kurz vor der Mitte des Artikels).

Da es uns um mittlere Energie ging wurden relativ großen Teilstücke von knapp 1.5 sec. gewählt. Es wurden pro Kanal nur die mittleren Energien ausgewertet sowie der Gesamtpegel in dB(lin) und dB(A)

Gehörrichtige Frequenzbewertung
Summiert man die Energie aller Frequenzen eines Frequenzspektrum erhält man einen Gesamtpegel in dB. Sofern keine Frequenzbewertung vorgenommen wurde wird dies häufig zur besseren Unterscheidung mit dB(lin) bezeichnet. Da der Mensch physikalisch gleich laute tiefe oder ganz hohe Töne weniger laut empfindet als Töne im mittleren Frequenzbereich macht es Sinn, das Frequenzspektrum entsprechend zu gewichten. Übliche Frequenzbewertungen sind die A- und B-Bewertung, die je nach Lautstärke das Hörempfinden besser nachbilden. Hier wurde die A-Bewertung verwendet, die für kleine und mittlere Lautstärken eine gute Näherung des subjektiven Empfindens darstellt.

Im Idealfall sollten alle Werte identisch mit dem Original sein, aber bei der Auswertung gab es eine handfeste Überraschung:


Linker KanalRechter Kanal
NrLAME-KommandozeileMin@ sec.Max@ sec.AvgRmsdB(lin)dB(A)Min@ sec.Max@ sec.AvgRmsdB(lin)dB(A)
1WAV (original) -97.61%119.982 97.65%56.225 0.09%16.95% -12.38-18.98 -97.57%182.591 97.6%159.33 0.08%17.28% -12.21-18.26
2 -b 128 -m s -h -100%53.292 100%45.026 0.07%16.16% -12.8-19.34 -100%45.9 100%35.895 0.08%16.51% -12.61-18.6
3 -b 128 -m s -h --abr 128 -B 256 -100%59.269 100%45.026 0.08%16.18% -12.79-19.34 -100%45.681 100%52.754 0.08%16.5% -12.62-18.61
4 -b 96 -m s -h -100%56.777 100%45.026 0.08%16.15% -12.79-19.32 -100%55.063 100%45.026 0.08%16.5% -12.61-18.59
5 -b 96 -m s -h --abr 96 -B 192 -100%32.643 100%45.026 0.08%16.15% -12.8-19.32 -100%45.9 100%45.026 0.06%16.5% -12.61-18.6
6 -b 64 -m s -h -100%60.147 100%82.368 0.08%16.12% -12.82-19.34 -100%59.594 100%72.3 0.07%16.44% -12.65-18.66
7 -b 64 -m j -h --abr 64 -B 128 -100%60.147 100%45.026 0.07%16.16% -12.8-19.31 -100%59.485 100%45.026 0.07%16.39% -12.68-18.74
8 -b 192 -m s -h -100%86.287 100%45.026 0.09%16.45% -12.64-19.21 -100%45.681 100%72.3 0.08%16.78% -12.47-18.49
9 -b 192 -m s -h --abr 192 -B 320 -100%56.117 100%45.026 0.09%16.45% -12.64-19.22 -100%72.3 100%72.329 0.08%16.78% -12.47-18.5
10 -b 256 -m s -h -100%65.417 100%45.026 0.09%16.95% -12.38-18.97 -100%59.701 100%72.3 0.09%17.29% -12.21-18.25
11 -b 256 -m s -h --abr 256 -B 320 -100% 65.417 100% 45.026 0.09% 16.95% -12.38 -18.97 -100% 65.417 100% 72.3 0.09% 17.29% -12.21 -18.25
12 -b 320 -m s -h -100%66.069 100%45.026 0.09%16.95% -12.38-18.97 -100%72.3 100%68.895 0.09%17.29% -12.21-18.26
13WAV (halbe Amplitude) -48.8%119.982 48.83%56.225 0.04%8.47% -18.41-25 -48.79%182.591 48.8%159.33 0.04%8.64% -18.23-24.28
14 -b 128 -m s -h -56.24%183.242 64.5%138.025 0.04%8.09% -18.82-25.35 -61.32%109.548 57.08%121.002 0.04%8.25% -18.64-24.63
15 -b 128 -m s -h -k -56.24%183.242 64.5%138.025 0.04%8.09% -18.82-25.35 -61.32%109.548 57.08%121.002 0.04%8.25% -18.64-24.63
16 -b 128 -m s -h -q 0 -k -60.18%127.589 57.71%186.72 0.04%8.06% -18.85-25.44 -64.81%196.292 57.22%204.114 0.04%8.23% -18.67-24.7

 


Was fällt bei all diesen Zahlen auf?

 

  • Die MP3-Dateien der originalen WAV-Datei haben alle auf beiden Kanälen eine Maximalamplitude von 100.00%, obwohl das Original nur eine Maximalamplitude von 97.65% hatte
  • Diese Maximalamplitude passiert bereits viel früher (Spalte @ sec.) als beim Original
  • Der Gesamtpegel dB(lin) bzw. dB(A) ist bei fast allen Umwandlungen ca. 0.4 dB kleiner als beim Original. Bei 192 kBit/s ist der Gesamtpegel "nur" um ca. 0.25 dB geringer, erst bei 256 oder 320 kBit/s stimmt der Gesamtpegel (die Maximalamplitude beträgt aber auch dort 100.00%).

Aus diesen Beobachtungen muss man schließen, dass es durch Filtervorgänge bei der MP3-Kodierung offensichtlich zu Überschwingern im Zeitbereich kommt (wie es für analoge Filter typisch ist, s. Musik verstehen mit GoldWave), die jedoch nicht durch eine entsprechende Pegelreduzierung aufgefangen werden. Stattdessen wird möglicherweise eine kurzfristige Übersteuerung billigend in Kauf genommen.

Um dies zu überprüfen wurde die WAV-Datei zunächst von der Amplitude halbiert (Nr. 13) und dann erneut in MP3 umgewandelt (Nr. 14-16). Dies wurde nur bei der "üblichen" Einstellung 128kBit/s überprüft, wobei dort noch der Einfluss der Schalter für Qualität (q) und Filterung (k) getrennt untersucht wurde:

 

  • Die MP3-Dateien Nr. 14-16 zeigen eine gegenüber dem Original (49%) deutlich höhere Maximalamplitude von bis zu 65%, die nun z.T. sogar später auftreten als im Original
  • Die Reduktion des Gesamtpegels von ca. 0.4 dB bleibt bestehen, ist also keine Folge der vorher noch aufgetretenen Übersteuerungen
  • Die Erhöhung der Wandlungsqualität (von q=2 auf die höchste Stufe q=0) und der Wegfall der automatischen Filterung bringt keine signifikante Verbesserung in den beiden obigen Kriterien

Die spektrale Analyse sieht im Detail so aus:

 

  • Die Bitraten 64, 96 und 128 kBit/s zeigen bereits im mittleren Spektrum kleinere Fluktuationen um +/- 0.2 dB und einen charakteristischen Anstieg im Tiefbassbereich von ca. 1 dB bei 20 Hz relativ zum um 0.4 dB abgesenkten Gesamtpegel
  • Die Bitraten 64, 96 und 128 kBit/s zeigen eine deutliche Absenkung der oberen Grenzfrequenz auf 10.6, 14.5 bzw. 16.1 kHz
Auch wenn man die Bitrate auf konstante 192, 256 oder 320 kBit/s erhöht ist die Maximalamplitude immer noch größer als 50% (max. 56.50, 56.51 bzw. 56.16%) und würde damit bei einer voll ausgesteuerten WAV-Datei nach wie vor zu kurzzeitigen Übersteuerungen führen.

Die Problematik ist bei stärker komprimierten WAV-Dateien noch größer, da dort die Filterung in der Regel zu einem stärkeren Überschwingen führt. Beim Titel Ey DJ von Culcha Candela (DR6) z.B. wäre die Maximalamplitude der amplitudenhalbierten Version statt 49.44% bei 128 kBit/s immerhin 80.29%!!! Auch hier bleiben übrigens wieder knapp 0.4 dB auf der Umwandlungsstrecke.

 

Und die Moral von der G'schicht

Zumindest per LAME MP3 datenreduzierte Musik zeigt - weitgehend unabhängig von der Bitrate - die unangenehme Eigenschaft, dass es bei "üblichen" Musikstücken zu kurzzeitigen Übersteuerungen kommt. Dies gilt offenbar umso mehr, je mehr die Musik dynamikkomprimiert ist. Um dies zu Vermeiden empfiehlt sich vor der Umwandlung eine Reduzierung der Lautstärke auf z.B. die Hälfte. Aus spektralen Gründen müsste dann eine Bitrate von 192 kBit/s ausreichend sein. Eine 1/12 Oktavanalyse zeigt dann eine Standardabweichung von nur noch +/- 0.03 dB und die obere Grenzfrequenz beträgt 17.8 kHz.

Dieselbe Strategie kann auf andere Formate wie z.B. OGG angewendet werden, es muss lediglich eine Rückwandlung zu WAV gegeben sein. Dann kann man schon mit dem kostenlosen Tool WaveAnal.exe die wesentlichen Größen kontrollieren. Das sollte man schon mal tun bevor man hunderte von Stunden in die Umwandlung seiner CD-Sammlung steckt. Mit oggdropXPd in der Einstellung Q=4 (ca. 128 kBit/s) gewandelt ergab sich übrigens ebenfalls ein Überschwingen im Zeitbereich in ähnlicher Höhe wie bei MP3.

Unter anderem hier hat sich auch schon mal jemand viel Gedanken um dieses Thema gemacht. Wie dort schon erwähnt ist letztlich die subjektive Beurteilung der Klangqualität eines Codecs das Maß aller Dinge. Wir haben es uns hier einfach gemacht und nur auf die objektiven Aspekte geschaut. Tatsache ist jedoch, dass ein Codec, der kurzzeitige Übersteuerungen billigend in Kauf nimmt, erhöhte Gefahr läuft subjektiv schlechter zu klingen.

Eine Alternative ist natürlich die verlustlose Komprimierung in das FLAC-Format, die allerdings nur eine Datenreduktion auf etwa 55% bringt. Leider wird dieses Format noch nicht von allzu vielen Abspielgeräten (z.B. CD-Spieler oder CD-Autoradio) unterstützt.