【转】从零开始学习音视频编程技术(二) 音频格式讲解

音频处理——详解PCM数据格式 目录知识储备什么是PCM采样采样率量化编码PCM常用指标PCM数据流 知识储备 音频处理——音频编码原理简介 音频处理——音频处理的基本概念 什么是PCM PCM全称Pulse-Code Modulation,翻译一下是脉冲调制编码。 在音视频中,PCM是一种用数字表示采样模拟信号的方法。 要将一段音频模拟信号转换为数字表示,包含如下三个步骤: 1、Sampling(采样) 2、Quantization(量化) 3、Coding(编码) 通常,我们可以通过一条曲线在坐标中显示连续的模拟信号,如下图所示: 阅读详情

转自:http://blog.yundiantech.com/?log=blog&id=5


1. 音频简介


    前面我们说过视频有一个每秒钟采集多少张的概念,这就叫做视频的帧率。

    和视频的帧率一样的道理,声音也有一个频率,叫做采样率。

  人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对声音做 20000 个采样, 回放时就足可以满足人耳的需求. 所以 22050 的采样频率是常用的, 44100已是CD音质, 超过48000的采样对人耳已经没有意义。这和电影的每秒 24 帧图片的道理差不多。


   关于音频经常见到这样的描述:44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.

   44100HZ 16bit stereo: 表示每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声);

   22050HZ 8bit  mono: 表示每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道;

   当然也可以有 16bit 的单声道或 8bit 的立体声, 等等。


上面的44100HZ代表的就是采样率:

所谓采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。

对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);

而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位(左声道)和低八位(右声道)分别代表两个声道。

  每个采样数据记录的是振幅, 采样精度取决于储存空间的大小:

   1 字节(也就是8bit) 只能记录 256 个数, 也就是只能将振幅划分成 256 个等级;

   2 字节(也就是16bit) 可以细到 65536 个数, 这已是 CD 标准了;

   4 字节(也就是32bit) 能把振幅细分到 4294967296 个等级, 实在是没必要了.

   如果是双声道(stereo), 采样就是双份的, 文件也差不多要大一倍.

 

这样我们就可以根据一个 wav 文件的大小、采样频率和采样大小估算出一个 wav 文件的播放长度。

譬如 "Windows XP 启动.wav" 的文件长度是 424,644 字节, 它是 "22050HZ / 16bit / 立体声" 格式(这可以从其 "属性->摘要" 里看到),

那么它的每秒的传输速率(位速, 也叫比特率、取样率)是 22050*16*2 = 705600(bit/s), 换算成字节单位就是 705600/8 = 88200(字节/秒), 
播放时间:424644(总字节数) / 88200(每秒字节数) ≈ 4.8145578(秒)。

但是这还不够精确, 包装标准的 PCM 格式的 WAVE 文件(*.wav)中至少带有 42 个字节的头信息, 在计算播放时间时应该将其去掉, 
所以就有:(424644-42) / (22050*16*2/8) ≈ 4.8140816(秒). 这样就比较精确了.

关于声音文件还有一个概念: "位速", 也有叫做比特率、取样率, 譬如上面文件的位速是 705.6kbps 或 705600bps, 其中的 b 是 bit, ps 是每秒的意思;

 

压缩的音频文件常常用位速来表示, 譬如达到 CD 音质的 MP3 是: 128kbps / 44100HZ.


2. PCM数据格式

    PCM(Pulse Code Modulation)也被称为 脉码编码调制。PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入。(它的基本组织单位是BYTE(8bit)或WORD(16bit))。

    一般情况下,一帧PCM是由2048次采样组成的,如果是双声道的文件,采样数据按时间先后顺序交叉地存入。如图所示:


在stm32实现音乐播放的效果 在STM32上实现音乐播放效果通常涉及到音频输出硬件(如DAC、PWM或其他音频编解码器)和音频数据处理软件。 阅读详情

相关推荐

PCM编码格式

PCM编码格式

渣渣小码农的博客 7554

【音视频 | PCM】PCM格式详解

文章介绍PCM是什么?PCM是生成过程:采样、量化、编码

wkd_007的博客 1万+

用FFmpeg从零写播放器:解封装、解码、渲染与音视频同步

