MP3文件结构阅读器设计.doc_第1页
MP3文件结构阅读器设计.doc_第2页
MP3文件结构阅读器设计.doc_第3页
MP3文件结构阅读器设计.doc_第4页
MP3文件结构阅读器设计.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学年论文设计题 目 MP3文件结构阅读器设计 学生姓名 学号 所在院(系) 专业班级 指导教师 2012年 6 月 8日电子与信息工程系学年论文(设计)开题报告姓名专 业班级指导老师题目MP3文件结构阅读器设计1本课题的基本内容1、基本代码的分析以及功能的实现2、各个模块的分析和测试3、系统测试方案和测试报告2本课题的重点和难点1、 代码编写2、 相关程序设计、实现、调试3主要参考文献1谭浩强 著C语言程序设计(第四版)M.清华大学出版社,2006年6月第4版2C程序设计学习辅导M及其它的一些相关的参考文献3李春葆 尹为民 李蓉蓉,等.数据结构教程(第3版)M.清华大学出版社,2009年3月第3版4赵子江.多媒体技术基础M.北京:机械工业出版社,2001:118-130.5参考网址:http/:指导教师意见指导教师: 年月 日MP3文件结构阅读器设计作者: (安康学院电子与信息工程系计算机科学与技术10级,陕西 安康725000) 指导教师: 摘要本程序主要实现了MP3文件结构阅读器的开发。MP3文件大体分为三部分:ID3V1、ID3V2、Frame。由于绝大多数MP3使用ID3V1标准,所以,在这里我只研究MP3文件结构为ID3V1标准的MP3文件,实现功能使用C语言读出MP3文件并显示其文件结构。关键字MP3;文件;C语言 MP3 file and structure reader design Author: Zhou XiaoHua(Computer science and technology program in 2010, electronics and information engineering department, Ankang University, Ankang , Shaanxi 725000)Tutor:Liu HonAbstract:The program mainly realizes the MP3 files structure the development of the reader. The MP3 files can be divided into three parts:ID3V1 and ID3V2,Frame.Because most of MP3 use ID3V1 standars, so here I only research file structure for the standars D3V1 MP3 files,functionsusing C language to read out the MP3 files and displaly the document structure.Key words:MP3;File;C language引言随着计算机及网络技术的高速发展,Internet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。所以,利用计算机的相关语言编程软件就可以很容易的得到人们想要的信息例如使用C语言读出MP3文件并显示其文件结构,可以方便的得到我们所需要的相关信息。1 概述MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。MP3 的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1 标准中的声音部分,也叫MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG 音频编码的层次越高,编码器越复杂,压缩率也越高,MP1 和MP2 的压缩率分别为4:1 和6:1-8:1,而MP3 的压缩率则高达10:1-12:1,也就是说,一分钟CD 音质的音乐,未经压缩需要10MB的存储空间,而经MP3 压缩编码后只有1MB 左右。不过MP3 对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3 采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3 文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。2 MP3文件结构2.1 MP3文件MP3文件大体分为三部分:TAG_V2(ID3V2),Frame, TAG_V1(ID3V1)(1)ID3V2包含了作者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量(2)Frame一系列的帧,个数由文件大小和帧长决定每个FRAME的长度可能不固定,也可能固定,由位率bitrate决定每个FRAME又分为帧头和数据实体两部分帧头记录了mp3的位率,采样率,版本等信息,每个帧之间相互独立(3)ID3V1包含了作者,作曲,专辑等信息,长度为128BYTE2.2 ID3标准ID3标准主要包括:ID3V1标准和ID3V2标准。ID3V1标准:将MP3文件尾的最后128个字节用来存放ID3信息。ID3V2标准:将MP3文件首部的字节用来存放ID3信息。分别介绍一下ID3V1标准和ID3V2标准的区别2.2.1 ID3V1标准ID3 V1.0 标准并不周全,存放的信息少,无法存放歌词,无法录入专辑封面、图片等。V2.0是一个相当完备的标准,但给编写软件带来困难,虽然赞成此格式的人很多,在软件中真正实现的却极少。绝大多数MP3仍使用ID3 V1.0标准。此标准是将MP3文件尾的最后128个字节用来存放ID3信息。表1 ID3 V1.0文件尾说明字节长度(字节)说明1-33存放“TAG”字符,表示ID3 V1.0标准,紧接其后的是歌曲信息。4-3330歌名34-6330作者64-9330专辑名94-974年份98-12730附注1281MP3音乐类别,共147种以下为MP3的147种音乐类别:0 Blues 20 Alternative 40 AlternRock 60 Top 401 Classic Rock 21 Ska 41 Bass 61 Christian Rap2 Country 22 Death Metal 42 Soul 62 Pop/Funk3 Dance 23 Pranks 43 Punk 63 Jungle4 Disco 24 Soundtrack 44 Space 64 Native American5 Funk 25 Euro-Techno 45 Meditative 65 Cabaret6 Grunge 26 Ambient 46 Instrumental Pop 66 New Wave7 Hip-Hop 27 Trip-Hop 47InstrumentalRock 67 Psychadelic8 Jazz 28 Vocal 48 Ethnic 68 Rave9 Metal 29 Jazz+Funk 49 Gothic 69 Showtunes10 New Age 30 Fusion 50 Darkwave 70 Trailer11 Oldies 31 Trance 51 Techno-Industrial 71 Lo-Fi12 Other 32 Classical 52 Electronic 72 Tribal13 Pop 33 Instrumental 53 Pop-Folk 73 Acid Punk14 R&B 34 Acid 54 Eurodance 74 Acid Jazz15 Rap 35 House 55 Dream 75 Polka16 Reggae 36 Game 56 Southern Rock 76 Retro17 Rock 37 Sound Clip 57 Comedy 77 Musical18 Techno 38 Gospel 58 Cult 78 Rock & Roll19 Industrial 39 Noise 59 Gangsta 79 Hard Rock80 Folk 81 Folk/Rock 82 National Folk 83 Swing84 Fast-Fusion 85 Bebob 86 Latin 87 Revival88 Celtic 89 Bluegrass 90 Advantgarde 91 Gothic Rock92 Progressive Rock 93 Psychadelic Rock 94 Symphonic Rock 95 Slow Rock 96 Big Band 97 Chorus 98 Easy Listening 99 Acoustic 100 Humour 101 Speech 102 Chanson 103 Oper 104 Chamber Music 105 Sonata 106 Symphony 107 Booty Bass 108 Primus 109 Porn Groove 110 Satire 111 Slow Jam 112 Club 113 Tango 114 Samba 115 Folklore2.2.2 ID3V2ID3V2 到现在一共有4 个版本,但流行的播放软件一般只支持第3 版,既ID3v2.3。由于ID3记录在 MP3 文件的末尾,ID3V2 就只好记录在MP3 文件的首部了(如果有一天发布ID3V3,真不知道该记录在哪里)。也正是由于这个原因,对ID3V2 的操作比ID3V1 要慢。而且ID3V2 结构比ID3V1 的结构要复杂得多, 但比前者全面且可以伸缩和扩展。每个 ID3V2.3 的标签都一个标签头和若干个标签帧或一个扩展标签头组成。关于曲目的信息如标题、作者等都存放在不同中,扩展标签头和标签帧并不是必要的,但每个标签至少要有一个标签帧。标签头和标签帧一起顺序存放在MP3 文件的首部。3 MP3文件程序设计开发3.1 程序流程图分析首先,我先定义了一个结构体用来存放MP3文件的相关信息,由于MP3文件ID3V1标准结构的特殊性,将MP3文件尾的最后128个字节用来存放ID3信息,所以采用6个字符数组来表示其不同位字节存储的信息。 图3.1.1MP3文件读取流程图在main主程序中,我使用了发fseek函数用于二进制方式打开的文件,移动文件读取指针位置。通常文件打开后,读写位置按先后顺序,但有时你想变动读写位置,例如重新从某处起,再读一次,就可以使用这个函数;fread函数从一个流中读数据,函数原型:size_fread(void*buffer,size_tsize,size_tcount,FILE*stream);参数:1.用于接收数据的地址(指针) 2.单个元素的大小(size),单位是字节而不是位 3.元素个数 4.提供数据的文件指针 返回值:读取的元素个数而且在这里使用fprintf函数向文件输出,将输出的内容输出到硬盘上的文件或是相当于文件的设备上;不采用printf函数输出是由于其是标准输出流的输出函数,其是用来向屏幕这样的标准输出设备输出的。在fprintf函数中的参数stdout其实可以理解为它就是一个文件,而这个文件和标准输出设备(屏幕)建立了某种联系,当数据写到这个文件里面的时候,屏幕就会通过既定的方式把写进去的东西显示出来。 图3.1.2MP3文件读取程序流程图详细分析进程输出标题后,接着分别调用两次fread函数,分别读出30个字节存入fp中,再运用fprintf函数 分别将读出的歌手信息和专辑信息输出到硬盘上的文件中并显示出来; 接着调用fread函数,读出4个字节存入fp中,再运用fprintf函数将读出的年代信息输出到硬盘上的文件中; 接着调用fread函数,读出28个字节存入fp中,再运用fprintf函数将读出的备注信息输出到硬盘上的文件中; 接着调用三次fread函数,分别读出1个字节存入fp中,再运用fprintf函数分别读出音乐风格、保留位、音轨的信息输出到硬盘上的文件中。3.2 源程序及其运行结果分析见附录14 总结通过对本次学年论文的设计可以让我进一步熟悉C语言程序设计的思路,学习正确使用计算机语言设计程序,正确处理算法和语法的关系。并能够将实际问题转化为算法思想,建立算法模型,可谓是学以致用。而且,从侧面讲还加强了我解决和分析问题的能力。而且,通过这次的学年论文的设计,不仅让我认识到自己在程序设计上的缺点与不足,以及知识上的欠缺,而且加强了我对程序设计的思考、设计的能力。让我明白了学年论文的设计不仅要掌握与之相关的知识积淀而且还要积极的动手去实践去不断的编程,去调试,去运行。只有有了想法而且付诸行动才能学到更多的东西。参考文献1谭浩强 著C语言

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论