www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Audio Dekoder für AVR


Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat schonmal jemand irgendeinen Audio Dekoder für kleine AVRs
(irgendwelche Tinys, z.B. Tiny15 o.ä.) geschrieben ?
Es gibt eine ADPCM Application Note (AVR336), die aber nur für große
AVRs geeignet ist, da ziemlich viel CPU Leistung benötigt wird (16MHz
für 8kHz Samplerate).
Im Internet habe ich diese Schaltung gefunden, aber leider sind keine
genaueren Informationen dabei:
http://www.kick4.net/tkk/0310tomohara.pdf
Ansonsten ist es aber genau das was ich suche: Mit einem 8Pin AVR und
einem großen EEPROM einen Audioplayer bauen um Geräusche abzuspielen.
Mit einem 24C1024 kommt man auf 64s...

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man einfach nur 8-Bit-Samples abspielt, braucht man keinerlei
Decoder, nur deutlich mehr Speicher (halt 8000 Byte/sekunde, also knapp
ein halbes Megabyte für eine Minute Spieldauer). Alternativ empfiehlt
sich ein Hardware-MP3-Decoder, da wäre die Kompressionsrate auch
deutlich höher als bei ADPCM, das, wenn ich mich recht irre*, gerade
mal Faktor 2 hinbekommt.
Statt eines EEPROMs sollte besser eine Flash-Speicherkarte verwendet
werden, die lässt sich dann leicht mit einem PC und Kartenleser**
programmieren, kostet nicht sonderlich viel und ist sehr viel größer
als herkömmliche EEPROMs. SD- oder MM-Karten benötigen auch nicht
sonderlich viele Anschlüsse.



*) Will ich nicht ausschließen. Soweit ich mich erinnere, wird ADPCM
bei DECT verwendet, das mit einer Datenrate von 32 kBit/sec arbeitet
und die gleiche effektive Audioqualität wie ISDN erzielt.
**) Klingt widersprüchlich, ist aber so.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist mir schon klar, wenn ich viel Speicher brauchen würde, würde ich
ne 2,5" HDD nehmen, mit 0,7" Bauhöhe, die hat 100GB...

Ich möchte das ganze kompakt haben, daher dachte ich an die beiden SO8
ICs.
ADPCM kann auch höhere Kompression haben, wenn man nicht 4bit sondern
nur 2 oder 3 bit verwendet. mp3 Dekoder usw. ist zu groß und kostet
Geld, ein EEPROM (oder Dataflash) + ein ATtiny sollte für eine einfache
Kompression genügend Rechenleistung haben.
Selbst wenn man so die Daten nur auf 50% komprimieren kann, ist es
immerhin schon eine Ersparnis.

PS: Hat schonmal jemand versucht einen einfachen mp3 Dekoder (oder
sowas ähnliches) in einen AVR zu paken ?
Von der Rechenleistung sollte es möglich sein, wenn man bei der
Qualität nicht gerade Hifi haben möchte.

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mp3 in software in einem AVR dekodieren? Du meinst der hat dazu genug
Rechenleistung, glaub ich erstmal nicht...

Autor: Hannes Hering (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also das mit MP3 in Software dekodieren bekommt ja nichtmal ein 486er
mit 80 MHz richtig hin und der hat Multiplikationsbefehle sowie ne FPU
... mit nem DSP schon eher, allerdings ... naya ... umständlich! ;)
lieber für ca. 12-15 € nen fertigen kaufen!

Eine relativ einfache und schnelle Kodierung ist alaw oder ulaw ...
dabei wird eine logarithmische Darstellung der Audiodaten verwendet ...
so lassen sich 16-Bit samples in 8 Bit pressen ... allerdings
verlustbehaftet. Der Vorteil dabei ist, das man trotzdem eine Hohe
Dynamik zur Verfügung hat und leisere Geräusche detailgetreuer
wiedergegeben werden ...

MFG

Hannes

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ja nicht gesagt, dass es echtes mp3 sein muss. Es reicht schon
irgendein anderes, mp3 ähnliches Format. Wenn die Bitrate klein genug
gewählt ist, wird das ganze um einiges einfacher.

Mich erstaunt es immer wieder, was irgendjemand in einen AVR packt, da
würde mich ein einfacher mp3 Dekoder nicht wundern...

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dir eine MMC nicht kompakt genug ist, dann weiß ich auch nicht ...

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, dann vergesst einfach den Verwendungszweck:

Ich suche einen ADPCM Dekoder oder irgendwas anderes was problemlos auf
einem AVR läuft, und mehr oder weniger gute Qualität liefert, um mit
wenig Speicherplatz viele Audiodaten abzuspielen.

Der in der AVR336 AppNote beschriebene ADPCM Codec ist extrem langsam.
Ich hatte mal ein C Programm für einen M16C auf AVR Assembler
umgeschrieben, da lief in Echtzeit sowohl der En als auch Dekoder (nur
da war irgendwo ein Fehler, der Dekoder hat die Tabellen nie
gewechselt, und alles war ganz leise).

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich ist das auch eine Aufgabe für einen DSP, nicht für einen MC.
Das kostet natürlich ein paar Euro, dafür hat eine gängige
Entwicklungsumgebung solcherlei Routinen bereits mit dabei.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.