音频相关知识

PCM编码

原文地址: https://blog.csdn.net/caoshangpa/article/details/51218994

我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些脉冲的幅值按一定的精度进行量化,这些量化后的数值还要进行编码,就是用一组二进制码组来表示每一个量化值,然后记录到存储介质中,所有这些组成了数字音频的产生过程。
image

有损和无损

相对自然界的信号,音频编码最多只能做到无限接近,至少目前的技术只能这样了,任何数字音频编码方案都是有损的,因为无法完全还原。在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的WAV文件中均有应用。因此,PCM约定俗成了无损编码,因为PCM代表了数字音频中最佳的保真水准。
对于我们最常说的“无损音频”来说,一般都是指传统CD格式中的16bit/44.1kHz采样率的文件格式,而之所以称其为无损,也是因为其包含了20Hz-22.05kHz这个完全覆盖人耳可闻范围的频响频率而得名。要做到真正的无损是困难的,就像用数字去表达圆周率,不管精度多高,也只是无限接近,而不是真正等于圆周率的值。

常见的无损音频格式有WAV、FLAC和APE。
## PCM编码和WAV格式的关系
单独的PCM编码文件是不能直接播放的,这种文件通常称为PCM裸流。PCM裸流经过封装后,就可以正常播放了。

WAV格式文件可以使用多种音频编码方式来压缩其封装的音频流,不过我们常见的都是音频流被PCM编码处理的WAV,但这不表示WAV只能使用PCM编码,几乎所有支持ACM规范的编码方式都可以为WAV的音频流进行编码。

在Windows平台下,基于PCM编码的WAV是被支持得最好的音频格式,所有音频软件都能完美播放,由于本身可以达到较高的音质的要求,因此,WAV也是音乐编辑创作的首选格式,适合保存音乐素材。因此,基于PCM编码的WAV被作为了一种中介的格式,常常使用在其他编码的相互转换之中。因为几乎所有的有损压缩格式都是从WAV格式压缩、转换而来,其实内部的编码依然是PCM,所以曾经很多MP3设备并不支持FLAC、APE、AAC等等格式,是因为它们不支持这些文件的解压缩,但是从没有一款播放器不支持WAV格式,因为WAV格式本身,就等于PCM码流。

最常见的WAV格式文是在PCM裸流的基础上加上44字节的文件头构成的,此时PCM的采样率是8KHz,量化位数是16位,当采用8位的量化位数时,文件头的长度可以达到58位。比如说Windows下自带的那个录音机录下的WAV,文件头有58个字节。
文章还包括PCM文件的制作,可以仔细查看

音频举例

44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.

44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声);
22050HZ 8bit  mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道;  

人对频率的识别范围是 20HZ - 20000HZ,如果每秒钟能对声音做 20000 个采样,回放时就足可以满足人耳的需求. 所以 22050 的采样频率是常用的,44100已是CD音质,超过48000的采样对人耳已经没有意义。这和电影的每秒 24帧图片的道理差不多。

每个采样数据记录的是振幅, 采样精度取决于储存空间的大小:

1 字节(也就是8bit) 只能记录 256 个数, 也就是只能将振幅划分成 256 个等级;

2 字节(也就是16bit) 可以细到 65536 个数, 这已是 CD 标准了;

4 字节(也就是32bit) 能把振幅细分到 4294967296 个等级, 实在是没必要了.

如果是双声道(stereo), 采样就是双份的, 文件也差不多要大一倍.

How to convert between (most) audio formats in .NET(概念说的很清楚):https://www.codeproject.com/articles/501521/how-to-convert-between-most-audio-formats-in-net

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值