本文采取硬件解码方案,在单片机上实现了MP3的解码,并加入无线功能,使其向产品靠拢,设计成为一种电子产品“校园自助导览仪”。它的功能和导游一样,具备自助和电子的要素。
本文还对MP3编码进行优化,除了算法优化和高级语言的优化之外,还进行了汇编级优化,大大降低了算法的复杂性。
1 系统总体设计
本设计是基于校园的一种电子产品,将旅游景点的解说以MP3格式存储,通过无线形式实现智能控制。该系统能根据观众的位置和需要自动确定解说的语言和内容,使得每个观众不但可以得到每个展位、景点的完整信息,而且能够感受到高清晰、低噪声的音响效果。同时,本设计产品还配有键盘,可以对播放的音频文件进行控制,满足人性化的要求。系统总体框架如图1所示。
1.1 MP3编码与实现
MP3采用的是频域编码,即音乐信号自适应谱感熵编码ASPEC(Adaptive Spectral Perceptual Entropy Coding of High Quality Music Signal)。
MP3的数据是以帧流的形式存储或传输的,每个帧有帧头和帧尾。为获取较高的数据压缩比,根据音频位流语法,采用了较为复杂的位流结构。MP3码流是由很多帧组成,每一帧由帧头、压缩的音频数据及辅助数据等组成。帧头是一个32位长的数据,它包含输入输出采样率、输出比特率以及单双声道等信息。对每一帧的576(单声道,立体声为1152)个输入音频采样压缩而得到音频数据。具体的压缩后的比特数可以根据下式得到:
帧内比特数=帧内采样数×位率/采样率 (1)
图2是MP3音频信号的编码过程。就单声道而言,MP3的一个编码框包含1152个声音取样,每个取样为16位。MP3编码时,首先将原始输入的16位PCM信号经过滤波器分析(filer bank analysis),转换成32个等频宽的子频带信号(subband signal)。然后透过改良式离散余弦转换(Modified I)iscrete CosineTransforln,MDCT),将每个子频带信号再细分为18个次频带,根据第二心理声学模型(Psychoacoustic Mode ID所提供的信噪比(Signal-to-MaskRatio,SMR),对每个子频带信号进行位元分配及量化编码。最后,只要将编码后的资料依照MPEG-I定义的位元串的形式输出即可。
数字音频采样通过由两个滤波器组成的滤波器组输入到心理声学模型中,由心理声学模型的输出来控制音频屏蔽等参数,最终通过量化和霍夫曼(Huffman)编码得到输出的比特流。
1.2 MP3解码与实现
PCM信号进行MP3压缩时,以1152个PCM采样值为单位,封装成具有固定长度的MP3数据帧(帧是MP3文件的最小组成单位)。在解码时,利用数据帧里的信息就可以恢复出1152个PCM采样值。这1152个采样值被分为2个粒度组,每个粒度组包含576个采样值。一个MP3数据帧分为5个部分:帧头、CRC校验值、边信息、主数据、附加数据。在进行解码时一般包含同步(Synchronization)、找到帧的开始位置、检查错误(CRC)、霍夫曼解码(Huffman decoding)、解包信息、输出量化的频率信息、再量化(Requantize)、用比例系数放大输出信息、再排序(Reorder)、增加频率后重新排序、频率线立体声合成(Stereodecoding)等过程。
MP3解码器程序设计包括以下内容:
①定点算法设计。尽管定点单片机也支持浮点运算,但浮点运算会消耗大量的指令周期和内存,也会降低系统运行速度,不能应用于MP3实时解码。在程序设计中,首先要将MP3浮点C解码算法转换为定点C解码算法。浮点算法转换成定点算法实现过程比较复杂,本文不再多述。
②在程序的头部建立正确的运行头(Run Time Header)文件。
③内存分页/重叠。与ADSP-218X类似,FD216也是通过设置重叠存储器选择寄存器(PMOVLAY/DMOVLAY)来实现PM(CM)/DM存储器分页/重叠的。
2 无线模块
无线遥控装置已广泛应用于车模、航模等领域,用来实现对靶机、驱动电机、玩具等的控制。在空间存在各个频段、强弱变化的无线电波,因此无线遥控器在通信数据传输时容易受到干扰。为了提高通信数据传输的可靠性,必须在发送端对传输的数据进行编码,而在接收端对接收的数据进行解码,以提高抗干扰性。下面先介绍无线收发的特点,再将此无线功能加入MP3中,构成一个有无线功能的MP3,从而完成校园自助导览仪的设计。
发射器一般由数据输入模块、编码电路、调制电路、驱动电路、发射电路等部分组成。当有数据从输入模块输入时,编码电路产生相应的编码信号(编码指信号对载波进行调制),再由驱动电路进行功率放大后由发射电路向外发射。
接收器一般由接收电路、放大整形电路、调制电路、数据处理电路、驱动执行电路等部分组成。接收电路接收发射器发送的调制编码信号,经过放大整形电路处理后送至解调电路。解调电路对调制信号进行解调,即还原为编码信号。数据处理电路对编码数据进行解析,并控制执行电路执行相应的操作。
由上述可知,为了提高数据传输的可靠性,必须对发送数据及发送的脉冲格式进行编码,然后在接收端对这些信号进行解码。现在市场上有很多用于编码和解码的专用芯片,例如PT2262/PT2272,它们都是通过硬件实现编码和解码的。在接收端,由于无线接收模块收到的是脉冲信号,而不同的数据位其宽度不同,所以必须测量每个脉冲的宽度,以判别是哪个数字逻辑。在硬件上采用单片机的两个外部中断INT 0、INT1来捕捉脉冲的上升沿和下降沿,进而计算出脉冲宽度和数字逻辑。图3是设计的校园自助导览仪的无线收发场景。
如果旅游者佩戴我们设计的自助导览仪进入校园游览,每次到达校园景点时,会自动接收到校园景点发射的编码信号,自助导览仪进行解码后会播放相应的MP3音频文件进行景点的介绍。
为了检验自助导览仪设备可靠性,进行了一些野外测试,效果良好:
①发射模块距离可调,符合显示各校园景点需要,基本上能通过控制天线长短和电压高低得到理想距离;
②误码可能性极低;
③通过程序控制很好地实现了自动判断同一景点播放完后是否重新播放。
3 MP3编码优化
心理模型的优化可以分为两个方面:心理声学模型算法的优化和心理声学模型定点运算的优化。心理模型对于长窗和短窗的运算均需要进行一系列的包含FFT的复杂运算,耗费大量运算周期。因此我们考虑这样来实现心理声学模型:首先进行窗体类型的判断,依据判断结果,只作对应窗口类型的FFT变换和后续的心理声学模型计算,从而大大减轻运算负担。经过测试统计发现,大多数的情况下,编码器所采用的窗口类型均为长窗,因此在心理模型窗体计算时可以不考虑短窗。
另外一种优化则是对定点运算进行优化。由于在心理声学模型中涉及到诸多复杂的运算(包括循环控制、对数运算、幂运算等),因此充分利用硬件功能和对运算的优化成为了关键。MP3编码器编码过程中,量化编码需要进行多次量化调整循环,每一次的量化调整都会消耗很多周期,因此通常会占到60%~70%的运算周期。在实现时,为了达到实时的要求,对量化编码模块的循环进行了控制,得到了最佳的量化结果。
结语
对MP3的编解码和无线模块的整合,是设计电子产品的一个方向,对电子产品的多样化有一定的推动作用。本文在单片机上通过对MP3的编解码运算实现了MP3的播放,然后对其功能进行扩展,加入了无线模块设计和液晶屏等,最终完成了校园自助导览仪的设计。该系统设计完成后,在西南交通大学进行了多次实验和推广,取得很好的效果。
虽然我们对编码进行了优化,且对无线模块进行了大量的通信测试,但不一定能达到恶劣环境的要求。可以根据实际的需要,调整无线模块的收发距离。此外,该MP3还可以进行更多的功能扩展,比如做成电子导游、公交报站器等多种电子产品。
评论
查看更多