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


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

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

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

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

通道数

通道数是指你的喇叭能够出几路声音。对于人耳来说,因为左右耳的距离不同,听到的声音波形会存在些许差异。对于单声道来说,你能感受到的音质同真实声音相比就会感觉不真实。一般来说,采用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左右,而且当降低采样频率后,压缩率有所降低。


参考文献:


本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/%E9%9F%B3%E9%A2%91%E7%A0%81%E7%8E%87%E4%BC%B0%E7%AE%97.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系