PCM音频基础知识及采样数据处理


目录

  1. PCM简介
  2. 采样频率、量化精度(采样位数)和声道数
  3. 音频帧
  4. 录播过程
  5. 音频混音
  6. PCM音频采样数据处理

 


1. PCM简介

  1. PCM(Pulse Code Modulation),脉冲编码调制。人耳听到的是模拟信号,PCM是把声音从模拟信号转化为数字信号的技术。原理是用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲(脉搏似的短暂起伏的电冲击),把这些脉冲的幅值按一定精度进行量化,这些量化后的数值被连续的输出、传输、处理或记录到存储介质中,所有这些组成了数字音频的产生过程(抽样、量化、编码三个过程)。
  2. PCM(Pulse Code Modulation,脉冲编码调制)音频数据是未经压缩的音频采样数据裸流
  3. 自然界的音频都是模拟信号,要在计算机中模拟出来,必须转成数字信号,这就是模数转换。
  4. 下面是声音波形的模拟信息
  5. 首先对声音按照一定精度的采样(比如上图0.5一个采样点,常见采样频率为44.1kHZ,16kHZ等),采样完成,对声音进行一定精度的量化,得到量化后的数字信号
  6. 将量化后的数字信号从十进制转二进制得到二进制方波

2. 采样频率、量化精度(采样位数)和声道数

  1. 采样频率是设备一秒钟内对模拟信号的采样次数,在主流的采集卡上分为:(8Khz的电话采样率就可以达到人的对话程度)
  1. 22.05KHz:无线电广播;
  2. 44.1KHz:音频 CD,MP3等;
  3. 48KHz:miniDV、数字电视、DVD、电影和专业音频。
  1. 人耳能够感觉到的最高频率为20kHz,要满足人耳的听觉要求,则需要每秒进行40k次采样,即40kHz。我们常见的CD采样率为44.1kHz。(硬件的扬声器最高是16KHz,则手机MIC采样率就不用太高,节省传输带宽)
  2. 采样位数比如8bit(现在少见)、16bit(常用)和24bit,指的是描述数字信号所使用的位数。
  3. 声道数:声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号。
  4. 单声道:采样数据为8位的短整数(short)。
  5. 双声道:采样数据为16位的整数,(int),高八位(左声道)和低八位(右声道)分别代表两个声道。
  6. [时长]s * [采样率]Hz * [采样位数]bit * [声道数] / 8 = [文件大小]byte。某音频信号是采样率为8kHz、声道数、位宽为16bit,时长为1s,则音频数据的大小为:1 * 8000 * 16 *2 = 256000 bit / 8 = 32000 byte / 1024 = 31.25 KB

3. 音频帧

  1. 音频跟视频很不一样,视频每一帧就是一张图像,音频数据是流式的,不同的编码格式各自不同的编码标准,拿PCM和MP3做一个对比。PCM因为没有压缩,根据采样率位宽等数据可以得到每秒的音频数据,并不需要帧的概念;MP3则是因为压缩后信息比较多,则有了类似H264的帧概念,每一个帧都有一个帧头,有兴趣可以详见如下,有很详细的MP3的帧解析:MP3格式音频文件结构解析

4. 录播过程

  1. 播放音乐时,应用程序从存储介质中读取音频数据(MP3、WMA、AAC…),经过解码后,最终送到音频驱动程序中的就是PCM数据,反过来,在录音时,音频驱动不停地把采样所得的PCM数据送回给应用程序,由应用程序完成压缩、存储等任务。所以,音频驱动的两大核心任务就是:
  1. playback:如何把用户空间的应用程序发过来的PCM数据,转化为人耳可以辨别的模拟音频
  2. capture:把mic拾取到得模拟信号,经过采样、量化,转换为PCM信号送回给用户空间的应用程序。

5. 音频混音

1. 混音原理
  1. 声音是由于物体的振动对周围的空气产生压力而传播的一种压力波,转成电信号后经过抽样,量化,仍然是连续平滑的波形信号,量化后的波形信号的频率与声音的频率对应,振幅与声音的音量对应,量化的语音信号的叠加等价于空气中声波的叠加,所以当采样率一致时,混音可以实现为将各对应信号的采样数据线性叠加。而问题的关键就是如何处理叠加后溢出问题。

5. PCM音频采样数据处理

  1. 视音频数据处理入门:PCM音频采样数据处理