AAC音频编解码基础知识(AAC音频解码怎么样)

背景知识

为什么要进行音频压缩编解码?

音频编 / 解码器的任务就是在减少带宽码率消耗和存储器的消耗,尽量保持音频的音质不会受到损伤。

在线听一首无损的音乐:双通道,采样率48kHz,位深16bit的无损音乐,大概每秒需要传送的48000*16*2=1536kbps,实际传输是还要考虑发送的包头等其他额外带宽,大概算下来每秒钟仅仅在线听歌就需要消耗接近2Mb的带宽。

10个人在线会议,每个人发送给另外9个人单通道、采样率48kHz,位深16bit的音频信号,上行48000*16=768kbps,下行48000*16*9=6912kbps,大概算下来消费接近8Mb的带宽保证流畅的音频通话。

AAC音频编解码基础知识(AAC音频解码怎么样)

音频压缩编码之无损压缩和有损压缩

音频编码的过程就是对音频进行压缩,而压缩的过程是为了保留音频的主要甚至全部信息。解码就是对压缩后的音频信号进行解码,从而恢复原始的音频信号。

压缩按照是否可以完美还原,可以分为无损压缩和有损压缩。简单理解有损压缩编码可以占用更少的资源,只编重要的部分,舍弃冗余部分

  • 无损格式:WAV 、FLAC、APE
  • 有损格式:MP3、 AAC、Opus

音频编/解码分类

分类一:

语音编/解码器:基于时域的线性预测(参考声道发声特性)。

音乐编/解码器:基于频域编码(心理声学模型)。

语音音乐混合编码器:WebRTC编解码器OPUS(针对信号类型自动切换合适的编码框架)、基于 MPEG 标准的 MP3 和 AAC 编解码器。

分类二:

时域编码方法:是利用声音信号在时间域内幅度变换经PCM后形成的样本值,对不同的样本值实现二进制码代替,形成数码流。它结合声音幅度出现概率来表示选取量化比特数进行编码,在满足一定的量化噪声下压缩数据,还可以采取预测的方法来表示音频信号的全带宽,导致量化误差的频谱覆盖整个音频带宽。尽管时域编码可以压缩数据,但是压缩率太低。

频域编码:将时域中的声音信号进行频率变换,结合声音的相关性以及人的感知,选取量化比特数进行编码,它是基于人耳的心理声学模型特性对量化噪声进行处理的。

  • 采用滤波和FFT变换,可在频域内将其能量较小的分量忽略,从而实现降低比特率。
  • 利用人耳听觉的掩蔽效应,在满足一定量化噪声的前提下压缩数据。

数字音频编码 :以感知音频编码原理为基础 

  • 子带编码器,采用若干子带,处理时间上相邻的取样值。
  • 变换编码器。处理频率上相邻的取样值。

音频中存在的冗余

时域冗余:时域分布的非均匀性、样值间的相关性、信号周期之间的相关性、长时自相关性和静音。

频域冗余:长时功率谱密度的非均匀性和语音特有的短时功率谱密度。

听觉冗余:人耳的掩蔽效应、对不同频段的声音的敏感程度的不同、对语音信号相位变化的不敏感。

AAC编解码发展

AAC(Advanced Audio Coding)出现于1997年,Fraunhofer IIS(弗劳恩霍夫集成电路研究所)、杜比实验室、AT&T、索尼等共同开发,基于MPEG-2的音频有损压缩编码技术,目的取代mp3。MPEG-4 1999年初式成为国际标准,AAC随着MPEG-4(MP4)标准在2000年的成型,目前分为27个部分,统称为ISO/IEC14496国际标准,音频编码在第三部分(ISO/IEC 14496-3)。2002年在MPEG-4 增加了SBR(频带复制)和错误鲁棒性工具,形成了 HE-AAC(aac Plus v1),2003年标准化。2004年MPEG-4在HE-AAC引入了PS(参数立体声)模块,提升降码率性能,形成了 HE-AACv2(aac Plus v2)。

AAC属于感知音频编码,基本原理是利用心理声学中人耳听觉的掩蔽效应,通过基于对音频信号的短期频谱分析,计算该频谱的掩蔽阈值,低于此阈值的失真是听不见的从而去除被掩蔽的信息,保留人耳感知的声音成分,并控制编码时的量化噪声不被分辨。

