Difference between revisions of "Advanced Audio Coding"

From VideoLAN Wiki
Jump to navigation Jump to search
(Change links)
 
(46 intermediate revisions by 10 users not shown)
Line 1: Line 1:
'''Advanced Audio Coding''' ('''<span style="font-size:large;">AAC</span>''') is a lossy data compression scheme intended for  Streaming_audio audio streams .
+
{{Hydrogenaudio|Advanced Audio Coding}}
 +
{{Mmwiki|Advanced Audio Coding|Understanding AAC}}
 +
AAC is a set of codecs designed to provide better compression than [[MP3]]s, and are improved versions of [[MPEG]] audio.
  
==Overview==
+
AAC has many options and profiles available.
AAC is a wideband audio coding algorithm that exploits two primary coding strategies to dramatically reduce the amount of data needed to convey high-quality digital audio. First, signal components that are perceptually irrelevant and can be discarded without a perceived loss of audio quality are removed. Next, redundancies in the coded audio signal are eliminated.
 
  
==Why AAC was designed==
+
== Introduction ==
AAC was designed as an improved-performance codec relative to MP3  (which was specified in  MPEG-1 ) and  MPEG-2 Part 3 (which is also known as "MPEG-2 Audio" or ISO ( International Organization for Standardization) / IEC (International Electrotechnical Commission) 13818-3).
+
AAC actually refers to two similar codecs - MPEG-2 Part 7 (Advanced Audio Coding) and MPEG-4 Part 3. It has many options and is heavily customisable depending on the desired output
  
==AAC ISO Standard==
+
It has some advantages over MP3 - it has a greater range of sample frequencies, up to 48 channels and higher coding efficiency. It also has much better handling of frequencies above 16 kHz.
AAC, which was first specified in the standard known formally as International Organization for Standardization|ISO / International Electrotechnical Commission|IEC  13818-7, was published in 1997 as a new "part" (distinct from  ISO / IEC  13818-3) in the  MPEG-2  family of  international standards.
+
Depending on the AAC profile and the MP3 encoder, 96 kbit/s AAC can give nearly the same or better perceptional quality as 128 kbit/s MP3.
  
