




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、引言4二、MP3编码和解码原理42.1、MP3编码原理52.1.1、滤波器段52.1.2、神经听觉模型62.1.3、量化和编码72.2、MP3解码原理7三、MP3的设计与实现83.1、硬件设计93.1.1、SDRAM103.1.2、FLASH103.1.3、输出电路113.2、软件设计123.2.1、驱动程序基础123.2.2、UDA1341声卡驱动程序133.2.3、Madplay播放软件13四、参考文献14基于S3C2410处理器的的MP3设计摘要:设计一种基于S3C2410的MP3播放器。该播放器是基于嵌入式linux操作系统、应用S3C2410为平台。详细介绍了MP3编码和解码
2、的原理、设计及实现过程。由于采用的是嵌入式linux实现的,该种MP3播放器可以很容易地移植到其他微控制器系统中,使设备兼具MP3播放功能的设备。关键字:嵌入式linux;MP3;编码和解码原理;设计及实现一、 引言 MP3(MPEGAudioLayer-3)是一种数字音频压缩技术,数字压缩速率达到每通道128kbps,数比例可以达到12:1。MP3播放器的主要作用就是解压压缩的MP3数字音频,再现MP3音乐,同时为携带方便还要能存贮MP3文件,MP3歌曲可以从电脑上下载。MP3播放器主要由MP3文件解码部分、文件存贮部分、文件下载接口和语音播放部分构成。根据解码的方法播放器可分为软解码和硬解
3、码两种:软解码是利用控制软件解压缩MP3文件,它要求控制器处理速度要快。MPEG1音频标准是一个普遍适用的音频压缩标准,它对音频源没有任何要求。它利用人耳听觉系统的感知特性,压缩率的取得来自去掉人耳听不到的信息细节,虽然压缩是有失真的,但对人耳来说这些失真是听不到的。也即对人耳而言,MPEG1音频压缩是不失真的。因此,MPEG1音频标准的应用非常广泛。二、 MP3编码和解码原理音频压缩由编码和解码两个部分组成。把波形文件里的数字音频数据转换为高度压缩的形式(称为比特流)即为编码;要解码则把比特流重建为波形文件。2.1 MP3编码原理图1MP3是MPEG-1音频标准中的LayerIII的简称,它
4、基于感知音频编码,结合了MUSICAM (掩蔽模式通用子带集成编码与多路复用) 算法和ASPEC ( 自适应频谱感知熵编码) 算法 的优势, 利用人耳的听觉特性, 在保证高品质的音响效果的前提下,可以把原始的音乐数据压缩为原来的十二分之一,目标编码速率为声道, 适合于 网络上音频数据64kbps的传输 。数字音频采样通过由两个滤波器组成的滤波器组输入到心理声学模型中, 由心理声学模型 的输出控制音频屏蔽等参数,最终通过量化和霍夫曼Huffman)编码得到输出的比特流 。2.1.1 滤波器段 数字音频信号以脉冲的形式送进编码器,首先会经过一滤波器段(filterbank),它由两个串联的滤波器段
5、组成:一个多相分析滤波器段和一个MDCT(Modified Discrete Cosine Transform,经改良的离散余弦转换),前者也应用到layer-1和layer-2中,后者是MP3独有的。输入的音频信号在20Hz-20k Hz的频率范围内,通过第一个滤波器段后,把信号按频率分成32个小频带,称为子带(Subband)。20000Hz/32=625Hz,那么每个子带的宽度就是625Hz。人耳对不同频段的灵敏度是不同的,编码器可对不同的子带进行不同的量化分层。不过等宽的子带并没有准确反映人耳的听觉特性,这样进行等宽划分并没有考虑到不同信号的临界宽度,也就是该信号的影响范围,以及不同信
6、号的相互影响,所以这样会产生大量的信号重叠。MDCT转换就是为了解决这问题,它能对子带进行细分,清楚重叠部分,得到更高的频谱解析度。2.1.2神经听觉模型神经听觉模型可以说是感受编码的重中之中,它决定着编码器的编码质量。最主要的原因是它采用了声音心理模型来模拟人耳的听觉,利用人耳听觉感知上的遮蔽效应所得到的遮噪门槛曲线,决定各个子频带所容许的最大量化误差,使得了量化后的失真能被听见。声音心理模有两种,其中第一声音心理模型比较简单,适用于高传输率;第二声音心理模型比较复杂,在较低的传输率的情况下,也能维持声音的品质。此两模型皆先将音讯经傅里叶频谱变换,在对映射到临界频带,并区分出单频以及非单频成
7、分,依其所在的频率位置与强度大小,分别计算遮噪门槛曲线,而整合成整体遮噪门槛曲线,并对映成每个子频带信号编码时所需的位元素。2.1.3 量化和编码 当PCM讯号被分成好几个频段并经过一系列的处理后,最后经过MDCT,将波型转换为一连串的系数。这些系数就由Huffman编码器会选择最合适的Huffman表来做最后的压缩。 Huffman编码一般是双路工作的,但是在某些需要精密编码的情况下,它会进行四路工作。编码器一般会有很多的Huffman编码表,很多时候为了更好的声音质量和更有效屏蔽量化噪音,编码器甚至能为每一个频段选择最合适的Huffman编码表。不过编码不是一次就能成功的,要采取Try a
8、nd Error的方式循环进行。因为编码器一方面要削减量化噪音,让它在人耳遮蔽曲线以下;另一方面要保证bitrate满足要求。所以两个回路是嵌套工作的,互相协调,中止条件是量化噪音降到屏蔽临界线以下而码率也足够小。良好的编码器会让两个回路有条不紊的工作,因为一旦处理不好就很容易陷入死循环。22 MP3解码原理对于一个MP3文件的解码,本质上就是循环地对每一个Frame进行解码,直到完成所有Frame的解码,或者中途出现错误而中止。MP3文件的解码流程如图2所示。而对于每一帧的解码,首先是要获取每一帧的同步字符和帧头信息,从而获得相应的参数,并根据对帧头信息的分析进而得到实际一帧的音频数据;然后
9、读取主要数据并获得缩放因子数据和霍夫曼码字,接着进行霍夫曼解码;其次进行反量化,并根据帧头的立体声信息对反量化结果进行立体声处理;最后通过混迭处理、IMDCT和合成滤波器重建数字音频信号,这一程如图3所示。 图2 图3MP3文件解码播放的简化流程可用图4表示。 图4 解码播放简化流程由图4可知,MP3文件或者其它音频文件,经过解码库(解码器)的解码,生成PCM数据,然后将PCM数据写入声卡设备,即可实现音频文件的播放。三、 MP3的设计与实现一个完整MP3播放机要分几个部分:中央处理器、解码器(软件解码)、存储设备、主机通讯端口、音频DAC和功放、显示界面和控制键。其中中央处理器和解码器是整个
10、系统的核心。这里的中央处理器我们通常称为cpu(微处理器)。它运行MP3的整个控制程序,也称为fireware(或者固件程序)。控制MP3的各个部件的工作:从存储设备读取数据送到解码器(软件解码)解码;与主机连接时完成与主机的数据交换;接收控制按键的操作,显示系统运行状态等任务。MP3播放机是软件解码,由高速中央处理器完成。它可以直接完成各种格式MP3数据流的解码操作,并输出PCM或I2S格式的数字音频信号。 图5 系统总体结构图3.1 硬件设计处理器:硬件电路以处理器为中心。Samsung公司的ARM9处理器S3C2410X,是一款基于ARM920T内核的16位/32位RISC嵌入式处理器。
11、ARM920T核由ARM9TDMI、存储管理单元(MMU)和高速缓存三部分组成。其中MMU可以管理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache组成。S3C2410芯片集成了大量的功能单元。3.1.1SDRAM随机存取存储器RAM(RandomAccessMemory)是易失性的存储器,在掉电以后数据即消失,不能长期保存。但与ROM器件不同的是,它的随机读写速度非常快,写入数据之前也不需要进行擦除,常用的RAM分为SRAM(静态RAM)和DRAM(动态RAM),我们这里采用SDRAM(同步动态RAM),S3C2410X芯片本身提供对SDRAM进行直接接口的解决方案,因此不需
12、要通过编程来实现它们所需的接口时序,而只须对与存储器控制器相应的寄存器进行适当配置。SDRAM是多bank结构,例如在一个具有两个bank的SDRAM的模组中,其中个bank在进行预充电期间,另一个bank却可以马上被读取,这样当进行一次读取后,又马上去读取已经预充电bank的数据时,就无需等待而是可以直接读取了。这也就大大提高了存储器的访问速度。具体芯片采用现代HY57V641620,分成4个Bank,每个Bank的容量为1M×16位。Bank的地址由BA1,BA0决定,00对应Bank0,01对应Bank1,10对应Bank2,11对应Bank3。在每个Bank中,分别用行地址脉
13、冲选通RAS和列地址脉冲选通CAS进行寻址。3.1.2 FLASHNOR和NAND是目前市场上两种主要的非易失散存技。Nor-flash存储器的容较小、写入速度慢,但其随即读取速度快,因此在嵌入式系统中,常应用在程序代码的存储中。另外,Nor-flash存储器的内部结构决定了它不适合朝大容量方向发展;而Nand-flash存储器结构能提供极高的单元密度,可以达到很大的存储容量,并且写入和擦除速度也很快。Nand-flash存储器内部采用非线性宏单元模式,为固态大容量存储器的实现提供了廉价有效的解决方案,因而现在得到了越来越广泛的应用。例如体积小巧的U盘就是采用Nand-flash存储器。在这里
14、我们也采用Nand-flashK9F2808U。3.1.3输出电路UDA1341是飞利浦公司的一款经济型音频CODEC,用于实现模拟音频信号的采集(音频AD)和数字音频信号的模拟输出(DA),并通过IIS数字音频接口,实现音频信号的数字化出理。UDA1341的IIS引脚分别接到S3C2410对应的IIS引脚上,音频输入输出(VIN,VOUT)分别和麦克风扬声器连接;UDA1341的L3接口相当于一个Mixer控制器接口,可以用来控制输入/输出音频信号的音量大小,低音等。L3接口的引脚L3MODE,L3DATA和L3CLOCK分别链接到S3C2410的IICSCL,IICSDA和GPF6引脚上。
15、153.2软件设计我们选择在此MP3播放器上运行arm-Linux操作系统。嵌入式Linux系统从软件角度来可以分为5个层次:(1)引导加载程序,固化固件中的启动代码和Bootloader两大部分。(2)内核特定于具体硬件的定制内核以及控制内核引导系统的参数。(3)文件系统包括根文件和建立于Flash存储器设备上的文件系统。(4)UDA1341声卡驱动程序。这个驱动主要涉及S3C2410 DMA的使用。(5)用户应用程序。特定于用户的应用程序。对于本系统来说就是播放程序。3.2.1 驱动程序基础Linux设备驱动程序将设备看成文件。设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为
16、应用程序屏蔽了硬件的细节, 这样使硬件对应用程序来说是透明的, 在应用程序看来, 硬件设备只是一个设备文件, 应用程序可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是嵌入式Linux内核的一部分, 它完成以下的功能:(1)对硬件设备初始化和释放。(2)把数据从内核传送到硬件, 或从硬件读取数据。(3)读取应用程序给设备文件的数据和回送应用程序请求的数据。(4)检测和处理设备出现的错误和异常。用户进程通过设备文件实现与硬件的交流。Linux 给每个设备都分配一个主设备号 (MajorNumber)和次设备号(MinorNumber)。主设备号一般用来定义这个设备的类型, 次设备号是一个8
17、位的数字, 它指定一个特定的设备。设备文件的主设备号必须与设备驱动程序在登记时申请的主设备号一致, 否则用户进程将无法访问到驱动程序。3.2.2 UDA1341声卡驱动程序该音频系统采用的音频设备是Philips公司的UDA 1341TS 芯片。UDA1341支持IIS总线数据格式,采用位元流转换技术进行信号处理, 完成声音信号的模数转换,具有可编程增益放大器和数字自动增益控制器,其低功耗、低电压的特点使其非常适合用于MP3、 笔记本电脑等便携式设备。驱动程序主要包括几个模块:设备的初始化和卸载、内存和DMA 缓存区的设置、声音的播放和录制、其它相关控制,当然也包含相关的实现功能函数。UDA1
18、341音频芯片提供如下功能数字化音频。这个功能有时被称为 DSP 或Codec设备。其功能是实现播放数字化声音文件(数字信号转变为模拟信号)或录制声音(模拟信号转变为数字信号)。混频器。用来控制各种输入输出的音量大小, 在本系统中对应L 3 接口。数字音频设备(audio)、混频器(mixer)对应的设备文件分别是/dev/dsp和/dev/mixer。3.2.3 Madplay播放软件播放MP3的软件我们选用MAD(MPEGAudioDecoder),MAD是一个高品质的MPEG音频解码软件,能够输出24-bit的音频,完全是定点计算,非常适合没有浮点支持的平台上使用。它现在支持MPEG-1和MPEG-2扩展到低频采样的部分,以及实际的MPEG-2.5格式。所以三个音频层LayerI,Layer,和Layer(也就是MP3)被完全实现。MAD还不支持MPEG-2多波段音频,并且现在还不支持AAC。MAD具有以下特点:24位的PCM输出;100%的定点(整数)计算;基于ISO/IEC标准的全新实现。在GPL协议下可用MAD提供完全24位的PCM输出,所以使用MAD的应用程序能够产生高品质的音频。即使输出设备仅支持16位PC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民宅出租改造合同协议
- 母女住房买卖合同协议
- 和平精英合同协议
- 和解协议书还款协议
- 2025年专利权许可使用合同范本
- 2025劳务合同范本
- 和淘宝商家合同协议
- 商场餐饮翻修合同协议
- 欠款购买协议书范本
- 商场服装合同协议
- 2025-2030全球及中国电动和混合动力汽车动力传动系统行业市场现状供需分析及投资评估规划分析研究报告
- 科学控糖与健康体重管理
- 2025年广东省高三高考模拟测试二生物试卷(有答案)
- 2024年银行从业资格考试(中级)《风险管理》试题及答案指导
- 法律职业资格(主观题)题库附答案2025
- 四川农商银行招聘笔试真题2024
- 右足底皮肤裂伤护理查房
- 2025年普通高中学业水平选择性考试冲刺压轴卷一英语试卷(含答案)
- 陕西师大附中2025年高三5月总复习质检(二模)生物试题含解析
- 2025年生猪屠宰兽医卫生检疫人员考试题(附答案)
- 2025年中国铁路信号电源屏数据监测报告
评论
0/150
提交评论