多媒体播放器的核心链路离不开解封装、解码、渲染与音视频同步,而这正是FFmpeg与SDL2发挥价值的地方。FFmpeg作为跨平台的音视频处理库,提供了从容器解析到编解码的完整API,让开发者能够深入控制每一帧数据的流向,而不是像系统播放组件那样封闭在黑盒中。本文从播放器的基本架构出发,讲解AVFormatContext、AVPacket、AVFrame等核心结构体的作用,并演示如何利用ffmpeg命令行工具辅助排查问题。实际工程中,基于FFmpeg的播放器广泛应用于本地文件播放、HLS流媒体、实时监控等场景

weixin_42543046的博客 96

PCM数据格式介绍

每秒钟的样本数也被称之为采样率(Sample rate)。在Sampling图示案例中,采样率为每秒34次。意味着在一秒的时间内,原始信号被采样了34次(也就是蓝色垂直线段的数量)。 通常,采样率的单位用Hz表示,例如1Hz表示每秒钟对原始信号采样一次,1KHz表示每秒钟采样1000次。1MHz表示每秒钟采样1百万次。 根据场景的不同,采样率也有所不同,采样率越高,声音的还原程度越高,质量就越好,同时占用空间会变大。

qq_42052602的博客 2356

JS+H5打字练习器

实现功能 1.导入.TXT文件到打字练习内容(部分浏览器可能出于安全问题限制了这一步操作) 2.输入文本到打字练习内(弹出输入框,将要练习的内容输入至输入框) 3. 开始练习,并根据正误在打字练习内容文本上修改颜色(某个字正确显示绿色,某个字错误,显示红色,某个字没有打显示灰色) 4.开始练习、结束练习,全部输入完成后自动结束练习,也可提前手动结束练习,结束练习后弹窗用显示时和正确率。(区别在于一个全部输入完成且全部正确,一个提前结束无其他条件) 效果图 分析 HTML 结构解析 根元素:<!DO

w11111xxxl的博客 1414

pi-star图形界面安装指南

pi-star图形界面安装指南,MMDVM热点安装,树莓派3B+热点

blueisman的专栏 1909

系列博客---从零开始学习音视频编程技术

本文章所涉及的到内容均为转发,看完一篇文章在此处粘贴一个链接的方式生成,主要是以此来督促自己循序渐进的学习和积累,文献内容其实并不高深,并且内容也不见得完全正确,因此有认为不妥的地方,我会尽量修改,当然是以ps方式提出。在学有缩成之后会开始自己原创的音视频博客。 内容从零开始,慢慢深入(在每篇文章的前面加上原文链接,文中的ps内容为加上自我感悟所写,不同见解也会在此提出): 1. 从零开始学习...

ice_ly000的博客 523

从零到一:基于K375S主控的机械键盘优联无线化改造实战

本文详细记录了基于罗技K375S主控进行机械键盘优联无线化改造的全过程。从改造动机、核心原理与物料准备,到电路设计、PCB打样、焊接调试,逐步拆解了将优联技术集成到自定义机械键盘中的实战步骤。项目最终实现了低延迟、高稳定性且支持多设备连接的优联无线机械键盘,为DIY爱好者提供了高性价比的改造方案。

h0i1j2k3l的博客 601

从零开始学习音视频编程技术(二) 音频格式讲解

从零开始学习音视频编程技术(二) 音频格式讲解   原文地址:http://blog.yundiantech.com/?log=blog&amp;id=5   1. 音频简介     前面我们说过视频有一个每秒钟采集多少张的概念,这就叫做视频的帧率。     和视频的帧率一样的道理,声音也有一个频率,叫做采样率。   人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对...

zhangbijun1230的专栏 502

【faers数据库-R语言】

摘要:本文详细介绍了FAERS数据库不良反应信号挖掘的完整流程,包括数据解压导入(R代码示例)、数据结构理解、数据清洗(缺失值处理、标准化、合并和编码映射)、信号挖掘准备(药物-反应组合表创建)以及信号强度指标计算(PRR和ROR)。重点阐述了数据清洗的关键步骤,如缺失值处理(colSums(is.na()))、数据标准化(toupper()、as.Date())和表合并(merge()),并提供了完整的R语言实现代码。最后强调结果需结合临床知识解读,建议使用data.table等高效工具处理大数据。整个流

weixin_46587777的博客 1502

