Skip to content

最近在研究音视频技术,对其中的码率计算做了点研究,记录一下

音频录制时,对于产品经理来说,他们最关注的应该就是码率。因为码率意味着流量,流量意味着钱。

而对于程序员来说,能够设置的无非就只有通道数,采样率,和深度。

这就会产生产品经理与开发的术语不一致的矛盾,会出现交流问题。

那么这两者之间的关系是如何呢?

通道数

通道数是指你的喇叭能够出几路声音。对于人耳来说,因为左右耳的距离不同,听到的声音波形会存在些许差异。对于单声道来说,你能感受到的音质同真实声音相比就会感觉不真实。一般来说,采用2通道可以应付大多数场景。

采样率

采样率即声音采样的频率,即每秒记录多少个音量点。对于人耳来说,声音的范围是20-20khz,而人的说话声音范围是300-3400hz。奈奎斯特定律指出要重建信号,必须要求采样率是原信号最高频率的2倍以上。即我们期望将一段音频信号进行录制后还原,录制时的采样频率必须达到原音频信号最高频率的2倍以上,才能保证高频信号的完整。

那么对于音频文件来说,一般的44.1khz采样率就可以满足了,再高人也听不到。而对于通话场景,11.025khz即可。这也是为什么语音通话不那么耗费流量的原因。

采样深度

采样深度一般有8,16,32等,即使用几个位来表示音量的大小。可以类比下图片,颜色深度越大,能够表现的色彩就会越丰富。

码率

好了终于到了码率了,先给一个公式码率=通道数*采样率*采样深度。

以44.1khz,双通道,16位深的音频信号,他的码率=44.1*2*16=1411.2kbps=1.4Mbps

是不是很惊讶?我家的下载速度还没这个快呢。

不过不要担心这个只是原始码率,对于这个码率,一般我们都不能使用。所以会经过一系列压缩。

压缩

不同的压缩算法的压缩率不同。而音频压缩依赖于声音相邻频域和时域的关系,因此和音频信号本身场景相关,只有近似的压缩率。

对于常见的AAC格式,部分文献表示其压缩率能达到14~18:1

1571717975630

上图是实际项目测试情况,基本能够达到9.4-9.5左右,而且当降低采样频率后,压缩率有所降低。


参考文献:

最后更新于:

基于 VitePress + @sugarat/theme 构建