Contents |
Helix Fixed-point HE-AAC (aacPlus) decoder
The Helix Fixed-point HE-AAC decoder provides an optimized 32-bit fixed-point implementation, which will be dual-licensed under RCSL/RPSL. No extra copyright license is required beyond the standard Helix license terms, although patent licenses are not included and must be acquired from the appropriate AAC licensors.
The Helix AAC decoder is highly optimized for ARM processors and meets or exceeds the performance of other commercial implementations. It also features one of the first widely available fixed-point implementations of SBR.
Key Features
- MPEG-2 and MPEG-4 low complexity decoding (intensity stereo, MS, TNS, PNS)
- Spectral band replication (SBR), high-quality mode
- Mono, stereo, and multichannel modes
- ADTS, ADIF, and raw data block decoding
- MP4, RM, and other file formats supported via Helix client
Technical Specifications
Average CPU Usage
1. MPEG4-LC AAC (SBR not used)
|
|
|
Processor Model (1)
| |||
|
|
|
| |||
|
|
|
|
|
|
|
44.1 KHz | 1 | 96 Kbps | 11 / 13 MHz | 9 / 11 MHz | 9 / 11 MHz | 10 / 12 MHz |
44.1 KHz | 2 | 128 Kbps | 19 / 23 MHz | 17 / 21 MHz | 17 / 20 MHz | 18 / 21 MHz |
|
|
|
|
|
|
|
2. MPEG4-LC HE-AAC (SBR enabled, "high quality" mode)
|
|
|
Processor Model (1)
| |||
|
|
|
| |||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) Tested with ARMulator, simulated zero-wait-state memory
Notes:
- Compiled using ARM ADS 1.2
- Tested with ARMulator, zero-wait state memory
- Results are average CPU usage, typical content
- first MHz value is when TNS is off, second value is when TNS is on
Memory Usage
1. MPEG4-LC AAC (SBR not used)
- ROM (const globals) = 27128
- RAM (heap, max 2 channels) = 20656
- Code size - x86 (MSVC++ 6.0) = 22654
- Code size - ARM (ADS ARM9TDMI) = 20120
- Additional RAM required per channel = 4104
2. MPEG4-LC HE-AAC (SBR enabled, "high quality" mode)
- ROM (const globals) = 37580
- RAM (heap, max 2 channels) = 79580
- Code size - x86 (MSVC++ 6.0) = 47822
- Code size - ARM (ADS ARM9TDMI) = 41764
- Additional RAM required per channel = 17198
Notes:
- Memory usage constant for all sample rates, bit rates
- Does not include input buffer (encoded data) or output buffer (PCM)
- There is no zero-init or read-write global data
- All values are in bytes
Frequently Asked Questions
What features are currently not supported in the aacPlus decoder?
- main or SSR profile, LTP
- coupling channel elements (CCE)
- 960/1920-sample frame size
- low-power mode SBR decoding
- downsampled (single-rate) SBR decoding
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 aac/codec/fixpt/decoder
Where does the build system put the code in my local source tree?
- datatype/aac/codec/fixpt
How do I build the fixed-point AAC implementation through the "ribosome" build system?
- In the build menu, use one of the following bif files: helix.bif (HEAD) or hxclient_1_5_0_cayenne.bif
- Select the target "datatype_aac_codec"
- Make sure the define "HELIX_CONFIG_FIXEDPOINT", is either in the profile or config (cf) file that you are currently using.
=======================================
-> Current Directory: D:\client_150_cayenne
[0] Set BIF branch (hxclient_1_5_0_cayenne)
[1] Set Target(s) (datatype_aac_codec)
=======================================
How do I play .mp4/.3gp streams that contain AAC-encoded streams?
- In the build menu, use the same bif as you have used above
- Select the target "splay". This builds a command-line player through which you can play .mp4/.3gp streams
- For instructions to check out source, go to Quickstart Guide
=======================================
-> Current Directory: D:\client_150_cayenne
[0] Set BIF branch (hxclient_1_5_0_cayenne)
[1] Set Target(s) (splay)
=======================================
Where do developers go to acquire their aacPlus patent license?
- For information regarding patent licensing for AAC, please see Via Licensing's website.
- For information regarding patent licensing for aacPlus, please see Coding Technologies' website.
All other trademarks or registered trademarks are the property of their respective holders.