在采样率不变的情况下,根据信号的情况有选择的减小量化比特数,人耳敏感的部分多分配量化比特数,使它的信号质量较好,失真较少,而对不敏感的部分少分配量化比特数,并通过掩蔽效应相应较小量化噪声的影响。这样可以在听觉质量不变的情况下,尽可能降低数据的传输速率。

如果想进一步提高压缩率,编解码器引入的失真就会超过掩蔽阈值并产生了可听的量化噪声了。那传统的感知音频编码器解决此问题的主要方法就是限制音频带宽(截止频率),这样其余的频率部分可以获得更多的信息,从而产生了干净但听起来发闷的信号。另一种称为强度立体声(intensity stereo)的方法针对于立体声音频仅传输一个通道和一些平移信息,从而提高压缩效率,但会破坏立体声声像。这些问题促进了SBR频段复制技术和PS参数立体声技术的产生。

AAC音频编解码基础知识(AAC音频解码怎么样)

1 编解码算法

AAC系统包含了滤波器组(必需)、心理声学模型(必需)、量化与编码(必需)、预测、TNS、立体声处理和增益控制等多种高效的编码工具。在实际应用中所有的功能模型并不是都需要的,是可选的。

  1. 滤波器组(Filter bank) :主要完成信号的时域到频域的转换,从而得到频域的频谱系数 。
  2. 量化:AAC的量化过程是使用两个巢状循环进行反复运算,通过对量化的良好控制,码率能够有效降低。
  3. 预测 :对音频信号进行预测可以减少冗余信息。在MPEG-4中新增的长时期预测(LTP),用来减少连续两个编码音频框之间的信号冗余。
  4. 时域噪音修整(TNS) 通过在频域上的预测,来修整时域上的量化噪音的分布,在一些特殊的语音和剧烈变换信号的量化上对音质的提高有很大贡献 。
  5. 知觉噪音代替(PNS) MPEG-4中新增,当编码器发现类似噪音的信号时,不对其进行量化,而是忽略掉,解码的时候再还原出来,这样提高了效率。

2 编解码特点

  1. AAC是一种高压缩比的音频压缩算法,它的压缩比要远超过较老的音频压缩算法,如AC-3、MP3等,但其质量可以同未压缩的CD音质相媲美。
  2. 同其他类似的音频编码算法一样,AAC也是采用了变换编码算法(处理频率上相邻的取样值),但AAC使用了分辨率更高的滤波器组,因此它可以达到更高的压缩比。
  3. AAC增加了时域临时噪声重整、后向自适应线性预测,改进了联合立体声技术和量化哈夫曼编码,在时-频变换中使用了自适应的长短窗切换机制,这些新技术有效地增加了压缩比,提高了音频质量。
  4. AAC支持更多种采样率和码率、支持1个到48个音轨多声道配置方案、支持多达15个低频音轨、具有多种语言的兼容能力、还有多达15个内嵌数据流。
  5. AAC支持更宽的声音频率范围,支持从8k到96k的各种采样率,远宽于MP3的16KHz-48kHz的范围。
  6. 不同于MP3及WMA,AAC几乎不损失声音频率中的甚高、甚低频率成分,并且比WMA在频谱结构上更接近于原始音频,因而声音的保真度更好。专业评测中表明,AAC比WMA声音更清晰,而且更接近原音。
  7. AAC采用优化的算法达到了更高的解码效率,解码时只需较少的处理能力。
AAC音频编解码基础知识(AAC音频解码怎么样)

AAC格式和技术

1 常见规格

根据不同的编码技术,AAC的编码分为九种规格,这里只介绍常用的MPEG-4 AAC LC 低复杂度规格(Low Complexity)和MPEG-4 AAC HE 高效率规格(High Efficency)。

AAC LC 低复杂度规格,比较传统的AAC,相对主要用于中高码率(>=80Kbps),编码方式简单,没有增益控制,但是提高了编码效率,在中高码率的编码效率和音质方面可以找到平衡点。常见码率为128kbps,低于此码率音质开始下降,可以通过SBR频段复制技术和PS参数立体声技术最大程度补偿。

AAC HE 高效率规格,HE-AAC(相当于AAC+SBR)主要用于中低码(<=80Kbps),而HE-AACv2(相当于AAC+SBR+PS)主要用于低码率(<=48Kbps)。事实上大部分编码器设成<=48Kbps自动启用PS技术,而>48Kbps就不加PS,就相当于普通的HE-AAC。

三个编码方式的关系图如下:

