Forum: Mikrocontroller und Digitale Elektronik ARM Cortex - Audio encoding


von Tobi D. (fanti)


Lesenswert?

Hallo zusammen,

direkte Projektdetail gibt es bisher leider keine, da es im Moment nur 
darum geht zu schauen was machbar ist und wo die Stolpersteine bei der 
Programmierung mit M3/M4 Prozessoren liegen.

Jeder kennt doch diese Geburtstagskarten, die beim aufklappen einen Song 
abspielen oder ein Gedicht aufsagen.
So etwas würde ich gerne mit meinem Prozessor umsetzen, allerdings mit 
dem extra, dass ich selbst Texte draufsprechen kann.

Daten aufnehmen und ausgeben funktioniert gut. Leider ist der Speicher 
bei unkomprimierten Daten sehr schnell voll.

Ich suche nun nach einer Möglichkeit die Daten zu komprimieren.
ADPCM habe ich getestet, funktioniert, allerdings nur im Verhältnis 1:4 
.
Speex ebenfalls getestet, doch die Qualität ist extrem mies (kann aber 
auch an meiner Implementierung liegen).

Kennt jemand weitere Komprimierungsverfahren, die ich testen könnte?
Am Besten auch gleich noch mit fertigen Beispielen?

Hat jemand in diese richtung schon Erfahrungen sammeln können, würde 
mich interessieren?

Solange es ein M3/M4 ist sollte es ja möglich sein den Code für 
beliebige Prozessorhersteller anzupassen, ansonsten auch gerne direkt 
was für die STM32er^^

von Frank K. (fchk)


Lesenswert?

Das hier ist zwar für PIC32 (MIPS), aber vielleicht trotzdem 
interessant:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en551513

fchk

von holger (Gast)


Lesenswert?

>Kennt jemand weitere Komprimierungsverfahren, die ich testen könnte?

Rede schneller;)

von Tobi D. (fanti)


Lesenswert?

holger schrieb:
>>Kennt jemand weitere Komprimierungsverfahren, die ich testen könnte?
>
> Rede schneller;)

ok, das ist eine Möglichkeit, aber ich hatte mir das irgendwie anders 
vorgestellt. XD

MP3 wäre toll, allerdings ist überall nur ein "Decoder" zu finden. 
Möglicherweise gibt es da Probleme mit der Performance oder 
irgendwelchen Lizenzen.
Ich könnte zwar die Daten aufnehmen, am PC in MP3 wandeln und dann am 
Controller abspielen, aber das ist doch irgendwie von hinten durch den 
Kopf ins Auge...

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

@Frank,
sowas von falsche Richtung, das ist der Decoder...

Also wenn du wirklich Mp3 encoden willst dann guck doch mal ind ne 
Sourcecode vom lame mp3 encoder:
http://sourceforge.net/projects/lame/files/lame/3.99/

Is nurnoch die Frage ob der ARM shcnell genug ist ;)

von Frank K. (fchk)


Lesenswert?

Tobi D. schrieb:

> MP3 wäre toll, allerdings ist überall nur ein "Decoder" zu finden.
> Möglicherweise gibt es da Probleme mit der Performance oder
> irgendwelchen Lizenzen.

Bei MP3 ist die Codierung eine Zehnerpotenz aufwändiger als die 
Decodierung. Das ist hauptsächlich für Playback gedacht.

> Ich könnte zwar die Daten aufnehmen, am PC in MP3 wandeln und dann am
> Controller abspielen, aber das ist doch irgendwie von hinten durch den
> Kopf ins Auge...

So machen es alle.

Du könntest auch einen der GSM-Codecs verwenden, vorzugsweise AMR-WB bzw 
G.722.2:

http://www.itu.int/rec/T-REC-G.722.2/en

Viel Spaß bei der Implementation

fchk

von Arc N. (arc)


Lesenswert?

http://mp3-tech.org/programmer/encoding.html
(nicht wundern, die Seite gehört anscheinend so...)
Da gibt's u.a. den Shine-Encoder für ARM

von Tobi D. (fanti)


Lesenswert?

Arc Net schrieb:
> http://mp3-tech.org/programmer/encoding.html
> (nicht wundern, die Seite gehört anscheinend so...)
> Da gibt's u.a. den Shine-Encoder für ARM

Das ist interessant, danke für den Tipp.
Daran werde ich mich versuchen, auch wenn ich auf eine einfachere Lösung 
a la ADPCM gehofft hatte :)

von Jim M. (turboj)


Lesenswert?

Tobi D. schrieb:
> Daten aufnehmen und ausgeben funktioniert gut. Leider ist der Speicher
> bei unkomprimierten Daten sehr schnell voll.

Ich würde einfach eine MicroSD Karte via SPI benutzen. Die ist für 
unkomprimiertes WAV schnell genug.

von Moritz M. (avrprogger)


Lesenswert?

STM32F4; Zum Discovery Kit gibt es sogar ein Bsp. für das, was du 
suchst.

Moritz

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.