what
PCM(Pulse Code Modulation)是一种用于音频信号编码和解码的数字化方法。
how
在PCM编码中,音频信号被采样,并将每个采样点的振幅量化为固定精度的数字值。这些数字值被表示为二进制代码,并以连续的方式传输或存储。
PCM编码过程包括以下几个步骤:
采样(Sampling)
将连续的音频信号转换为离散的采样值。采样率决定了每秒钟采样的次数,常见的采样率如44.1kHz(常用于CD音质)、48kHz(常用于电视和视频)、96kHz(高保真音频)等。
语音通常是16kHz。
量化(Quantization)
将每个采样点的振幅值映射到固定的离散级别。采样值的位数决定了量化级别的精度,位数越高,精度越高,但所占空间也越大。
常见的量化位数有8位、16位、24位等。
8-bit
2^8 = 256 levels,有 256 个等级可以用于衡量真实的模拟信号.
16-bit
2^16 = 65,536 levels,有 65,536 个等级可以用于衡量真实的模拟信号.
32-bit
2^32 = 4294967296 levels,有 4294967296 个等级可以衡量真实的模拟信号.
PCM 数据常用量化指标:
采样率
位深
声道数
采样数据是否有符号(有符号的采样数据不能使用无符号的方式播放)
字节序(表示 PCM 数据是用大端存储还是小端存储,通常是小端存储).
编码(Encoding)
将量化后的采样值转换为对应的二进制码。使用直接编码(矢量量化)或差分编码等方法将采样值映射到对应的二进制表示形式。
传输或存储
将编码后的二进制数据传输到接收端或存储到介质中。
特点
PCM编码具有无损压缩的特点,即编码和解码过程不会引入任何失真。
然而,由于PCM编码的数据量较大,对于存储和传输要求较高的应用场景,常常会采用压缩编码算法,如MP3、AAC等。这些压缩编码算法能够在尽量保持音频质量的前提下,减小数据量。