基于DSP的MP3解码器

2019-07-18 14:34发布

随着数字视频和图像处理技术的发展,数字视频技术也正在提高,特别以ISO/IEC为基础的MPEG声频技术。
MPEG声频分成Ⅰ层、Ⅱ层和Ⅲ层,Ⅰ层(MP1)和Ⅱ层(MP2)是以子带滤波器和位分配为基准,尽管硬件能用一片芯片或软件用一片DSP核实现,并相继研制出MP1和MP2许多型号,但是声音质量并不与CD兼容,这是因为压缩方法不适合人的听觉。相反,当MP3算法加到一个系统后,音乐数据能够压缩到1/10,并能维持CD质量,这是因为MP3除了MPl和MP2使用的子带滤波器和位分配外,还采用了合适段和平均信息码。因此,MP3是目前数字声频压缩算法中广泛使用的一种标准。
但是,MP3实现比MP1和MP2更复杂,并要求使用一种具有32位:MCU、快速算法的软件技术。根据硬件设备,已经研发了某些解码器芯片装置,但它们消耗功率大,且不能高精度运行。而本文介绍的是一种以32位浮点DSP核为基础的低功耗,高精度的MP3解码器芯片。为了提高解码器的性能,芯片内还集成一个12位再循环A/D转换器(ADC)和一个过采样∑-△1位D/A转换器(DAC)。
1  工作原理
MP3解码器是根据32位浮点DSP核设计的,它的工作原理如下:把具有32位尾数和8位指数的内部寄存器作为源寄存器和目标寄存器使用。串行接口单元接收和发送串行位流,而主机接口单元用来接收主机的指令或把解码器的状态发送给主机。另外,片内的ADC和DAC在模/数和数/模转换中起到重要作用。
在MP3解码时,通过DMA控制器能把接收的位流传送到输入缓冲器。此时,DSP访问输入缓冲器,从而得到位流,并对它解码。当解码过程结束,解码输出被装到输出缓冲器,利用DMA操作,就能把存储在输出缓冲器的数据发送给DAC。在声音再生时,其过程与解码相似。在声音记录时,利用DMA操作,就能把ADC产生的声音数据装到输出缓冲器。然后利用DSP,把压缩后的数据装到输入缓冲器。通过串行接口单元,把输入缓冲器的数据发送给微控制器单元(MCU)并存储到快速存储器。
通过软件和硬件控制,解码器的电源管理特性能够使解码器变成功耗极低的休止状态。MP3解码器有四种电源管理状态:运行、等待、睡眠和掉电。在运行状态里,解码器是一种满负荷工作,它能对MP3位流或压缩和解压缩声音数据进行解码。在等待状态里,解码器等待用户的交互作用或数据,此时仅有某些外设工作。在睡眠状态里,仅有PLL是工作的,而其他所有模块停止工作。在掉电状态里,解码器的所有模块为掉电。因此,解码器能支持数据音量控制、低音/高音控制和6波段均衡器功能。这些特性对获得各种声音是有帮助的。
为了给模拟数据提供一个接口,芯片内使用ADC和DAC。芯片内ADC是一个具有采样和保持功能的12位再循环ADC,它的功耗在其他任何类型的ADC中是最低的。芯片内DAC是一个具有16位分辨率和64位过采样的1位4阶∑-△结构。在完成噪声抑制和滤波器滤波后,就能获得高分辨率的模拟声音数据。
为了得到高处理能力,利用独立的乘法器和累加器来实现DSP核。DSP核分成四个模块:取指令,解码、读出和执行。每个模块的基本原理是很简单的,而数据流量是根据高精度的32位浮点运算,这样就能把32位尾数和8位指数作为源和目标数据格式。在执行模块里,是利用低功耗和CMOS技术设计出高效率的乘法器和快速运算器。

2  MP3解码器的性能
3  典型应用电路
MP3解码器的典型应用是MP3放音系统,它的系统结构图如图5-35所示。该系统是由MP3解码器、MCU(微控制器单元)、快速存储器、LCD、键盘和模拟模块组成。通过MCU,MP3解码器能够接收来自快速存储器中的MP3位流数据,并对位流数据进行解码和生成解码输出。在MP3的DAC模块中把解码输出转换为模拟声频声音后,经一级声频放大器放大并驱动耳机。因此,通过一级放大器和MP3的ADC模块,就能把来自话筒(MIC)的模拟数据转换为数字数据。。MCU能控制系统中所有电路并处于正常工作,例如检查键盘状态变化。给LCD控制器发送指令或数据、管理数据存储,与MP3解码器芯片通信等。图中的LCD和键盘可作为用户接口,而快速存储器作为存储各种信息(指令、数据等)。另外,PC并行口作为下载或上载MP3文件或MP3放音系统和台式PC间的声音数据。


0条回答

一周热门 更多>