mp3的设计与应用-毕业设计论文.doc

上传人:cl****1 文档编号:544361629 上传时间:2023-07-12 格式:DOC 页数:36 大小:828.50KB
返回 下载 相关 举报
mp3的设计与应用-毕业设计论文.doc_第1页
第1页 / 共36页
mp3的设计与应用-毕业设计论文.doc_第2页
第2页 / 共36页
mp3的设计与应用-毕业设计论文.doc_第3页
第3页 / 共36页
mp3的设计与应用-毕业设计论文.doc_第4页
第4页 / 共36页
mp3的设计与应用-毕业设计论文.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《mp3的设计与应用-毕业设计论文.doc》由会员分享,可在线阅读,更多相关《mp3的设计与应用-毕业设计论文.doc(36页珍藏版)》请在金锄头文库上搜索。

1、 本科毕业设计(论文)题 目 mp3的设计与应用 部 系 地方生部 专 业 电子信息工程 学 员 王傈 指导教员 张力 中国人民解放军海军航空工程学院2010 年 7 月 前 言 MP3的全称应为MPEG1 Layer-3音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频

2、编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1,也就是说,一分钟CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。不过MP3对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。 MP3播放机要分几个部分:中央处理器、解码器、存储设备、主机通讯端口、

3、音频DAC和功放、显示界面和控制键。其中中央处理器和解码器是整个系统的核心。这里的中央处理器我们通常称为MCU(单片微处理器),简称单片机。它运行MP3的整个控制程序,也称为fireware(或者固件程序)。控制MP3的各个部件的工作:从存储设备读取数据送到解码器解码;与主机连接时完成与主机的数据交换;接收控制按键的操作,显示系统运行状态等任务。解码器是芯片中的一个硬件模块,或者说是硬件解码(有的MP3播放机是软件解码,由高速中央处理器完成)。它可以直接完成各种格式MP3数据流的解码操作,并输出PCM或I2S格式的数字音频信号。 存储设备是MP3播放机的重要部分,通常的MP3随身听都是采用半导

4、体存储器(FLASH MEMORY)或者硬盘(HDD)作为储存设备的。它通过接受储存主机通讯端口传来的数据(通常以文件形式),回放的时候MCU读取存储器中的数据并送到解码器。数据的存储是要有一定格式的,众所周知,PC管理磁盘数据是以文件形式,MP3也不例外,最常用的办法就是直接利用PC的文件系统来管理存储器,微软操作系统采用的是FAT文件系统,这也是最广泛使用的一帧呕?渲幸桓鋈挝窬褪且?迪諪AT文件系统,即可以从FAT文件系统的磁盘中按文件名访问并读出其中的数据。 主机通讯端口是MP3播放机与PC机交换数据的途径,PC通过该端口操作MP3播放机存储设备中的数据,拷贝、删除、复制文件等操作。目前

5、最广泛使用的是USB总线,并且遵循微软定义的大容量移动存储协议规范,将MP3播放机作为主机的一个移动存储设备。这里需要遵循几个规范:USB通信协议、大容量移动存储器规范和SCSI协议。 音频DAC是将数字音频信号转换成模拟音频信号,以推动耳机、功放等模拟音响设备。这里要介绍一下数字音频信号。数字音频信号是相对模拟音频信号来说的。我们知道声音的本质是波,人说能听到的声音的频率在20Hz到20kHz之间,称为声波。模拟信号对波的表示是连续的函数特性,基本的原理是不同频率和振幅的波叠加在一起。数字音频信号是对模拟信号的一种量化,典型方法是对时间坐标按相等的时间间隔做采样,对振幅做量化。单位时间内的采

6、样次数称为采样频率。这样一段声波就可以被数字化后变成一串数值,每个数值对应相应抽样点的振幅值,按顺序将这些数字排列起来就是数字音频信号了。这是ADC(模拟-数字转换)过程,DAC(数字-模拟转换)过程相反,将连续的数字按采样时候的频率顺序转换成对应的电压。MP3解码器解码后的信息属于数字音频信号(数字音频信号有不同的格式,最常用的是PCM和I2S两种),需要通过DAC转换器变成模拟信号才能推动功放,被人耳所识别。MP3播放机的显示设备通常采用LCD或者OLED等来显示系统的工作状态。控制键盘通常是按钮开关。键盘和显示设备合起来构成了MP3播放机的人机交互界面。 MP3播放机的软件结构跟硬件是相

7、对应的,即每一个硬件部分都有相应的软件代码,这是因为大多数的硬件部分都是数字可编程控制的。 看了上面的介绍是不是已经被单片机原理,编程,信号与系统,电子线路以及诸多协议标准的单词轰炸得晕头转向了。其实这只不过是让大家了解,MP3虽然简单但也很复杂。 总结起来工作流程为读取贮体上的信号-到解码芯片对信号进行解码(或解压缩)-通过数模转换器将解出来的数字信号转换成模拟信号-再把转换后的模拟音频放大-低通滤波后到耳机输出口。第一章 编码与解码 本文先介绍符合ISO/IEC 11172-3(MPEG 1 Audio codec Layer I, Layer II and Layer III audio

8、 specifications) 或 ISO/IEC 13818-3(BC Audio Codec)的音频编码原理。通过madlib解码库进行实现。1.1 程序系统结构 mp3解码流程图其中同步及差错检查包括了头解码模块在主控模块开始运行后,主控模块将比特流的数据缓冲区交给同步及差错检查模块,此模块包含两个功能,即头信息解码及帧边信息解码,根据它们的信息进行尺度因子解码及哈夫曼解码,得出的结果经过逆量化,立体声解码,混淆缩减,IMDCT,频率反转,合成多相滤波这几个模块之后,得出左右声道的PCM码流,再由主控模块将其放入输出缓冲区输出到声音播放设备。1.2 主控模块主控模块的主要任务是操作输入

