AAC编码

1. 前言

如果说目前H.264是视频CODEC的实际霸主,那么AAC就是音频CODEC的女王。主流的音视频格式都是H.264搭配AAC,无论是非实时的媒体文件还是实时的媒体流。


2. AAC历史

Advanced Audio Coding (AAC) 是一个有损压缩的音频编码集(其实新的编码工具也支持无损)。

其设计目标是替代原有MP3编码标准,在与MP3在相似的码率下希望质量优于MP3。这一目标已达到并且由ISO和IEC标准组织标准化在MPEG-2和MPEG-4中。

AAC已被广泛支持并应用到各种设备和系统中 YouTube, iPhone, iPod, iPad, Nintendo DSi, Nintendo 3DS, iTunes, DivX Plus Web Player and PlayStation 3. It is supported on PlayStation Vita, Wii (with the Photo Channel 1.1 update installed), Sony Walkman MP3 series and later, Android and BlackBerry等等。

1997年,AAC第一次出现在标准MPEG-2 Part 7,(ISO/IEC 13818-7:1997)。和视频CODEC标准类似,AAC在MPEG-2 Part 7就有三个profiles他们分别是。

l Low-Complexity profile (AAC-LC / LC-AAC)

l Main profile (AAC Main)

l Scalable Sampling Rate profile (AAC-SSR)

从此可知AAC-LC出现最早,所以AAC-LC的应用最广泛,兼容性最好。


1999年, AAC从原有标准升级并且合入标准MPEG-4 Part 3(ISO/IEC 14496-3:1999)

这次升级一个重要变化是引入Audio Object Types(AOT)并且把AOT概念合并到profiles中。这时profile也变成4个。

l Main (which includes most of the MPEG-4 Audio Object Types)

l Scalable (AAC LC, AAC LTP, CELP, HVXC, TwinVQ, Wavetable Synthesis, TTSI),

l Speech (CELP, HVXC, TTSI)

l Low Rate Synthesis (Wavetable Synthesis, TTSI)合成语音。


2000年,版本更新到2,MPEG-4 Audio Version 2 (ISO/IEC 14496-3:1999/Amd 1:2000),标准定义了一种新的AOT, 低时延AAC,the low delay AAC (AAC-LD)。

2001年,标准化High-Efficiency Advanced Audio Coding (HE-AAC) ISO/IEC 14496-3:2001。


2003年,标准化HE-AAC v2 Profile (AAC LC with SBR and Parametric Stereo) ISO/IEC 14496-3:2005

目前AAC的标准化的版本是 ISO/IEC 14496-3:2009。

从上面标准化历史可知,AAC不在一单纯的一个编码器了,而是一个庞大的音频编码工具集合。


3. AOT

AOT就是MPEG-4 Audio Object Types的缩写。能力集协商时用的是AOT ID。

也正是由于AAC的AOT繁多,导致识别使用AAC的用户很困扰。

AAC-LC 可认为是AOT为2的AAC。

下表是AOT的对应表。


4. MPEG-4 Audio Profiles

MPEG-4在音频编码方向对音频能力集合的描述称为Audio Profiles,音频能力描述基于AOT。



5. AAC-LC

基于AAC-LC的普遍和重要性,虽然上面有介绍,这里还是单独列出来。

Advanced Audio Coding Low-Complexity,(AAC-LC / LC-AAC)格式是MPEG-2格式,设计用于数字电视。AAC-LC用于存储空间和计算能力有限的情况。这种类型没有使用预测和增益控制这两种工具,瞬时噪声整形的阶数也比较低。

AAC-LC是充分利用心理声学原理,对人类对音频信号的感知存在不相干性和统计冗余的特性,最大程度的减少用于表达信号的比特数据 ,实现音频信号快速有效地压缩,而不再追求输出信号和原始信号相似度。

AAC-LC的重要技术点有如下一些。

Temporal Noise Shaping:瞬时噪声整形是用来控制量化噪声的瞬时形态,解决掩蔽阈值和量化噪声的错误匹配的问题。TNS利用时频对偶性,即时域平稳的信号会在频域上变比剧烈,而频域平稳的信号会在时域上变化剧烈。对时域的瞬态信号可以对频谱系数进行预测编码。对频谱系数进行预测,可以及时调节量化器以适应输入信号的时域状态,可以有效的控制量化噪声,

Intensity Stereo:利用心理声学原理提高编码效率的一种方法。由于人耳对高频信号的相位不敏感,只要信号的能量和频谱相似,在感知上没有什么区别,所以当一对声道的信号相关性较高时,可以对高频部分进行一定的处理,只在一个声道中编码传输数据,而不会影响解码后的重建音质。

