Forum: Compiler & IDEs Gibt es einen MP3 Decoder...


von Ralf (Gast)


Lesenswert?

... der nur als Software ohne weitere MP3 Hardware auskommt? Die Idee
wäre, z.B. einen uC der analoge Ein- und Ausgänge bestitzt zu
programmieren um MP3 hören zu können. Natürlich muss das decodieren
relativ schnell gehen (evt. mit einem ARM7 der bis zu 60 MHz getacktet
wird?

Oder ist das totaler Unsinn, da für so etwas ein DSP verwendet wird?
Gibt es auch schon fertige C-Sourcen für die Decodierung? Habe zwar
schon "gegoogelt" aber meiner Meinung nichts brauchbares gefunden.

P.S. Forensuche verwendet, nichts gefunden :-(

P.P.S. Wer Schreibfehler findet, darf sie behalten !

von Andreas S. (andreas) (Admin) Benutzerseite


Angehängte Dateien:

Lesenswert?

Es gibt einen fuer ARM optimierten Open Source Decoder von Real. Ich
habe mal ein Beispielprogramm fuer den LPC2106 gebastelt, siehe Anhang.
Das Dekodieren braucht ca. 30 MHz. Das eigentliche Problem an der Sache
ist es den Ton nach draussen zu bekommen; gaengige Audio-DACs lassen
sich nicht an den LPC2106 anschliessen da man I2S nicht mit dem
SPI-Port emulieren kann.

von Rufus T. Firefly (Gast)


Lesenswert?

Ja, sowas gibt es in der Tat:
http://www.underbit.com/products/mad/

Das besondere ist, daß dieser Decoder mit 32Bit-Integer-Arithmetik
auskommt. Eine ARM-Portierung soll dabei sein.

Viel Erfolg!

von Ralf (Gast)


Lesenswert?

@Rufus T. Firefly
Super! Danke für die Antworten. Ich verwende z.Zt. den LPC2138 der ja
interne AD/DA Wandler hat und auch bis 60 MHz taktbar ist. Ich werde
mir die Sourcen mal ansehen und es damit versuchen.


P.S. Wann gibt es endlich die edit Funktion???

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Bei der Nutzung der internen DACs nicht vergessen dass man im Gegensatz
zu Audio-DACs noch ein Rekonstruktionsfilter (Tiefpass) am Ausgang
braucht, sonst hat man hochfrequenten Dreck im Signal.

von Ralf (Gast)


Lesenswert?

@Andreas Schwarz
Also Tiefpass plus ein kleiner Verstärkerbaustein sollte doch reichen,
oder? Wie kann ich den benötigten Tiefpass berechnen (also von welcher
Grenzfrequenz sollte ich ausgehen (1MHz?))?

von Uwe Nagel (Gast)


Lesenswert?

Wieso 1MHz? Du hast eine Abtastfrequenz von vielleicht 48kHz (oder
44,1kHz) und eine maximale Signalfrequenz (Musik) von 20kHz. Das heisst
die ersten unerwünschten Mischprodukte treten bei 48-20= 28kHz auf und
die sollten weg! Natürlich möglichst ohne die 20kHz zu beeinflussen.
In einem CD-Spieler der allerersten Generation hab ich mal ein
Tiefpass 8. Ordnung mit 20kHz Eckfrequenz gefunden! Der filterte zwar
gut, erzeugte aber heftige Phasendrehungen im Audiobereich...
Deshalb wurden digitale Oversampling-Filter erfunden!

von Jonas H (Gast)


Lesenswert?

...gibt es so einen Code evt. auch für OggVorbis ??

von ejd (Gast)


Lesenswert?

> ...gibt es so einen Code evt. auch für OggVorbis ??

Ich würde sagen Tremor (http://www.xiph.org/ogg/vorbis/).

mfG,

                                ejd

von Ford (Gast)


Lesenswert?

Hi,

ich spiele gerade ein bischen mit einem ARM9 mit embedded Linux rum.

Ich habe nun auf der Benutzerebene die I2S Schnittstelle so
konfiguriert, dass ich WAV-Datein direkt an diese senden kann.
Als nächsten Schritt möchte ich gerne MP3 Dateien direkt an die I2S
Schnittstelle senden.

Hierzu bräuchte ich einen einfachen Decoder der mir Mp3 Dateien
einließt und die Daten direkt als PCM wieder ausgibt. Die meisten
Decoder geben die Daten direkt an einen Soundtreiber weiter. Da ich
noch nie einen Treiber programmiert habe. Möchte ich mich da auch nicht
gerade dranwagen, sondern die Daten vorerst direkt an I2S weitergeben.

Also ich würde quwasi den Quellcode für einen Mp3 zu PCM converter
benötigen. Weis jemand wo ich sowas finde.

Viele Grüße

Ford

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.