数据与封装格式音频PCM

Posted 叮咚咕噜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据与封装格式音频PCM相关的知识,希望对你有一定的参考价值。

简介

  • PCM(Pulse Code Modulation),脉冲编码调制
  • 人耳听到的是模拟信号,PCM是把声音从模拟信号转化为数字信号的技术。
  • 原理是用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲(脉搏似的短暂起伏的电冲击),把这些脉冲的幅值按一定精度进行量化,这些量化后的数值被连续的输出、传输、处理或记录到存储介质中
  • 数字音频的产生过程(抽样、量化、编码三个过程)。

概念

音频调试需要知道下面几个概念:

  • 采样频率:设备一秒钟内对模拟信号的采样次数,在主流的采集卡上分为
  • 量化精度:一个采样点用多少位数据表示,比如:8bit、16bit(常用)和24bit
  • 声道数:声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号
  • 音频文件大小计算:
[时长]s * [采样率]Hz * [采样位数]bit * [声道数] / 8 = [文件大小]byte
  • 音频跟视频很不一样,视频每一帧就是一张图像,音频数据是流式的,不同的编码格式各自不同的编码标准,拿PCM和MP3做一个对比。PCM因为没有压缩,根据采样率位宽等数据可以得到每秒的音频数据,并不需要帧的概念,音频实际上是没有帧的概念的;MP3则是因为压缩后信息比较多,则有了类似H264的帧概念,每一个帧都有一个帧头
  • 位速:即比特率、取样率,1s传输的位;
    • 例:22050HZ / 16bit / 立体声格式,位速为22050162 = 705600(bit/s)

存储格式

1、平面模式(非交错模式)

LLLLLLRRRRRRLLLLLLRRRRRRLLLLLLRRRRRRL...( 每个LLLLLLRRRRRR为一个音频帧)

2、交错模式

LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRL... ( 每个LR为一个音频样本 )

在这里插入图片描述

采集、播放

播放音乐时,应用程序从存储介质中读取音频数据(MP3、WMA、AAC…),经过解码后,最终送到音频驱动程序中的就是PCM数据,反过来,在录音时,音频驱动不停地把采样所得的PCM数据送回给应用程序,由应用程序完成压缩、存储等任务。所以,音频驱动的两大核心任务就是:

  • playback:如何把用户空间的应用程序发过来的PCM数据,转化为人耳可以辨别的模拟音频
  • capture:把mic拾取到得模拟信号,经过采样、量化,转换为PCM信号送回给用户空间的应用程序。

以上是关于数据与封装格式音频PCM的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg 获取音频文件PCM切片

视音频数据处理入门:FLV封装格式解析

视音频数据处理入门:FLV封装格式解析

视音频数据处理入门:FLV封装格式解析

基于AudioTrack、AudioRecord获取分贝值、录制时长、PCM解码与编码

如何将wav音频文件格式为pcm转化为ima adpcm格式