音频编码基础

为什么要进行音频编码?

在音视频开发过程中,无论是进行传输还是本地保存,都是希望采用比较小的资源获得更好的效果。在本地存储相对来说要好很多,目前的计算机本地存储还是比较大的。但是相对于有一些资源不是很充足的计算机来说,就不是那么友好了。比如一般的mac book。本地存储只有那么几百个G而已,安装一个xcode或者其他的ide,硬盘空间就所剩无几了。

尤其是需要传输的音频中,众所周知,目前的带宽还是比较昂贵的(对我来说)。因此希望把数据压缩再传输出去。这样有限带宽能传输更多的资源。说了这么多,到底音频能有多费资源呢?根据上一篇的内容可以计算出,假如有一路音频,采样率44.1khz(回顾一下,常见的音频采样率,22khz,44.1khz,48khz,96khz,192khz。那么这么多的采样率常用于哪里?如果忘记了,可以参见上一篇,加深一下映像),双通道,16位其码率为:

44.1khz x 2 x 16bit = 1.411Mbit/s

从这个数据来看,每秒1.411Mbit数据量还是比较大的。比如100M带宽的话能带职能带70多路。这样一算其实还是比较大的。那么应该如何减少码率呢?

压缩原理

刚才也算了一下,数据量还是比较大的,那么如何减少数据量呢。是不是把一些没有用的数据去掉就可以了呢?个人觉得就应该这么干。那么什么数据不需要呢?就是人耳听不到的就可以理解为无效数据。在这引出了“频谱屏蔽效应”和“时域屏蔽效应”。

频谱屏蔽效应

人耳能听到的频率范围是20hz ~ 20khz,那么低于这个频率的和高于这个频率的就可以去掉了。称之为 频谱屏蔽效应。

从网上找了一张图,更加方便自己的理解,如下图:

y轴为音量强度,x轴为声音频率。从图中可以看出,人耳对声音最敏感的事2khz~5khz。声音比较小的时候,人耳也是可以听到。对其他的频率的反应都不是很好。在接近20khz的事声音需要很大的时候,人耳才会听见,0.02khz的时候,也需要差不多80db人耳才能有感觉。那么在0.2khz的频率上,出现一个60db的声音,那么其附近的频率的音量值需要提高很高,人耳才能感觉到。那在编码过程,被掩蔽的音频音量就不进行编码了。

时域屏蔽效应

根据人的听觉系统和心理作用的情况下,当一个强音量的和一个弱音量的声音出现时,往往只会感觉只有一个强音量的声音(两个音量相差比较大)。这种称之为时域屏蔽效应。同时我也在网上找了一张图,便于理解

图中,y轴表示声音强度,x轴表示时间。时域掩蔽又可以分成三种,超前掩蔽和同时掩蔽以及滞后掩蔽。

超前掩蔽 

当出现一个强音量出现的很短时间内,人耳对一个弱音量的声音,敏感度会降低。从而感觉上我们是听不到的。

同时掩蔽

同时存在一个强音量和弱音量的声音时,通常对弱音量敏感度也会降低,感觉我们只是听到了一个声音

滞后掩蔽

存在这样的一种场景,当一个音量特别大的声音出现时,短暂的失聪应该很多人都有感觉,不在叙述。

常用编码器

oplus : 常用于音频通话

aac:rtmp直播

mp3:本地文件

ac3和eac3 等等

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值