9、输出缓冲区,调用其它各模块协同工作。其中,输入输出缓冲区均由DSP控制模块提供接口。输入缓冲区中放的数据为原始mp3压缩数据流,DSP控制模块每次给出大于最大可能帧长度的一块缓冲区,这块缓冲区与上次解帧完后的数据(必然小于一帧)连接在一起,构成新的缓冲区。输出缓冲区中将存放的数据为解码出来的PCM数据,代表了声音的振幅。它由一块固定长度的缓冲区构成,通过调用DSP控制模块的接口函数,得到头指针,在完成输出缓冲区的填充后,调用中断处理输出至I2S接口所连接的音频ADC芯片(立体声音频DAC和DirectDrive耳机放大器)输出模拟声音。1.3 同步及差错检测同步及差错检测模块主要用于找出数据帧

10、在比特流中的位置,并对以此位置开始的帧头、CRC校验码及帧边信息进行解码,这些解码的结果用于后继的尺度因子解码模块和哈夫曼解码模块。Mpeg1 layer 3的流的主数据格式见下图:主数据的组织结构图其中granule0和granule1表示在一帧里面的粒度组1和粒度组2,channel0和channel1表示在一个粒度组里面的两个通道,scalefactor为尺度因子quantized value为量化后的哈夫曼编码值,它分为big values大值区和count1 1值区CRC校验:表达式为X16+X15+X2+11.3.1帧同步帧同步目的在于找出帧头在比特流中的位置,ISO 1172-3

11、规定,MPEG1 的帧头为12比特的“1111 1111 1111”,且相邻的两个帧头隔有等间距的字节数,这个字节数可由下式算出:N= 144 * 比特率 / 采样率如果这个式子的结果不是整数,那么就需要用到一个叫填充位的参数,表示间距为N +1。1.3.2头信息解码头信息解码目的是找出这一帧的特征信息,如采样率,是否受保护,是否有填充位等。头信息见下图:帧头信息结构图其长度为4 字节,数据结构如下:typedef struct tagHeader unsigned int sync : 11 ; / / 同步信息unsigned int version : 2 ; / / 版本unsigne

12、d int layer : 2 ; / / 层unsigned int error2protection : 1 ; / / CRC校正unsigned int bit2rate2index : 4 ; / / 位率索引unsigned int sample2rate2index : 2 ; / / 采样率索引unsigned int padding : 1 ; / / 空白字unsigned int extension : 1 ; / / 私有标志unsigned int channel2mode : 2 ; / / 立体声模式unsigned int mode extension : 2

13、; / / 保留unsigned int copyright : 1 ; / / 版权标志unsigned int original : 1 ; / / 原始媒体unsigned int emphasis : 2 ; / / 强调方式 HEADER1.3.3帧边信息解码帧边信息解码的主要目的在于找出解这帧的各个参数,包括主数据开始位置,尺度因子长等。帧边信息如下图所示:帧边信息(side_infomation)表1.3.4main_data_beginmain_data_begin(主数据开始)是一个偏移值,指出主数据是在同步字之前多少个字节开始。需要注意的是,1.帧头不一定是一帧的开始,帧头

14、CRC校验字和帧边信息在帧数据中是滑动的。2.这个数值忽略帧头和帧边信息的存在,如果main_data_begin = 0, 则主数据从帧边信息的下一个字节开始。 参见下图:同步示意图1.3.5block_typeblock_type指出如下三种块类型:block_type = 0 长块block_type = 1 开始块block_type = 3 结束块block_type = 2 短块在编码过程中进行IMDCT 变换时,针对不同信号为同时得到较好的时域和频域分辨率定义了两种不同的块长:长块的块长为18个样本,短块的块长为6个样本。这使得长块对于平稳的声音信号可以得到更高的频率分辨率,而短

15、块对跳变信号可以得到更高的时域分辨率。由于在短块模式下,3 个短块代替1个长块,而短块的大小恰好是一个长块的1/3,所以IMDCT的样本数不受块长的影响。对于给定的一帧声音信号,IMDCT 可以全部使用长块或全部使用短块,也可以长短块混合使用。因为低频区的频域分辨率对音质有重大影响,所以在混合块模式下,IMDCT对最低频的2个子带使用长块,而对其余的30个子带使用短块。这样,既能保证低频区的频域分辨率,又不会牺牲高频区的时域分辨率。长块和短块之间的切换有一个过程,一般用一个带特殊长转短(即,起始块block_type = 1)或短转长(即终止块,block_type = 3)数据窗口的长块来完成这个长短块之间的切换。因此长块也就是包括正常窗,起始块和终止块数据窗口的数据块;短块也包含18个数据,但是是由6个数据独立加窗后在经过连接计算得到的。1.3.6 big_values, count1每一个粒度组的频谱都是用不同的哈夫曼表来进行编码的。编码时,把整个从0 到奈奎斯特频率的频率范围(共576个频率线)分成几个区域,然后再用不同的表编码。划分过程是根据最大的量化值来完成的,它假设较高频率的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档 > 租房合同

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号