Fraunhofer FDK AAC

Last updated
Fraunhofer FDK AAC
Developer(s) Fraunhofer IIS
Initial release9 July 2012;12 years ago (2012-07-09)
Stable release(s)
Encoder4.0.1 [1] / 2018;6 years ago (2018)
Decoder3.0.0 [2] / 2018;6 years ago (2018)
Repository
Written in C++, C
Operating system Android
Available inEnglish
Type Codec
License "Fraunhofer FDK AAC license" (a free software license without a patent grant) [3] [4]
Website www.iis.fraunhofer.de/en/ff/amm/impl.html

Fraunhofer FDK AAC is an open-source [5] library for encoding and decoding digital audio in the Advanced Audio Coding (AAC) format. Fraunhofer IIS developed this library for Android 4.1. [6] [7] It supports several Audio Object Types including MPEG-2 and MPEG-4 AAC LC, HE-AAC (AAC LC + SBR), HE-AACv2 (LC + SBR + PS) as well AAC-LD (low delay) and AAC-ELD (enhanced low delay) for real-time communication. The encoding library supports sample rates up to 96 kHz and up to eight channels (7.1 surround). [8]

Contents

Operation

The Android-targeted implementation of the Fraunhofer AAC encoder uses fixed-point math and is optimized for encoding on embedded devices/mobile phones. The library is currently limited to 16-bit PCM input. Other versions of the Fraunhofer encoder, like the one included in Winamp, are optimized for encoding music on desktop-class processors. Those versions of the encoder, however, are not open-source and require a commercial license. [9] Version 2 of the library, introduced with Android P, also includes support for xHE-AAC [10] and AAC-ELD v2. [11] [12] xHE-AAC extends the operating range of the codec from 12 to 300 kb/s for stereo signals and allows seamless switching between bitrates over this range for adaptive bitrate delivery (using standards such as MPEG-DASH or HLS for example). [12] xHE-AAC also includes MPEG-D DRC mandatory loudness control to playback content at a consistent volume and offers new dynamic range control profiles for listening in noisy situations. [12]

The FDK AAC encoder employs a more aggressive default low-pass filter than is used in other codecs. Higher frequencies are removed so that more bits are available to better describe sounds of lower frequencies, improving the overall quality for most combinations of recordings and listeners. In some, not completely rare, combinations the missing high frequencies are noticeable. The library allows overriding the low-pass filter setting, and in the highest VBR mode effectively applies no filter at all. [13] [ unreliable source ]

A cross-platform source distribution is maintained by Martin Storsjö as part of the opencore-amr project under the name fdk-aac. [14] The code compiles into a shared library, libfdk-aac. The media frameworks FFmpeg and Libav support audio encoding through libfdk-aac. [15] [16]

AAC profiles that FDK supports
Profile name MPEG-4 Objects involvedFDKFDK 2
Low-Complexity (AAC-LC)2YesYes
High-Efficiency (HE-AAC) 2, 5YesYes
High-Efficiency version 2 (HE-AAC) 2, 5, 29YesYes
Baseline USAC 42
Extended High-Efficiency (xHE-AAC) 2, 5, 29, 42Decoding only
Low-Delay (AAC-LD) 23YesYes
Enhanced Low-Delay (AAC-ELD)39YesYes
Enhanced Low-Delay version 2 (AAC-ELDv2)44Yes

Licensing

The license included by Fraunhofer in the FDK library source code [17] [3] allows redistribution in source or binary forms, but does not license patented technologies described by the code. The license states that the library may only be used for purposes as authorized by patent licenses. Via Licensing administers a patent pool that includes patent licenses for the AAC codecs, including xHE-AAC and MPEG-D DRC. [18] The FDK license also states that "most manufacturers of Android devices already license these patent claims through Via Licensing or directly from the patent owners, and therefore FDK AAC Codec software may already be covered under those patent licenses when it is used for those licensed purposes only." [17] There is no license fee required for using an AAC codec such as FDK AAC, [19] only for manufacturing an "end-user" codec such as producing a phone loaded with AAC software. [20] [21]

Debian considers the FDK AAC license non-free because it prohibits people from charging a fee for distributing the library, which runs counter to the "No Discrimination Against Fields of Endeavor" rule in Debian Free Software Guidelines. [22] The license was classified as free by Fedora after a review by the legal department at Red Hat, [23] though it's no longer classified as "allowed" due Fedora adopting a more defensive posture toward patents. However, Fedora states that this will not affect the fdk-aac-free package, which enables only the commonly used "Low Complexity AAC" profile, which is what most people use. The US patents on LC-AAC have expired. [24] The FSF also considers it to be free, though discourages its use due to the explicit lack of a patent grant. [4] [25]

