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站博主——飞一样的成长

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

堆与二叉树(下)

接着上次的,这里主要介绍的是堆排序,二叉树的遍历,以及之前讲题时答应过的简单二叉树问题求解 堆排序 给一组数据,升序(降序)排列 思路 思考:如果排列升序,我们应该建什么堆&#x…

DLLNotFoundException:xxx tolua... 错误打印

DLLNotFoundException:xxx tolua... 错误打印 一、DLLNotFoundException介绍二、Plugins文件夹文件目录结构如下: 三、Plugins中的Android文件夹四、Plugins中的IOS文件夹这里不说了没测试过不过原理应该也是选择对应的平台即可五、Plugins中的x86和X86_64文件夹 一…

【贪心】买卖股票的最佳时机含手续费

/** 贪心:每次选取更低的价格买入,遇到高于买入的价格就出售(此时不一定是最大收益)。* 使用buy表示买入股票的价格和手续费的和。遍历数组,如果后面的股票价格加上手续费* 小于buy,说明有更低的买入价格更新buy。如…

先进制造身份治理现状洞察:从手动运维迈向自动化身份治理时代

在新一轮科技革命和产业变革的推动下,制造业正面临绿色化、智能化、服务化和定制化发展趋势。为顺应新技术革命及工业发展模式变化趋势,传统工业化理论需要进行修正和创新。其中,对工业化水平的判断标准从以三次产业比重标准为主回归到工业技…

Qt制作定时关机小程序

文章目录 完成效果图ui界面ui样图 main函数窗口文件头文件cpp文件 引言 一般定时关机采用命令行模式&#xff0c;还需要我们计算在多久后关机&#xff0c;我们可以做一个小程序来定时关机 完成效果图 ui界面 <?xml version"1.0" encoding"UTF-8"?>…

EA常见画图(类图、包图、构件图、状态图、顺序图、活动图)

EA常见活动图&#xff0c;状态图画法 类图:111&#xff08;1&#xff09;给关系添加注释&#xff08;2&#xff09;设置关系线样式 包图&#xff1a;&#xff08;1&#xff09;创建包图&#xff08;2&#xff09;在包中添加子包&#xff1a;&#xff08;3&#xff09;在包中添加…

微前端——无界wujie

B站课程视频 课程视频 课程课件笔记&#xff1a; 1.微前端 2.无界 现有的微前端框架&#xff1a;iframe、qiankun、Micro-app&#xff08;京东&#xff09;、EMP&#xff08;百度&#xff09;、无届 前置 初始化 新建一个文件夹 1.通过npm i typescript -g安装ts 2.然后可…

IDEA控制台乱码

报错情况&#xff1a; 报错原因&#xff1a;Idea的vm用的编码格式不一致&#xff1a;需要修改为UTF-8 你看Tomcat我之前下在后修改果&#xff0c;就没有报错&#xff0c;新人刚下载也有乱码问题 问题解决&#xff1a; 按我步骤来一定对 下面这俩文件打开输入&#xff1a; -D…

CSS-SVG-环形进度条

线上代码地址 <div class"circular-progress-bar"><svg><circle class"circle-bg" /><circle class"circle-progress" style"stroke-dasharray: calc(2 * 3.1415 * var(--r) * (var(--percent) / 100)), 1000" …

esp32使用lvgl,给图片取模显示图片

使用LVGL官方工具。 https://lvgl.io/tools/imageconverter 上传图片&#xff0c;如果想要透明效果&#xff0c;那么选择 输出格式C array&#xff0c;点击Convert进行转换。 下载.c文件放置到工程下使用即可。

Java开发框架和中间件面试题(1)

1.什么是Spring框架&#xff1f; Spring是一种轻量级框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说的Spring框架就是Spring Framework,它是很多模块的集合&#xff0c;使用这些模块可以很方便的协助我们进行开发。这些模块是核心容器、数据访…

3.[BUUCTF HCTF 2018]WarmUp1

1.看题目提示分析题目内容 盲猜一波~ &#xff1a; 是关于PHP代码审计的 2.打开链接&#xff0c;分析题目 给你提示了我们访问source.php来看一下 大boss出现&#xff0c;开始详细手撕~ 3.手撕PHP代码&#xff08;代码审计&#xff09; 本人是小白&#xff0c;所以第一步&…

解读SPP / SPPF / SimSPPF / ASPP / RFB / SPPCSPC

SPP与SPPF 一、SPP的应用的背景 在卷积神经网络中我们经常看到固定输入的设计&#xff0c;但是如果我们输入的不能是固定尺寸的该怎么办呢&#xff1f; 通常来说&#xff0c;我们有以下几种方法&#xff1a; &#xff08;1&#xff09;对输入进行resize操作&#xff0c;让他们…

案例144:基于微信小程序的自修室预约系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

Unity手机移动设备重力感应

Unity手机移动设备重力感应 一、引入二、介绍三、测试成果X Y轴Z轴横屏的手机&#xff0c;如下图竖屏的手机&#xff0c;如下图 一、引入 大家对重力感应应该都不陌生&#xff0c;之前玩过的王者荣耀的资源更新界面就是使用了重力感应的概念&#xff0c;根据手机的晃动来给实体…

Latex生成的PDF中加入书签/Navigation/导航

本文参考&#xff1a;【Latex学习】在生成pdf中加入书签/目录/提纲_latex 书签-CSDN博客 &#xff08;这篇文章写的真的太棒了&#xff01;非常推荐&#xff09; 题外话&#xff0c;我的碎碎念&#xff0c;这也是我如何提高搜索能力的办法&#xff1a;想在Latex生成的PDF中加入…

2023美团机器人研究院学术年会成功举办

2023年12月19日&#xff0c;深圳市美团机器人研究院学术年会在清华大学深圳国际研究生院成功落下帷幕。会议回顾了研究院成立一年来的进展和成果&#xff0c;并邀请了各界专家共同讨论机器人技术的未来发展趋势。此外&#xff0c;年会期间还举办了首届低空经济智能飞行管理挑战…

【网络安全/CTF】unseping 江苏工匠杯

该题考察序列化反序列化及Linux命令执行相关知识。 题目 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($thi…

安洵杯 re + 其他部分题解

第11&#xff0c;比较小丑&#xff0c;差了一步队伍wp应该会发吧&#xff0c;不知道&#xff0c;我先放点跟我有关系的 Re mobilego so的check看了一会比较南崩&#xff0c;但是看flag的密文形式很像简单位置替换所以直接输编码表&#xff0c;jeb动调然后得到替换表解密就行…

CnosDB:深入了解时序数据处理函数

CnosDB 是一个专注于时序数据处理的数据库&#xff0c;旨在解决时序数据存储与分析问题&#xff0c;为用户提供高效的时序数据管理与查询便利。为了实现这一目标&#xff0c;CnosDB 实现了一系列专用函数&#xff0c;快来和CC一起来看看吧&#xff01; CnosDB&#xff1a;深入了…