Fraunhofer FDK AAC (Full title Fraunhofer FDK AAC Codec Library for Android) is an open-source software library for encoding and decoding Advanced Audio Coding (AAC) format audio, developed by Fraunhofer IIS, and included as part of Android 4.1. 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).[unreliable source]
Version 2 of the library, introduced with Android P, also includes support for xHE-AAC and AAC-ELD v2. 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). 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.
|AAC Profile Formal Name||AAC Audio Object Types||Common Name||FDK||FDK 2|
|High Efficiency AAC Profile||2,5||HE-AAC||E,D||E,D|
|High Efficiency AAC v2 Profile||2,5,29||HE-AAC v2||E,D||E,D|
|Baseline USAC Profile||42|
|Extended High Efficiency AAC Profile||2,5,29,42||xHE-AAC||D|
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.
The license included by Fraunhofer in the FDK library source code 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. Due to this restriction, along with a limitation on charging for the library, Debian considers it non-free. It was classified as free by Fedora after a review by the legal department at Red Hat. The FSF also considers it to be free, though discourages its use due to the explicit lack of a patent grant. Via Licensing administers a patent pool that includes patent licenses for the AAC codecs, including xHE-AAC and MPEG-D DRC. 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."
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.[unreliable source]
A cross-platform source distribution is maintained by Martin Storsjö as part of the opencore-amr project under the name fdk-aac. The code compiles into a shared library, libfdk-aac. The media frameworks FFmpeg and Libav support audio encoding through libfdk-aac.
- Official website
- Fraunhofer FDK AAC at Hydrogenaudio Knowledgebase
- Official FDK source code repository at the Android Open Source Project
- (lib)fdk-aac Source Code at GitHub
- Debian (lib)fdk-aac Package Information at Debian Package Tracker
- fdkaac, a cross-platform command-line encoding and metadata utility that employs libfdk-aac
- retuned FDK AAC encoder, FDK AAC encoder with improved audio quality
- Fraunhofer AAC Audio Playback Test Site
- Via Licensing Advanced Audio Coding
- libfdk-aac for Windows binary builder, a script set for FDK AAC library automated builder on Windows. Because the binaries can not distribute by FDK AAC licencing.
- "Current Version Information from Source Code (encoder library)". Retrieved 7 August 2018.
- "Current Version Information from Source Code (decoder library)". Retrieved 7 August 2018.
- "NOTICE file in Source Code". Retrieved 12 March 2019.
- "Various Licenses and Comments about Them". Retrieved 10 November 2018.
- "FDK Source Code". Retrieved 1 August 2014.
- "PRESS RELEASE Google selects HE-AAC Multichannel from Fraunhofer IIS for Google Play Movies in Surround" (PDF). Fraunhofer IIS. July 24, 2013.
- "Platforms". Fraunhofer Institute for Integrated Circuits IIS. Retrieved 2020-07-10.
- "Fraunhofer FDK AAC Information". HydrogenAudio. Retrieved 1 August 2014.
- "xHE-AAC". Fraunhofer Institute for Integrated Circuits IIS. Retrieved 2020-07-10.
- "AAC-ELD Family". Fraunhofer Institute for Integrated Circuits IIS. Retrieved 2020-07-10.
- "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.
- "xHE-AAC – ADAPTIVE BIT RATE AUDIO CODEC FOR MUSIC AND VIDEO STREAMING" (PDF). July 2019. p. 4.
- "Fraunhofer Codec Availability". Retrieved 27 September 2014.
- "NOTICE - platform/external/aac - Git at Google". android.googlesource.com. Retrieved 2020-07-10.
- "Debian discussion regarding the FDK license". Debian Bug Tracker. Retrieved 28 September 2014.
- "Fedora fdk-aac package review". Retrieved 24 January 2018.
- "Licensing/FDK-AAC". Fedora Project Wiki. Retrieved 24 January 2018.
- "Recent licensing updates". Retrieved 10 November 2018.
- "Via Adds MPEG-D DRC To Advanced Audio Coding Patent Pool – ViaCorp". Retrieved 2020-07-11.
- HydrogenAudio Forum discussion on FDK AAC, some relevant posts regarding the low-pass filter: "Post #34"., "Post #89"., "Post #142".
- "opencore-amr". SourceForge. Retrieved 12 March 2019.
- "FFmpeg AAC Encoding Guide". Retrieved 13 March 2019.
- "Libav documentation". libav.org. Retrieved 12 March 2019.