3. 【音频编码原理】

2022-04-21  本文已影响0人  东也_

原理:

  1. 消除冗余信息,压缩量最大,也叫有损压缩
http://img.mukewang.com/szimg/608581a20907a00909500592.jpg http://img.mukewang.com/szimg/6085832d0973e9fd08140552.jpg
  1. 去除冗余信息后,再进行无损压缩;

音频编码过程

数据先同时通过 时域转频域变换器和心理学模型处理数据,前者将数据转换成多种频段的数据,然后剔除不需要的频段数据,后者会去除非人耳听到的范围声音和一些复合声音,最后将两者合并经过量化编码,无损编码之类的,形成比特流数据,在此之前还会有一些辅助数据,此后数据就会变得非常小;

http://img.mukewang.com/szimg/6085873f096e726d09480542.jpg

常见的音频编码器

opus、aac、Ogg、Speex、iLBC、AMR、G.711, 最常用的编码器是opus aac。
opus常用于直播,尤其是无延迟的直播,webrtc默认使用opus;
AAC是应用最广泛的编解码;
Ogg收费;
Speex支持回音消除;
G.711一般用于固定电话,声音损耗严重,通话会失真;

编码质量比较 码率比较

AAC比较适合有一定延迟的直播,AAC-LD属于低延迟编码器

AAC历史背景

常用的规格有AAC LC、AAC HE V1 、AAC HE V2三种;

AAC规格关系图

AAC HE V1 = AAC + SBR;
AAV HE V2 = AAC + SBR + PS;
目前AAC HE V1 已经被取代 V2 取代了;

http://img.mukewang.com/szimg/6085ef4f090c686610540554.jpg

V2的码流跟V1的差别不是很大,根据声音的数据变化,如果两个声道的差别很大,码流差别就会越小;

AAC 中header有两种格式:

就相当于在aac数据前面加了个Header,header里面就会包含aac数据的一些信息,方便进行编解码

  1. ADIF(Audio data interchange format): 特点是只能从头开始解码,可以确定的找到音频数据的开始部分,不能从音频数据中间开始,这种格式常用于磁盘文件中;
  2. ADTS(Audio Data Transport Format):在每一帧的数据里面都会有一个同步字,也就是每帧都有一个header,所以他可以在任意的位置开始进行解码,就像流式数据;

其中每一十进制数对应的含义:

Audio Object Type: 在代码中实际获取类型的时候需要进行+1,才是下面的类型
1 == AAC main
2 == AAC LC
5 == SBR == HE V1
29 == ps == HE V2

其中的采样率是通过十进制数表示的一个采样率,有一个表,比如:0 == 96000Hz 1 == 88200HZ 等
通过网址 可以更详细看到其中的含义

上一篇:音频采集实战
下一篇::音频编解码实战

上一篇下一篇

猜你喜欢

热点阅读