Advanced Audio Coding: Difference between revisions

From Hydrogenaudio Knowledgebase
mNo edit summary
Line 1: Line 1:
=Introduction=
= Introduction =
'''AAC''' or 'Advanced Audio Coding' forms part of the latest specifications from the MPEG committee, and is their official successor to the popular [[MP3]] format. As with MP3, the AAC format is an international standard, and is backed by several big-name companies, including Dolby, Sony and Nokia.
'''Advanced Audio Coding''' ('''AAC''') forms part of the latest specifications from the MPEG committee, and is their official successor to the popular [[MP3]] format. As with MP3, the AAC format is an international standard, and is backed by several big-name companies, including Dolby, Sony and Nokia.


With the 13 years that had passed since the creation of the MP3 format, many improvements had been realised leading to a seemingly complex specification with several flavours of AAC available. To potentially add to the confusion, AAC is usually wrapped inside an [[MP4]] container to provide tagging, seeking and possibly other benefits?For this reason, AAC can also be referred to as MP4 audio..  
With the 13 years that had passed since the creation of the MP3 format, many improvements had been realised leading to a seemingly complex specification with several flavours of AAC available. To potentially add to the confusion, AAC is usually wrapped inside an [[MP4]] container to provide tagging, seeking and possibly other benefits? For this reason, AAC can also be referred to as MP4 audio.


