P4 音频知识点——PCM音频原始数据

目录

 前言

01 PCM音频原始数据

1.1 频率 

1.2 振幅:

1.3 比特率

1.4 采样

1.5 量化

1.6 编码

02. PCM数据有以下重要的参数:

采样率:

采集深度

 通道数

​​​​​​​ PCM比特率

​​​​​​​ PCM文件大小计算:

​​​​​​​ PCM存储格式​​​​​​​


 前言

                             

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板

🎬 个人主页:@ChenPi

🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨ 

🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨

🛸推荐专栏3:《嵌入式音视频_@ChenPi的博客-CSDN博客》
🌺本篇简介  :这章记录音频的基础知识学习

01 PCM音频原始数据

音频原始数据PCM,PCM全称是脉冲编码调制数据。PCM数据是未经过压缩的音频数据,它是由模拟信号经过采样、编码等步骤转换成标准的数字信号。

1.1 频率 

频率:声音的频率,我们人类的所听到的声音频率范围大概在20hz-20khz

1.2 振幅:

振幅:指的是声音的响度,也就是我们常说的高低音

1.3 比特率

 比特率:代表的是音频未经过压缩的数据,每秒需要传输的数据量,它的公式是:

采样率*采样深度*通道数

1.4 采样

采样:采样是我们音频最重要的知识点之一,它指的是把一段连续的模拟信号转换成离散的数字信号。而采样率就指的是每秒钟采样的个数,而根据奈奎斯特采样公式:当采样率大于等于连续信号的2倍时,采样信号就能够无差别还原出原始的信号。比方说人类的听觉频率是20HZ-20KHZ,而采样率就需要达到40KHZ以上才能够保证数据的完整性。

  

1.5 量化

量化:量化指的是在坐标轴上,把每一个离散数据进行数字化操作。换言之就是把我们每一个采样的点都按照数字化表示出来,如下图

  

从这张图我们可以看出,量化的过程就是把刚才我们转换成的数字信号一个一个点用竖线显示出来,这样的话我们在数字化的时候就方便很多。

1.6 编码

编码:把每一个量化的采样点存储起来,并以二进制的形式表现出来的过程就是编码。下图就是存储的表格:

  

把上图所有的数据存储起来,就是一段连续的PCM数据。

PCM数据,二进制形式:

011011110111101……

对于一个音频的原始数字信号的生成:

采集->采样->量化->编码:->PCM数据

02. PCM数据有以下重要的参数

采样率:

​​​​​​​ 采样率:指的是每秒钟采样的个数,换言之就是1S钟采集声音的频率,比方说48000HZ就相当于一秒钟PCM采集48000个。PCM数据常用的采样率有:

  1. 192000HZ:192KHZ(蓝光、高清电影DVD)
  2. 96000HZ 96KHZ(蓝光、高清电影DVD)
  3. 48000HZ48KHZ(数字电视、DVD)  (最常用)
  4. 44100HZ:44.1KHZ(CD音质)
  5. 22000HZ:22KHZ(无线广播)

采集深度

采样深度:每次采样的大小,比方说如果采样深度是16BIT

那声音就有2的16次方的振幅,而32bit就相当于有2的32次方个振幅。

声音振幅越多,声音的质量就会越高。

在PCM中,有三种常见的采样大小:

8 BIT16BIT32BIT(FLTP)

​​​​​​​ 通道数

PCM一般有四种通道数:

 单声道:

指的是只有一个声音的通道,比方说电话、喇叭之类的

双声道(立体声)

双声道指的是有两个声音的通道,声音在录制的过程中分配到两个独立的声道,这让人听起来就有立体的感觉。

四声道:

四声道指的是前左、前右、后左、后右四个发声通道。观众听起来,则像被声音包围了一样。

声道:

5.1声道广泛运用在家庭影院 

​​​​​​​ PCM比特率

比特率指的是每秒传输的比特数(bit),一般PCM的比特率计算公式是:

采样率*采样深度*通道数

比如:48000 * 16 * 2 = 1536000

​​​​​​​ PCM文件大小计算:

假设一个PCM音频设备采样率48000、采样精度是16bit、2通道,大概采集10分钟数据,那它的大小:采样率 * 采样深度 * 通道数 * 时长 = 48000 * 16 * 2 * 10 * 60 = 921600000bit,然后再把bit转换成字节(BYTE) 921 600 000/8/1024/1024 = 109M

​​​​​​​ PCM存储格式

    

上图是PCM单双声道的存储布局,这里我们来重点讲解一下双声道的布局。

一般双声道的存储有两种存储方式,一种是交错模式、另外一种是非交错模式。

  • 交错模式:首先记录第一帧的左声道样本和右声道样本
  • 非交错模式:首先先记录一个周期内所有帧的左声道样本、再记录所有右声道样本

交错模式:L R L R L R L R

非交错模式:L L L L L R R R

此篇文章来源于B站博主——飞一样的成长

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/266468.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何利用PPT绘图并导出清晰图片

在写论文的过程中,免不了需要绘图,但是visio等软件绘图没有在ppt上绘图比较熟练,尤其流程图结构图. 但是ppt导出的图片也不够清晰,默认分辨率是96dpi,而杂志投稿一般要求至300dpi。解决办法如下: 1.打开注…

神经网络:机器学习基础

【一】什么是模型的偏差和方差? 误差(Error) 偏差(Bias) 方差(Variance) 噪声(Noise),一般地,我们把机器学习模型的预测输出与样本的真实label…

Python自动化办公,又双叒增加功能了!

