Fraunhofer FDK AAC

{{short description|Open-source AAC codec}}

{{Unreliable sources|some=y|date=March 2019}}

{{Infobox software

| name = Fraunhofer FDK AAC

| developer = Fraunhofer IIS

| released = {{Start date and age|2012|07|09|df=yes}}

| ver layout = stacked

| latest release version = {{multiple releases

| branch1 = Encoder

| version1 = 4.0.1{{cite web|title=Current Version Information from Source Code (encoder library)|url=https://android.googlesource.com/platform/external/aac/+/pie-release/libAACenc/src/aacenc_lib.cpp|access-date=7 August 2018}}

| date1 = {{Start date and age|2018}}

| branch2 = Decoder

| version2 = 3.0.0{{cite web|title=Current Version Information from Source Code (decoder library)|url=https://android.googlesource.com/platform/external/aac/+/pie-release/libAACdec/src/aacdecoder_lib.cpp|access-date=7 August 2018}}

| date2 = {{Start date and age|2018}}

}}

| programming language = C++, C

| operating system = Android

| language = English

| genre = Codec

| license = "Fraunhofer FDK AAC license" (a free software license without a patent grant){{cite web|title=NOTICE file in Source Code|url=https://android.googlesource.com/platform/external/aac/+/master/NOTICE|access-date=12 March 2019}}{{cite web|title=Various Licenses and Comments about Them|url=https://www.gnu.org/licenses/license-list.html#fdk|access-date=10 November 2018}}

| website = {{URL|https://www.iis.fraunhofer.de/en/ff/amm/impl.html}}

}}

Fraunhofer FDK AAC is an open-source{{cite web|title=FDK Source Code|url=https://android.googlesource.com/platform/external/aac/+/master/|access-date=1 August 2014}} library for encoding and decoding digital audio in the Advanced Audio Coding (AAC) format. Fraunhofer IIS developed this library for Android 4.1.{{Cite web|date=July 24, 2013|title=PRESS RELEASE Google selects HE-AAC Multichannel from Fraunhofer IIS for Google Play Movies in Surround|url=https://www.iis.fraunhofer.de/content/dam/iis/en/doc/ame/pressreleases/FraunhoferIIS_Presseinformation_HE-AAC_Cingo_GooglePlay_24072013.pdf|website=Fraunhofer IIS}}{{Cite web|title=Platforms|url=https://www.iis.fraunhofer.de/en/ff/amm/impl.html|access-date=2020-07-10|website=Fraunhofer Institute for Integrated Circuits IIS|language=en}} 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).{{cite web|title=Fraunhofer FDK AAC Information|url=https://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC|access-date=1 August 2014|website=HydrogenAudio}}

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.{{cite web|title=Fraunhofer Codec Availability|url=http://www.iis.fraunhofer.de/en/ff/amm/prod/audiocodec/audiocodecs/heaac.html#tabpanel-5|access-date=27 September 2014}} Version 2 of the library, introduced with Android P, also includes support for xHE-AAC{{Cite web|title=xHE-AAC|url=https://www.iis.fraunhofer.de/en/ff/amm/broadcast-streaming/xheaac.html|access-date=2020-07-10|website=Fraunhofer Institute for Integrated Circuits IIS|language=en}} and AAC-ELD v2.{{Cite web|title=AAC-ELD Family|url=https://www.iis.fraunhofer.de/en/ff/amm/communication/aaceld.html|access-date=2020-07-10|website=Fraunhofer Institute for Integrated Circuits IIS|language=en}}{{Cite web|title=Fraunhofer's xHE-AAC Audio Codec Software Extends Native AAC Support In Android P For Better Quality At Low Bitrates|url=https://www.iis.fraunhofer.de/en/pr/2018/20180608_AME_Android.html|access-date=2020-07-10|website=Fraunhofer Institute for Integrated Circuits IIS|language=en}} 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.

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.HydrogenAudio Forum discussion on FDK AAC, some relevant posts regarding the low-pass filter: {{cite web|title=Post #34|url=http://www.hydrogenaud.io/forums/index.php?showtopic=95989&st=25&p=802129&#entry802129}}, {{cite web|title=Post #89|url=http://www.hydrogenaud.io/forums/index.php?showtopic=95989&st=75&p=827970&#entry827970}}, {{cite web|title=Post #142|url=http://www.hydrogenaud.io/forums/index.php?s=&showtopic=95989&view=findpost&p=875811}}{{Unreliable source|sure=y|reason=Forum posts.|date=March 2019}}

A cross-platform source distribution is maintained by Martin Storsjö as part of the opencore-amr project under the name fdk-aac.{{cite web |title=opencore-amr |url=https://sourceforge.net/projects/opencore-amr/ |website=SourceForge |access-date=12 March 2019}} The code compiles into a shared library, libfdk-aac. The media frameworks FFmpeg and Libav support audio encoding through libfdk-aac.{{cite web|title=FFmpeg AAC Encoding Guide|url=http://ffmpeg.org/ffmpeg-all.html#libfdk_005faac|access-date=13 March 2019}}{{cite web |title=Libav documentation |url=https://libav.org/documentation/general.html#Fraunhofer-AAC-library |website=libav.org |access-date=12 March 2019}}

class="wikitable"

|+AAC profiles that FDK supports

!Profile name

!MPEG-4 Objects involved

!FDK

!FDK 2

Low-Complexity (AAC-LC)

|2

|{{Yes}}

|{{Yes}}

High-Efficiency (HE-AAC)

|2, 5

|{{Yes}}

|{{Yes}}

High-Efficiency version 2 (HE-AAC)

|2, 5, 29

|{{Yes}}

|{{Yes}}

Baseline USAC

|42

|

|

Extended High-Efficiency (xHE-AAC)

|2, 5, 29, 42

|

|{{Partial|Decoding only}}

Low-Delay (AAC-LD)

|23

|{{Yes}}

|{{Yes}}

Enhanced Low-Delay (AAC-ELD)

|39

|{{Yes}}

|{{Yes}}

Enhanced Low-Delay version 2 (AAC-ELDv2)

|44

|

|{{Yes}}

Licensing

The license included by Fraunhofer in the FDK library source code{{Cite web|title=NOTICE - platform/external/aac - Git at Google|url=https://android.googlesource.com/platform/external/aac/+/refs/heads/master/NOTICE|access-date=2020-07-10|website=android.googlesource.com}} 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.{{Cite web|title=Via Adds MPEG-D DRC To Advanced Audio Coding Patent Pool – ViaCorp|url=https://www.via-corp.com/via-adds-mpeg-d-drc-to-advanced-audio-coding-patent-pool/|access-date=2020-07-11|language=en-US}} 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." There is no license fee required for using an AAC codec such as FDK AAC,{{cite web | url = https://www.via-corp.com/licensing/aac/aac-faqs/ | title = AAC Licensing FAQ Q5 | publisher = Via Licensing | access-date=2020-01-15 }} only for manufacturing an "end-user" codec such as producing a phone loaded with AAC software.{{cite web| url = https://www.via-corp.com/licensing/aac/license-fees/ | title = AAC License Fees | publisher = Via Licensing |access-date=2020-01-15 }}{{cite web |author1=Via Licensing Corporation |title=AAC PATENT LICENSE AGREEMENT |url=https://www.sec.gov/Archives/edgar/data/1649009/000121390020023370/ea125930ex10-9_siyatamobile.htm |website=www.sec.gov |access-date=21 April 2023 |date=June 5, 2018}}

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.{{cite web|title=Debian discussion regarding the FDK license|url=https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694257|website=Debian Bug Tracker|access-date=28 September 2014}} The license was classified as free by Fedora after a review by the legal department at Red Hat,{{cite web|title=Fedora fdk-aac package review|url=https://bugzilla.redhat.com/show_bug.cgi?id=1501522|access-date=24 January 2018}} 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.{{cite web|title=Licensing/FDK-AAC|url=https://fedoraproject.org/wiki/Licensing/FDK-AAC|website=Fedora Project Wiki|access-date=24 January 2018}} The FSF also considers it to be free, though discourages its use due to the explicit lack of a patent grant.{{cite web | url=https://www.fsf.org/blogs/licensing/recent-licensing-updates | title=Recent licensing updates | access-date=10 November 2018}}

See also

References

{{Reflist}}