Übersteuerte mp3-Files
#1
Gelegentlich findet man im Internet mp3-Files, bei denen das Audio-Signal offenbar an einigen Stellen den Maximal-Pegel überschritten hatte und dort verzerrt wiedergegeben wird. Bei Betrachtung mit einem Audio-Editor erscheint das Signal da abgeschnitten.

Übersteuerte mp3-Files gibt es in zwei Varianten:
1. mit tatsächlich bereits geclippten Daten
2. mit noch völlig intakten Daten im File.

An Variante 1 ist nichts mehr zu reparieren.

Bei Variante 2 werden die Daten erst bei Standard-Wiedergabe im 16 Bit Integer Format über das Sound-Interface geclippt, was die typischen Verzerrungen erzeugt.
Das läßt sich jedoch verhindern dadurch, daß man die Daten vorher ausreichend runterskaliert. Das ist möglich, ohne die mp3-Codierung ansonsten zu verändern, also ohne zusätzliche Qualitäts-Verluste durch erneute Codierung, weil jeder Datenblock im File einen Skalierungsfaktor in Form eines Bytes enthält, über den der Ausgabe-Pegel der im Gleitkomma-Format rekostruierten Daten in ~1.5 dB Stufen verändert werden kann, bevor sie zur Standard-Ausgabe mit dem Sound-Interface in 16 Bit Integer umgewandelt werden.
Diese Faktoren benutzt zB das Programm mp3DirectCut zur "Normalisierung" der Daten.
Wenn man weiß, welchen Spitzenpegel das Audio-Signal in einem mp3-File vor Ausgabe annimmt, kann man durch Umskalierung um entsprechend viele 1.5 dB-Stufen ein Clippen bei der Ausgabe vermeiden.
mp3DirectCut schaut nur auf die 16 Bit Integer Daten der Standard-Ausgabe und zeigt deshalb bei einem übersteuerten mp3-File immer nur 0 dB an.
Den wahren Spitzenpegel kann man sich zB mit den beiden folgenden Methoden verschaffen:
1. den File in Audacity laden. Audacity tut das in der Default-Einstellung, wenn es möglich ist, im Gleitkomma-Format, also ohne die Umwandlung ins Integer-Format mit Clippen bei 0 dB.
Hat man in der englischen Version unter "View"->"Show clipping" letzteres aktiviert, werden die übersteuerten Bereiche rot markiert.
Geht man auf "Effect"->"Amplify", wird im auf-poppenden Window bei "Amplification (dB)" der Wert angezeigt, den man anwenden müßte, um den Spitzenpegel auf 0 dB zu bringen. Wenn der Spitzenpegel bei +6dB liegt, werden also -6 dB angezeigt.
Nun kann man Audacity wieder verlassen, denn Anwendung und Speicherung als mp3-File würden hier durch Multiplikation der Gleitkomma-Daten mit einem geeigneten Faktor und erneute mp3-Codierung erfolgen.
Stattdessen könnte man jetzt mp3DirectCut aufrufen, unter "Edit"->"Normalize" manuell mit dem Schieber -6 oder -7.5 dB einstellen und ausführen lassen. Das Programm ändert dann nur die Skalenfaktoren und speichert den mp3-File ansonsten unverändert ab. Danach kann man ihn ohne Clipp-Verzerrungen abspielen.

2. Wenn man das ffmpeg-Paket installiert hat (das benötigt zB Audacity, um weniger gebräuchliche Audio-Formate lesen & schreiben zu können), dann kann man mit folgendem Befehl Spitzenwerte (und anderes mehr) aller implementierten Formate anzeigen lassen (Windows):
<ffmpeg_Pfad>ffmpeg -y -i <File_Name> -af astats -f null NUL
Bequemerweise schreibt man das in einen Batch-File (*.bat) so
<ffmpeg_Pfad>ffmpeg -y -i %1 -af astats -f null NUL
, darin steht %1 für den File-Namen, den man dem Batch-File als (ersten) Parameter mitgibt.
ffmpeg wirft dann eine lange Liste von statistischen Daten zum File aus, in der auch der/die Spitzenpegel enthalten sind.