==Codec improvements==
+
MPEG-4 AAC is used by [[iTunes]] and [[iPod]] (see also [https://web.archive.org/web/20031202022159/http://www.apple.com/mpeg4/aac/ Apple webpage on AAC]) and most of the portable devices.
The codec design was further improved in  MPEG-4 Part 3 , known formally as  ISO/IEC  14496-3, with the addition of Perceptual Noise Substitution (PNS) and a Long Term Predictor (LTP).
 
  
== Bifurcation s in the AAC standard==
+
== Profiles and extensions ==
Although the AAC codec specified in  MPEG-2  Part 7 and the AAC specified in  MPEG-4  Part 3 are somewhat different, they are both informally known as AAC (for clarity it is best to refer specifically either to  MPEG-2 AAC  or to  MPEG-4 AAC ).
 
  
==AAC's improvements over MP3==
+
=== Main ===
Some of its advances:
+
The main codec for AAC, as defined in MPEG-2, had 3 profiles:
* Sample frequencies from 8  Hertz|Hz  to 96  kiloherz|kHz  (official MP3: 16 Hz to 48 kHz)
+
* Low Complexity profile (LC)
* Up to 48 channels
+
* Main profile (Main)
* Higher efficiency and simpler filterbank (hybrid → pure MDCT)
+
* Scalable Sampling Rate (SSR)
* Higher coding efficiency for stationary signals (blocksize: 576 → 1024 samples)
 
* Higher coding efficiency for transient signals (blocksize: 192 → 128 samples)
 
* Much better handling of frequencies above 16 kHz
 
* More flexible joint stereo (separate for every scale band)
 
  
What this all means to the listener is better and more stable quality than MP3 at equivalent or slightly lower bitrates.
+
In MPEG-4, it combines it with Perceptual Noise Substitution (PNS) extension.
  
==Modular Coding==
+
=== ER - Error Resilience ===
AAC takes a modular approach to encoding.  Depending on the complexity of the bitstream to be encoded, the desired performance and the acceptable output, implementers may create profiles to define which of a specific set of tools they want use for a particular application. The standard offers four default profiles:
+
This is an extension to improve error resilience on AAC.
  
Low Complexity Profile  (LC) - the simplest and most widely used and supported.
+
=== LD - Low Delay ===
* Main Profile (MAIN), which expands upon LC with backwards prediction.
 
*  Sample-rate Scalable  (SRS), also called  Scalable Sample Rate  ( MPEG-4 AAC-SSR ).
 
*  Long Term Prediction  (LTP), added in MPEG-4, an improvement of the MAIN profile using a forward predictor with lower computational complexity
 
  
Depending on the AAC profile and the MP3 encoder, 96  kilobit|kbit /s AAC can give nearly the same or better perceptional quality as 128 kbit/s MP3.
+
LD is an 2000 extension used to improve AAC for 2-way communication.
  
==Products that support AAC==
+
=== ELD - Extended Low Delay ===
  
===iTunes and iPod===
+
ELD is a 2008 extension of AAC that improves LD further.
  
In April 2003,  Apple Computer  brought mainstream attention to AAC by announcing that its  Apple iTunes|iTunes  and  iPod  products would support songs in MPEG-4 AAC format (via a  firmware  update for older iPods), and that customers could download popular songs in a protected version of the format via the  iTunes Music Store . AAC has now become so associated with Apple  computer hardware|hardware  and  software  that people are commonly of the mistaken belief that AAC expands to "Apple Audio Codec."  Optionally, a  digital rights management  scheme (named  FairPlay) can be employed in tandem.
+
=== LTP ===
 +
LTP is an extension from 1999 that uses [[wikipedia:Long_Term_Prediction|Long Term Prediction]].
  
Apple has added support for  VBR  encoding of AAC tracks in iTunes v5.0 (released 9/7/2005).
+
=== He-AAC / AAC+ ===
 +
{{wikipedia|HE-AAC}}
  
=== PSP ===
+
'''High Efficiency AAC''' (aka '''aacPlus'''), is a [[lossy]] data compression scheme for audio streams, and is part of the '''[[MPEG-4]] Part 3''' specification.
PlayStation Portable|Sony PSP  has added AAC support with version 2.0 firmware update, which was released in  August 2005 .
 
  
==Extensions==
+
HE-AAC combines [[Advanced Audio Coding]] (AAC) with [[wikipedia:spectral band replication|spectral band replication]] (SBR)
* High Efficiency AAC ( MPEG-4 HE-AAC ) -  Spectral Band Replication|SBR technology has been applied to AAC, and was incorporated into the standard to form High Efficiency AAC v1, also known as  aacPlus v1 . Another recent introduction to AAC is  Parametric Stereo  ( aacPlus v2  or  Enhanced aacPlus ). These technologies significantly improve the performance of AAC at lower bitrates, and are used, for example, in  Digital Radio Mondiale .
 
  
== See also ==
+
=== He-AACv2 / eAAC+ ===
*  Audio data compression
 
* ''' MPEG-4 Part 3#.m4a|*.m4a ''' file extension
 
  
== Some External links ==
+
Enhanced aacPlus combines SBR and [[wikipedia:Parametric Stereo|Parametric Stereo]] (PS). The [[codec]] can operate at very low bitrates and is good for [[internet radio]] streaming. A 48 kilobit-per-second stream is considered to have higher quality than 128 [[kbit/s]] [[MP3]].
* [http://www.apple.com/mpeg4/aac Apple's page on MPEG-4 AAC
 
* [http://www.eetimes.com/story/OEG20011218S0048 EE Times article on AAC
 
* [http://www.iis.fraunhofer.de/amm/techinf/aac/ Fraunhofer MPEG-2 AAC Information
 
* [http://www.iso.org/ International Standards Organization
 
* [http://www.vialicensing.com/products/mpeg4aac/standard.html AAC Licensing
 
* [http://www.audiocoding.com/ Open Source AAC codec  FAAC (encoder) and FAAD2 (decoder)
 
* [http://www.rjamorim.com/test/ Roberto's public listening tests  - blind, controlled listening tests of lossy compression formats including AAC
 
  
Category:Audio codecs
+
=== SLS / HD-AAC ===
Category:Computer file formats
+
MPEG-4 Scalable to Lossless is a 2006 extension to add Lossless support to AAC.
 +
 
 +
It copies the idea of wavpack hybrid to encode and split the difference between lossy and lossless versions.
 +
 
 +
Some version of SLS is marketed as HD-AAC
 +
 
 +
== VLC support ==
 +
{{codec audio|mod=faad|id=mp4a}}
 +
 
 +
=== Decoding ===
 +
VLC supports AAC and HE-AAC through the libraries [[libfaad]] and [[libavcodec]].
 +
 
 +
The FAAD module supports Main (Main, LC, SSR), LD, ER, LTP, SBR and PS.<br />
 +
It should decode AAC, HeAAC and HeAACv2 streams. It should not decode HD-AAC/AAC-SLS or AAC-ELD streams.
 +
 
 +
The avcodec  module supports Main (Main, LC), LTP, SBR and ALS.
 +
 
 +
=== Encoding ===
 +
VLC support AAC encoding through the [[libavcodec]] library.

Latest revision as of 10:23, 14 April 2019

AAC is a set of codecs designed to provide better compression than MP3s, and are improved versions of MPEG audio.

AAC has many options and profiles available.

Introduction

AAC actually refers to two similar codecs - MPEG-2 Part 7 (Advanced Audio Coding) and MPEG-4 Part 3. It has many options and is heavily customisable depending on the desired output

It has some advantages over MP3 - it has a greater range of sample frequencies, up to 48 channels and higher coding efficiency. It also has much better handling of frequencies above 16 kHz. Depending on the AAC profile and the MP3 encoder, 96 kbit/s AAC can give nearly the same or better perceptional quality as 128 kbit/s MP3.

MPEG-4 AAC is used by iTunes and iPod (see also Apple webpage on AAC) and most of the portable devices.

Profiles and extensions

Main

The main codec for AAC, as defined in MPEG-2, had 3 profiles:

  • Low Complexity profile (LC)
  • Main profile (Main)
  • Scalable Sampling Rate (SSR)

In MPEG-4, it combines it with Perceptual Noise Substitution (PNS) extension.

ER - Error Resilience

This is an extension to improve error resilience on AAC.

LD - Low Delay

LD is an 2000 extension used to improve AAC for 2-way communication.

ELD - Extended Low Delay

ELD is a 2008 extension of AAC that improves LD further.

LTP

LTP is an extension from 1999 that uses Long Term Prediction.

He-AAC / AAC+

High Efficiency AAC (aka aacPlus), is a lossy data compression scheme for audio streams, and is part of the MPEG-4 Part 3 specification.

HE-AAC combines Advanced Audio Coding (AAC) with spectral band replication (SBR)

He-AACv2 / eAAC+

Enhanced aacPlus combines SBR and Parametric Stereo (PS). The codec can operate at very low bitrates and is good for internet radio streaming. A 48 kilobit-per-second stream is considered to have higher quality than 128 kbit/s MP3.

SLS / HD-AAC

MPEG-4 Scalable to Lossless is a 2006 extension to add Lossless support to AAC.

It copies the idea of wavpack hybrid to encode and split the difference between lossy and lossless versions.

Some version of SLS is marketed as HD-AAC

VLC support

mp4a
This is an audio codec. The name to use at the command line is mp4a.
This codec is from the faad module.

Decoding

VLC supports AAC and HE-AAC through the libraries libfaad and libavcodec.

The FAAD module supports Main (Main, LC, SSR), LD, ER, LTP, SBR and PS.
It should decode AAC, HeAAC and HeAACv2 streams. It should not decode HD-AAC/AAC-SLS or AAC-ELD streams.

The avcodec module supports Main (Main, LC), LTP, SBR and ALS.

Encoding

VLC support AAC encoding through the libavcodec library.