Difference between revisions of "Advanced Audio Coding"

From VideoLAN Wiki
Jump to navigation Jump to search
(from wikipedia (GNU Free Documentation License))
 
(Change links)
 
(48 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 +
{{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.
  
'''Advanced Audio Coding''' ('''AAC''') is a [[lossy data compression]] scheme intended for [[audio stream]]s.
+
AAC has many options and profiles available.
  
==Overview==
+
== Introduction ==
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.
+
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
  
==Why AAC was designed==
+
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 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 [[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]] 13818-3).
+
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.
  
==AAC ISO Standard==
+
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.
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 [[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]] 13818-3) in the [[MPEG-2]] family of [[international standard]]s.
 
  
==Codec improvements==
+
== Profiles and extensions ==
The codec design was further improved in [[MPEG-4 Part 3]], known formally as [[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]] 14496-3, with the addition of Perceptual Noise Substitution (PNS) and a Long Term Predictor (LTP).
 
  
==[[Bifurcation]]s in the AAC standard==
+
=== Main ===
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]]).
+
The main codec for AAC, as defined in MPEG-2, had 3 profiles:
 +
* Low Complexity profile (LC)
 +
* Main profile (Main)
 +
* Scalable Sampling Rate (SSR)
  
==AAC's improvements over MP3==
+
In MPEG-4, it combines it with Perceptual Noise Substitution (PNS) extension.
Some of its advances:
 
* Sample frequencies from 8 [[Hertz|Hz]] to 96 [[kiloherz|kHz]] (official MP3: 16 Hz to 48 kHz)
 
* Up to 48 channels
 
* Higher efficiency and simpler filterbank (hybrid → pure MDCT)
 
* 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.
+
=== ER - Error Resilience ===
 +
This is an extension to improve error resilience on AAC.
  
==Modular Coding==
+
=== LD - Low Delay ===
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:
 
  
* [[Low Complexity Profile]] (LC) - the simplest and most widely used and supported.
+
LD is an 2000 extension used to improve AAC for 2-way communication.
* 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.
+
=== ELD - Extended Low Delay ===
  
==Products that support AAC==
+
ELD is a 2008 extension of AAC that improves LD further.
  
===iTunes and iPod===
+
=== LTP ===
[[Image:Original iPod 5GB.jpg|thumbnail|right|50px|An iPod]]
+
LTP is an extension from 1999 that uses [[wikipedia:Long_Term_Prediction|Long Term Prediction]].
In [[April 2003|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.
 
  
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.