【Audio】I2S传输PCM音频数据分析总结(一)

相关文章

1.《【Audio】I2S传输PCM音频数据分析总结(一)》
2.《【Audio】I2S传输PCM音频数据分析总结(二)》
3.《【Audio】基于STM32 I2S移植WM8978 Audio Codec驱动》

1.前言

I2S传输PCM音频数据分析总结》主要是介绍PCM音频数据是如何通过I2S进行传输的,主要是分成2个部分:

  • PCM音频数据介绍
  • I2S协议介绍

本篇文章主要是以PCM音频数据来介绍。

2.PCM音频简介

PCM音频(Pulse-Code Modulation)是一种用数字表示采样模拟信号的方法

要将一段音频模拟信号转换为数字表示,包含如下个步骤:

  • Sampling(采样)
  • Quantization(量化)
  • Coding(编码)

下面的截图是PCM音频 1KHz 正弦波的波形,播放出来就是“滴”的声音:
在这里插入图片描述

3. Sampling(采样)

Sampling(采样)表示处理,实际上就是让采样数据能够完全表示原始信号,且采样数据能够通过重构还原成原始信号的过程。

  • 蓝色曲线:表示音频原始信号。
  • 黑色垂直线段:表示当前时间点对原始信号的一次采样
  • 黑色点:表示采样获取的一系列离散样本。

4. 采样率(Sample rate)

采样率(Sample rate)表示每秒采样的数量(单位:Hz)。

对于PCM编码音频流,采样率是恒定的。例如:1Hz表示每秒钟对原始信号采样一次,1KHz表示每秒钟采样1000次。

根据场景的不同,采样率也有所不同,采样率越高,声音的还原程度越高,质量就越好,同时占用空间会变大。

例如:通话时的采样率为8KHz,常用的媒体采样率有44KHz、48KHz,对于一些蓝光影片采样率高达1MHz

5. Quantization(量化)

原始信号采样后,需要通过量化来描述采样数据的大小。

量化处理过程,就是将时间连续的信号,处理成时间离散的信号,并用实数表示。这些实数将被转换为二进制数用于模拟信号的存储和传输。

上面的图片的例子是16bit位深量化过程。bit-depth(位深):用来描述存储数字信号值的bit数,较常用的模拟信号位深如下:

  • 8-bit:2^8 = 256 levels,有256个等级可以用于衡量真实的模拟信号。
  • 16-bit:2^16 = 65,536 levels,有65,536个等级可以用于衡量真实的模拟信号。
  • 24-bit:2^24 = 16,666,216 levels,有16,666,216个等级可以用于衡量真实的模拟信号。

可以看到,位深越大,对模拟信号的描述将越真实,对声音的描述更加准确。

下面是实际的采样率44.1KHz 16bit双声道正弦波1KHz的PCM音频数据,量化后存储的数据和波形解析如下:
在这里插入图片描述

???问题:为什么一个正弦波周期量化是44个数据???

分析:
1次采样需要的时间:1秒/采样率44.1KHz = 1 / 44100 (秒)
1个正弦波周期时间:1秒/频率1KHz = 1 / 1000 (秒)
1个正弦波周期采样次数:`1个正弦波周期时间 / 1次采样需要的时间 = (1 / 1000) / (1 / 44100) = 44100 / 1000 = 44.1次
结果:如上图显示一个正弦波周期,采样的次数为44次。

备注: 量化会将波形分成多个等份,值越大对模拟信号描述越真实。采样率是1秒钟采样的次数,值越大对声音的还原程度越高。所以,声音的质量很大程度被量化和采样率所影响。

6. Encoding(编码)

在编码这一步,我们会将时间线上的每个sample数据转化为对应的二进制数据。

采样数据经过编码后产生的二进制数据,就是PCM数据。PCM数据可以直接存储在介质上,也可以在经过编解码处理后进行存储或传输。

7. PCM数据常用量化指标

采样率(Sample rate):每秒钟采样多少次,以Hz为单位。

位深度(Bit-depth):表示用多少个二进制位来描述采样数据,一般为16bit。

字节序:表示音频PCM数据存储的字节序是大端存储(big-endian)还是小端存储(little-endian),为了数据处理效率的高效,通常为小端存储。

声道数(channel number):当前PCM文件中包含的声道数,是单声道(mono)、双声道(stereo)等。

采样数据是否有符号(Sign):要表达的就是字面上的意思,需要注意的是,使用有符号的采样数据不能用无符号的方式播放。

8. PCM音频数据存储格式

PCM音频数据排列格式为左右声道每个样本点数据交错排列。
在这里插入图片描述
下面是解析一个16bit双声道PCM的数据,如下:
在这里插入图片描述
实际解析的出来的PCM波形如下:

  • 从波形上分析1声道为无声。
  • 从数据上分析1声道,-7(0xFFF9)、-3(0xFFFD)、-5(0xFFFB)等基本接近0,所以为无声。
    在这里插入图片描述

9.参考资料

  1. What is PCM Audio?
    https://samplerateconverter.com/educational/pcm-audio#how-pcm-works

  2. PCM数据格式介绍
    https://blog.csdn.net/qq_25333681/article/details/90682989

  • 6
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值