Man kann natürlich auch einen mp3-Decoder verwenden, der Gleitkomma-Daten ausgibt, oder zumindest deren Spitzen-pegel meldet.

Als Beispiel habe ich mit Audacity ein 8 s langes Stereo-Test-Signal erzeugt (mit 48 kS/s), das im einen Kanal einen 440 Hz Ton mit von 1 (=0dB) auf 0 abnehmender (normierter) Amplitude enthält, im zweiten Kanal einen 1 kHz Ton, der von 0 auf 1 ansteigt.
Dieses Signal habe ich zunächst als WAV-File mit 16 Bit Integer PCM Inhalt gespeichert. Dann habe ich das Signal um 6 dB verstärkt und als mp3-File exportiert mit den Einstellungen
Bit Rate Mode: Variable
Quality: 0 (Best Quality)
Variable Speed: Fast
Channel Mode: Joint Stereo
Unter "Variable Speed" gibt es auch noch "Standard". Damit wird stärkere Daten-Reduktion bei geringerer mittlerer Bitrate (und Qualität) erzwungen.
Alternativ dazu habe ich den WAV-File direkt mit Lame in mp3 gewandelt mit dem Befehl
<Lame_Pfad>lame -h -V0 --resample 48 --verbose --scale 2 <wav-file> <mp3-file>
Der Parameter "--scale 2" bewirkt, daß lame die Daten mit 2 multipliziert, also um ~6 dB anhebt, bevor sie zu mp3 gewandelt werden.
Der wav-File ist übrigens 1.501 kB groß,
der von lame erzeugte mp3-File hat 252 kB, mittlere Bitrate 255 kb/s
der von Audacity erzeugte mp3-File 191 kB, 193 kb/s (Standard: 134 kB, 136 kb/s).
Daran sieht man, daß Audacity doch nicht "Best Quality" erzeugt mit der "Fast" Einstellung.
Lädt man die beiden mp3-Files erneut in Audacity, wird nach der oben beschriebenen Methode für den selbst erzeugten File ein Spitzen-Pegel von knapp +0.2 dB angezeigt, für den mit Lame erzeugten File werden 6 dB gemeldet.
Der erste Sreenshot aus Audacity
   
zeigt oben den mit lame erzeugten mp3-File, darunter den mit Audacity erzeugten.
Nach "Verstärkung" beider Files mit -6.025 dB sieht das so aus
   
Unnötigerweise clippt Audacity offenbar die selbst erzeugten mp3-Files bei ~0dB.
Der obere File sieht aus wie der originale WAV-File (von der bei der mp3-Wandlung erzeugten Verzögerung am Anfang mal abgesehen).

Den mit lame erzeugten "übersteuerten" mp3-File kann man nach der oben beschriebenen Methode für unverzerrte Wiedergabe reparieren.
Ohne das klingen beide Versionen bei Wiedergabe mit dem Windows-Media-Player (oder einem anden Tool) gleich verzerrt.
Im Anhang befinden sich die beiden mp3-Files zum Ausprobieren.

Das gleiche Umskalierungsverfahren läßt sich bei AAC-Files anwenden.

MfG Kai


Angehängte Dateien
.zip   mp3Files.zip (Größe: 421.95 KB / Downloads: 2)
Zitieren
#2
hallo Kai !

Möchte mich an dieser Stelle mal bei Dir bedanken für deine stets ausführlichen und interssanten Beiträge!

So, dann mal sorry für -off topic- . Musste ich mal loswerden.
Zitieren
#3
Hey Kai,
ist schon mega, wie Du hier die ärgerliche mp3 Sache erklärst. Vielen Dank dafür !!!
Schon ausgedruckt (für mich).

