MP3
Als MP3 bezeichnet man ein Datenformat nach ISO/IEC-Standard für komprimierte digitale Audiodaten. Mit MPEG Audio Layer-3 (MP3) ist es möglich, die Größe von Musikdateien je nach gewünschter Datenrate auf ca. 10% der ansonsten notwendigen Bruttodatenmenge zu reduzieren, ohne das Hörerlebnis für den durchschnittlichen Nutzer merklich zu trüben.
Das Verfahren wurde vom Fraunhoferinstitut entwickelt und patentiert. Das Patent in der ursprünglichen Version ist abgelaufen.
MP3/AAC-Decoder in Software
MP3 lässt sich schon auf kleinen ARM-Controllern in Software dekodieren. Das Helix Datatype-Projekt stellte einen MP3-Decoder mit optimierten ARM-Assemblerroutinen als Open Source zur Verfügung, der jedoch leider seit geraumer Zeit mehr erreichbar ist. Ein AT91SAM7 (ARM7TDMI) mit 55 MHz war damit ungefähr zur Hälfte ausgelastet, der RAM-Bedarf lag bei ca. 30-40 kB. Bei Helix fand man auch einen AAC ("MP4")-Decoder, der ähnlich viel RAM und nur wenig mehr Rechenleistung benötigt. Ein MP3/AAC-Player-Projekt basierend auf diesen Decodern wird auf der Seite ARM MP3/AAC Player vorgestellt.
Ein weiterer ARM-optimierter Decoder ist MAD, der auch MPEG Layer 1 und 2 decodieren kann, jedoch etwas höhere Ansprüche an Rechenleistung und RAM stellt.
Von ST findet man inzwischen eine komplette Audio-Bibliothek mit MP3-Coder und -Decoder (nur Binary), Filtern, Converter, Equalizer etc, incl. Dokumentation zur Verwendung auf STM32F4 und STM32F7. Für den Download ist eine Registrierung bei ST erforderlich: X-Cube-AUDIO
OGG Vorbis-Decoder in Software
Für OGG Vorbis existiert mit Tremor ein u.a. für ARM optimierter Decoder, der ohne Floating Point auskommt. Das Problem dieses Decoders ist, dass er intensiv Gebrauch von dynamischer Speicherverwaltung (malloc, calloc) macht. Dadurch ist der Speicherbedarf schlecht abschätzbar und es treten Speicherlecks und Fragmentierung auf. Der Rechenaufwand ist höher, als beim Helix-Decoder.
Die Version im offiziellen Repository wird nicht mehr gepflegt, als Startpunkt für eigene Entwicklungen sollte man besser den Tremor-Sourcecode aus dem Rockbox-SVN (svn://svn.rockbox.org/rockbox/trunk) nehmen.
Hardware-Decoder-ICs zum Anschluß an Mikrocontroller
Vergleich
Der VS1005 wird voraussichtlich Ogg en- und decoden können. Außerdem wird ein FM Tuner integriert sein.
Chip | VS1001k | VS1002d | VS1011b | VS1003 | VS1053b | MAS 3507D | MAS 3587F | STA013 | STA015 | STA016 |
---|---|---|---|---|---|---|---|---|---|---|
Hersteller | VLSI | VLSI | VLSI | VLSI | VLSI | Micronas | Micronas | ST Microelectronics | ST Microelectronics | ST Microelectronics |
Datasheet/Links | [1] | [2] | [3] | [4] | [5] | ? | [6] [7] | [8] [9] [10] | [11] | [12] |
Output | mit Stereo Earphone driver | mit Stereo Earphone driver | mit Stereo Earphone driver | mit Stereo Earphone driver | mit Stereo Earphone driver | I2S | mit Stereo Headphone Amplifier, S/PDIF-OUT | z. B. CS4334 | z. B. CS4340 | ? |
Input | SDI | Mic in (mono) | ? | Mic in, Line in (mono) | Mic in, Line in (stereo) | SPI | 2x S/PDIF-IN, I2S, SDI, Line-IN, Mic-IN | ? | ? | ? |
Käuflich | [13] VS 1001K-S 13,85€ | [14] MP3 Player Projekt (MOD-MP3) 29,90€ | [15] VS 1011E-S 13,05€ | [16] VS 1003B-L 19,30€ | [17] VS 1053B 17,85€ | 2006 Abgekündigt | [18] MAS 3587 F-QI 24,80€ | [19] STA 013 25,00€ | ? | ? |
Bus | SPI | SPI UART | SPI | SPI UART | SPI UART | I2C | I2C PIO | I2C | I2C SPI PIO | I2C |
Allgemeines | MP3 | MP3 | MP3 | MP3, WMA, MIDI | MP3, WMA, MIDI, OGG Vorbis, LC-AAC, HE-AAC | MP3 decodieren - DSP lässt sich aber durch SW-upload auch umprogrammieren | MP3 de- und encoden | MP3 | MP3 de- und encoden | ? |
VS1001
Hersteller: VLSI
Der VS1001 ist ein Hardware-MP3-Decoder mit einem seriellen SPI-Interface und einem eingebauten DA-Wandler. Die vielen VS10xx Varianten sind von der Ansteuerung her recht ähnlich. Siehe auch die Erklärung zur Ansteuerung eines Vs1002.
Update 2015: aktuell ist der VS1063, der z.B. bei Sparkfun erhältlich ist. Dort gibt es auch ein Breakout-Board dazu.
STA015
Hersteller: ST Microelectronics
Dieser IC vereint die Möglichkeit, MP3-Datenströme bis 320kBit zu dekodieren und digitale unkomprimierte Datenströme in das ADPCM Format zu verwandeln. Beim Decodieren erlaubt der STA015 den direkten Anschluss eines DAC durch ein serielles PCM-Interface. Die zu dekodierenden Daten erhält er via SPI und die Steuersignale via I2C. Falls er Daten komprimiert, stellt er diese an einem parallelen 8 Bit Port bereit. Dieser IC ist beispielsweise auf MP3-Playern verbaut, die an Siemens-Handys angeschlossen werden. Dort befindet sich auch ein CS4340 (DAC). Siehe Siemens MP3 Player.
MAS3587F
Die MP3 Decoder Chips von Micronas sind 2006 komplett abgekündigt worden.
Hersteller: Micronas
Distributor: z. B. Rutronik
Erhältlich im PLQFP64, PMQFP64 und PQFN64 Gehäuse.
Features
- MPEG 1/2 layer 3 Encoder mit bis zu 192kbit/s
- MPEG 1/2 layer 2 and layer 3 Decoder
- Auslesen des ID3 Tags
Schnittstellen
- 2 serielle (I2S und andere Formate)
- 1 parallele
- I²C zur Steuerung
- S/PDIF Ein- und Ausgang
sonstige Funktionen
- zwei DC/DC Konverter
- Batterie Monitor
- Mikrofonverstärker
- Stereo AD-Wandler
- Stereo DA-Wandler
- 16Ω Kopfhörer Verstärker
AT89C51SND1C
Eigenständiger Microcontroller inklusive MP3-Codec, USB, IDE, UART, etc. z. B. bei Farnell zu erwerben. Hinweis (Stand August 2009): bei Farnell nicht mehr verfügbar, da abgekündigt.
DFPlayer Mini
Extrem preiswertes, vollständiges Modul mit MicroSD-Karte, welches über Tasten oder UART gesteuert werden kann. Kann bei Reichelt gekauft werden, hier ist die Homepage.
- unterstützte Sampleraten: 8/11.025/12/16/22.05/24/32/44.1/48 kHz
- 24 Bit DAC Ausgang, 90dB Dynamikbereich, 85dB SNR
- Volle Unterstützung für FAT16, FAT32 Dateisystem, maximal 32GB SD-Karte, 32G USB Stick, 64MB NORFLASH
- verschiedene Kontrollmodi, I/O, Seriell, AD Taster
- Werbemodus Wartefunktion, die Wiedergabe kann angehalten werden und fortgesetzt, wenn die Werbeeinblendung vorbei ist.
- Audiodaten nach Ordnern sortiert, bis zu 100 Ordner, bis zu 255 Dateien pro Ordner
- 30 Stufen Lautstärkeeinstellung, 6 Studen Equalizereinstellung
Weblinks
- zahlreiche Beiträge zum Thema MP3 im Forum
- ...und in der Codesammlung
- Fraunhofer IIS - der "Geburtsort" von MP3
- Allgemeine Infos zu MP3
- MPEG Audio Frame Header by Konrad Windszus auf Codeproject.com (Infos und Beispielcode u.a. zur Schätzung der Spieldauer/Länge bei VBR Codierung. Windows MFC / C++)
- Eine CPU kann rechnen, aber ein DSP kann zaubern Vortrag vom 21.08.2014 im Hackspace Siegen (Hasi)