WAV和PCM的关系和区别

Posted by 唐传林 on February 8, 2019

音频基础知识

  • 声道数(通道数)
    即声音的通道的数目。很好理解,有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声的PCM可以使两个喇叭都发声(一般左右声道有分工) ,更能感受到空间效果。

  • 采样位数
    即 采样值或取样值(就是将采样样本幅度量化)。它是用来衡量声音波动变化的一个参数,也可以说是声卡的分辨率。它的数值越大,分辨率也就越高,所发出声音的能力越强。
    在计算机中采样位数一般有8位和16位之分,但有一点请大家注意,8位不是说把纵坐标分成8份,而是分成2的8次方即256份; 同理16位是把纵坐标分成2的16次方65536份。

  • 采样频率
    即取样频率,指 每秒钟取得声音样本的次数。采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多。由于人耳的分辨率很有限,太高的频率并不能分辨出来。在16位声卡中有22KHz、44KHz等几级,其中,22KHz相当于普通FM广播的音质,44KHz已相当于CD音质了,目前的常用采样频率都不超过48KHz。

既然知道了以上三个概念,就可以由下边的公式得出PCM文件所占容量:

存储量= (采样频率 * 采样位数 * 声道 * 时间)/8 (单位:字节数)。

什么是WAV和PCM?

WAV:wav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范。所有的WAV都有一个文件头,这个文件头音频流的编码参数。WAV对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码。

PCM:PCM(Pulse Code Modulation—-脉冲编码调制)。所谓PCM编码就是将声音等模拟信号变成符号化的脉冲列,再予以记录。PCM信号是由[1]、[0]等符号构成的数字信号,而未经过任何编码和压缩处理。与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的影响效果。PCM数据是最原始的音频数据完全无损。

简单来说:wav是一种无损的音频文件格式,pcm是没有压缩的编码方式。

WAV和PCM的关系

WAV是使用PCM编码的一种音频格式。但是这不表示WAV只能使用PCM编码,MP3编码同样也可以运用在WAV中,和AVI一样,只要安装好了相应的Decode,就可以欣赏这些WAV了。在Windows平台下,基于PCM编码的WAV是被支持得最好的音频格式,所有音频软件都能完美支持,由于本身可以达到较高的音质的要求,因此,WAV也是音乐编辑创作的首选格式,适合保存音乐素材。因此,基于PCM编码的WAV被作为了一种中介的格式,常常使用在其他编码的相互转换之中,例如MP3转换成WMA。

简单来说:pcm加上wav头文件就变成了wav。

wav文件格式

在文件的前44字节放置标头(header),使播放器或编辑器能够简单掌握文件的基本信息,其内容以区块(chunk)为最小单位,每一区块长度为4字节。
在这里插入图片描述

起始位址 | 区块名称 | 区块大小 | 端序 | 区块内容 | 备注
—|—|—|—|—|—
0 | 区块编号 | 4 | 大 | “RIFF” |
4 | 总区块大小 | 4 | 小 | = N+36 | N:音频数据的总字节数;36:从下一个地址开始到头文件尾的总字节数
8 | 档案格式 | 4 | 大 | “WAVE” |
12 | 子区块1标识 | 4 | 大 | “fmt ” (最后有一个空格) |
16 | 子区块1大小 | 4 | 小 | 16 |
20 | 音频格式 | 2 | 小 | 1(PCM) |
22 | 声道数量 | 2 | 小 | 1(单声道)2(立体声) |
24 | 取样频率(采用频率) | 4 | 小 | 取样点/秒(Hz) |
28 | 位元(组)率 | 4 | 小 | = 取样频率 * 位元深度 / 8 | Byte率 = 采样频率 音频通道数 每次采样得到的样本位数 / 8
32 | 区块对齐 | 2 | 小 | 4 |
36 | 子区块2标识 | 4 | 大 | “data” |
40 | 子区块2大小 | 4 | 小 | N(=位元(组) 秒数 声道数量) | 音频数据的大小
44 | 音频数据 | =N | 小 | <音频数据从此开始> |

参考资料

1、 音频PCM数据的采集和播放 | Jack’s blog
2、 WAV - 维基百科,自由的百科全书


☛兄dei,请我喝杯茶☚
%