MPEG-1 Layer 3 or MP3 was standardized by ISO/IEC in 1993. The standard operates on 16/24-bit  mono or 2-channel (stereo) audio signals sampled at 32khz, 44.1khz, or 48khz and generates compressed bit-streams having  bit-rates ranging from 32 kbps to 320 kbps per channel. The MPEG-2 Layer 3, standardized in 1995, extended the algorithm to support lower sampling frequencies (16 khz, 22.05khz, 24 khz) and additional bit-rates ranging from 8 kbps to 160 kbps. MPEG-2.5 Layer 3 (an unofficial extension) further defines support for 8khz, 11.025khz, 12khz sampling frequencies. MPEG Audio standard also defines low complexity Layer 1 (MP1) and medium complexity Layer 2 (MP2) with bit-rates ranging from 32kbps to 448kbps and 8kbps to 384kbps respectively. Psychoacoustic model, Modified Discrete Cosine Transform (MDCT) and Huffman coding play a vital role in achieving high compression ratios. MP3 is the most popular audio codec used in the industry today and has been extensively deployed in portable media players, mobile phones, as well as network connected devices.

  • Based on the ISO/IEC 11172-3, ISO/IEC 13818-3, and ISO/IEC 14496-3 standards
  • Optimized ASM/C implementation.
  • Re-entrant implementation
  • C-callable APIs
  • Supports decoding of MPEG-1, MPEG-2 and MPEG-2.5 streams.
  • Supports decoding of Layer 1, Layer 2 and Layer 3 streams.
  • Supports sampling frequencies 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, and 48KHz respectively.
  • Supports for 16/24-bit PCM output.
  • Supports bit-rates ranging from 8kbps to 448kbps, depending on MPEG and layer versions.
  • Supports decoding of free-format bit-rate streams.
  • Support for mono and 2-channel stereo output.
  • Support for optional downmixing from stereo to mono.
  • Support for little-endian implementation on ARM9E.
  • Supports Interleaved and de-interleaved output.
  • Optional support for decoding of ID3v1 and ID3v2 tags.
  • Optional support for xDM APIs.
  • Implementation is tested for wide range of standard and non-standard test vectors.
  • Tested for various options such of MS/Intensity stereo, CBR/VBR, Long/Short blocks, CRC and bit-reservoir.
  • Tested for conformance as per the criteria specified in ISO/IEC 11172-4.
  • Tested for graceful exit in case of bit-stream related errors or exception.
  • Tested for illegal memory access by the module on ARM platform.
  • Module is fully interruptible.
  • Tested for compliance with register preservation requirements
  • Tested for Input buffer corruption
  • Tested for I/O buffer alignment requirements
  • Tested for multi-instance implementation.
  • Tested with scratch contamination at frame boundaries
  • Tested for 100% code coverage
  • Range validation of all API parameters
  • ARM implementation validated on OMAP3530 (Cortex-A8) and DM6446/DM6467 (ARM926EJ-S) platforms.
  • Cortex-M4 implementation validated on the TI Tiva TM4C1294 EVM.

ARM9E, ARM11, Cortex-M4, Cortex-A8, and Cortex-A9

For resource requirements & other details