MP3

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

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