
Optimized Heilx AAC Decoder for ARM
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本项目旨在为ARM架构优化Heilx AAC解码器,显著提升音频解码效率和性能,适用于移动设备和嵌入式系统。
Fixed-point HE-AAC Decoder Developed by RealNetworks, 2005
---
### Overview
This module contains a high-performance HE-AAC decoder designed for 32-bit fixed-point processors. The following is a summary of what the decoder supports and does not support:
**Supported:**
- MPEG2 and MPEG4 low complexity decoding (intensity stereo, M-S, TNS, PNS)
- Spectral band replication (SBR) in high-quality mode
- Mono, stereo, and multichannel modes
- ADTS, ADIF file formats, and raw data block format
**Not currently supported:**
- Main or SSR profile decoding
- Long-term prediction (LTP)
- Coupling channel elements (CCE)
- 960/1920-sample frame size
- Low-power mode SBR
- Downsampled (single-rate) SBR
- Parametric stereo
### Highlights
The decoder is optimized for ARM processors and includes a reference x86 implementation. The codebase consists of C and assembly language only, with no requirement for C++.
Features include:
- Reentrant and statically linkable design
- Low memory usage (details in the documentation)
- Option to use Intel Integrated Performance Primitives
### Supported Platforms and Toolchains
The codec should run on any 32-bit fixed-point processor capable of performing full 32x32-bit multiplies. The following processors and toolchains are supported:
- x86 with Microsoft Visual C++ or GNU toolchain (gcc)
- ARM with ARM Developer Suite, Microsoft Embedded Visual C++, or GNU toolchain
For the fastest performance on non-standard platforms, consider using ADS to output assembly code which can then be fed into your assembler of choice.
### Adding Support for New Processors and Toolchains
Adding support involves implementing inline assembly functions in `real/assembly.h` and optionally rewriting or adding optimized assembly files. Supporting a new toolchain is straightforward by following the sample projects or Helix makefiles as templates.
### Multichannel Support
For multichannel decoding, set AAC_MAX_NCHANS to your desired maximum number of channels (default = 2) in `pub/aacdec.h` and recompile.
### Directory Structure
- `fixpt/`: Platform-independent code, tables, public API.
- `fixpt/docs`: Memory and CPU usage figures, callgraphs.
- `fixpt/hxwrap`: Helix wrapper code and makefiles.
- `fixpt/pub`: Public header files.
- `fixpt/testwrap`: Sample command-line test application.
### Code Organization
The source is organized into:
- Main decode functions in `aacdec.c`, common tables in `aactabs.c`.
- Low-level codec API calls in `pub/aaccommon.h` and high-level API for applications in `aacdec.h`.
To build the AAC decoder library, compile top-level files with either RealNetworks source code or IPP libraries.
全部评论 (0)


