代码改变世界

WAV和PCM的关系和区别

2021-09-26 08:52  dreamboy2000  阅读(1453)  评论(0编辑  收藏  举报

音频基础知识

  • 声道数(通道数)
    即声音的通道的数目。很好理解,有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声的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 - 维基百科,自由的百科全书

转载:https://blog.csdn.net/Tang_Chuanlin/article/details/86776208