There are several AAC encoders to choose from, coming from large names such as Apple ([[iTunes]]) , Real Networks and Nero AG (Creators of Nero Burning Rom), or the open source [http://www.audiocoding.com FAAC] which is analogous to the [[LAME]] encoder. AAC is supported on some hardware players, most notably the [[Apple iPod]] and some cell phones, and is available in Apple's online store.
There are several AAC encoders to choose from, coming from large names such as Apple ([[iTunes]]), Real Networks and Nero AG (Creators of Nero Burning Rom), or the open source [http://www.audiocoding.com FAAC] which is analogous to the [[LAME]] encoder. AAC is supported on some hardware players, most notably the [[Apple iPod]] and some cell phones, and is available in Apple's online store.


In terms of quality, the AAC format is on par with [[Ogg Vorbis]], [[LAME]] MP3, [[WMA]] Pro and other modern codecs, and with added SBR coding (HE AAC) it can provide quite high quality at low bitrates.
In terms of quality, the AAC format is on par with (Ogg) [[Vorbis]], [[LAME]] MP3, [[WMA]] Pro and other modern codecs, and with added SBR coding (HE AAC) it can provide quite high quality at low bitrates.


Recent developments have led to [[AACplus]] which is able to give subjectively good results at low bitrates. The website [http://www.tuner2.com Tuner2] has several Internet radio stations which are sending out streams at low rates - such as 40 kbps - and some of these are surprisingly good considering the bit rates used.
Recent developments have led to [[AACplus]] which is able to give subjectively good results at low bitrates. The website [http://www.tuner2.com Tuner2] has several Internet radio stations which are sending out streams at low rates such as 40 kbps and some of these are surprisingly good considering the bit rates used.
 
 
==Pros==


== Pros ==
* An international standard approved by the [http://www.iso.ch ISO]
* An international standard approved by the [http://www.iso.ch ISO]
* Flexible: supports several [[sampling rate]]s (8000-96000 Hz), bit depths, and [[multichannel]] (up to 48 channels)
* Flexible: supports several [[sampling rate]]s (8000–96000 Hz), bit depths, and [[multichannel]] (up to 48 channels)
* Several implementations, including free and high quality ones ([http://www.itunes.com iTunes] or [http://www.nero.com/nerodigital/eng/Nero_Digital_Audio.html Nero Digital])
* Several implementations, including free and high quality ones ([http://www.itunes.com iTunes] or [http://www.nero.com/nerodigital/eng/Nero_Digital_Audio.html Nero Digital])
* Reaches transparency in most samples and for most users at around 150kbps
* Reaches transparency in most samples and for most users at around 150 kbps
* Part of [[MPEG-4]] specs
* Part of [[MPEG-4]] specs
* Anyone can create its own implementation (specifications and demo sources available)
* Anyone can create its own implementation (specifications and demo sources available)
* Some portable players support it (Philips Expanium, [[Apple iPod]], cell phones from Nokia, Sony Jukebox)
* Some portable players support it (Philips Expanium, [[Apple iPod]], cell phones from Nokia, Sony Jukebox)


==Cons==
== Cons ==
 
* Problem cases that trip out all transform codecs
* Problem cases that trip out all transform codecs
* Heavily patented
* Heavily patented
Line 28: Line 25:
* '''AAC''' comes in different "flavors" (object types: '''AAC LC''', '''AAC HE''', '''AAC PS''' etc.). Many (especially portable) players only support LC (at the moment) so you can have files that are valid but your player won't play them.
* '''AAC''' comes in different "flavors" (object types: '''AAC LC''', '''AAC HE''', '''AAC PS''' etc.). Many (especially portable) players only support LC (at the moment) so you can have files that are valid but your player won't play them.


==Technical Information==
== Technical Information ==
'''AAC''' stands for 'Advanced Audio Coding' and is part of the [[MPEG-4]] Systems Standard. Originally known as MPEG-2 Non-Backwards Compatible (As apposed to MPEG-2 Backwards Compatible) it is the succesor to MPEG-1/2 Layer III ([[MP3]]). It uses the [[MP4]] [[container]] (which is based on Apple's [[MOV]] container) to store metadata (i.e. tag information).
'''AAC''' stands for 'Advanced Audio Coding' and is part of the [[MPEG-4]] Systems Standard. Originally known as MPEG-2 Non-Backwards Compatible (As apposed to MPEG-2 Backwards Compatible) it is the succesor to MPEG-1/2 Layer III ([[MP3]]). It uses the [[MP4]] [[container]] (which is based on Apple's [[MOV]] container) to store metadata (i.e. tag information).


Line 49: Line 46:
Currently all players support the LC Object Type, although some will work on only MPEG2 or MPEG4 streams. Players based on the FAAD2 decoder (eg. [[foobar2000]], [[Winamp]] plugins) support almost all Object Types including HE '''AAC'''. 3ivX also supports all Object Types except SSR.
Currently all players support the LC Object Type, although some will work on only MPEG2 or MPEG4 streams. Players based on the FAAD2 decoder (eg. [[foobar2000]], [[Winamp]] plugins) support almost all Object Types including HE '''AAC'''. 3ivX also supports all Object Types except SSR.


 
== Technologies used for compression ==
==Technologies used for compression==
 
* [[Huffman coding]]
* [[Huffman coding]]
* [[Quantization]] and scaling
* [[Quantization]] and scaling
Line 61: Line 56:
* Modified Discrete Cosine Transform (I[[MDCT]])
* Modified Discrete Cosine Transform (I[[MDCT]])
* Gain control and hybrid filter bank (polyphase quadrature filter (IPQF)+IMDCT)
* Gain control and hybrid filter bank (polyphase quadrature filter (IPQF)+IMDCT)
* Long Term Predictor (LTP) - MPEG4 '''AAC''' only
* Long Term Predictor (LTP) MPEG4 '''AAC''' only
* Perceptual Noise Substitution (PNS) - MPEG4 '''AAC''' only
* Perceptual Noise Substitution (PNS) MPEG4 '''AAC''' only
* Spectral Band Replication ([[SBR]]) - HE '''AAC'''
* Spectral Band Replication ([[SBR]]) HE '''AAC'''
* Parametric Stereo (PS) - HE '''AAC'''
* Parametric Stereo (PS) HE '''AAC'''
 
 
==Encoders / Decoders (Supported Platforms)==


== Encoders / Decoders (Supported Platforms) ==
* [[Nero AAC]] (Win32 and [[Linux_and_Nero_AAC|Linux under Wine]])
* [[Nero AAC]] (Win32 and [[Linux_and_Nero_AAC|Linux under Wine]])
* [[QuickTime AAC]] (Win32/MacOS X)
* [[QuickTime AAC]] (Win32/MacOS X)
Line 75: Line 68:
* [[PsyTEL]] (Win32)
* [[PsyTEL]] (Win32)


==External References==
== External References ==
 
* [[AAC FAQ]]
* [[AAC FAQ]]
* Known [[AAC implementations]].
* Known [[AAC implementations]].

Revision as of 15:21, 13 June 2007

Introduction

Advanced Audio Coding (AAC) forms part of the latest specifications from the MPEG committee, and is their official successor to the popular MP3 format. As with MP3, the AAC format is an international standard, and is backed by several big-name companies, including Dolby, Sony and Nokia.

With the 13 years that had passed since the creation of the MP3 format, many improvements had been realised leading to a seemingly complex specification with several flavours of AAC available. To potentially add to the confusion, AAC is usually wrapped inside an MP4 container to provide tagging, seeking and possibly other benefits? For this reason, AAC can also be referred to as MP4 audio.

There are several AAC encoders to choose from, coming from large names such as Apple (iTunes), Real Networks and Nero AG (Creators of Nero Burning Rom), or the open source FAAC which is analogous to the LAME encoder. AAC is supported on some hardware players, most notably the Apple iPod and some cell phones, and is available in Apple's online store.

In terms of quality, the AAC format is on par with (Ogg) Vorbis, LAME MP3, WMA Pro and other modern codecs, and with added SBR coding (HE AAC) it can provide quite high quality at low bitrates.

Recent developments have led to AACplus which is able to give subjectively good results at low bitrates. The website Tuner2 has several Internet radio stations which are sending out streams at low rates – such as 40 kbps – and some of these are surprisingly good considering the bit rates used.

Pros

  • An international standard approved by the ISO
  • Flexible: supports several sampling rates (8000–96000 Hz), bit depths, and multichannel (up to 48 channels)
  • Several implementations, including free and high quality ones (iTunes or Nero Digital)
  • Reaches transparency in most samples and for most users at around 150 kbps
  • Part of MPEG-4 specs
  • Anyone can create its own implementation (specifications and demo sources available)
  • Some portable players support it (Philips Expanium, Apple iPod, cell phones from Nokia, Sony Jukebox)

Cons

  • Problem cases that trip out all transform codecs
  • Heavily patented
  • Increased complexity
  • AAC comes in different "flavors" (object types: AAC LC, AAC HE, AAC PS etc.). Many (especially portable) players only support LC (at the moment) so you can have files that are valid but your player won't play them.

Technical Information

AAC stands for 'Advanced Audio Coding' and is part of the MPEG-4 Systems Standard. Originally known as MPEG-2 Non-Backwards Compatible (As apposed to MPEG-2 Backwards Compatible) it is the succesor to MPEG-1/2 Layer III (MP3). It uses the MP4 container (which is based on Apple's MOV container) to store metadata (i.e. tag information).

As part of the MPEG-4 Systems Standard, an AAC encoded file can include up to 48 full-bandwith audio channels (up to 96 kHz) and 15 Low Frequency Enhancement channels (limited to 120 Hz) plus 15 data streams.

AAC encoding methods are organised into Profiles (MPEG-2) or Object Types (MPEG-4). These different Object Types are not necessarily compatible with each other and may not be playable with various decoders. Some of the various Object Types are:

  • MPEG-2 AAC LC / Low Complexity
  • MPEG-2 AAC Main
  • MPEG-2 AAC SSR / Scalable Sampling Rate
  • MPEG-4 AAC LC / Low Complexity
  • MPEG-4 AAC Main
  • MPEG-4 AAC SSR / Scalable Sampling Rate
  • MPEG-4 AAC LTP / Long Term Prediction
  • MPEG-4 AAC HE / High Efficiency
  • MPEG-4 AAC LD / Low Delay

Different Object Types vary in complexity. Some take longer to encode/decode as a result of the different complexities. Furthermore, the benefits of the more complex profiles are often not worth the CPU power required to encode/decode them. As a result the Low Complexity/LC Object Type has become the profile used by most encoders and supported by most decoders. However, the High Efficiency (HE) Object Type has become more popular recently with its addition to the Nero AAC encoder.

Currently all players support the LC Object Type, although some will work on only MPEG2 or MPEG4 streams. Players based on the FAAD2 decoder (eg. foobar2000, Winamp plugins) support almost all Object Types including HE AAC. 3ivX also supports all Object Types except SSR.

Technologies used for compression

  • Huffman coding
  • Quantization and scaling
  • M/S matrixing
  • Intensity stereo
  • Channel coupling
  • Backward adaptive prediction
  • Temporal Noise Shaping (TNS)
  • Modified Discrete Cosine Transform (IMDCT)
  • Gain control and hybrid filter bank (polyphase quadrature filter (IPQF)+IMDCT)
  • Long Term Predictor (LTP) – MPEG4 AAC only
  • Perceptual Noise Substitution (PNS) – MPEG4 AAC only
  • Spectral Band Replication (SBR) – HE AAC
  • Parametric Stereo (PS) – HE AAC

Encoders / Decoders (Supported Platforms)

External References