AAC音频编解码基础知识(AAC音频解码怎么样)

2 创新技术

SBR频段复制技术(Spectral Band Replication):一种带宽扩展技术,基于对音频信号高频段和低频段之间强相关的认识,可以很好地近似原始音频信号的高频段可以由低频段转置来实现。除了转置,高频段重建还需要通过传输引导信息(比如原始音频的频谱包络)或其他信息共同补偿可能丢失的高频分量。传输引导信息称为SBR数据,只需要很少的字节存储,从而实现低数据速率的开销。

AAC音频编解码基础知识(AAC音频解码怎么样)

在编码器侧会分析原始输入的音频信号,对高频带频谱包络及其低频带相关的特性进行编码,并将生成的SBR数据与核心编解码器码率复用。在解码器段,首先对SBR数据进行解复用,然后单独使用核心解码器。最后使用解码后SBR数据指导频带复制过程,获得全频带输出信号。

低频段和高频段之间的交叉频率是根据目标码率和输入采样率等不同因素选择的。通常低频段需要覆盖4-12kHz的频率范围,具体取决于目标码率。AAC与SBR之间的交叉频率越高,满足AAC编码器的心理声学掩蔽阈值所需要的码率越高。还有值得一提的是aac Plus被设计成双速率系统,其中AAC以SBR一半的采样率运行,典型的16/32kHz,22.05/44.1kHz或24/48kHz,这显然提高了编码效率。生成的音频带宽可以灵活配置,也可能取决于应用程序或音频内容类型。下表展示不同的码率下典型的HE-AAC分频频率和音频带宽的关系。

AAC音频编解码基础知识(AAC音频解码怎么样)

虽然基本的原理解释下了很简单,但是实践中还是有很多困难的,比如需要良好频谱信息;对于非高度相关的低频高频段处理;单独的转置和包络调整带来听感上的不自然等等。

PS参数立体声技术(parametric stereo ):编码器中提取参数立体声数据后,仅对原始立体声信号的单声道混缩混后进行编码。这些参数随后作为PS信息嵌入码率的辅助部分,用很少的字节描述。在解码器中,首先对单声道信号进行解码。之后。基于编码器嵌入的立体声参数重建立体声信号。

AAC音频编解码基础知识(AAC音频解码怎么样)

参数立体声用来描述立体声差异的参数有通道间的强度差(IID)、通道间互相关(ICC)和通道间相位差(IPD),有时候也会用通道间的时间差(ITD)作为IPD的替换方案。

3 HE-AAC v2编解码过程

AAC音频编解码基础知识(AAC音频解码怎么样)
编码器框图
AAC音频编解码基础知识(AAC音频解码怎么样)
解码器框图

AAC编解码器对低频段进行编码,SBR对高频段进行编码,而PS以参数化的形式对立体声进行编码。输入采样率为fs的音频信号,会被馈送到64波段正交镜像滤波器(Quadrature Mirror Filter),组并转换到QMF域。

编码:

  • 如果使用PS工具(<36kps的立体声编码),PS编码器会根据QMF样本提取参数立体声信息、单通道混缩,通过32波段QMF合成,单通道以一半的采样率fs/2转回时域,然后将此信号馈给AAC编码器。
  • 如果不使用PS工具,则将音频信号馈给2:1重采样器,然后再馈给AAC编码器。
  • SBR编码器同样工作在QMF域,提取频谱包络信息和其他辅助信息,将所有编码数据多路复用为单个码率以进行传输和储存。

解码:

  • 码率分成AAC、SBR和PS数据部分。
  • AAC编解码器以fs/2的采样率输出时域低频带信号,然后将信号转换到QMF域。
  • SBR重建高频带,然后低频带和高频带合并为全频带QMF表示,如果使用PS工具,会生成立体表示。
  • 最后输出结果是全采样fs的时域信号。

4 封装格式

ADIF(Audio Data Interchange Format音频数据交换格式):这种格式特征是不能进行随机访问,不允许在文件中间开始进行解码,只有拿到整个文件时才能开始进行渲染播放,故这种格式常用在磁盘文件中。

ADTS(Audio Data Transport Stream 音频数据传输流):这种格式的特征是用同步字节进行将AAC音频截断,可以允许客户端在任何地方进行解码播放,适合网络传输场景。这也是最常用的封装格式。ADTS帧头中包含很多字段,例如代表采样率,通道,AAC规格等字段,每个字段的取值不同代表不同的含义。可以用MediaInfo工具可以查看AAC音频的基本信息,ffprobe也可以解析音视频流信息。

