This section describes the content of the HE-AAC (High-Efficiency Advanced Audio Coding) Audio Decoder Library and the interfaces for using the HE-AAC library from user applications.
The HE-AAC library provides a program interface that decodes AAC-encoded bitstream data that conforms to the HE-AAC Audio format (bitstream data).
The HE-AAC library takes bitstream data as input and outputs PCM RAW data (audio data).
The package content of the HE-AAC library is as follows.
||HE-AAC Audio Decoder Library.|
||Header file that defines things like function names and return values.|
The resources necessary to use this library are as follows.
|HE-AAC Audio Decoder Library||283,172|
|Memory the user application should allocate for this library to use.||162,732|
To implement this library, the user application must allocate memory to be used by the library. For more information about memory allocations and limitations, see Memory.
The input format is as follows.
HE-AAC v1, AAC-LC (Raw block data, excluding ADTS header information).
1, 2, 5.1 (3/2+LFE) [channels]
HE-AAC: 32000, 44100, 48000 [Hz]
AAC-LC: 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 [Hz]
The output format is as follows.
PCM RAW data (signed 16-bit/big-endian).
1, 2, 5.1 (3/2+LFE) [channels]
To run this library, the application must allocate memory to be used by the library.
The library uses three areas of memory: working memory, bitstreams memory to be entered into the library, and audio data memory to be output from the library.
The following table shows memory sizes for the library.
|Type of Memory||Required Size of Memory (in bytes)|
|Bitstream memory (area for loading 1 frame's worth of data into the library).||800 * 6 channels.|
|Audio data memory (area for writing data to be output from the library).||2048 * 6 channels * 2 (see note).|
Get the working memory size using the utility function
HEAACDECOpenthrough the completion process
HEAACDECClosefor working memory, and during the decoding process (while the execution process
HEAACDECExecuteis running) for bitstream memory.
HEAACDECExecuteand the completion process
This library handles the decoding process using frames as the basic unit.
With this library, processing is performed based on the set decoding conditions (the third parameter of
HEAACDECOpen process), but the consistency with the encoding conditions for the decode
target (bitstream) is not verified. This library behaves as follows when the conditions are inconsistent.
Sample for 1 frame is output regardless of the setting condition to the library.
When the number of channels in the bitstream differs from the condition set in the library, the library behaves as shown in the correspondence table below.
|Condition Set in Library||Channels in Bitstream||Decoding Result|
|1||2||The decoding result is output only for the left channel.|
|2||1||The decoding result is output for the left channel, and silence is output for the right channel.|
|1||5.1||The decoding result is output only for the left channel.|
|2||5.1||The decoding result is output only for the left and right channels.|
|5.1||1||The decoding result is output for the left channel, and silence is output for the rest.|
|5.1||2||The decoding result is output for the left and right channels, and silence is output for the rest.|
This section provides an overview of the decoding features of the HE-AAC library.
The data flow for the HE-AAC decoding process is shown in the diagram below, and the inter-module data details are shown in the following table.
|1||AAC encoding bitstream data (1 frame of bitstream data).|
|2||PCM RAW data (1 frame of audio data).|
A schematic of the flow of this library's decoding process is shown in the following diagram.
This library is designed so that the execution process
HEAACDECExecute outputs the results of decoding the frame that was input the previous time it
was called. Because of the delay of 1 frame, input of the first frame is performed by the begin process
HEAACDECBegin and output of the frame is performed
by the end process
2014/07/16 Initial version.