前言
目前,网络上绝大都数关于MP3播放器的例子,大都采用vs1003这颗硬件解码芯片或
者使用AT89C51SND1C这颗含有内部音频解码电路的NB单片机, 软件音频解码的例子少之又
少。UP MCU 工作室的相关人员花了些时间、精力,研究了目前 linux 领域很常用的一个开
源音频解码库——libmad 的解码流程,并将其成功移植到裸奔的 stm32 平台上。本着资源
共享的奉献精神,本工作室将移植过程整理成手册,发布于网络,希望对大家有用。
本手册移植工作所对应的软硬件平台如下:
操作系统:windows XP
开发环境:MDK V4.23
STM固件库版本号:V3.5.0
主芯片 :STM32F103RET6(512K flash 64KRAM)运行于 72M
DA芯片 :PCM1770PW
由于本人水平有限, 文中若有不对的地方,欢迎拍砖。
1.Libmad 简介
LIBMAD是一个高质量的音频解码库,MAD的全称是MPEG Audio Decoder。LIBMAD 目前
支持MPEG-1、低采样率的MPEG-2 和 MPEG2.5 格式的LayerⅠ、LayerⅡ、LayerⅢ(即MP3)
的解码。
MAD 具有如下特性:
●高精度的24-BIT PCM输出;
●100%使用定点运算;
●完全基于ISO/IEC标准;
●支持GNU GPL协议。
MAD完全采用C语言编写(里面的 IMDCT部分和乘法运算可根据平台不同使用汇编来加
快运算速度),它对MP3解码算法做了很多优化,非常适合在没有浮点支持的嵌入式环境下
使用。利用MAD提供的API,我们可以很容易的实现音频解码。
完整的pdf格式文档51黑下载地址(共22页):
基于stm32的软件音频解码库libmad移植手册.pdf
(660.96 KB, 下载次数: 126)
|