AAC音频编解码基础知识(AAC音频解码怎么样)

HE-AAC编码的音频数据可以存在于具有不同扩展名的多种文件格式中,具体取决于实现和应用场景。最常用的MPEG-4文件格式是MP4和M4A,分别带有扩展名.mp4和.m4a。.m4a用来强调文件中仅包含音频。

5 官方音频质量评估结果

低码率:

AAC音频编解码基础知识(AAC音频解码怎么样)
欧洲广播联盟(EBU)双盲MUSHRA结果
AAC音频编解码基础知识(AAC音频解码怎么样)
MPEG和3GPP双盲MUSHRA结果

高码率多通道音频编码:

AAC音频编解码基础知识(AAC音频解码怎么样)
IRT多通道的多种音频类型MOS结果

综合结果预测:

压缩音频信号的质量随着码率变化,综合各方听力测试结果,给出预期音频质量与比特率的关系。

AAC音频编解码基础知识(AAC音频解码怎么样)

6 AAC新发展xHE-AAc

xHE-AAC也称为扩展型HE- AAC,AAC编解码器家族最新成员,由 Fraunhofer IIS 主导开发,2012年年初完成标准化。DRM (Digital Radio Mondiale) 是第一个采用 xHE-AAC(自 2013 年起强制执行)并受益于其功能的数字无线电标准。xHE-AAC显著提高了音乐和语音的音频质量,尤其是在8 kbps等极低的码率下,并与HE-AAC流兼容。

技术特性

适用于各种类型的音频内容:有声书、播客、音乐、视频服务等

宽广的码率传输范围和始终如一的高音质:单通道低至6kbps,立体声低至12kpbs,最高到500kbps。

支持自适应流媒体传输:可通过MPEG-DASH 或HLS进行自适应流媒体传输。网络条件不佳时切换至极低码率流,流畅播放,网络条件恢复后,xHE-AAC播放器能够无缝切换至更高的比特率。卓越的编码效率节省码率,并提升音质。相同的数据流量下享受更长时间的流媒体服务。

提供响度和动态范围控制:MPEG-D DRC 为 xHE-AAC 提供强制响度控制,以便以一致的音量播放内容,并提供动态范围控制处理。

兼容性强:xHE-AAC 配置文件解码器能够解码所有 AAC 版本,包括 AAC-LC、HE-AAC 和 HE-AACv2。通过补充传统的更高比特率流,很容易将 xHE-AAC 流集成到现有的编码工作流程中。在最新的 Apple、Android 和 Amazon 操作系统和产品中原生支持,授权给 Facebook、微软和 Netflix。包含许可的 AAC 专利许中,无需额外费用。

AAC音频编解码基础知识(AAC音频解码怎么样)

7 与OPUS的对比

Opus有损压缩声音编码格式,主要由Xiph.Org基金会2007年开始开发,2012年被IETF(互联网工程任务组)批准用于标准化。目标是希望用单一格式包含声音和语音,取代Speex(语音)和Vorbis(音乐)。Opus格式是一个开放格式,使用上没有任何专利或限制。Opus持续在更新版本,2017年Opus 1.2.1版本发布,带来了面向VR的立体声音频解决方案。

技术特性

Opus集成了两种声音编码的技术:以语音编码为导向的SILK和低延迟的CELT。Opus可以无缝调节高低比特率。在编码器内部它在较低比特率时使用线性预测编码在高比特率时候使用变换编码(在高低比特率交界处也使用两者结合的编码方式)。

码率支持6kbps到510kbps;采样率从8kbps窄带到48kbps全带;支持CBR恒定码率和VBR可变码率。

支持单通道和立体声,多发255个通道。Opus具有非常低的算法延迟(默认为22.5 ms),非常适合用于低延迟语音通话的编码,RTC场景。

此外Opus也可以透过降低编码码率,达成更低的算法延迟,最低可以到5 ms。

在多个听觉盲测中,Opus都比MP3、AAC、HE-AAC等常见格式,有更低的延迟、更好的声音压缩率以及更高的质量。

AAC音频编解码基础知识(AAC音频解码怎么样)
各音频编码格式码率与延时情况
AAC音频编解码基础知识(AAC音频解码怎么样)
40首曲目公众盲听测试结果

(以上部分资料来自网络,侵删)

作者:抖音多媒体实验室

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论