请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【中文文档】AN2931 - 在大容量STM32F103xx单片机实现ADPCM算法

[复制链接]
STMCU-管管 发布时间:2019-4-12 09:55
在高容量 STM32F103xx 微控制器中实现 ADPCM 算法5 O' N- \* y) u! V1 r* i
  [. b% G, c6 o9 z0 C( h
前言
4 I: v9 f; c9 W3 p1 l0 h9 |* w) t4 u7 o+ \
本应用笔记描述了 ADPCM 音频固件编解码器,并提供了演示固件来说明如何在使用STM32F103xxI2S 时,利用外部的 DAC 来播放 ADPCM 文件。
: f# u# N# k7 Y

3 e* s# S6 W! i- F' H本应用笔记基于 “AN2739:如何利用具有外部 I2S 音频编解码器的高容量 STM32F103xx 微控制器播放音频文件 ”。由于关于 SPI、I2S 和外部 DAC 的部分在 AN2739 中已有说明,此处不再赘述。因此,为了能充分理解本应用笔记,建议您参考 AN2739。
8 Q& I, \) ^* A) L9 c
4 ]6 u7 e. C* Y6 U
1 ADPCM 算法
6 `- V! ^/ r; ]" M( Z8 W, i8 k
3 ~9 Q3 ~$ `5 o* Y. B- ^8 {! a$ Z1.1 概述
1 _' i* s; W9 g' J

& r- _5 d" \1 ~- P7 j自适应差分脉冲编码调制 , 或简称为 ADPCM, 是波形编码的音频算法 , 它通过以前的信号值预测当前的信号值 , 并且仅发送真实值和预测值的差值。 ' b9 U3 W. y; J' h! b9 V9 C0 i

. P1 n8 e3 a+ T1 I在普通的脉冲编码调制 (PCM)中,发送的是真实或实际信号值。 ' r7 F$ P0 ]' ~. N+ D2 Q7 w

- W; w  z9 T* ?0 {, r( ^ADPCM 的优势在于通常预测信号值和真实信号值的差值相当小,这意味着与相应的 PCM 值相比,它可以用更少的位数来表示。 & j% U4 |8 L  j8 Y. K0 e$ z/ q
/ I/ C9 E+ n( E9 t7 N
根据需要的质量和压缩比,差分信号按照 4 (2 位)、 8 (3 位)、 16 (4 位)或 32 (5 位)水平量化。 ) v" Y- Z7 s# `  U

% {3 H& @7 Y& h8 }ADPCM 算法的实现方法有很多。它们在量化和预测模式上有所不同。 $ A& _) ]3 Y0 t3 V
) z8 g" m1 D( c; I. X7 T/ D5 m
在本应用笔记中,我们提供了由交互式多媒体协会(IMA)开发的4位量化算法IMA ADPCM。
, K  K# G% s) e* }; h" h2 J
. s# ~* T& V. r: @% Z* U选择 IMA ADPCM 有多种原因: # y) |8 R( D, c# x0 }
● 它可以应用于 8 kHz 到 44.10 kHz 之间的不同采样率
- D3 D% y" ~( w% k9 n# o* H7 {● 它能在较低的 CPU 的使用率和较少的内存占用情况下保证音频的播放质量
/ |1 n$ V/ E# Q) P' C* i● 它具有广泛的实现方式,例如在 Windows 和 Mac 操作系统中
7 G, k" P5 v7 A0 x& S. P# ~. [7 V3 l2 R4 t- d6 p1 d2 C
IMA 数字音频对焦和技术工作组公布的一份文件对 IMA ADPCM 算法进行了充分说明:“ 在多媒体系统中增强数字音频兼容性的建议措施 ” 版本 3。
4 B5 h- ~' N8 S% @
' W5 F! s$ _  w- @( N
1.2 ADPCM 算法实现
+ N- V: o: {& E% X! d" S  ^3 K$ v( t+ \6 B4 C0 q
本应用笔记提供的 IMA ADPCM 算法用于对具有下述规范的音频文件进行编码:
/ d" v. X( {5 b9 T0 j+ B# i● 音频格式:PCM
& f  H8 j; U5 M+ q4 r2 o7 T● 音频采样大小:16 位 * _. ]7 a8 g# N! e
● 通道 : 1 ( 单声道 ) . x' H) ~5 N% X# ]
● 音频采样率:8 kHz 到 44.1 kHz 3 g, h' W- k& d% i9 ^' M6 s
0 w* v* t2 M8 E9 ]- y
每个 16 位 PCM 采样被编码为 4 位 ADPCM 采样,压缩比达到 1/4。   H# T5 V4 a3 Q1 v1 Z/ A/ J2 H
! W) Y' k7 d* `
IMA ADPCM 算法实现包含两个函数,一个函数编码音频采样,另一个函数解码音频采样。 2 }  D  i  e+ a3 f2 b

9 l% E7 ]. A: E- }: CADPCM 固件由两个文件组成: / _' z* F2 v6 g6 o4 Q2 s& b, y
a) adpcm.c:它包括执行编码和解码的两个 ADPCM 函数的源代码。 / D( u+ Z6 E, @0 k+ l' r, ?% X
b) adpcm.h:它是 adpmc.c 的头文件。它应该包含在调用 ADPCM 函数的文件中。
: }, k) Q; u( X
1 R5 Q3 B# e3 Z* `
..........

& I0 f- `$ i) I' C' Z: I3 i' Y- M) c
想了解更多,请下载原文阅读
8 N- [/ g- q* h, k! d. j2 z
收藏 评论3 发布时间:2019-4-12 09:55

举报

3个回答
shensc 回答时间:2019-4-12 16:04:24
谢谢楼主分享~!
单片机爱好者 回答时间:2019-5-26 23:17:31
支持~~~~~~~~~~~~~~
Ian-392967 回答时间:2019-6-24 19:30:17
谢谢楼主分享~!
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版