目录
????????PCM存储格式???????
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板
🎬 个人主页:@ChenPi
🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》????
🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》???
🛸推荐专栏3:《嵌入式音视频_@ChenPi的博客-CSDN博客》
🌺本篇简介 ?:这章记录音频的基础知识学习
音频原始数据PCM,PCM全称是脉冲编码调制数据。PCM数据是未经过压缩的音频数据,它是由模拟信号经过采样、编码等步骤转换成标准的数字信号。
频率:声音的频率,我们人类的所听到的声音频率范围大概在20hz-20khz
振幅:指的是声音的响度,也就是我们常说的高低音
?比特率:代表的是音频未经过压缩的数据,每秒需要传输的数据量,它的公式是:
采样率*采样深度*通道数
采样:采样是我们音频最重要的知识点之一,它指的是把一段连续的模拟信号转换成离散的数字信号。而采样率就指的是每秒钟采样的个数,而根据奈奎斯特采样公式:当采样率大于等于连续信号的2倍时,采样信号就能够无差别还原出原始的信号。比方说人类的听觉频率是20HZ-20KHZ,而采样率就需要达到40KHZ以上才能够保证数据的完整性。
??
量化:量化指的是在坐标轴上,把每一个离散数据进行数字化操作。换言之就是把我们每一个采样的点都按照数字化表示出来,如下图
??
从这张图我们可以看出,量化的过程就是把刚才我们转换成的数字信号一个一个点用竖线显示出来,这样的话我们在数字化的时候就方便很多。
编码:把每一个量化的采样点存储起来,并以二进制的形式表现出来的过程就是编码。下图就是存储的表格:
??
把上图所有的数据存储起来,就是一段连续的PCM数据。
PCM数据,二进制形式:
011011110111101……
对于一个音频的原始数字信号的生成:
采集->采样->量化->编码:->PCM数据
????????采样率:指的是每秒钟采样的个数,换言之就是1S钟采集声音的频率,比方说48000HZ就相当于一秒钟PCM采集48000个。PCM数据常用的采样率有:
- 192000HZ:192KHZ(蓝光、高清电影DVD)
- 96000HZ:?96KHZ(蓝光、高清电影DVD)
- 48000HZ:48KHZ(数字电视、DVD) ?(最常用)
- 44100HZ:44.1KHZ(CD音质)
- 22000HZ:22KHZ(无线广播)
采样深度:每次采样的大小,比方说如果采样深度是16BIT,
那声音就有2的16次方的振幅,而32bit就相当于有2的32次方个振幅。
声音振幅越多,声音的质量就会越高。
在PCM中,有三种常见的采样大小:
8 BIT、16BIT、32BIT(FLTP)
PCM一般有四种通道数:
?单声道:
指的是只有一个声音的通道,比方说电话、喇叭之类的
双声道(立体声):
双声道指的是有两个声音的通道,声音在录制的过程中分配到两个独立的声道,这让人听起来就有立体的感觉。
四声道:
四声道指的是前左、前右、后左、后右四个发声通道。观众听起来,则像被声音包围了一样。
声道:
5.1声道广泛运用在家庭影院?
比特率指的是每秒传输的比特数(bit),一般PCM的比特率计算公式是:
采样率*采样深度*通道数
比如:48000 * 16 * 2 = 1536000
假设一个PCM音频设备采样率48000、采样精度是16bit、2通道,大概采集10分钟数据,那它的大小:采样率 * 采样深度 * 通道数 * 时长?= 48000 * 16 * 2 * 10 * 60 = 921600000bit,然后再把bit转换成字节(BYTE) 921 600 000/8/1024/1024 = 109M
????
上图是PCM单双声道的存储布局,这里我们来重点讲解一下双声道的布局。
一般双声道的存储有两种存储方式,一种是交错模式、另外一种是非交错模式。
- 交错模式:首先记录第一帧的左声道样本和右声道样本;
- 非交错模式:首先先记录一个周期内所有帧的左声道样本、再记录所有右声道样本
交错模式:L R L R L R L R
非交错模式:L L L L L R R R