Technical Note TN2236
High-Efficiency Advanced Audio Coding (HE-AAC)Important: This document is no longer being updated. For the latest information about Apple SDKs, visit the documentation website.
This Technical Note discusses the High-Efficiency Advanced Audio Coding compression scheme for digital audio.
Introduction What is MPEG AACMPEG 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-AACHigh 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 RangeBased 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.
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 DATA
or EXT SBR DATA CRC
) are detected in the bitstream, this implicitly means that SBR data is present.
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.
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 <CoreAudio/CoreAudioTypes.h>
.
Declaration
Four Character Code
Description
kAudioFormatMPEG4AAC
'aac '
MPEG-4 Low Complexity AAC
kAudioFormatMPEG4AAC_HE
'aach'
MPEG-4 High Efficiency AAC
ReferencesNew document that discusses HE-AAC audio.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3