See also

Related Research Articles

<span class="mw-page-title-main">LAME</span> MPEG-1 Audio Layer 3 (MP3) audio encoder

LAME is a software encoder that converts digital audio into the MP3 audio coding format. LAME is a free software project that was first released in 1998 and has incorporated many improvements since then, including an improved psychoacoustic model. The LAME encoder outperforms early encoders like L3enc and possibly the "gold standard encoder" MP3enc, both marketed by Fraunhofer.

<span class="mw-page-title-main">MP3</span> Digital audio format

MP3 is a coding format for digital audio developed largely by the Fraunhofer Society in Germany under the lead of Karlheinz Brandenburg, with support from other digital scientists in other countries. Originally defined as the third audio format of the MPEG-1 standard, it was retained and further extended—defining additional bit rates and support for more audio channels—as the third audio format of the subsequent MPEG-2 standard. A third version, known as MPEG-2.5—extended to better support lower bit rates—is commonly implemented but is not a recognized standard.

<span class="mw-page-title-main">FFmpeg</span> Multimedia framework

FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing video and audio files. It is widely used for format transcoding, basic editing, video scaling, video post-production effects, and standards compliance.

Advanced Audio Coding (AAC) is an audio coding standard for lossy digital audio compression. It was designed to be the successor of the MP3 format and generally achieves higher sound quality than MP3 at the same bit rate.

MPEG-4 Part 3 or MPEG-4 Audio is the third part of the ISO/IEC MPEG-4 international standard developed by Moving Picture Experts Group. It specifies audio coding methods. The first version of ISO/IEC 14496-3 was published in 1999.

<span class="mw-page-title-main">High-Efficiency Advanced Audio Coding</span> Audio codec

High-Efficiency Advanced Audio Coding (HE-AAC) is an audio coding format for lossy data compression of digital audio defined as an MPEG-4 Audio profile in ISO/IEC 14496–3. It is an extension of Low Complexity AAC (AAC-LC) optimized for low-bitrate applications such as streaming audio. The usage profile HE-AAC v1 uses spectral band replication (SBR) to enhance the modified discrete cosine transform (MDCT) compression efficiency in the frequency domain. The usage profile HE-AAC v2 couples SBR with Parametric Stereo (PS) to further enhance the compression efficiency of stereo signals.

FAAC is a software project which includes the AAC encoder FAAC and decoder FAAD2. It supports MPEG-2 AAC as well as MPEG-4 AAC. It supports several MPEG-4 Audio object types, file formats, multichannel and gapless encoding/decoding and MP4 metadata tags. The encoder and decoder is compatible with standard-compliant audio applications using one or more of these object types and facilities. It also supports Digital Radio Mondiale.

libavcodec is a free and open-source library of codecs for encoding and decoding video and audio data.

The following tables compare general and technical information for a variety of audio coding formats.

<span class="mw-page-title-main">MPEG-4 SLS</span> Extension to the MPEG-4 Audio standard

MPEG-4 SLS, or MPEG-4 Scalable to Lossless as per ISO/IEC 14496-3:2005/Amd 3:2006 (Scalable Lossless Coding), is an extension to the MPEG-4 Part 3 (MPEG-4 Audio) standard to allow lossless audio compression scalable to lossy MPEG-4 General Audio coding methods (e.g., variations of AAC). It was developed jointly by the Institute for Infocomm Research (I2R) and Fraunhofer, which commercializes its implementation of a limited subset of the standard under the name of HD-AAC. Standardization of the HD-AAC profile for MPEG-4 Audio is under development (as of September 2009).

The MPEG-4 Low Delay Audio Coder is audio compression standard designed to combine the advantages of perceptual audio coding with the low delay necessary for two-way communication. It is closely derived from the MPEG-2 Advanced Audio Coding (AAC) standard. It was published in MPEG-4 Audio Version 2 and in its later revisions.

MPEG Surround, also known as Spatial Audio Coding (SAC) is a lossy compression format for surround sound that provides a method for extending mono or stereo audio services to multi-channel audio in a backwards compatible fashion. The total bit rates used for the core and the MPEG Surround data are typically only slightly higher than the bit rates used for coding of the core. MPEG Surround adds a side-information stream to the core bit stream, containing spatial image data. Legacy stereo playback systems will ignore this side-information while players supporting MPEG Surround decoding will output the reconstructed multi-channel audio.

<span class="mw-page-title-main">Libav</span> Multimedia framework

Libav is an abandoned free software project, forked from FFmpeg in 2011, that contains libraries and programs for handling multimedia data.

