




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南昌航空大学东软班 综合报告1基于 S3C2440 平台的媒体播放的设计与实现学生姓名: 班级: 指导老师: 摘要近年来,随着多媒体解码技术和嵌入式技术的发展,多媒体娱乐终端成为了广泛使用的消费电子产品 1。随着 MP3、数字电视、3G 网络等在市场上取得的巨大成功,可以预测到多媒体技术在未来的几年内都会有很好的发展。本文主要分析总结了便携式多媒体的现状和嵌入式媒体播放器的设计与实现,围绕如何实现嵌入式媒体播放器,提出了一种以嵌入式 Linux 和 ARM 处理器等主流技术为基础的媒体播放器。在硬件方面,采用了三星公司的 ARM 嵌入式处理器 S3C2440 作为硬件核心。在软件方面,建立了交叉编译环境 arm-linux-gcc、编码环境 arm-qte 等。通过调用 arm-qte 的 Phonon 库来实现媒体播放器的编码,实现了音视频在 mini2440 上的移植、播放。关键字:多媒体解码技术、嵌入式技术、便携式多媒体、嵌入式 Linux、交叉编译环境、arm-qte、PhononABSTRACTIn recent years, with the development of multimedia decoding technology and embedded technology, multimedia entertainment terminal products are widely used. With the success of MP3, digital TV, 3G network obtained in the market, it can be predicted that the multimedia technology in the next few years will have very good development. This paper analyzes and summarizes the design and implementation of portable multimedia and the status of the embedded media player, focuses on how to realize an embedded media player, a media player based on embedded Linux and ARM processor and other mainstream technology. In terms of the special characters of hardware, I have adopted ARM embedded processor S3C2440 produced by Samsung. In terms of software, the project is based on the cross compiler environment arm-linux-gcc, coding environment arm-qte and so on. The media player code calling the arm-qte Phonon library, realized the audio and video player in the mini2440.南昌航空大学东软班 综合报告2Key words: Multimedia decoding technology, embedded technology, portable multimedia, embedded Linux, cross compile environment, arm-qte, Phonon 1. 研究的背景与意义近年来,随着多媒体解码技术和嵌入式技术的发展,多媒体娱乐终端成为了广泛使用的消费电子产品,随着 MP3、数字电视、3G 网络等在市场上取得的巨大成功,可以预测到多媒体技术在未来的几年内都会有很好的发展。目前看来,消费电子已经成为全球半导体发展的主要推动力,而具有音视频播放功能的多媒体娱乐终端设备无疑是消费电子中的中坚力量。在“十一五” 规划建议中,数字化音视频信息产业群也被列为重点培育对象。目前看来,消费电子已经成为全球半导体发展的主要推动力,而具有音视频播放功能的多媒体娱乐终端设备无疑是消费电子中的中坚力量。将嵌入式系统应用于多媒体移动终端,充分发挥嵌入式系统的低功耗、集成度高、可扩充能力强等特点,可以达到集移动、语音、图像等各种功能于一身的效果 2。未来对多媒体的研究,主要有以下几个研究方面:数据压缩、多媒体信息特性与建模、多媒体信息的组织与管理、多媒体信息表现与交互、多媒体通信与分布处理、多媒体的软硬件平台、虚拟现实技术、多媒体应用开发。展望未来,网络和计算机技术相交融的交互式多媒体将成为 21 世纪多媒体发展方向。所谓交互式多媒体是指不仅可以从网络上接受信息、选择信息,还可以发送信息,其信息是以多媒体的形式传输 3。 2. 嵌入式媒体播放器的设计2.1 硬件平台对于便携式多媒体播放器而言,其主要包括主芯片、存储器、显示屏、半导体元件和软件系统五个部分,从功效上来说,主芯片占据首要地位,因此综合各方面条件,本项目采用了三星公司的 ARM 系列处理器 S3C2440。(1)体系结构16/32 位 RISC 体系结构和 ARM920T 内核强大的指令集;包含 MMU,可以使用虚拟存储系统,能够支持 Linux 操作系统;指令高速存储缓冲器,数据高速缓冲器;支持 ARM 体系结构;内部高级微控制总线(AMBA)体系结构;(2)系统管理器南昌航空大学东软班 综合报告3总共 1G 寻址空间;支持大/小端 模式;支持 8/16/32 位数据总线宽度;从 bank0 到 bank6 都采用固定的 bank 起始寻址;支持各种型号的 ROM(NOR/NAND Flash,EPROM 或其他);(3)NAND Flash 启动引导支持从 NAND Flash 存储器的启动;采用 4KB 内部缓冲其进行启动引导;支持启动之后 NAND 存储器仍然作为外部存储器使用;(4)Cache 存储器采用写穿式或写回式 Cache 操作来更新主存储器;伪随机数或轮转循环替换算法;写缓冲可以保存 16 个字的数据和 4 个地址;(5)IIS 总线接口可基于 DMA 方式工作;发送和接收具备 128 字节的 FIFO;串行,每通道 8/16 位数据传输;(6)STN LCD 显示特征支持多种不同尺寸的液晶屏;图 1 mini2440 开发板外观南昌航空大学东软班 综合报告4Flash4存储器具有速度快、容量大、成本低等很多优点,因此在嵌入式系统中被广泛用作外存储器件。本次设计使用的 Flash 为 NAND Flash,对于 NAND Flash 来说,执行擦除操作是十分简单的,可以只需对以 832KB 的整个块擦除即可。NAND 可存储的程序代码量可达 1GB 以上,适合存储数据。2.2 软件平台Linux 支持多种体系结构,驱动程序丰富。它支持 x86、ARM 等体系结构,几乎支持所有的 CPU。Linux 由于其源代码的开放性得到了飞速的发展。它是高度模块化,易于裁剪的,因此可以根据需要进行裁剪制作。对 Linux 经过小型化裁剪后能够固化在容量只有几十万字节或几十亿字节的存储芯片或单片机中。由于嵌入式 Linux 操作系统对底层驱动有良好的移植性 5,所以在底层驱动的设计上可以节省很多时间,我们可以直接在系统上开发应用程序,因此本设计选择嵌入式 Linux 操作系统作为软件开发平台,采用交叉编译的方式开发。对 Linux 通过对嵌入式体系结构的分析,结合 mini2440 的开发板特性,本设计可将软件的体系结构分为四层:应用层、操作系统层、算法库层、键盘等外围设备的驱动层。软件结构如图 2:触摸屏管理 、 音视频播放应用层操作系统算法库层驱动层音频解码视频解码音频解码驱动U S B L C D F l a s h线程调度 文件系统图 2 软件结构本设计创建一个 Linux 系统包括下面几个主要环节 6:南昌航空大学东软班 综合报告5(1)对 NAND Flash 进行分区(2)建立根文件系统(3)安装 Linux 内核文件(4)安装文件系统3.软件开发环境的建立多数嵌入式目标系统不能提供足够的资源供编译过程使用,因此,形成了在 PC 机上进行开发编译,在另一台设备上运行的交叉开发机制。在 Linux 平台下,要为开发板编译内核、图形界面 Qtopia、bootloader 等均需要交叉编译工具链。本设计使用的交叉编译工具为 arm-linux-gcc-4.4.3。将源码包 arm-linux-gcc-4.4.3.tar.gz 解压到/usr/local/arm/4.4.3/目录下,修改/root/.bashrc 文件添加系统 PATH 后即可在终端下使用 arm-linux-gcc 命令。在 Linux 下开发嵌入式图形界面程序可以使用嵌入式版本的 Qt,它在原始的 Qt 基础上做了许多出色的调整以适合嵌入式环境。Qt 有 designer 进行图形界面的设计,可以实现控件直接拖拽、属性的修改和事件的添加处理,从而简化了图形界面的开发。对于一个工程文件来说,手写一个 Makefile 文件又长而且又容易出错,尤其在进行跨平台开发时必须针对不同平台分别撰写 Makefile 文件,会增加跨平台开发的复杂性与困难度。qmake 是Qt 附带的工具之一,利用终端命令 qmake project 即可自动生成项目的工程文件,利用命令 qmake o Makefile 又可根据生成的工程文件生成相应的 Makefile 文件。从整个软件开发的过程来说,Qt/Embedded 的存在减少了软件开发人员的工作量,更缩短了软件开发的周期。4.框架设计根据最初设计要求,本设计需要完成的基本功能为完成一个便携式媒体播放器。该播放器的基本功能为媒体的播放、暂停、快进、快退、上一个、下一个。其基本框架设计如图 3 所示:南昌航空大学东软班 综合报告6播放主界面播放 上一个 下一个暂停 快进快退停止 关闭打开视频文件视频文件关闭最大化图 3 系统框架其基本功能可表示为如下形式:播放播放器 暂停 停止 快进 快退 上一个 下一个暂停播放快进快退停止上一个播放下一个播放图 4 时序图南昌航空大学东软班 综合报告75.嵌入式图形化界面的设计本设计的图形化界面设计采用的是 Qt 提供的一套多媒体框架,提供多媒体播放的功能。目前在 Qt4.6 中实现多媒体播放主要依赖于 Phonon 框架,其实 Qt 中还有一个 Multimedia模块,它主要是用来实现底层的多媒体播放功能,在一般情况下上层的接口 Phonon 模块更适合实现这些功能。在 Linux 下,音视频播放是通过 GStreamer、xine 实现的,应用程序通过 backend 作为中转调用相应的接口。虽然 Phonon 是跨平台的音视频框架,但是在使用时还得用户自己来安装相应的后端插件才能够实现媒体播放的功能。Phonon 提供的只是一套 API 接口,这套接口可以被程序调用,同时也是给编写后端插件提供规范。Phonon 库搜索符合规范的插件并由插件传递指令、媒体状态和信息。而后端插件才是实际进行读入媒体、解码并播放的部分。Q t 程序P h o n o n 库库的实现方法音视频的解码 、 输出 、实现部分P h o n o n 库的调用图 5 Phonon 库的音视频实现6.视频的解码多媒体文件表示媒体的各种编码数据在计算机中都是以文件的形式存储的,是二进制数据的集合。完整的视频文件是由音频流和视频流 2 个部分组成的,音频和视频分别使用的是不同的编码。编码格式有很多种,在技术不断进步的情况下,针对不同的用途,产生了各种编码格式。媒体文件的播放过程包括以下几个方面:文件读取、分流、解码、输出。如图 6:媒体文件读取媒体文件数据分流音频解码器选择视频解码器选择音视频同步音频输出视频输出音频解码视频解码图 6 视频的解码输出过程南昌航空大学东软班 综合报告8MP3 是从 MPEG-1 标准衍生的、开放的编码方案,1993 年由德国夫朗和费研究院和法国汤姆生公司合作发展成功。MP3 音频压缩技术是一种失真压缩,其原理是把声音频率中人耳朵几乎听不到的音域在音频中除去 7。MAD 是一套高效的 MP3 整数解码器。它利用 32 位处理器字长的特性,使用定点运算实现了 MP3 解码。使用 LIBMAD 提供的一系列 API,就可以非常简单地实现 MP3 的数据解码工作。对音频设备的操作主要是初始化音频设备和向音频设备发送 PCM(Pulse Code Modulation)数据。解码过程如图 7 所示:开始取出音频数据流对数据流进行循环解码P C M 帧是否完整 ?下一帧是否为空 ?返回是是否否图 7 音频解码过程现在的视频标准主要有 MPEG-1、MPEG-2、MPEG-4、H.261、H.263 以及 H.264 等 8。视频的解码主要是使用 FFMPEG 提供的库。其中 libavformat 用来处理解析视频文件,并将包含在其中的数据流分离出来,而 libavcodec 则处理原始的音视频的解码。南昌航空大学东软班 综合报告9初始化函数库打开视频文件读取流信息调用相应解码器分配帧缓冲有数据包 ?解码当前帧结束是否图 8 视频解码过程7.功能的响应Qt 是一个跨平台的 C+ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 Qt 库的基础之上。本设计具体实现是采用 Qt 库,信号与槽是 Qt 的核心机制,作为核心机制在 Qt 编程中有着广泛的应用。信号-槽是 Qt 的核心机制,要精通 Qt 编程就必须对信号-槽有所了解。信号-槽是一种高级接口,应用于对象之间的通信,它是 Qt 的核心特性,也是 Qt 区别于其它工具包的重要地方。信号-槽是 Qt 自行定义的一种通信机制,它独立于标准的 C/C+ 语言,因此要正确的处理信号-槽必须借助一个称为 moc(Meta Object Compiler)的 Qt 工具,该工具是一个 C+预处理程序,它为高层次的事件处理自动生成所需要的附加代码 9。南昌航空大学东软班 综合报告10(1)信号当某个信号对其客户或所有者的内部状态发生改变,信号被一个对象发射。只有定义过这个信号的类及其派生类才能够发射这个信号。当一个信号被发射时,与其相关联的槽将被立刻执行,就像一个正常的函数调用一样。信号-槽机制完全独立于任何 GUI 事件循环。只有当所有的槽返回以后,发射函数(emit)才返回。(2)槽槽是普通的 C+成员函数,可以被正常调用,它们唯一的特殊性就是很多信号可以与其相关联。当与其关联的信号被发射时,这个槽就会被调用。对象 1信号 1信号 2对象 2槽 1槽 2对象 3信号 1对象 4槽 3槽 1C o n n e c t ( 对象 1 , 信号 1 , 对象 2 , 槽 1 )C o n n e c t ( 对象 1 , 信号 1 , 对象 2 , 槽 2 )C o n n e c t ( 对象 3 , 信号 1 , 对象 4 , 槽 3 )C o n n e c t ( 对象 1 , 信号 2 , 对象 4 , 槽 1 )图 9 信号-槽8.多媒体播放器的移植文件从虚拟机到 PC 机上的转移采用的是文件共享机制。在虚拟机下的 Fedora9 与Windows 在 IP 设在了同一网段内,一般 Windows 与虚拟机之间的网络是互通的。根据mini2440 用户手册在 Windows 下建立共享文件夹,通过 Connect to Server 可以进入到共享文件夹内,将文件拷到 Windows 下。Windows 下的文件到 mini2440 的传输是通过 Windows 下的超级终端实现的。计算机显示终端是计算机系统的输入输出设备。超级终端是一个通用的串行交互软件,很多嵌入式应用的系统有与之交互的相应程序,因此,可以通过超级终端与嵌入式系统交互。在Windows 下新建一个超级终端,设置每秒位数为 115200,数据位为 8 位,停止位为 1,无南昌航空大学东软班 综合报告11奇偶校验,无数据流控制。建立完超级终端后即可将在 Windows 共享文件夹内的可执行文件传到开发板的/bin 目录下。9.总结与展望多媒体技术应用是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。目前,嵌入式技术产品正不断地渗透到我们生活中的各个领域,同时,嵌入式多媒体技术也在人们的生活娱乐中扮演了重要的角色。本次设计是设计实现一个嵌入式的媒体播放器,选择了三星的 S3C2440 微处理器作为硬件平台,采用交叉编译方式进行本次软件的开发。设计主要完成了以下工作:(1)分析和总结了关于便携式媒体播放器的现状和发展,然后设计实现了一个基于S3C2440 的便携式媒体播放器的基本功能。(2)对本次开发的流程进行了分析,将软件结构划分为应用、操作系统、算法库和驱动四个层次,并深入了解、分析了各个层次的功能。(3)对选用的软硬件平台进行分析介绍。在硬件方面对系统管理器、启动引导、存储器等进行了分析。在软件方面,对开发环境、Linux 系统等进行分析。(4)根据实际需要设计了媒体播放器的框架,具体划分了框架内各个部分要实现的功能。(5)熟悉 Qt 程序的开发流程,设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC TR 24716:2007 EN Information technology - Programming languages,their environment and system software interfaces - Native COBOL Syntax for XML Support
- 【正版授权】 IEC TR 63162:2025 EN Electric components - Reliability - Failure rates at reference conditions
- 2025至2030中国电脑式微波炉行业发展研究与产业战略规划分析评估报告
- 2025至2030中国电影院行业市场发展分析及竞争格局与投资发展报告
- 2025至2030中国电子烟与抽气行业产业运行态势及投资规划深度研究报告
- 2025至2030中国电子临床试验行业产业运行态势及投资规划深度研究报告
- 2025至2030中国玉米剥壳机行业市场深度研究及发展前景投资可行性分析报告
- 专业安全知识培训课件
- 教育大数据分析中的伦理与隐私问题探讨
- 消防中级培训课件下载
- 低空经济专题系列报告四:无人机与低空物流:拥抱无人物流时代
- 新校区搬迁活动方案
- 中医体验活动方案
- 危重患者安全管理课件
- 2022包头轻工职业技术学院招聘笔试真题含答案详解
- 消防验收课件培训
- 厂区外租户管理制度
- 独龙族女装设计
- (高清版)DB13(J)∕T 295-2019 既有住宅建筑综合改造技术规程
- 天津2023年天津银行信息技术岗招聘黑钻模拟III试题3套含答案详解
- 01-TOC约束理论(瓶颈管理)八讲 作业
评论
0/150
提交评论