Datenreduzierende Audiocoder und MPEGplus-Projekt


Allgemeines zur irrelevanzreduzierenden Audiocodierung

Informationen, Software, Links zum MPEGplus-Projekt

Worum geht's:


Wie funktioniert's:


Psychoakustik-Beispiele:

Mithörschwelle eines Sinustons bei 1 kHz

Mithörschwelle von 4 überlagerten Sinustönen



Quantisierung:
 



  • Beispiel eines mittels Mithörschwelle gesteuerten Audiocoders:

  • Die untere Graphik zeigt zum einen das Kurzzeitspektrum eines Audiosignals (türkis) und zum anderen das von einem Audiocoder (MPEGplus bei 128 kbit/s) hinzugefügte Rauschen (pink).
    Es ist deutlich zu erkennen, daß ab ca. 17 kHz der Codierungsfehler gleich dem Signal ist, was nur bedeutet, daß diese Frequenzanteile als nicht wahrnehmbar eingestuft und somit nicht codiert worden sind. Weitherhin läßt sich leicht erkennen, daß die hinzugefügten Verzerrungen der Form des Signalspektrums folgen (ca. 6...9 dB Rauschabstand), bei tieferen Frequenzen aber gegenüber den Peaks im Signalspektrum sehr gering ausfallen. Dies ist in den niedrigeren erlaubten Verzerrungen bei sinusoiden Signalen begründet.
     
     
     

    Wer sich noch weitergehend über Psychoakustik informieren will, kann dies z.B. mit Hilfe des Buches "Psychoakustik" (E. Zwicker, Springer Verlag) tun. Darin enthalten sind unter anderem die mathematischen Zusammenhänge der auftretenden Effekte.
     

    Wer sich mehr über den biologischen Background des Hörvorgangs informieren möchte, sollte mal einen Blick auf folgende Seite werfen: http://www.ossnet.uni-oldenburg.de/~fiedlerm/psychoakustik.html (topic "Hörphysiologie"). Dort werden weitere Effekte (u.a Residuumeffekt, räumliche Wahrnehmung, etc.) und die Grenzen des Gehörs (hat meist sehr einleuchtende Gründe) erläutert.
     
     




    So lautet der vorläufige Arbeitsname für meinen Audiocoder. Der Encoder entstand während meines Studiums "als Hobby", wobei die Motivation die damals (etwa 1997-1998) schlechte Qualität von gängigen MP3-Encodern war. Mittlerweile hat der Encoder hat eine recht hohe Qualität erreicht, die sich mit der von MP3-Encodern messen kann.
    MPEGplus basiert auf dem Konzept der Teilbandzerlegung und gehört damit zu den sogenannten Subband-Codern.
    Die Besonderheit von MPEGplus ist die stark getunte Psychoakustik, welche einen reinen VBR-Betrieb (variable Bitrate) nahelegt. Ziel ist es, den Encoder mit default-Parametern zu einer transparenten Codierung jedweder Audiosignale zu bringen, wobei nur die Bitrate verwendet wird, welche für eine transparente Codierung notwendig ist.
     

    Allgemeines zu MPEGplus:


    Redundanzreduzierung (lossless coding):

    Irrelevanzreduzierung (Psychoakustisches Modell):


    Qualität und Performance:


     
    Download:

    Sources:


    Binaries:
     

    Windows:


    Logos:   logos.zip (ca. 78 KB)
     

    Programme mit MPEGplus-Unterstützung:


    Playback:

    Winamp via plugin (http://www.winamp.com)

    MediaJukebox via plugin (http://www.musicex.com/mediajukebox/)

    DeliPlayer via plugin (http://www.deliplayer.com)

    XMMS via plugin (http://sourceforge.net/projects/mpegplus/)
     

    Batch-Encoding:
     
    Easy CD-DA Extractor über externen Encoder (http://www.poikosoft.com)
    CDex über externen Encoder (http://www.cdex.n3.net/)
    EAC über externen Encoder (http://www.exactaudiocopy.de)
    Audiograbber über externen Encoder (http://www.audiograbber.de)

    Monkey's Audio über externen Encoder (http://www.monkeysaudio.com)

    MediaJukebox über externen Encoder (http://www.musicex.com/mediajukebox/)

    WinDAC32 über externen Encoder via Script

    MP+ Frontend von M.Spüler http://www.mpegplus.de

    FAQ:


     
    Wenn ich mp+/mpc Dateien bei eingeschaltetem Equalizer mit mp3 Dateien vergleiche, weisen die mp+/mpc Dateien einen starken Höhenverlust auf.
    Die Option "EQ controlled by WinAMP" sollte deaktiviert sein. WinAMPs eingebauter EQ führt zu einem erheblichen Höhenverlust ab 16 kHz und ist zusätzlich wesentlich CPU-intensiver als der mp+ eigene.
    Wenn ich mittels "-bw 22050" die Bandbreite auf 22,05 kHz einstelle, behält die mp+ Datei dennoch nicht die volle Bandbreite und "schneidet" typischerweise bei etwa 18,5 kHz ab.
    Die Verwendung von "-bw x" stellt nur die maximal berücksichtigte Bandbreite für die Codierung dar. Der Encoder speichert jedoch nur die Frequenzbereiche, die vom psychoakustischen Modell als wahrnehmbar eingestuft wurden. Die Begrenzung der Bandbreite arbeitet hierbei sehr umsichtig, so daß keine Unterschiede hörbar werden sollten. Aus diesem Grund kann die resultierende Bandbreite von der maximalen abweichen.
    Für die Codierung der gesamten Bandbreite ist der Parameter "-minSMR x" (x>0) oder einfach "-insane" (dieses Profil beinhaltet die Codierung der vollen Bandbreite) zu verwenden.
    Was ist die minimale und die maximale Bitrate von mp+/mpc?
    Der Encoder kann theoretisch bis zu 1,32 Mbit/sec verwenden. Dieser Fall tritt aber i.A. nicht auf. Die minimale Bitrate wird bei Nullsamples erreicht und liegt bei etwa 3,4 kbit/s im "standard"-Profil.
    Werden zukünftige Decoder/Plugins das derzeitige Bitstromformat weiter unterstützen?
    Ein klares Ja! Alle kommenden Versionen werden die derzeit existierenden Formate (SV4 bis SV7) sowie die Endung ".mp+" und ".mpc" unterstützen.
    Wird MPEGplus bis zur "final version" noch erhebliche Verbesserung der Qualität erfahren oder befindet sich der Encoder bereits im Endstadium der Entwicklung?
    Aus Sicht der Qualität befindet sich MPEGplus infinitesimal entfernt von der endgültigen Version. Die Änderungen bei einem Versionswechsel beziehen sich schwerpunktmäßig nicht mehr auf den Encoder-Kern, sondern vielmehr auf Dinge wie Debugging bei File-I/O und Parser.
    Der derzeitige Encoder hat bei diversen Tests durch mehrere User und unter Verwendung einiger hundert Musikstücke seine Zuverlässigkeit in Bezug auf die Qualität bewiesen. Einzig im direkten A/B-Vergleich über hochqualitative Kopfhörer und unter großer Höranstrengung lassen sich bei wenigen Stücken noch leichte Unterschiede zum Original hören. Bei keinem der encodierten Musikstücke wurden auffällige Artefakte beobachtet.
    Reicht die Verwendung des Profils "-standard" aus oder sollte ich besser "-xtreme" oder gar "-insane" verwenden?
    Der Encoder wurde im Profil "-standard", d.h. für default-Einstellungen, intensiv getestet und optimiert. In diesem Modus ist die Qualität der encodierten Stücke - trotz der Profilbezeichnung - sehr hoch!
    Das nächsthöhere Profil "-xtreme" verwendet leicht modifizierte Parameter, um die Quantisierungsfehler noch weiter unter die Wahrnehmungsschwelle zu drücken - es bietet also noch mehr Reserve.
    Im "-insane"-Profil werden die Parameter nahezu krankhaft extrem eingestellt. Der Encoder speichert in diesem Modus die volle Bandbreite und braucht wesentlich höhere Bitraten als im "-standard"- oder "-xtreme"-Modus. Die Speicherung der vollen Bandbreite hat keine psychoakustische Relevanz - der Mode wurde nur auf Wunsch einiger User implementiert.
    Fazit: Mit dem "-standard"-Profil ist man schon auf der sicheren Seite. Wer noch ein wenig weiter gehen will, benutzt "-xtreme". Die Verwendung von "-insane" ist generell nicht notwendig.
    Wenn ich das File Stück von meiner Lieblingsband.wav codieren will, bekomme ich die Fehlermeldung "ERROR: File not found!".
    Bei langen Dateinamen oder falls Sonderzeichen enthalten sind, sollten die Dateinamen mit Anführungszeichen angegeben werden: z.B. mppenc -v "Stück von meiner Lieblingsband.wav"


    Wird es ein Windows ACM-Codec für mp+/mpc geben?

    Die Programmierung eines ACM-Codecs ist generell nicht ausgeschlossen. Zur Zeit liegt der Schwerpunkt jedoch auf Debugging und Erweiterung von Features. Ein ACM-Codec ist low priority.
    Links:


    Disclaimer:


    Mit Urteil vom 12. Mai 1998 hat das Landgericht Hamburg entschieden, daß man durch die Ausbringung eines Links die Inhalte der gelinkten Seite ggf. mit zu verantworten hat. Dies kann - so das LG - nur dadurch verhindert werden, daß man sich ausdrücklich von diesen Inhalten distanziert.
     

    Für alle auf diesen Seiten aufgeführten Links gilt:

    Ich möchte ausdrücklich betonen, daß ich keinerlei Einfluß auf die Gestaltung und die Inhalte der gelinkten Seiten habe. Deshalb distanziere ich mich hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf meiner Homepage. Diese Erklärung gilt für alle auf meiner Homepage ausgebrachten Links und für alle Inhalte der Seiten, zu denen die Banner und Links führen.


    Andree.Buschmann@web.de