【音视频 | ADPCM】音频编码ADPCM详细介绍及例子

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭
🤣本文内容🤣:🍭介绍 🍭
😎金句分享😎:🍭你不能选择最好的,但最好的会来选择你——泰戈尔🍭
⏰发布时间⏰:

本文未经允许,不得转发!!!

目录

  • 🎄一、概述
  • 🎄二、ADPCM编码介绍
  • 🎄三
  • 🎄四
  • 🎄五
  • 🎄六、


在这里插入图片描述

🎄一、概述

我们之前介绍过PCM格式的数据,详见【音视频 | PCM】PCM格式详解 。PCM 是将声音通过模数转换器处理后,将声音模拟信号转换而成的数字信号,是声音要给计算机处理的最原始的音频数据。

本文将介绍声音处理中另一种格式的数据:ADPCM。

要了解什么是ADPCM,需要先知道 PCM 和 DPCM。


在这里插入图片描述

🎄二、ADPCM编码介绍

ADPCM,全称是Adaptive Differential Pulse Code Modulation,意思是自适应差分脉冲编码调制。作为一种有效的音频压缩技术,在不严重损失音频质量的前提下,显著减少了数据量,具有重要的应用价值。

ADPCM 技术起源于 20 世纪 70 年代。它是随着数字音频处理技术的发展而出现的,最初是为了解决音频数据存储和传输过程中数据量过大的问题。ADPCM 源于对传统脉冲编码调制(PCM)技术的改进和优化。其起源与通信领域对音频信号高效传输和存储的需求紧密相关,在早期的数字通信系统中,ADPCM 技术凭借其高效的压缩比得到了广泛应用。并且,ADPCM 算法已经被标准化,现行使用的是 IMA-ADPCM,即 IMA 组织制订的 ADPCM 算法。


在这里插入图片描述

🎄三

在这里插入图片描述

🎄四

在这里插入图片描述

🎄五

在这里插入图片描述

🎄六、

在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

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

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

相关文章

《深入浅出HTTPS​​》读书笔记(2):HTTP

HTTP目前的版本是HTTP/1.1,定义在RFC 2616规范上。 HTTP的模型很简单,是一个B/S模型,由客户端和服务器组成,交互流程很简单。 ◎一个HTTP客户端发送请求至HTTP服务器,然后等待服务器的响应。 ◎一个HTTP服务器负责监…

【ArcGIS Pro实操第5期】全局及局部空间插值:GPI、LPI、IDW等

ArcGIS Pro实操第5期:全局及局部空间插值 ArcGIS Pro-用于空间插值的丰富工具箱实操:空间插值方法1:Trend Surface Model for Interpolation-以降水数据为例方法2:Kernel Density Estimation Method-以单位面积鹿的目击数为例方法…

Lodash.js处理数组、对象、函数等常用方法介绍

参考网址:Lodash 简介 | Lodash中文文档 | Lodash中文网 安装 npm install lodash 引入 const _ require(lodash) 使用 基础数据 const array1 [{ id: 1, value: A }, { id: 2, value: B }] const array2 [{ id: 2, value: B }, { id: 3, value: C }] 交集…

spring-第十一章 注解开发

spring 文章目录 spring前言1.注解回顾1.1原理1.2springIOC注解扫描原理1.2.1解释1.2.2案例 2.声明bean的注解补充:Bean注解,管理三方包对象 3.spring注解的使用3.1加入aop依赖3.2配置文件中添加context命名空间3.3配置文件中指定要扫描的包3.4在Bean上使…

golang中的goroutine

1.golang中的主线程:(可以理解为线程/也可以理解为进程),在一个Golang程序的主线程上可以起多个协程。Golang中多协程可以实现并行或者并发。 1.1 goroutine 协程:可以理解为用户级线程,这是对内核透明的&…

CSS 入门:美化网页的魔法

CSS(层叠样式表)是一种用于描述网页文档样式的标记语言。它可以控制网页的布局、字体、颜色、大小、背景等外观效果。CSS可以与HTML结合使用,通过选择器来选择HTML元素,并为其应用样式。 CSS的基本语法由选择器和声明块组成。选择…

2024_SHCTF_week2_Crypto

pading 题目: from Crypto.Util.number import * import gmpy2 flag bSHCTF{********} assert len(flag) 39 p getPrime(512) q getPrime(512) n p * q e 0x3 pad ba_easy_problem c pow(bytes_to_long(flag pad),e,n) print(fn {n}) print(fc {c})思路…

