AAC各开源库总结

AAC编解码在当前软硬件播放器中已经越来越成为成为主流。而且早期个别商业性质的AAC源码也逐渐被开放出来。但这么多套的AAC库,各有何特点,如何选择?
 
至少有六套AAC库:
- FAAC, FAAD/FAAD2    ---编码只有AAC LC
-   neroAACenc ---非商业可以使用(提供编码工具)
- FFmpeg's native AAC encoder(part of libavcodec), experimental by the developers as of December 2010   ---只有AAC LC,且质量不好
- libvo_aacenc, the Android   VisualOn  AAC encoder   ---只有AAC LC,   opencore-amr-vo-aacenc,只有编码
- libfdk-aac, the   Fraunhofer  FDK AAC libray  ---包含到HE-AACv2,且性能较好    opencore-amr-fdk-aac
- libaacplus, 3GPP released reference implementations 3GPP High Efficiency Advanced Audio Codec (HE-AAC) Codec (3GPP TS 26.410 V 8.0.0).  --只有编码,“ Enhanced aacPlus general audio codec; Floating-point ANSI-C code”

voAACEncoderSDK.pdf(VisualOn – Proprietary & Confidential

The AAC encoder is based on AAC LC profile. The supported output formats are ADTS and raw AAC data with mono and stereo channels. The encoder is optimized for various ARM instruction sets, including v5, and v7 with NEON, instructions. 

aacEncoder.pdf(Fraunhofer Institute for Integrated Circuits (IIS).
Advanced Audio Coding Encoder  Library
MPEG-2 and MPEG-4 AAC Low-Complexity,  
MPEG-4 High-Efficiency AAC v2
MPEG-4 Enhanced Low Delay AAC  encoder

The library implements encoding on the basis of the MPEG-2 and MPEG-4 AAC Low-Complexity standard,  and depending on the library’s configuration, MPEG-4 High-Efficiency AAC v2 and/or AAC-ELD  standard.
All references to SBR (Spectral Band Replication) are only applicable to HE-AAC or AAC-ELD versions  of the library. All references to PS (Parametric Stereo) are only applicable to HE-AAC v2 versions of the  library.

• ISO/IEC 13818-7 (MPEG-2 AAC), which defines the syntax of MPEG-2 AAC audio bitstreams.
• ISO/IEC 14496-3 (MPEG-4 AAC, subparts 1 and 4), which defines the syntax of MPEG-4 AAC  audio bitstreams.
• Lutzky, Schuller, Gayer, Krämer, Wabnik, "A guideline to audio codec delay", 116th AES Convention,  May 8, 2004

An MPEG-2 or MPEG-4 AAC audio bitstream is composed of frames. Contrary to MPEG-1/2 Layer-3 (mp3),   the length of individual frames is not restricted to a fixed number of bytes , but can take on any
length between 1 and 768 bytes.

The AAC encoder library API functions are located at   aacenc_lib.h .
In binary releases the encoder core resides in statically linkable libraries called for example libAACenc. a/libFDK.a (LINUX) or FDK_fastaaclib.lib (MS Visual C++) for the plain AAC-LC core encoder
and libSBRenc.a (LINUX) or FDK_sbrEncLib.lib (MS Visual C++) for the SBR (Spectral Band Replication)  and PS (Parametric Stereo) modules.


==========================================================

http://www.answers.com/topic/faac#FAAC_encoder

FAAC encoder

FAAC stands for Freeware Advanced Audio Coder.[3] The FAAC encoder is an audio compression computer program that creates AAC (MPEG-2 AAC/MPEG-4 AAC[4]) sound files from other formats (usually, CD-DA audio files). It contains a library (libfaac) that can be used by other programs.[5] AAC files are commonly used in computer programs and portable music players, being Apple Inc.'s recommended format for the company's iPod music player.

FAAC is one of six alternatives that Linux/Unix users have for creating AAC files. The second is Nero's free neroAACenc program, which has a proprietary license,[6] and is not available for the entire range of hardware architectures that these operating systems are able to run. The third is FFmpeg's native AAC encoder (considered experimental by the developers as of December 2010)[7] (part of libavcodec), but considered "as good as vo-aacenc" in at least some tests.[8] It was written by Konstantin Shishkov, and released under version 2.1 of the LGPL. The fourth is libvo_aacenc, the Android VisualOn AAC encoder.[9] The fifth is the (custom-copyleft) libfdk-aac,[10] the Fraunhofer FDK AAC library,[11] which is purported to be a "high quality" aac implementation.[12] The sixth is to use the (nonfree) libaacplus[13] which implements the High-Efficiency Advanced Audio Coding, said to be high quality.

Some of the features that FAAC has are: cross-platform support, "reasonably" fast encoding, support for more than one "object type" of the AAC format, multi-channel encoding, and support for Digital Radio Mondiale streams. It also supports multi-channel streams, like 5.1.[14] The MPEG-4 object types of the AAC format supported by FAAC are the "Low Complexity" (LC), "Main", and "Long Term Prediction" (LTP).[2] The MPEG-2 AAC profiles supported by FAAC are LC and Main.[15] The SBR and PS object types are not supported, so the HE-AAC and HE-AACv2 profiles are also not supported. The object type "Low Complexity" is the default and also happens to be used in videos meant to be playable for portable players (like Apple's iPod) and used by video-hosting sites (like Youtube).

It has been evaluated as a somewhat "lower quality" option than other aac encoders.[16]

FAAC was originally written by Menno Bakker.[17]

你可能感兴趣的:(技术点滴)