打印
[STM8]

请问香主,应用笔记里有没有ADPCM encode例子?

[复制链接]
3028|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
taishan3703|  楼主 | 2010-9-3 12:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 taishan3703 于 2010-9-3 14:00 编辑

发现只有Decode例子,没找到encode部分啊。
沙发
香水城| | 2010-9-3 13:34 | 只看该作者
你看的是哪一个?

使用特权

评论回复
板凳
taishan3703|  楼主 | 2010-9-3 13:59 | 只看该作者
我看得AN3143阿。

使用特权

评论回复
地板
香水城| | 2010-9-3 14:07 | 只看该作者
噢,请你看看AN2931:http://www.st.com/mcu/familiesdocs-110.html

这是讲STM32的,但算法是相通的。

使用特权

评论回复
5
taishan3703|  楼主 | 2010-9-3 16:14 | 只看该作者
谢谢。

使用特权

评论回复
6
FAQ| | 2017-9-1 22:29 | 只看该作者
香水城 发表于 2010-9-3 14:07
噢,请你看看AN2931:http://www.st.com/mcu/familiesdocs-110.html

这是讲STM32的,但算法是相通的。 ...

AN2931的采用的是单声道的IMA标准的ADPCM。

我在做测试,把一个16bit,2声道PCM数组记录编码压缩,然后紧接着再解码解压,发现出来的数据不对,验证不过去。这里我只做了一个通道采样值的一次编码和解码。
u8 data[10000]={0x34,0x12,……};
u8 tmp1=0;
int16 tmp2=0;

tmp1=ADPCM_Encode((data[addr+1]<<8)|data[addr+0]);
tmp2=ADPCM_Decode(tmp1&0x0F);

为何解压出来的tmp2的数值不等于0x1234

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

108

帖子

0

粉丝