音视频--音频入门


音频入门

声音三要素

  • 音调

    声音震动的频率。高音低音、女声男生。

  • 音量

    声音震动的幅度。

  • 音色

    取决于材质,本质是谐波。

人类听觉范围

在进行音频压缩时,对于特定赫兹的数据(好比超声波和次声波),能够选择忽略。


音频的量化与编码

量化的过程

五张图表明不一样的阶段:html

  1. 截取一个音频片断ide

  2. 对音频振幅进行采样编码

    若干次横向均份量化3d

  3. 对音频高度进行量化code

    若干次纵向均分orm

  4. 对片断进行编码cdn

    将量化的音频信息进行二进制转化视频

  5. 数字信号转化htm

    在二进制1位置时进行发声blog

  • 采样大小

一个振幅高度采样用多少位(bit)存放。一般是16位(bit)

  • 采样率

在音频中,每秒采集的高度信息次数。8k、16k、32k、44.1k、48k

不一样的编码方式有不一样的采样率,好比AAC使用的是44.1k采样率。

  • 声道数

单声道,双声道,多声道

码率计算

采样率×采样大小×声道数

AAC编码压缩后能够大概128kb/s,AAC HE V2编码能够达到32kb/s。


音频压缩

有损压缩技术

消除冗余数据

关于冗余信息:

  1. 超出人类听觉范围
  2. 被遮蔽掉的音频信号
    • 频域遮蔽
    • 时域遮蔽
  • 频域遮蔽效应

一个声音会掩盖另外一个声音(图中横向为频率,总想为分贝)。

红色声源会掩盖其余紫色声源而没法掩盖绿色声源

白色区域虽然在人耳听觉范围以内,可是因为音量不够,也是听不到的。

  • 时域遮蔽效应

当一个高分贝的声音出现时,其先后必定时间内的低分贝声音会被遮蔽

该图横向为毫秒,纵向为分贝

编码过程

无损压缩

哈夫曼无损编码


音频编解码器

常见的音频编解码器:OPUS、ACC、Vorbis、Speex、iLBC、AMR、G.711

OPUS

当前十分流行的音频编解码器。内部具备基于口(速度快)、耳(高保真)两个编解码模型。

AAC

也是一种流行的音频编解码器。具备高保真的特性,因为RTMP协议的支持性良好,主要应用于直播业务中。

Speex

在AAC与OPUS以前的主流音频编解码器。包括回音消除,降噪等等辅助模块。

G.711

固话的编解码器

解码器的比较

网上的测评结果中:OPUS>ACC>Vorbis

上图中横轴是音频编码码率,纵轴是音频频带信息。从图中咱们能够得到以下几方面信息。

  (1)对于固定码率的编码标准,如G.711或者G.722,图中采用单点表示,说明这两个编码标准是固定码率编码标准。其余如Opus、Speex,它们的曲线是连续的,说明这类编码标准是可变码率的编码标准。

  (2)从频带方面看,G.7十一、G.72二、AMR和iLBC等标准适用于narrowband(8khz采样率)和wideband(16khz采样率)范围,针对普通的语音通话场景。AAC和MP3适用于fullband(48khz采样率)范围,针对特殊的音乐场景。而Opus适用于整个频带,能够进行最大范围的动态调节,适用范围最广。

  (3)从标准的收费状况看,适用于互联网传输的iLBC、Speex和Opus都是免费且开源的;适用于音乐场景的MP3和AAC,须要license受权,并且不开源。


AAC编解码器

应用范围广

  1. 大部分的直播系统。
  2. RTMP传输协议支持ACC与Speex,但并不支持OPUS。
  3. 音频编码能够作到高保真。

产生的目的

取代MP3格式

MP3使用的是MPEG-2编解码规范的有损压缩。 而AAC使用的是MPEG-4规范,压缩率更高,损耗更小。

经常使用规格

AAC LCAAC HE V1AAC HE V2

对应关系以下所示

  • AAC LC (Low Complexity)

低复杂度,码流128kb/s

  • AAC HE V1

AAC LC的基础上增长了SBR(Spectral Band Replication),码流64kb/s左右

SBR指的是频段复制

简要叙述一下,音乐的主要频谱集中在低频段,高频段幅度很小,但很重要,决定了音质。

SBR把频谱切割开来,下降低频波段的采样率以减小文件大小,提升高频波段的采样率以提升音质。

  • AAC HE V2

AAC HE V1的基础上增长了Parametric Stereo),码流32kb/s左右

PS指的是参数立体声

原来的立体声文件文件大小是一个声道的两倍。

可是两个声道的声音存在某种类似性,根据香农信息熵编码定理,相关性应该被去掉才能减少文件大小。因此PS技术存储了一个声道的所有信息,而后,花不多的字节用参数描述另外一个声道和它不一样的地方。

AAC音频文件解析

  • ADIF

Audio Data Interchange Format 音频数据交换格式

这种格式的特征是能够肯定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明肯定义的开始处进行。故这种格式经常使用在磁盘文件中。

  • ADTS

Audio Data Transport Stream 音频数据传输流

种格式的特征是它的每一帧头部都包含一个同步字,解码能够在这个流中任何位置开始。它的特征相似于mp3数据流格式。

  • 两者区别

简单说,ADTS能够在任意帧解码,也就是说它每一帧都有头信息。ADIF只有一个统一的头,因此必须获得全部的数据后解码。

目前通常编码后的和抽取出的都是ADTS格式的音频流。

两者的头部信息以及组织结构也有区别,具体能够参阅《AAC帧格式及编码介绍》


AAC的编解码库

Libfdk_AAC > ffmpeg AAC > libfaac > libvo_aacenc

其中最经常使用的是Libfdk_AAC


AAC文件处理流程

1. 判断文件格式,肯定为ADIF或ADTS。

2. 若为ADIF,解ADIF头信息,跳至第6步。

3. 若为ADTS,寻找同步头。

4. 解ADTS帧头信息。

5. 如有错误检测,进行错误检测。

6. 解块信息。

7. 解元素信息。


参考资料

慕课网

网易视频云技术分享:音频处理与压缩技术漫谈

AAC帧格式及编码介绍

相关文章
相关标签/搜索