LG
Mike
Zitieren
#4
Ich hab mich darüber auch schon öfters geärgert. Da hast Du einen schönen Titel gefunden und dann hört sich das an als hätte irgendeine Black Metal Band den Song durchgekaut. Auch wenn ich dann versuchte mit einem Audioeditor das File "herunterzunormalisieren" klang es zwar leiser aber dennoch irgendwie "kaputt".
Schade.
Zitieren
#5
In solchen Fällen lohnt es sich, mit den beschriebenen Methoden zu prüfen, ob der Spitzenpegel im File (vor Ausgabe im Integer PCM-Format) größer als 0 dB ist. Wenn dann Werte von einigen dB zu sehen sind, sollte man mal das Runterskalieren ausprobieren. Wenn der File nicht schon vorher geclippt war, kann man uU erreichen, daß die Übersteuerungsverzerrungen verschwinden oder deutlich kleiner werden.
Es scheint so zu sein, daß manche mp3-Erzeuger eine automatische Lautstärke-Anpassung verwenden, die nicht kontrolliert, ob der Spitzenpegel unter 0 dB bleibt. Wenn die Skalierung über den Lame-Parameter "scale" erzeugt wurde, hat man gute Chancen, den File-Inhalt mit der beschriebenen Runter-Skalierungs-Methode verzerrungsfrei hörbar zu machen.

MfG Kai
Zitieren
#6
Das ist eine gute Idee. Muss ich mal probieren.

Danke ! Smile
Zitieren
#7
Das paßt ganz gut zu einem Thread, den ich vor einiger Zeit in einem Nachbarforum gepostet habe und hier gerne 1:1 übernehme:

Oft schon hab ich davon gehört und wurde durch einen älteren Thread im Nachbarforum letztlich neugierig und habe mich da etwas eingelesen.
Plötzlich ging mir auch ein Licht auf, weshalb ich von Musik die mir eigentlich gut gefällt, doch recht schnell genervt bin und schnell leiser drehe.
Sollte genau dieses neuzeitliche Phänomen daran schuld sein, daß ich kaum mehr "neue" Musik höre, weil es mich extrem nervt?
Ich habe dann so einige Alben visualisiert, die mir zwar musikalisch gut gefallen, mich aber ungewohnt schnell ermüden.
Das Ergebnis ist schlichtweg erschreckend - das ist nur noch ein Brei, keinerlei Dynamik, nichts mehr was Musik für mich eigentlich ausmacht.
Auch geht es nahezu durch alle Sparten (zumindest die ich so höre).
Hier eine Seite mit vielen Alben und deren Dynamic-Ranges

Ebenfalls in diesem Thread ist von dem Tool "ReLife" von Terry West die Rede, welches wie ein negativer Kompressor arbeitet.
Ja und das Tool verrichtet seine Arbeit wirklich sehr gut!
Klar darf man keine Wunder erwarten, aber es ist wirklich erstaunlich was da machbar ist.

Hier ein Song aus dem Jahr 2007 mit einer bescheidenen Dynamik von 4dB

   

Das Peakmeter rechts klebt am Anschlag:

   

Dann kommt das Plugin zum Einsatz:

   

Danach sieht das so aus:

   

Und nach dem Normalisieren schließlich so - das Peakmeter bewegt sich wieder:

   

Ich habe sehr gute Erfahrungen mit dem Tool (mittlerweile gekauft und lizensiert) gemacht und mich würde interessieren was du Kai davon hälst.
Viele Grüße
Jörg
Zitieren
#8
Sorry, will ja nicht meckern, aber das Bild sieht nach enormer Klangverdichtung (Kompremierung) aus.
So etwas senden gerne private selbsternannte "Hitradios", wo jede Dynamik schon abhanden gekommen ist!

R.
Zitieren
#9
Hallo Jörg,

