五张图表明不一样的阶段:html
截取一个音频片断ide
对音频振幅进行采样编码
若干次横向均份量化3d
对音频高度进行量化code
若干次纵向均分orm
对片断进行编码cdn
将量化的音频信息进行二进制转化视频
数字信号转化htm
在二进制1
位置时进行发声blog
一个振幅高度采样用多少位(bit)存放。一般是16位(bit)
在音频中,每秒采集的高度信息次数。8k、16k、32k、44.1k、48k
不一样的编码方式有不一样的采样率,好比AAC
使用的是44.1k采样率。
单声道,双声道,多声道
采样率×采样大小×声道数
AAC
编码压缩后能够大概128kb/s,AAC HE V2
编码能够达到32kb/s。
消除冗余数据
关于冗余信息:
一个声音会掩盖另外一个声音(图中横向为频率,总想为分贝)。
红色声源
会掩盖其余紫色声源
而没法掩盖绿色声源
白色区域
虽然在人耳听觉范围以内,可是因为音量不够,也是听不到的。
当一个高分贝的声音出现时,其先后必定时间内的低分贝声音会被遮蔽
该图横向为毫秒,纵向为分贝
哈夫曼无损编码
常见的音频编解码器:OPUS、ACC、Vorbis、Speex、iLBC、AMR、G.711
当前十分流行的音频编解码器。内部具备基于口(速度快)、耳(高保真)两个编解码模型。
也是一种流行的音频编解码器。具备高保真的特性,因为RTMP协议的支持性良好,主要应用于直播业务中。
在AAC与OPUS以前的主流音频编解码器。包括回音消除,降噪等等辅助模块。
固话的编解码器
网上的测评结果中: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受权,并且不开源。
取代MP3格式
MP3使用的是MPEG-2编解码规范的有损压缩。 而AAC使用的是MPEG-4规范,压缩率更高,损耗更小。
AAC LC
、AAC HE V1
、AAC HE V2
对应关系以下所示
低复杂度,码流128kb/s
在
AAC LC
的基础上增长了SBR(Spectral Band Replication)
,码流64kb/s左右
SBR指的是频段复制
简要叙述一下,音乐的主要频谱集中在低频段,高频段幅度很小,但很重要,决定了音质。
SBR把频谱切割开来,下降低频波段的采样率以减小文件大小,提升高频波段的采样率以提升音质。
在
AAC HE V1
的基础上增长了Parametric Stereo)
,码流32kb/s左右
PS指的是参数立体声
原来的立体声文件文件大小是一个声道的两倍。
可是两个声道的声音存在某种类似性,根据香农信息熵编码定理,相关性应该被去掉才能减少文件大小。因此PS技术存储了一个声道的所有信息,而后,花不多的字节用参数描述另外一个声道和它不一样的地方。
Audio Data Interchange Format 音频数据交换格式
这种格式的特征是能够肯定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明肯定义的开始处进行。故这种格式经常使用在磁盘文件中。
Audio Data Transport Stream 音频数据传输流
种格式的特征是它的每一帧头部都包含一个同步字,解码能够在这个流中任何位置开始。它的特征相似于mp3数据流格式。
简单说,ADTS能够在任意帧解码,也就是说它每一帧都有头信息。ADIF只有一个统一的头,因此必须获得全部的数据后解码。
目前通常编码后的和抽取出的都是ADTS格式的音频流。
两者的头部信息以及组织结构也有区别,具体能够参阅《AAC帧格式及编码介绍》
Libfdk_AAC > ffmpeg AAC > libfaac > libvo_aacenc
其中最经常使用的是Libfdk_AAC
1. 判断文件格式,肯定为ADIF或ADTS。
2. 若为ADIF,解ADIF头信息,跳至第6步。
3. 若为ADTS,寻找同步头。
4. 解ADTS帧头信息。
5. 如有错误检测,进行错误检测。
6. 解块信息。
7. 解元素信息。