大家好,这里是程序员晚枫,今天给大家分享一下Python自动化办公,最近更新的功能。 以下代码,全部都可以免费使用哦~! 彩色的输出 有没有觉得python自带的无色输出看腻了?增加了彩色输出的功能,可以实现无痛替换。 上面效果的实现代码如下,👇 自动收发邮件 这个12月发…

采用SpringBoot框架+原生HTML、JS前后端分离模式开发和部署的电子病历编辑器源码(电子病历评级4级)

概述: 电子病历是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式。 医院通过电子病历以电子化方式记录患者就诊的信息,包括&…

Flink 数据序列化

为 Flink 量身定制的序列化框架 大家都知道现在大数据生态非常火,大多数技术组件都是运行在JVM上的,Flink也是运行在JVM上,基于JVM的数据分析引擎都需要将大量的数据存储在内存中,这就不得不面临JVM的一些问题,比如Ja…

第4章 | 安徽某高校《统计建模与R软件》期末复习

第4章 参数估计 参数估计是统计建模的关键步骤之一,它涉及根据样本数据推断总体参数的过程。在统计学中,参数通常用于描述总体的特征,如均值、方差等。通过参数估计,我们可以利用样本信息对这些未知参数进行推断,从而…

kubernetes集群 应用实践 kafka部署

kubernetes集群 应用实践 kafka部署 零.1、环境说明 零.2、kafka架构说明 zookeeper在kafka集群中的作用 一、Broker注册 二、Topic注册 三、Topic Partition选主 四、生产者负载均衡 五、消费者负载均衡 一、持久化存储资源准备 1.1 创建共享目录 [rootnfsserver ~]# mkdir -…

深度学习 | 基础卷积神经网络

卷积神经网络是人脸识别、自动驾驶汽车等大多数计算机视觉应用的支柱。可以认为是一种特殊的神经网络架构,其中基本的矩阵乘法运算被卷积运算取代,专门处理具有网格状拓扑结构的数据。 1、全连接层的问题 1.1、全连接层的问题 “全连接层”的特点是每个…

用C的递归函数求n!-----(C每日一编程)

用递归函数求n! 有了上面这个递归公式就能写C代码了。 参考代码: int fac(int n) {if (n 1 || n 0)return 1;else return n * fac(n - 1); } void main() {int n;scanf("%d",&n);int f fac(n);printf("\n%d!%d\n", n, f); …

linux设置线程优先级以及调度策略浅析

linux线程调度策略 Linux内核会根据线程的优先级和调度策略来分配处理器时间。线程的优先级越高,它在竞争处理器时间时就越有可能被选中执行。调度策略定义了内核在选择下一个要执行的线程时所遵循的规则。 在Linux中,有以下几种常见的调度策略&#x…

【iOS】UICollectionView

文章目录 前言一、实现简单九宫格布局二、UICollectionView中的常用方法和属性1.UICollectionViewFlowLayout相关属性2.UICollectionView相关属性 三、协议和代理方法:四、九宫格式的布局进行升级五、实现瀑布流布局实现思路实现原理代码调用顺序实现步骤实现效果 总…

ospf学习纪要

1、为避免区域(area0,area1等)间的路由形成环路,非骨干区域之间不允许直接相互发布区域间的路由。因此,所有的ABR(Area Border Router,区域边界路由器)都至少有一个借口属于Area0,所以Area0始终包含所有的A…

深度学习第6天:ResNet深度残差网络

☁️主页 Nowl 🔥专栏 《深度学习》 📑君子坐而论道,少年起而行之 ​​ 文章目录 什么是ResNet模型结构整体架构残差块 模型特性示例代码 什么是ResNet ResNet是一种用于图像识别的深度残差网络,是卷积神经网络的一种重要模型&…

哈希拓展攻击CTF题做法

目录 基础: 盐(Salt): 哈希长度拓展攻击: kali下载相关工具hash-ext-attack: hash拓展题目特征: 哈希拓展ctf题: 2023楚慧杯upload_shell 实验吧之让我进去: 前言…

【量化金融】证券投资学

韭菜的自我修养 第一章: 基本框架和概念1.1 大盘底部形成的技术条件1.2 牛市与熊市1.3 交易系统1.3.1 树懒型交易系统1.3.2 止损止损的4个技术 第二章:证券家族4兄弟2.1 债券(1)债券,是伟大的创新(2&#x…

Kafka日志

位置 server.properties配置文件中通过log.dir指定日志存储目录 log.dir/{topic}-{partition} 核心文件 .log 存储消息的日志文件,固定大小为1G,写满后会新增一个文件,文件名表示当前日志文件记录的第一条消息的偏移量。 .index 以偏移…

【Spring实战】04 Lombok集成及常用注解

文章目录 0. 集成1. Data2. Getter 和 Setter3. NoArgsConstructor,AllArgsConstructor和RequiredArgsConstructor4. ToString5. EqualsAndHashCode6. NonNull7. Builder总结 Lombok 是一款 Java 开发的工具,它通过注解的方式简化了 Java 代码的编写&…

nodejs+vue+微信小程序+python+PHP计算机网络在线考试系统-计算机毕业设计推荐

信息数据的处理完全依赖人工进行操作, 所以电子化信息管理的出现就能缓解以及改变传统人工方式面临的处境,一方面可以确保信息数据在短时间被高效处理,还能节省人力成本,另一方面可以确保信息数据的安全性,可靠性&…

SQL进阶理论篇(二十):什么是SQL注入

文章目录 简介SQL注入的原理SQL注入的实例搭建sqli-labs注入环境实例一:猜测where条件判断查询语句的字段数获取当前数据库和用户信息获取MySQL中的所有数据库名称查询wucai数据库中的所有数据表查询heros数据表中的所有字段参考文献 简介 这节是纯兴趣篇了。 web…

【快速开发】使用SvelteKit

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…