High-Efficiency Advanced Audio Coding (HE-AAC)
This Technical Note discusses the High-Efficiency Advanced Audio Coding compression scheme for digital audio.
What is MPEG AAC
MPEG AAC is a perceptual audio compression scheme developed by the MPEG group and designed to be the successor to the MP3 format.
MPEG formal listening tests have demonstrated that for a 2-channel audio track, Low Complexity AAC (a.k.a AAC-LC or generally referred as AAC) is able to provide slightly better audio quality at 96 kbs than MP3 at 128 kbs.
What is HE-AAC
High Efficiency AAC (HE-AAC) is an extension of AAC-LC optimized for low-bitrate applications such as streaming audio and podcasts.
HE-AAC uses spectral band replication (SBR) to enhance the compression efficiency of the upper half of the frequency band. HE-AAC version 2 (HE-AAC v2) adds Parametric Stereo (PS) to further enhance the compression efficiency of stereo signals at very low bit rates only.
The sound quality for HE-AAC v1 at 64 kb/s is comparable to AAC-LC at 96 kb/s.
Recommended Bit Rate Range
Based on the unique characteristics of each AAC codec, for stereo audio sampled at 44.1 kHz the recommended operational bitrate ranges are:
HE-AAC v2 for lower bitrates between 16 - 40 kb/s.
HE-AAC v1 for bitrates between 32 - 80 kb/s.
AAC-LC for bitrates higher than 80 kb/s.
Difference between ADTS and MPEG Based Files
AAC compressed audio data may be stored in either an MPEG-4 container file format (.mp4, .m4a) or more basic MPEG-2 based file formats such as a ADTS (.aac, .adts) Audio Data Transport Stream file.
An MPEG-4 file contains a header that includes meta-data followed by "tracks" which can include video as well as audio data, for example, H.264 encoded Video and AAC encoded Audio.
ADTS in contrast is a streaming format consisting of a series of frames, each frame having a header followed by the AAC data.
Therefore, a decoder can start playing a ADTS stream at any point within that stream making it ideal for "radio" like applications. To decode an MPEG-4 file however, the file header must first be read in order to properly playback the file.
Signalling the Presence of SBR Data
What is Signalling?
The HE-AAC bitstream is a combination of AAC-LC data and SBR data and is backward compatible with existing AAC-LC decoders. A decoder only capable of decoding AAC-LC audio data will only play the AAC-LC part of an HE-AAC encoded bitstream resulting in lower audio quality.
There are two ways to signal the presence of SBR data:
Explicit signaling: the presence of SBR data is signaled explicitly by means of the SBR AOT in the
AudioSpecificConfig()contained within an MPEG-4 file. This allows retrieval of configuration specific data from the file header, which includes separate specifications of the sampling rates for the HE-AAC and AAC-LC decoders.
Implicit signaling: if SBR extension elements (
EXT SBR DATAor
EXT SBR DATA CRC) are detected in the bitstream, this implicitly means that SBR data is present.
Signalling modes supported by Apple for HE-AAC
In the MPEG-4 file format, explicit signalling only. This includes the backwards compatibility mode which is the recommended signalling mode for maximum compatibility.
In the ADTS format implicit signalling is supported as ADTS files only contain the actual audio payload and no meta-data fields.
AAC Codec Format IDs
Starting with iPhone OS 2.2, support has been added for HE-AAC v1 audio coding. The following four character code IDs are used to identify AAC audio data formats on the platform and are declared in
Four Character Code
MPEG-4 Low Complexity AAC
MPEG-4 High Efficiency AAC
Document Revision History
New document that discusses HE-AAC audio.