【OpenFOAM】-olaFlow-算例1- baseWaveFlume

算例文件注释--olaFlow-算例1- baseWaveFlume

ou_no的博客 3642

从零开始学习音视频编程技术--转自雲天之巔

这里写自定义目录标题 从零开始学习音视频编程技术(一) 视频格式讲解 链接: https://blog.youkuaiyun.com/qq214517703/article/details/52554030. 从零开始学习音视频编程技术(二) 音频格式讲解 链接: https://blog.youkuaiyun.com/qq214517703/article/details/52571521. 从零开始学习音视频编程技术...

u014448875的博客 187

MetaGPT核心模块:Data Interpreter 上手实战 - 数据分析和可视化(附运行过程详解)

上篇文章我们详细解读了 DataInterpreter 的实现原理(论文),本文将开始上手实操,开始写代码用上 DataInterpreter。从最简单的例子开始,先给大家看下其运行过程,看下DataInterpreter是如何自动拆解任务,完成任务的,帮助大家构建直观认识。

同学小张的博客 371

音视频学习资料

音视频学习资料

danshiming的博客 464

【教程4>第2章>第18节】 GMSK调制系统的FPGA开发与matlab对比验证

GMSK(高斯最小频移键控)是一种连续相位的频移键控(CPFSK)调制方法,它在数字通信中得到了广泛应用,特别是在移动通信系统中。GMSK通过限制频率偏差的累积来减少带外辐射,并通过使用高斯滤波器对。

FPGA/MATLAB学习教程/源码/项目合作开发 998

大唐杯5G考前冲刺篇(回顾全文重点必看)

大唐杯习题复习指南

nimo观察者 1万+

从零开始学习音视频编程技术(三) 开发环境搭建

从零开始学习音视频编程技术(三) 开发环境搭建   前面介绍了音频格式和视频格式,理论知识就不在多说了。 其他的理论上知识在以后用多少讲多少,毕竟我们不是为了做研究,而是实实在在的做项目,因此要把的重心放在实践上。     在正式开始之前呢,先讲下开发环境的选择。     首先操作系统的选择,总的来说大家都是用windows系统的,因此我们先从windows讲起,前期的项目也都是在wind...

zhangbijun1230的专栏 1730

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

音视频学习总结

从零开始做一个小播放器 —音视频学习总结 1.视频播放 1.1视频文件格式与编码格式 1.1.1文件格式 常见的视频文件格式MPG、TS、AVI、RMVB、AVI等等 他们分别是以特定的方式将音频、图像数据按顺序编码在一起,形成视频文件。 以AVI(Audio Video Interleaved)格式的视频为例,说明下关系。AVI采用的是RIF

阿-凡提de小毛驴 2086

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【从零开始的Qt开发指南】(二十二)Qt 音视频开发宝典:从音频播放到视频播放器的实战全攻略

本文详细介绍了Qt框架下的音视频开发技术,涵盖音频和视频两大模块。在音频开发部分,讲解了轻量级音频播放类QSound(仅支持WAV格式)和高级音频播放类QMediaPlayer(支持多种格式)的使用方法,并提供了按钮音效和多功能音频播放器的完整实现案例。视频开发部分重点阐述了QMediaPlayer与QVideoWidget的协同工作方式,详细说明了完整视频播放器的开发流程,包括文件选择、播放控制、进度调节和全屏功能。最后总结了常见问题解决方案,如格式兼容性、界面卡顿、音视频同步等问题。

2301_79248256的博客 1664

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

learn-ffmpeg完全指南:从零基础到精通音视频处理的终极教程

你是否想要掌握音视频处理的核心技术?想要快速学习如何使用FFmpeg进行各种多媒体操作?那么这篇learn-ffmpeg完全指南正是为你准备的终极教程!FFmpeg作为业界最强大的开源音视频处理工具,学习它能够让你在音视频开发领域如鱼得水。本指南将从最基础的概念讲起,逐步带你深入FFmpeg的各个功能模块,让你从零基础快速成长为音视频处理专家。 ## 🚀 FFmpeg基础概念快速入门 在开始

gitblog_00431的博客 645
上一篇: 【转】从零开始学习音视频编程技术(一) 视频格式讲解
下一篇: JDBC与ODBC区别
YYCDreamTeam
博客等级 码龄9年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值