C语言数据结构学习:[汇总]

介绍 这些是我在学习C语言数据结构时练习的一些题目以及个人笔记 大家也可以参考着来学习 正在更新 大家可以在我的gitee仓库 中下载笔记源文件 笔记源文件可以在Notion中导入 内容导航 C语言数据结构学习:单链表-CSDN博客

Python中的递归函数是如何工作的,它有哪些应用场景?

1、Python中的递归函数是如何工作的,它有哪些应用场景? Python中的递归函数是一种特殊类型的函数,它能够调用自己来解决问题。递归函数的应用非常广泛,可以解决很多不同类型的问题,比如计算阶乘、生成斐波那契数列、字…

webpack5搭建react脚手架详细步骤

1. 初始化项目 首先,创建一个新目录并初始化项目: bash mkdir create-react cd create-react pnpm init --y git init 这里使用pnpm作为包管理工具,因为它在处理依赖和速度上表现更好。 2. 安装React和TypeScript 安装React和React-DOM…

视频编辑的创意工坊,使用视频剪辑软件将视频随机分割成两段并去声进行MP3音频和M3u8文件的生成,让视频制作更高效

面对海量的视频编辑任务,你是否曾感到手足无措,渴望一种既简单又高效的方式来处理它们?别担心,媒体梦工厂软件带着它的魔法棒来啦!它就像一位技艺高超的视频巫师,能轻松帮你在线完成视频编辑任务&#xff0…

如何在SpringTask的定时任务中创建动态的定时任务

在Spring框架中,如果你需要在定时任务中动态创建新的定时任务,可以使用TaskScheduler接口。TaskScheduler提供了对任务调度的更细粒度的控制,允许你在运行时动态地创建和管理定时任务。1. 配置 TaskScheduler 首先,需要在Spring配…

提示工程(Prompt Engineering)指南(入门篇)

一、什么是AIGC AIGC全称为 “Artificial Intelligence Generated Content”,即 “人工智能生成内容”。代表了一种由语言模型和聊天机器人等人工智能系统驱动的内容创作的突破性方法。与人类作者制作的传统内容不同,AIGC 是通过算法生成的,…

二十二、Python基础语法(模块)

模块(module):在python中,每个代码文件就是一个模块,在模块中定义的变量、函数、类别人都可以直接使用,如果想要使用别人写好的模块,就必须先导入别人的模块,模块名须满足标识符规则(由字母、数…

解密 Redis:如何通过 IO 多路复用征服高并发挑战!

文章目录 一、什么是 IO 多路复用?二、为什么 Redis 要使用 IO 多路复用?三、Redis 如何实现 IO 多路复用?四、IO 多路复用的核心机制:epoll五、IO 多路复用在 Redis 中的工作流程六、IO 多路复用的优点七、IO 多路复用使用中的注…

stm32 ISP 串口程序下载

硬件原理图: 下载是通过 uart1 。不同的芯片 , 下载的uart 是不一样的。 最终连接到了 PA9, PA10 驱动的安装: 这里的驱动我已经安装过了。 程序下载软件 flymcu 是免安装的。 需要注意的点就是这些。 下载实测:…

电脑连接海康相机并在PictureBox和HWindowControl中分别显示。

展示结果: 下面附上界面中所有控件的Name,只需照着红字设置对应的控件Name即可 下面附上小编主界面的全部代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; …

【算法练习】最小生成树

题意&#xff1a;【模板】最小生成树 方法1&#xff1a;Prim算法(稠密边用优&#xff09; #include <bits/stdc.h> using namespace std; int n,m,u,v,d,ans; bool f[5001]; vector<pair<int,int>> a[5001];//用结构体和重载比直接定义小根堆似乎还快一点点…

利用 Google AI 工具提升应用智能化:ML Kit、TensorFlowLite、Cloud Vision、AutoML、Gemini

在code应用开发中&#xff0c;机器学习和人工智能正逐渐成为提升用户体验和应用智能化的重要手段。Google 提供了多种强大的 AI 工具&#xff0c;可以帮助开发者快速集成各种机器学习功能。本文将详细介绍五个关键工具&#xff1a; Firebase ML Kit、TensorFlow Lite、Google …

kafka 的高可用机制是什么?

大家好&#xff0c;我是锋哥。今天分享关于【kafka 的高可用机制是什么&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; kafka 的高可用机制是什么&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Apache Kafka 是一个分布式消息系统&am…