<span class="mw-page-title-main">Opus (audio format)</span> Lossy audio coding format

Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors. Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC.

Unified Speech and Audio Coding (USAC) is an audio compression format and codec for both music and speech or any mix of speech and audio using very low bit rates between 12 and 64 kbit/s. It was developed by Moving Picture Experts Group (MPEG) and was published as an international standard ISO/IEC 23003-3 and also as an MPEG-4 Audio Object Type in ISO/IEC 14496-3:2009/Amd 3 in 2012.

VisualOn is a Silicon Valley–based multimedia software company that provides high-definition audio and video entertainment to smartphones, tablets, laptops, connected TVs and other mobile and convergent devices. VisualOn's patented technology is modular and platform-agnostic. VisualOn supports streaming, VOD, mobile TV and other multimedia applications.

Nero AAC Codec is a set of software tools for encoding and decoding Advanced Audio Coding (AAC) format audio, and editing MPEG-4 metadata. It was developed and distributed by Nero AG, and is available at no cost for Windows and Linux for non-commercial use. The codec was originally part of Nero Digital, but was later released as a stand-alone package.

<span class="mw-page-title-main">LDAC (codec)</span> Digital audio encoding technology

LDAC is a proprietary audio coding technology developed by Sony, which allows streaming high-resolution audio over Bluetooth connections at up to 990 kbps at 32 bits/96 kHz. It is used by various products, including headphones, earphones, smartphones, portable media players, active speakers, and home theaters.

LC3 is an audio codec specified by the Bluetooth Special Interest Group (SIG) for the LE Audio audio protocol introduced in Bluetooth 5.2. It's developed by Fraunhofer IIS and Ericsson as the successor of the SBC codec.

References

  1. "Current Version Information from Source Code (encoder library)" . Retrieved 7 August 2018.
  2. "Current Version Information from Source Code (decoder library)" . Retrieved 7 August 2018.
  3. 1 2 "NOTICE file in Source Code" . Retrieved 12 March 2019.
  4. 1 2 "Various Licenses and Comments about Them" . Retrieved 10 November 2018.
  5. "FDK Source Code" . Retrieved 1 August 2014.
  6. "PRESS RELEASE Google selects HE-AAC Multichannel from Fraunhofer IIS for Google Play Movies in Surround" (PDF). Fraunhofer IIS. July 24, 2013.
  7. "Platforms". Fraunhofer Institute for Integrated Circuits IIS. Retrieved 2020-07-10.
  8. "Fraunhofer FDK AAC Information". HydrogenAudio. Retrieved 1 August 2014.
  9. "Fraunhofer Codec Availability" . Retrieved 27 September 2014.
  10. "xHE-AAC". Fraunhofer Institute for Integrated Circuits IIS. Retrieved 2020-07-10.
  11. "AAC-ELD Family". Fraunhofer Institute for Integrated Circuits IIS. Retrieved 2020-07-10.
  12. 1 2 3 "Fraunhofer's xHE-AAC Audio Codec Software Extends Native AAC Support In Android P For Better Quality At Low Bitrates". Fraunhofer Institute for Integrated Circuits IIS. Retrieved 2020-07-10.
  13. HydrogenAudio Forum discussion on FDK AAC, some relevant posts regarding the low-pass filter: "Post #34"., "Post #89"., "Post #142".
  14. "opencore-amr". SourceForge. Retrieved 12 March 2019.
  15. "FFmpeg AAC Encoding Guide" . Retrieved 13 March 2019.
  16. "Libav documentation". libav.org. Retrieved 12 March 2019.
  17. 1 2 "NOTICE - platform/external/aac - Git at Google". android.googlesource.com. Retrieved 2020-07-10.
  18. "Via Adds MPEG-D DRC To Advanced Audio Coding Patent Pool – ViaCorp" . Retrieved 2020-07-11.
  19. "AAC Licensing FAQ Q5". Via Licensing. Retrieved 2020-01-15.
  20. "AAC License Fees". Via Licensing. Retrieved 2020-01-15.
  21. Via Licensing Corporation (June 5, 2018). "AAC PATENT LICENSE AGREEMENT". www.sec.gov. Retrieved 21 April 2023.
  22. "Debian discussion regarding the FDK license". Debian Bug Tracker. Retrieved 28 September 2014.
  23. "Fedora fdk-aac package review" . Retrieved 24 January 2018.
  24. "Licensing/FDK-AAC". Fedora Project Wiki. Retrieved 24 January 2018.
  25. "Recent licensing updates" . Retrieved 10 November 2018.
Information
Implementations