das Tool ReLife kannte ich bislang nicht. Muß ich mir also erstmal ansehen.
An den Bildern kann man nicht erkennen, ob der File intern noch Signal oberhalb 32767 und unterhalb -32768 (Clipp-Grenze bzw 0 dB) hat.
Deshalb ist auch nicht klar, ob ReLife das durch Runterskalieren wieder zugänglich macht und dadurch andernfalls entstehende Clipp-Verzerrungen vermeidet, oder ob es nur den Bereich unterhalb 0 dB expandiert. Man muß sich darüber im klaren sein, daß das zwar nützlich/gefällig sein kann, aber auch nicht grantiert, daß man etwas Original-ähnliches wieder-bekommt. Denn bei jedem Kompressor und Expander gehen wesentlich in das Verhalten die eingestellten Zeitkonstanten für Ansprechen und Erholen ein, komplexere Algorithmen verwenden insbesondere für den Erholvorgang uU Pegel-abhängig mehr als eine Zeitkonstante. Daraus kann man erahnen, daß es nicht leicht ist, dem Expander ohne Informationen über den Kompresser und die Art der Pegelmessung (RMS oder Peak oder eine Mischung davon) ein komplementäres Verhalten zum Kompressor zu geben. In der Praxis wird das dann wohl eher ein empirisches Einstellen in der Art eines "Geschmacks"-Steller sein.
Der Erfolg hängt auch davon ab, ob "nur" Kompressions-Verhalten oder auch Limiter-Verhalten vorlag. Wenn unterschiedliche Eingangs-Pegel auf den gleichen Ausgangs-Pegel abgebildet werden (Limiter-Verhalten (bei schneller Reaktion) bzw AGC (bei langsamer Reaktion) genannt), können die originalen Pegel-Verhältnisse nicht wiederhergestellt werden. Es kann nur das expandiert werden, was noch Dynamik hat.
Bei den Kabel-Programmen, die bei mir ankommen, habe ich die schlimmste Kompression und höchsten Pegel (wenn ich mich recht entsinne) bei JAM-FM und "Radio-Paloma" gesehen und gehört, dazu noch ein Sound-Processing, daß den Klang "anfettet". Während bei den meisten Programmen der Audio-Pegel am S/PDIF Ausgang deutlich unter 0 dB bleibt (DLF erreicht zB selten Spitzen von -5,x dB), sodaß man für digitale Aufnahmen den DVB-C Empfänger tunlichst auf Maximal-Pegel einstellt, um keine dBs zu "verschenken", mußte man bei diesen beiden Programmen für Test-Aufnahmen oder Messungen des Audio-Spektrums den Pegel deutlich herabsetzen, weil sonst der S/PDIF Ausgang um einige dB übersteuert war und entsprechende Verzerrungen auftraten.
Leider ist es so, daß auch die "ARD"-Hörfunk-Programme Kompression im Sende-Processing anwenden. Manche mehr (DLF), manche weniger (zB WDR 3). Der DLF hat leider seine Processing so eingestellt, wie es für Nachrichten-Sendungen beim Anhören in lauter Umgebung (Auto, Baustelle,...) nützlich sein mag (starke Kompression und Limiter-Verhalten). Das ist für anspruchsvolle Musik (Klassik, Jazz), Hörspiele garnicht geeignet, denn dadurch wird die vom Künstler beabsichtigte Dynamik reduziert bis vernichtet. Die Geräte. mit denen das Processing durchgeführt wird, sind eigentlich Rechner, die man so prgrammieren könnte, daß abhängig von der Art einer Sendung und der Tageszeit das Processing angepaßt/optimiert werden könnte. Wird daber bislang nicht gemacht. Man hat mal was beschlossen und als gut verabschiedet und nun wagt niemand mehr, daran etwa zu verändern. Diesbezüglich geht es da wohl wie auf einer Behörde zu. Nur die richtigen Leute und Gremien dürfen, meist sind das nicht die "technisch verständigen".
Ich war schon mal kurz davor, Deutschlandradio per EMail aufzufordern, alle anspruchsvollen Musiksendungen (auch die Rock-Musik-Sendungen) und Hörspiele vom DLF zu DLF-Kultur zu verlagern, wo nicht so aggressiv komprimiert wird, und den DLF auf Nachrichten und Informations-Sendungen zu spezialiseren, wo der Limiter keinen Schaden anrichtet.
Da ich aber schon einige Male erlebt habe, daß auf eine EMail an den Hörerservice überhaupt nicht reagiert wurde, hab ich es noch nicht getan.
Deshalb noch mal der Tip, wenn man beim DLF Musik gehört hat, die gefiel, sollte man schauen, ob es die Sendung in der Mediathek oder dem Online-Angebot von Deutschlandradio zum "Nachhören" gibt. Diese Versionen sind nicht mit dem Sende-Processing bearbeitet worden, haben deshalb noch viel Dynamik (teils mehr, als einem lieb ist, zB lautere Moderation als Musik). Da findet sich auch bislang immer ein Weg, statt sich das tatsächlich in Realtime anzuhören und mitzuschneiden, den File "ratz-fatz" down-zu-loaden.
Ähnliche Angebote gibt es bei BR-Klassik (auch Jazz), RBB, teils WDR. Leider fast garnicht beim NDR. Bei manchen Anbietern sind die Sendungen nur wenige Tage zugänglich, bei anderen Monate-lang. Nutzlich ist auch die ARD-Mediathek mit vielen Musik-Sendungen. Für Linux gibt es eine spezielle Applikation namens "MediathekView", die den Zugriff auf die nötigen Download-URLs ermöglicht, was in der ARD-Mediathek und den Sendern selbst meist nicht unterstützt wird.