AAC-LC把6kHz作为声强立体声处理的起始频率,在这个频率上的都进行声强立体声处理。计算出左右声道各个子带的能量和总能量,然后计算左声道能量和总能量的比值并换算成一个强度因子,按照这个强度因子对了带内的所有频谱进行左右声道求和并归一化,右声道的数据则全部置零,这样只需要对左声道数据进行量化编码。

Perceptual Noise Substitution:感知噪声替代用于频谱成分分类似噪声(功率谱密度是均匀的)时,用人造噪声代替。当判断某个频带需要进行感知噪声替代后,只用把该频带的能量作为参数编码传输,而不需要对子带内的频谱值进行编码,解码时解出子带能量和随机矢量生成函数产生的类似噪声。

Middle/Side:立体声编码,是利用一对声道的信号之间的相关性去冗余,降低编码比特率的方法。AAC-LD编码器中对左右声道的数据相关性较大时,可以用Middle=(L+R)/ 2,Side = (L-R)/2来代替左右声道的数据进行编码。这样能量集中在一个声道数据中,而另外一个声道只要少量比特数据,这样实现了数据压缩。


5. AAC-LD

既然说了AAC-LC,再说说AAC-LD

AAC是感知型音频编解码器,可以在较低的比特率下提供很高质量的主观音质。但是这样的编解码器在低比特率下的算法延时往往超过100ms,所以并不适合实时的双向通信。而基于G.722的语音编解码方案因为其较小的算法延时而适合于双向通信。但是这种基于语音的编解码方案只能针对语音信号提供较好的主观质量,并不适合更为复杂的音频信号,而且即使在很高的比特率下,该编解码方案给出的结果也很难达到良好的音质。

常用的感知音频编码器的延时包括:

Framing delay:进行块变换需要的块长;

Filterbank delay:分析-综合滤波器所需要的延时;

Look-ahead delay for block switching:块切换为检测瞬态而需要的延时;

Use of bit reservoir:比特池大小相对于平均比特率所需要的延时。

总延时计算公式:

如下面的AAC-LC为例:

在AAC-LD中,为了减少延时,将原来的1024的帧长改为512;没有了窗切换功能,减少了为进行窗切换所需要的前瞻延时;同时为了增强对瞬态信号的编码质量,引入了窗型切换机制,窗型包括一般的SINE窗和一个少重叠的窗,该窗与后面的窗有很少的重叠,这样通过对TNS工具的优化来消除瞬态信号产生的预回声效应。

MPEG-4 Low Delay Audio Coder (AAC-LD)是直接源于MPEG-2 AAC,并且结合了感知音频编码和双向通信必须的低延时要求。它可以保证最大的20ms的算法延时和包括语音和音乐的信号的很好的音质。现在的MPEG-4 AAC LD支持最大采样率48kHz,最大声道数目是2(可以扩展为多声道)。


6. AAC封装格式

以常用的两个格式为例。

ADIF (Audio Data Interchange Format)

ADIF是MPEG2规定的AAC音频封装格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。

ADTS(Audio Data Transport Stream)

这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征是数据流格式。

帧同步目的在于找出帧头在比特流中的位置,aac ADTS格式的帧头同步字为12比特的“1111 1111 1111”.ADTS的头信息为两部分组成,其一为固定头信息,紧接着是可变头信息。固定头信息中的数据每一帧都相同,而可变头信息则在帧与帧之间可变。

固定头信息

可变头信息

合起来就如下表


7. AAC版权和专利许可

AAC的文件和码流是不涉及版权和专利许可的问题,所以AAC文件比MP3格式更容易合法传播和分发。AAC的版权和专利许可仅针对商业目的AAC编解码器的厂商和开发者,所以FFMPEG和FAAC等包含AAC编解码器软件以开源的形式发布。

AAC的版权许可为5年一期,期满重新评估后可以继续5年一个周期。

AAC的版权费采取一次性入门费15000美元,不需要每年继费。小企业的入门费可降为1000美元。对小企业的定义是少于15人雇员并且年收入少于一百万美元。

AAC Licensors

l AT&T Corp.

l Dolby Laboratories, Inc.

l Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung, e.V.

l Koninklijke Philips N.V.

l Microsoft Corporation

l NEC Corporation

l NTT DOCOMO, INC.

l Orange SA

l Panasonic Corporation

l Telefonaktiebolaget LM Ericsson


8.最后

AAC-LC 是什么格式?和 AAC 有什么区别?

AAC是标准化在MPEG2和MPEG4的音频编码集合的总称。

AAC-LC是标准化AAC中AOT为2的一种音频编解码,它的特点是运算复杂度低,对内存占用小,标准化的时间早,对通性好,兼容性好,使用广。不足是算法时延高,不利于实时的音频通讯。

posted @ 2016-07-08 14:01  鹏小鹕  阅读(8639)  评论(0编辑  收藏  举报