Contents |
The Helix MP3 Decoder
The Helix MP3 decoder provides MPEG-compliant decoding of MP3 content. Both floating-point and fixed-point decoder implementations are available. The fixed-point decoder is optimized especially for ARM processors but can run on any 32-bit fixed-point processor which can perform a long multiply operation (two 32-bit inputs generating a 64-bit result) and long multiply-accumulate (long multiply with 64-bit accumulator).
Key Features
- Pure 32-bit fixed-point implementation
- High-quality C reference code for porting to new platforms
- Optimized for ARM processors
- Fully reentrant and statically linkable
- Optional C++ API for compatibility with Helix clients
- Designed for high performance and low power consumption in handheld and mobile devices
- Full layer 3 support for
- MPEG1 layer 3 - sampling frequencies: 48 KHz, 44.1 KHz, 32 KHz
- MPEG2 layer 3 - sampling frequencies: 24 KHz, 22.05 KHz, 16 KHz
- MPEG2.5 layer 3 - sampling frequencies: 12 KHz, 11.025 KHz, 8 KHz
- Supports constant bitrate, variable bitrate, and free bitrate modes
- Supports mono and all stereo modes (normal stereo, joint stereo, dual-mono)
- Option to use Intel® IPP performance libraries (if available)
- Easy to link in either IPP libraries or Helix code
Technical Specifications
Average CPU Usage
|
|
|
| |||||
|
|
|
|
|
| |||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) Tested with ARMulator, simulated zero-wait-state memory
Memory Usage
- ROM = 13446 Bytes (const globals)
- RAM = 23816 Bytes (heap)
- Total Data Memory = 37262 Bytes
- Code Size = 21000 Bytes (approximately - depends on compiler)
Frequently Asked Questions
Where is the code in CVS?
- See the Helix Datatype project page: http://datatype.helixcommunity.org
The CVS root is /cvsroot/datatype, and the module name (path) is mp3/codec/fixpt
Where does the build system put the code in my local source tree?
- datatype/mp3/codec/fixpt
How does the build system decide whether to build the fixed-point or floating-point MP3 decoder?
- If HELIX_CONFIG_FIXEDPOINT is defined in your profile, it will build the fixed-point decoder. Otherwise it will build the floating-point version.
All other trademarks or registered trademarks are the property of their respective holders.