详解音频编解码的原理、演进和应用选型等
4、语言/音频编码总表
▲ 语言/音频编码总表
上图展示的是语言/音频编码总表,可以看到其比视频编码要复杂得多,单纯的算法也远远比视频要更加复杂。
5、数字语言基本要素
数字声音具有三个要素:
1)采样率; 2)通道数; 3)量化位数。
▲ 声音数字化的过程
如上图所示,声音数字化的过程为:
1)采样:在时间轴上对信号数字化; 2)量化:在幅度轴上对信号数字化; 3)编码:按一定格式记录采样和量化后的数字数据。
6、为什么要压缩
压缩音频,主要是为了在降低带宽负担的同时为视频腾出更多带宽空间。存储和带宽二大因素决定了语音压缩的必要性。
我们看看下面的例子。
长度为4分钟,采样频率为44100Hz,采样深度为16bits,双声音Wav文件大小:
44100Hz*16bits*4minutes*2=(44100/1second)*16bits*(4minutes*(60seconds/1minutes)*2=705600bits/second*240seconds=169344000bits=169344000/(8bits/1byte)*2=42336000bytes=42336000/(1048576/1M)bytes=40.37MB
MP3,128kbps压缩后文件大小:
128kbps*4minutes=(128kbits/1second)*(4minutes*(60seconds/1minutes))=(128kbits/1second)*240seconds=30720kbits=30720kbits/(8bits/1byte)=3840kbytes=3840k/(1024k/1M)bytes=3.75Mbytes=3.75MB
正如上面的例子,声音压缩后,存储大小为原大小的十分之一,压缩率十分可观!
7、编码器考虑因素
7.1 基本概念
编码器考虑的因素:
1)最佳压缩比; 2)算法的复杂度; 3)算法延时; 4)针对特殊场景下的特定设计; 5)兼容性。
通过一些特定的压缩算法,可以压缩音频文件至原来的1/10,同时人耳也无法分辨压缩前后的声音质量差异,需要满足多种条件才能实现这种效果;而对于编码器,无论是设计阶段还是使用阶段,我们都需要考虑最佳压缩效果、算法的复杂度与算法的延时,结合特殊场景进行特定的设计;而兼容性也是我们不能不考虑的重点。
7.2 语音经典编码模型:发音模型
▲ 发音模型(原图点击查看)
我们的很多编解码器都是基于综合人的发音模型与一些和听觉相关的理论支持研究提出的特定编解码算法。初期我们通过研究人的发音原理来设计音频编解码的算法,包括端到端的滤波或轻浊音等,只有充分理解人的发声原理我们才能在编解码端做出有价值的优化。
【7.2.1】语音编码模型——LPC:
▲ 经典语音编码模型:LPC(原图点击查看)
▲ LPC 数学表达
LPC作为经典语音编码模式,其本质是一个线性预测的过程。早期的G