AAC-LC ENCODER
CODEC OVERVIEW
AAC is one of the most efficient perceptual audio coding algorithms. AAC uses a modular approach in encoding providing the flexibility to use different tools depending on the application and complexity requirements. AAC offers different profiles by making use of tools such as TNS, PNS, Mid-Side stereo, Intensity stereo, and frequency domain prediction. TNS (Temporal Noise Shaping) tool minimizes the temporal spread of quantization error for transient signals, PNS (Perceptual Noise Substitution) tool controls quantization resolution by doing noise generation for few bands, and mid-side and intensity stereo tool exploits inter-channel redundancy. AAC-LC is a low complexity version of AAC, and does not support frequency domain prediction tool, it is standardized by MPEG-2 (part 7) and MPEG-4 (part 3). AAC-LC operates on frames of 1024 samples, which are sampled at 8-96 Khz and generates compressed bit-streams having bit-rates from 8 to 576 kbps per channel. AAC-LC is widely used in many audio applications and deployed in portable devices
SALIENT FEATURES
- Optimized ASM/C implementation.
- Re-entrant implementation
- C-callable APIs
- Supports sampling frequencies ranging from 8 KHz to 96 Khz.
- Supports bitrate from 8 kbps to 576 kbps per channel.
- Support for mono and 2-channel stereo Input.
- Support for 16-bit PCM input.
- Support for downmixing of input stereo signal.
- Supports mono only encoding configuration at compile time.
- Supports average bitrate; VBR is not supported.
- Supports TNS, M/S stereo tools.
- Supports ADIF, ADTS and RAW packing formats.
- Support for little-endian implementation on ARM9E.
- Optional support for xDM APIs.
TESTING FEATURES
- Implementation tested for audio quality for a wide range of standard and non-standard test vectors.
- Evaluated objective audio quality based on ITU BS.1387 standard
- Listening tests performed with few cases to ensure that no artifacts are present in encoded output
- Tested for graceful exit in case of 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
- Tested for any align faults.
- Range validation of all API parameters
- ARM implementation validated on OMAP3530 (Cortex-A8) and DM6446/DM6467/OMAPL138 (ARM926EJ-S) platforms.
AVAILABLE PLATFORM(S)
ARM9E, ARM11, Cortex-A8, and Cortex-A9