| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> PCM编码格式 -> 正文阅读 |
|
[嵌入式]PCM编码格式 |
目录 一、PCM音频编码格式1. 相关英文单词
(1)PCM是最原始的音频编码格式,并不是文件格式,WAV/MP3等才是文件格式。 (2)采样率:每秒钟的采样次数/每秒钟的样本点数,即一秒钟能采集到多少个离散的数值点,比如:16KHz=16000Hz,意思就是16000个采样点/s,采样率是保证音质的一个重要参数。 (3)采样位深度是每一个采样点的值的bit数,很容易理解,bit越多,能表示的数范围就越广,更加能表示模拟信号,可以直观理解,如果采样率和位深都很大,采样的离散序列就可以近似等于模拟信号。
2. PCM数据结构(1)关于音频数据流 编码之后的PCM数据流是一串0和1的组合:0011000010101100…… 所以,就要根据一些相关信息来解析数据。假如采样位深是8bit,且是有符号的数据。那么数据解析如下:
第一个字节,除掉最高位符号位后,值就是+48 第二个字节,除掉最高位符号位后,值就是-44 在范围-128~127之内。 一般来说,常用的是16bit的位深,在C语言中用short类型(两字节)的数据来表示即可。 2.1 单声道数据实例:读取一个32KHz,单声道,16bit的PCM音频文件数据到内存,并再次写入新文件。
注: (1)音频数据一般都有符号,可以直接打印出每一个采样点的音频数据:printf(“stream_in[%d]=%hd\n”, 100, stream_in[100]); (2) 16bit的深度,所以缓存空间的数据类型定义成short,刚好合适 (3) 代码运行结束,生成的文件大小没变,可使用cooledit pro打开对比查看波形图 2.2 多声道数据(1)数据排布 对于多声道的数据流,声道数据会交叉排列。当然,这跟底层驱动程序相关,比如一些ADC采集模块,stereo数据排布就是这样的。
(2)关于字节序 数据是大端存储结构还是小端存储结构,一般使用的是小端存储结构(Little Endian)。如下图: ?实例:分离双声道PCM文件数据(LE/44100Hz/16bi/立体声)
文件大小和数据量减小一半,左右声道均选择44100Hz的采样率进行播放,声音正常。 ? 2.3 小结(1)s16le s-----signed,就是有符号数据,根据采样位深度,可以知道数值范围,所以在音频处理的时候,需要注意数据是否溢出 16----采样位深16bit ?le----小端存储 (2)PC的声卡一般是16bit或者24bit (3)PCM不是音频文件格式,因此一般的音乐播放软件无法打开,需要保存为wav或者其他格式(加个文件头)才行。 二、WAV音频文件格式关于wav音频文件格式不放在这里解析,算法处理过程中(实际上算法一般都是针对PCM原始编码格式进行),需要注意下面几点即可:
实例:读取wav音频文件数据,伪代码如下
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 17:02:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |