打印

讨论---STM32处理音频压缩,编码和解码 的能力

[复制链接]
17167|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mzscg|  楼主 | 2008-7-25 17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用ST带的audiospeaker例程能播放.WAV格式的音频文件.

于是想到:STM32能否处理类如.mp3格式或者其他音频格式的文件.
这其中包括:
1.  播放.mp3的音频文件.
2. 对由mirophone(ADC)输入进来的人体声音进行编码压缩(比如压缩为.mp3格式)
以上这些处理要求一定的实时性,比如通话.
还有,如果要实现这方面的功能,是否可以考虑在us/osii上建立应用程序.

网站上很少看到类似的论题,希望各位可以各抒所见!!!
沙发
xwj| | 2008-7-25 17:05 | 只看该作者

不行,处理能力不够

使用特权

评论回复
板凳
香水城| | 2008-7-25 17:09 | 只看该作者

STM32有足够的能力实现MP3的实时解码

但实现MP3实时编码比较困难。

实现MP3的实时解码只需要大约30MIPS左右的运算能力。

使用特权

评论回复
地板
香水城| | 2008-7-25 17:10 | 只看该作者

用STM32可以很方便地实现实时的语音ADPCM压缩

使用特权

评论回复
5
computer00| | 2008-7-25 17:16 | 只看该作者

我看那个MP3解码的代码很晕啊,谁有这个解码过程的文档?

弄点给俺学习学习…………

使用特权

评论回复
6
mzscg|  楼主 | 2008-7-25 17:34 | 只看该作者

回复香水, ST目前有做过这方面的开发吗??

想收集一些这方面的材料.

使用特权

评论回复
7
mzscg|  楼主 | 2008-7-25 17:43 | 只看该作者

楼上的,我也想要啊,mp3解码的代码我还没有呢

你能不能把mp3解码的代码发给,你在哪里下的?告诉我一下,

使用特权

评论回复
8
mzscg|  楼主 | 2008-7-25 17:47 | 只看该作者

再问香水,如果我牺牲带宽

如果我的语音频控制在3K以下,也就是我的采样率只要6K-8K左右,
那么,STM32是否可以满足要求??

使用特权

评论回复
9
ijk| | 2008-7-25 17:54 | 只看该作者

上网查

可以上网查:MP3音频编码需要多少MIPS

使用特权

评论回复
10
mzscg|  楼主 | 2008-7-31 09:41 | 只看该作者

接着讨论,MP3编码需要多少MIPS?

网上好像大部讨论的都是MP3解码的,
很少有讨论编码的.

使用特权

评论回复
11
香水城| | 2008-7-31 10:05 | 只看该作者

我是做MCU的芯片,对于MP3的算法我们没有研究

让我回答这样的问题,真是勉为其难了,抱歉抱歉。

使用特权

评论回复
12
lidawei1| | 2008-7-31 12:00 | 只看该作者

参考

有篇**讲述mp3格式及libmad的解码过程,作者是西安交通大学人工智能与机器人研究所的李国辉,讲得不错,可以参考。

使用特权

评论回复
13
lidawei1| | 2008-7-31 12:06 | 只看该作者

另外

顶楼的所谓“用ST带的audiospeaker例程能播放.wma格式的音频文件”是否写错了,是不是“WAV格式的音频文件”,如果真的能放wma格式,那放mp3格式应该就是小菜一碟了。

使用特权

评论回复
14
mzscg|  楼主 | 2008-7-31 14:19 | 只看该作者

楼上说得是对的.是播放的.wav文件

mp3的编码要比解码来得复杂些,
我估计采用软解码,STM32  72MHZ的主频是跟不上了.

使用特权

评论回复
15
mzscg|  楼主 | 2008-7-31 14:29 | 只看该作者

我们来假设一下,假设主频可以....

假设CPU能满足编解码的要求...

mp3是可以支持边解码边播放的,简单地假设一下码率为128Kbps,
是不是可以这样想,接收到1秒内的128K了,为16KB,马上就播放,
那对20KB的ram来说也是不够的(解码代码肯定也挺大的..)))

使用特权

评论回复
16
lidawei1| | 2008-7-31 16:33 | 只看该作者

主频估计可以。内存是关键。

mp3是以帧为单位进行编码的,解码时也以帧为单位进行,并不是每读入128K数据解码及输出1次,而是每帧解码输出1次,每帧的时间长度依采样率的不同而不同,MPEG1层3每帧每声道为1152个数据,因此,内存的消耗并不如你想像中的那么大,每帧只需要略大于2K的输出缓冲区就够了,倒是解码过程中的各种变换消耗的内存较多,对于20KB的ram来说实在太吃力了。

使用特权

评论回复
17
香水城| | 2008-7-31 16:39 | 只看该作者

STM32的RAM可以达到64KB

话说回来,如果MP3软解码需要这么多的RAM,各位就要谨慎考虑软解码是否划算的问题了,从成本上讲RAM不是免费的;姑且不谈解码的质量,如果占用太多的RAM,软解码与使用硬件解码相比较还有成本优势吗?

玩玩是一回事,做产品就必须考虑成本。

使用特权

评论回复
18
lidawei1| | 2008-7-31 16:54 | 只看该作者

香版说的有道理

所以是否可以认为ST在20KB ram的芯片中不提供I2S接口,在新的型号中才提供此接口呢?毕竟I2S主要是为音频服务的,ram太小干不了什么大事,提供了也基本上没什么实际意义。

使用特权

评论回复
19
computer00| | 2008-7-31 16:56 | 只看该作者

俺只是想学习来玩下,没有商业目的~~~~~~~

使用特权

评论回复
20
mzscg|  楼主 | 2008-7-31 17:37 | 只看该作者

回lidaweil,我还真没有发现I2S的用途

没有用过这个接口.

使用特权

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

本版积分规则

51

主题

234

帖子

0

粉丝