MfG Kai
Zitieren
#10
Baruse,'index.php?page=Thread&postID=246739#post246739 schrieb:"ReLife" von Terry West die Rede, welches wie ein negativer Kompressor arbeitet.
Inzischen hab ich mal nach ReLife recherchiert.
In anderen Kommentaren im Netz ist auch von Re-Expander oder Anti-Kompressor die Rede, beim Hersteller "Terry West" aber garnicht.
Da heißt es:
"Bring back life to a heavy clipped audiofile.
Revolutionary way to recover transients and lost peaks. "
und
"Three peak restore algos. "
Das bedeutet, daß das Programm versucht, geclippte Spitzen durch passende Ersatzsignale zu "reparieren". Dazu gibt es mathematische Verfahren, die aus dem Verlauf vor und hinter der abgeschnitten Stelle versuchen zu berechnen, was da fehlt. Das kann brauchbar funktionieren in dem Sinne, daß die harten Clipp-Verzerrungen verschwinden. Mit Dynamik-Wiederherstellung im eigentlichen Sinne hat das nichts zu tun. Es gehört zu den Verfahren der Restauration beschädigter Audio-Daten. Gibt es auch in professionellen Programmen.
Wenn permanent in hohem Grad geclippt wurde, fehlt immer mehr unbeschädigte Daten-Substanz, aus der das Fehlende geschätzt werden könnte. Dann bleibt eigentlich meist nur noch übrig, an die übrig gebliebenen Signal-Flanken vor und hinter der abgeschnittenen Signalspitze eine passende umgekehrte Parabel draufzusetzen. Das reduziert dann auch die schlimmsten Clipp-Verzerrungsprodukte im Hochton-Bereich, die sonst bei Lautsprecher-Wiedergabe mit hohem Pegel möglicherweise die Hochton-Kalotten beschädigen könnten. Wenn da noch echtes Hochton-Signal drin war, ist es natürlich weg. Es werden zwar die schlimmsten Oberwellen eines Signals mit Halbwelle ~ abgeschnittener Peak gedämpft, die Intermodulation dieses Signals mit dem vernichteten echten Hochtonanteil bleibt. Da die Übersteuerung oft mit dem Tief- oder Mitteltonanteil (bis etwa 400...500 Hz) passiert, wird der Hochtonanteil (niedrigere Pegel) damit multiplikativ moduliert. Das klingt ähnlich wie ein übersteuerter Cassetten-Recorder.

MfG Kai
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste