一、什么是PCM?
脉冲编码调制(PulseCodeModulation),简称PCM。是对连续变化的模拟信号进行抽样、量化和编码产生的数字信号。PCM的优点就是音质好,缺点就是体积大。PCM可以提供用户从2M到155M速率的数字数据专线业务,也可以提供话音、图像传送、远程教学等其他业务。PCM有两个标准(表现形式):E1和T1。
脉冲编码调制(Pulse Code Modulation)是最常用、最简单的波形编码。它是一种直接、简单地把语音经抽样、A/D转换得到的数字均匀量化后进行编码的方法,是其他编码算法的基础。
PCM 是一种常见且基础的音频编码方式,在数字音频领域被广泛应用,如 CD 音频、无损音频格式等。PCM 格式的音频文件保留了原始音频的所有信息,不经过任何压缩处理,因此具有较高的音质和可靠性。
二、PCM的实现原理
在 PCM 中,声音信号被采样并量化为离散的数值,以便于数字化处理和传输。
接下来介绍PCM 的几个重要环节:
采样(Sampling)
采样就是将模拟信号的音频转换成数字信号音频的过程,通过模/数转换器(A/D)对声波进行采样,每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本,将一串的样本连接起来,就可以描述一段声波。
每一秒钟所采样的次数称为采样频率,单位为HZ(赫兹)。
采样就是在时间轴上对信号进行数字化。
用若干个黑点来表示红色的曲线。红色的曲线是音频模拟信号,各个黑点就是样本。
量化(Quantization)
量化就是为采集的样本确定一个取值范围。
① 用16比特的二进制信号来表示声音的一个样本, 而16比特(一个short) 所表示的范围是[-32768,32767], 共有65536个可能取值, 因此最终音频的数字信号在幅度上也分为了65536层
② 用8比特的二进制信号来表示声音的一个样本,8比特(一个unsigned char)所表示的范围是[0,255],共有256个层级。
编码(Coding)
编码, 就是按照一定的格式记录采样和量化后的样本数据,将量化后的数字信号转换为二进制码的过程。比如顺序存储或压缩存储等等。
采样、量化后的数据经过编码后产生的二进制数据,就是PCM数据。
声道
声道:channel,表示音频采集源的个数,比如:单声道,采集源只有一个;双声道(立体声),采集源有两个,分别为左和右;多声道(环绕声),采集源有多个。声道越多,播放的音频效果越立体,但是存储的数据越大。
① 单声道mono:
单声道只使用一个声道来传输音频。
②双声道stereo
双声道音频是指使用两个独立的声道来创建声音的空间效果,通常用于左耳和右耳。在双声道音频中,两个声道分别记录和传输声音,提供更丰富和真实的听觉体验,如音乐、电影等。
对于多声道(大于一个声道)的PCM音频,在实际编码中,我们也按照单声道处理,统称为一个采样,如上面的单声道,双声道和三声道的一个采样大小分别为:8bits,18bits和24bits;可以将多声道分离为一个个单声道。
我们可以得出如下关系:
sample_bits = depth_bits
channels_sample_bits = sample_bits* channel
samples_bits_per_second = sample_rate * depth_bits * channel = sampe_rate * sample_bits * channel