基于QT4_Linux多媒体播放器系统的设计与实现

合集下载

V4L+QT实现简单的视频显示

V4L+QT实现简单的视频显示
Linux+V4L+QT 实现简单视频显示
华清远见武汉华嵌中心 金牌讲师 李家凯 2009.04.29

内容概要
一、准备工作 二、程序设计 三、编译运行 四、小结

一、准备工作
1、软件环境 Linux FC4 核心支持video4linux spca5xx.tar.gz 通用驱动程序 spcaview.tar.gz 摄像头测试程序 2、硬件环境 USB数码摄像头一个

4、安装软件 #tar xzvf spca5xx.tar.gz # make; # make install; #tar xzvf spcaview.tar.gz # make; # make ins#modprobe spca5xx #modprobe videodev 检查设备文件结点 如果没有,自己建立 # mknod /dev/video0 c 81 0 # ln –s /dev/video0 /dev/video # spcaview –f jpg -s 320x240 看是否有图像,有则说明摄像头已经正确 驱动,可以自己编程了。

二、程序设计
1、Qt设计基础 Qt安装和配置: #vi .bash_profile QTDIR = MYDIR LD_LIBRARY_PATH = $QTDIR/lib:$LD_LIBRARY_PATH PATH= $QTDIR/bin:$PATH Export QTDIR LD_LIBRARY_PATH PATH

三、编译运行
新建工程,将源码加入工程中 #qmake #make #./mypro &

四、小结
1、linux 2、Qt 3、V4L,C,C++


3、确保内核支持V4L(FC4支持) 如果不支持,就要重新编译内核 make menuconfig时选上 Device Drivers ----> Multimedia devices -> <> Video for Linux 然后 make ; make zImage; make modules; make modules_install

毕业设计(论文)-Linux电影播放器设计与实现

毕业设计(论文)-Linux电影播放器设计与实现

Linux电影播放器设计与实现摘要当今社会,随着IT技术的发展和人们文化水平的提高,越来越多的人关注精神生活水平的提升,视频成为必不可少的一部分。

嵌入式设备也无疑已经成为最热门概念之一,丰富了我们的生活,它的功能不断提高使得发展更加迅速,市场上播放设备也越来越多。

所以很多人往往注重外观的同时也注重嵌入在其中的软件操作体验。

本课题将首先了解Linux下嵌入式应用程序开发流程。

以嵌入式视频播放器需求大的社会为背景,提出了在Linux下的视频播放器,具体是基于QT的架构设计。

论文给出一种嵌入式系统中音频视频同步的解决方案,有效提高嵌入式多媒体播放系统的音频视频同步的功能,在此基础上设计并实现了基于Linux。

Qt的嵌入式视频播放器,实现基于QT的嵌入式视频播放器系统。

在本设计中,提出基于mplayer播放器下,给用户一个基本的操作界面,实现对mplayer的相关功能的操作,如暂停,快进,速度的调整等功能。

关键词:Qt;视频播放器;嵌入式全套设计加扣3012250582Design and implementation of Linux movie playerAbstract:Society,with the development of IT technologies,as well as economic development and raise the level of spiritual civilization,moren and more people are increasingly aware of the spirit of enjoyment of life.Video is the preferred choice of the people.Embedded devices certainly become one of the most popular concept and enrich our lives.Its function constantly improve makes development more rapidly, playback devices on the market is also more and more.So a lot of people often pay attention to appearance at the same time also pay attention to embedded software operating experience in it.This topic will be the first to know under Linux embedded application development process.Embedded video player on demand of society as the background, puts forward the video player under Linux, concrete is based on the architecture design of QT.Paper gives a kind of embedded systems audio video synchronization solution, effectively improve the audio video synchronization of embedded multimedia broadcast system, on this basis, designed and implemented based on Linux.Qt embedded video player, the realization of embedded video player system based on Qt.In this design, based on mplayer player, give users a basic operating interface, implementation to the operation of the mplayer related functions, such as, fast forward, up and down the video switch, etc.Key Words: Qt; Video player; Embedded device.目录摘要 (I)ABSTRACT: (II)一、绪论 (1)(一) 研究背景 (1)(二) 国内外研究现状 (2)(三) 论文主要完成的工作 (3)二、开发平台与开发工具 (4)(一) 开发平台与工具 (4)1. Linux (4)2. Ubuntu (6)3. Qt Creator (6)4. Mplayer (9)(二) 相关技术 (11)1. 音视频编解码技术 (11)2. 主流媒体文件格式 (14)3. 流媒体技术 (17)(三) 嵌入式图形用户界面 (23)三、播放器的设计 (28)(一) 流程设计 (28)1. 播放器的系统结构 (28)(二) 界面设计 (29)(三) 模块设计 (30)1. 输入模块 (30)2. 输出模块 (30)3. 插件接口模块 (31)4. 解码库模块 (32)四、播放器功能的实现 (33)(一) 界面的详细开发过程: (33)1. 设置界面大小 (33)2. 声明槽函数 (34)3. 声明及添加按钮: (34)4. 声明及定义Qprocess (35)(二) 各功能的实现: (35)1. 文件打开功能 (35)2. 选择一个或者多个文件及目录,如下图所示: (36)3. 播放、暂停功能 (38)4. 选择上一个/下一个播放文件 (40)5. 选择播放时间点功能: (41)6. 设置速度 (43)五、软件测试和改进思想 (44)(一) 软件测试 (44)1. 测试方案 (44)2. 测试用例 (45)3. 测试结果 (47)(二) 改进思想 (47)结论 (47)致谢 (50)外文文献:.............................................. 错误!未定义书签。

[教学]基于Qt4的网络视频播放器简介

[教学]基于Qt4的网络视频播放器简介

[教学]基于Qt4的网络视频播放器简介基于Qt4的网络视频播放器简介一、 l软件功能简介及用法该播放器可以在Windows、Linux和s3c2440开发板上播放各种格式的多媒体文件,以及流媒体网络视频文件。

不管在哪个平台下运行,源代码均不需要修改,只需在相应系统环境下重新编译即可。

如果要在x86(Windows和Linux)上运行,需要把工程目录下的widget_x86.ui复制一份,名为widget.ui,如果要在开发板上运行,则应把工程目录下的widget_s3c2440.ui同样复制一份,名字也为widget.ui,因为该工程默认是使用widget.ui文件进行编译的。

如果拷贝到其它机器上编译,可能会出现编译出错的情况,此时需要修改Qt工程Projects的“Build directory”的路径,再Rebuild即可。

播放器在Windows下运行画面如下图:该播放器的用法与大多数视频播放器一样。

具备播放,暂停,停止,上一首,下一首,播放进度显示和调节,音量调节,播放速度设置等基本功能。

【速度设置】按钮用来设置播放的速度,正常速度值为0.0。

【时间跳转】按钮用来跳转置指定的时间进度。

另外,播放器右侧还有两个播放列表,分别是本地播放列表和网络播放列表,用来播放本地文件和流媒体http服务器上的文件。

【打开】按钮用来添加本地文件,【删除】按钮用来删除本地播放列表的一项。

网络播放列表项不可删除。

在播放的同时,会实时显示多媒体文件的总播放时间和当前播放的进度时间,播放百分比(%),以及当前电脑的时间。

同时播放器窗口标题会显示正在播放的文件名。

二、播放器的实现1. 单机播放的实现:我控制mplayer播放视频是通过mplayer所谓的slave模式实现的。

如在终端下输入:mplayer '/home/linux/01.mp3' -quiet –slave,体验下效果。

现在来探讨一下slave模式:所谓的slave模式,就是mplayer在运行过程中能够接收用户的输入命令行,具体支持哪些命令行,能够通过mplayer -input cmdlist这条命令来得到,在Mplayer源码的slave.txt中也有对这些命令有详细的讲解。

基于QT的多媒体播放器系统的设计与实现

基于QT的多媒体播放器系统的设计与实现

基于QT的多媒体播放器系统的设计与实现本文将介绍一个基于QT的多媒体播放器系统的设计与实现。

该系统具有用户友好的界面和丰富的功能,使用户可以方便地管理和播放各种多媒体文件。

设计目标:1. 提供支持多种多媒体文件格式的播放功能,包括音频和视频。

2. 具备基本的媒体管理功能,如文件添加、删除、重命名和分类。

3. 支持播放列表功能,用户可以自定义创建和编辑播放列表。

4. 提供音频和视频的基本控制功能,如播放、暂停、停止、快进、快退和音量调节。

5. 支持全屏播放和屏幕截图功能。

6. 具备历史记录功能,记录用户播放过的媒体文件。

系统设计:1. 界面设计:使用QT的UI设计工具创建界面,包括主界面和设置界面。

主界面包括媒体文件列表、播放控制按钮、进度条和音量调节。

设置界面包括媒体库设置、播放器设置和图像设置等。

2. 媒体管理功能:通过QT的文件操作功能实现媒体文件的添加、删除、重命名和分类。

用户可以使用文件对话框选择要添加的媒体文件,也可以直接拖放文件到播放器界面。

3. 播放功能:使用QT的多媒体框架实现音频和视频的播放功能。

通过媒体播放器组件实现媒体文件的播放、暂停、停止、快进、快退和音量调节等功能。

4. 播放列表功能:使用QT的列表组件实现播放列表功能。

用户可以创建新的播放列表、添加媒体文件到播放列表、编辑播放列表和删除播放列表。

5. 全屏播放和屏幕截图功能:通过QT的窗口系统实现全屏播放功能,并使用QT的图像处理功能实现屏幕截图功能,让用户可以保存当前播放的图像。

6. 历史记录功能:使用QT的数据库功能实现历史记录功能,记录用户播放过的媒体文件和播放进度。

系统实现:1. 使用QT的开发环境创建一个新的QT项目。

2. 使用QT的UI设计工具设计和创建播放器的主界面和设置界面。

3. 实现媒体管理功能,包括文件的添加、删除、重命名和分类功能,并更新媒体文件列表。

4. 实现播放功能,使用媒体播放器组件实现音频和视频的播放、暂停、停止、快进、快退和音量调节功能。

基于Linux的多媒体播放器的软件设计与实现

基于Linux的多媒体播放器的软件设计与实现

The Design and Realization of Portable Media Player Based on Linux
LI Nian-you
(Department of Mathematics and Computer Science, Sanming University, Sanming 365004, China)
口 。 Qt/Embedded 的应用程 序可以直接 写内核帧 缓冲 , 因此它在嵌入式 linux 系统上的应用非常广 泛 [2] 。
2 多媒体播放器的设计
多媒体播放器的整体结构如图 1 所示 :
图 1 播放器系统结构
其中 , 初始化部分起到一个平滑过渡的作用 , 初始 化代码在后台运行 , 前台显示的是美景图 , 使用户 在等待主界面出现的过程中感觉很惬意 ; 主界面 为用户调用各功能模块提供了图形化按钮 , 按钮 上的图形能够比较形象地表达各自的功能 , 当单 击按钮时就切换到相应功能处理模块界面 , 实现 具体的功能调用 ; 右下角的电子钟与系统时间同 步 , 每秒刷新 , 为用户提供准确时间 。
如系统设置等 。 当鼠标在某个按钮上悬停 2 秒钟 时 , 状态栏显示对应按钮的功能提示信息 。 界面的 右下角放置一个 QLCDNumber 控件用以显示当前 系统时间 。 关键代码如下 :
QTime time=QTime::currentTime(); // 获取系统
时间
QString text=time.toString("hh:mm"); //显示格式 ui.lcdNumber->display(text); // 显示时间
{ sendCommand("get_time_length"); // 将字符

基于QT多媒体播放器设计的开发与实现

基于QT多媒体播放器设计的开发与实现

本科毕业论文(设计)( 2021 届 )题目:多媒体播放器的设计学院:机电与信息工程学院专业:电子信息工程学生姓名: yu 学号: 075 指导教师: xxx 职称(学位):工程师合作导师: xxx 职称(学位):讲师完成时刻:2021 年月日成绩:黄山学院教务处制学位论文原创性声明兹呈交的学位论文,是本人在指导教师指导下独立完成的研究功效。

本人在论文写作中参考的其他个人或集体的研究功效,均在文中以明确方式标明。

本人依法享有和承担由此论文而产生的权利和责任。

声明人(签名):年月日目录摘要 (1)英文摘要 (2)1 引言 (3)2 Qt设计简介 (3)研究背景 (3)设计的目的和意义 (3)论文的要紧内容和设计目标 (4)3 多媒体播放器的设计 (4)软件架构设计 (4)播放器实现整体设计 (5)音视频播放系统流程 (5)音视频实现原理 (6)播放器设计中大体函数接口 (7)4 多媒体播放器的实现 (8)播放器界面设计 (8)界面UI设计 (8)界面外观设计 (9)播放器功能设计 (10)大体功能设计 (10)播放器播放文件选择 (11)音视频播放设计测试及其成效 (12)总结 (13)参考文献 (13)附录 (14)多媒体播放器的设计机电与信息学院电子信息工程 xxx(075)指导教师:xxx(工程师)摘要:目前常见的多媒体播放器多种多样,各具特色。

但都存在一些缺点,例如利用的内容空间较大、播放文件格式支持少和界面不友好等等。

QT因其功能的壮大和移植性强的有点慢慢普遍利用在GUI系统开发中。

因此在Linux系统嵌入式环境下基于QT的多媒体播放器设计具有有效价值。

本设计是在Linux下利用QT技术进行GUI设计,利用QT creator软件编程实现一个图形界面,完成一个简单的多媒体播放器的设计。

该设计基于QT集成开发环境,利用系统的函数接口来编程、具有体积小、支持的播放格式多、系统占用资源少、支持播放列表编程等功能。

基于Linux、QT的视频监控系统的设计与实现--毕业论文之欧阳育创编

基于Linux、QT的视频监控系统的设计与实现--毕业论文之欧阳育创编

本科学生毕业论文(设计)题目(中文):(英文): Design and implementation of videomonitoring system based on Linux and QT 姓名XXXX学号XXXXXXXXXXXX院(系)XXXXXXXX专业、年级XXXXXXXXXX指导教师XXXX2014年 5 月 8 日湖南科技学院本科毕业论文(设计)诚信声明本人郑重声明:所呈交的本科毕业论文(设计),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。

对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。

本人完全意识到本声明的法律结果由本人承担。

本科毕业论文(设计)作者签名:年月日Equation Chapter 1 Section 1毕业论文(设计)任务书课题名称:基于Linux、QT的视频监控系统的设计与实现学生姓名:XXXX系别:XXXXXXXX专业:XXXXXXXX指导教师:XXX2013年 11月 30日湖南科技学院本科毕业论文(设计)任务书注:本任务书一式三份,由指导教师填写,经教研室审批后一份下达给学生,一份交指导教师,一份留系里存档。

湖南科技学院本科毕业论文(设计)开题报告书湖南科技学院毕业论文(设计)中期检查表注:此表用于指导教师在学生毕业论文(设计)初稿完成后对学生执行任务书情况进行中期检查时用,由指导教师填写。

湖南科技学院毕业设计(论文)指导过程记录表记为优秀,80—89分记为良好,70—79分记为中等,60—69分记为及格,60分以下记记为优秀,80—89分记为良好,70—79分记为中等,60—69分记为及格,60分以下记为不及格。

湖南科技学院本科毕业论文(设计)答辩记录表目录绪论01 基于Linux、QT的视频监控系统概述31.1 视频监控系统的组成31.2 开发环境简介31.2.1 Linux环境简介31.2.2 QT技术简介31.2.3 V4L2编程技术简介42 系统总体设计概述62.1 分析系统需求62.2 系统的软件结构及整体框架62.2.1整体结构框图62.2.2模块的功能分析73 系统中各模块功能的具体实现83.1 服务器:数据采集部分83.1.1模块功能描述83.1.2技术概要83.1.3逻辑概要及流程图93.2 服务器:数据处理133.2.1模块功能描述133.2.2技术概要133.2.3逻辑概要及程序流程图143.3 客户端:数据获取153.3.1模块功能描述153.3.2技术概要153.3.3逻辑概要及流程图153.4 客户端:QT视频渲染163.4.1模块功能描述163.4.2技术概要163.4.3逻辑概要及流程图174 视频监控系统测试184.1 系统测试目标184.2 系统测试过程184.3 系统测试结果19结论20参考文献20致谢21插图索引图1 视频监控系统结构图6图2 服务器(server)端视频数据采集流程9图3 打开USB摄像头设备流程图10图4 查询视频设备信息流程图10图5 设置视频采集方式流程图11图6 申请缓冲区流程图12图7 缓冲区设置流程图12图8 视频数据处理流程图13图9 服务器端数据处理流程图14图10 服务器端数据帧封装结构图14图11 服务器与客户端TCP网络编程流程图16图12 客户端的数据分割流程图16图13 客户端视频渲染模块流程图17图14 启动系统效果图(左:客户端,右:服务端)18图15 客户端准备连接时效果图(左:客户端,右:服务端)19图16 系统网络连接后效果图(左:客户端,右:服务端)19基于Linux、QT的视频监控系统的设计与实现摘要随着社会的网络技术的不断更新,计算机多媒体应用技术及网络技术方面的发展之迅速是有目共睹的,在银行,商场监控,城市交通管理,酒店等安全保卫方面,视频监控系统的市场需求量大幅度上升,市场上出现了多种图像采集和传输的产品,视频监控系统的发展趋势必然是数字化,网络化,即采用嵌入式网络摄像机,利用嵌入式监控设备体积小巧,性能稳定,通讯便利等特点。

基于ARM的Linux多媒体播放器的设计与实现

基于ARM的Linux多媒体播放器的设计与实现

基于ARM的Linux多媒体播放器的设计与实现ARM架构是一种在移动设备和嵌入式系统中广泛使用的处理器架构,因其低功耗和高性能特性而备受青睐。

Linux是一个开放源代码的操作系统,提供了丰富的多媒体功能。

在基于ARM架构的设备中,设计和实现一个Linux多媒体播放器是一个有趣且有挑战性的任务。

多媒体播放器的设计与实现涉及下面几个关键方面:1. 硬件支持:在ARM架构上运行Linux系统时,需要选择适当的硬件支持来实现多媒体播放功能。

这包括选择支持硬件加速的图形处理器和音频解码器等。

2. Linux系统定制:基于ARM架构的设备通常会运行定制的Linux系统。

在设计多媒体播放器时,需要根据设备的具体需求对Linux系统进行调整和定制,以确保系统的稳定性和高效性。

3. 多媒体编解码器:ARM架构上的Linux系统可以使用各种不同的多媒体编解码器来实现音视频文件的解码和播放。

选择适当的编解码器是设计多媒体播放器的关键。

4. 用户界面:一个好的多媒体播放器应该具有友好的用户界面,以方便用户进行操作和控制。

在ARM架构上,可以使用各种图形界面库来开发用户界面,如GTK+、Qt等。

5. 多媒体格式支持:设计多媒体播放器时,需要考虑支持常见的多媒体文件格式,如MP3、MP4、AVI等。

这需要选择适当的解码器和编码器来实现多媒体文件的兼容性。

在实现多媒体播放器时,可以参考以下步骤:1. 确定硬件和操作系统需求:根据设备的硬件配置和操作系统需求,选择适当的ARM平台和Linux发行版。

2. 定制Linux系统:根据设备需求,定制Linux系统,包括内核参数的调整、驱动的编译和配置等。

3. 选择多媒体框架:选择合适的多媒体框架,如GStreamer、FFmpeg等,以实现多媒体文件的解码和播放功能。

4. 开发用户界面:使用适当的图形界面库开发用户界面,以方便用户操作和控制多媒体播放器。

5. 实现多媒体解码和播放功能:根据选择的多媒体框架,调用适当的音视频解码器和播放器接口,实现多媒体文件的解码和播放功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第26卷第1期贵州大学学报(自然科学版)V o.l 26N o .12009年 2月Journa l o f G uizhou U n i ve rsity (N atura l Sc i ences)F eb .2009文章编号 1000-5269(2009)01-0060-05基于QT4&L inux 多媒体播放器系统的设计与实现王 震,林小川,周运练,欧阳天立(北京理工大学珠海学院计算机科学技术学院,珠海519085)摘 要:采用AR M 架构的嵌入式CP U,完成了多媒体浏览器的设计与实现。

首先在I ntel Xsca le PXA 270上搭建一个完整的嵌入式L i n ux 操作系统平台,包括boo tl o ader 、内核以及文件系统的裁减与移植,并且开发了相关的驱动程序,如蓝牙驱动、触摸屏驱动、矩阵键盘驱动、SD /M M C 卡的驱动以及LCD 显示屏的驱动等,用于完成系统基本的输入输出功能;然后在系统上移植了QT4用于设计应用程序和友好的GU I 界面,并在此基础上开发/移植了图象浏览、视频播放、日历时间、文本浏览等功能软件;最后设计了友好的GU I 界面,将这些软件有机的组织在一起,形成了完整的多媒体浏览器系统。

关键词:ARM;QT;多媒体浏览器;数码相框中图分类号:TP311.52 文献标识码:B 随着科技的不断发展,科技早已渗入到人们日常的生活当中,科技不仅带给人们不同程度的便利,同时也带给商家广阔的开发前景。

智能化 已经成为各种商品的发展趋势,而 智能家居 概念的出现更是一种科技发展对生活改变的一种体现。

数码相框 作为 智能家居 的一个重要组成部分,不但拥有多元化的功能,更具有把百姓生活带入 智能化 的重要意义。

但是现有 数码相框 产品缺少网络通讯与智能控制功能,这样使得数码相框没有正真融入到智能家居之中。

各种信号在智能家居之间的传输,和数据之间的共享变得不方便,因此,在 数码相框 的基础上, 多媒体浏览器 这个新的开发概念由此产生。

1 功能设计多媒体浏览器系统的系统框图如图1所示:图1 系统框图系统的最底层是系统层,包括各种接口部件的驱动程序,这些驱动程序通过嵌入式L i n ux 操作系统进行调用,然后完成相应的功能,为上层的接口层和应用层提供服务。

中间的嵌入式GU I 为接口层,采用QT4作为用户GU I 的界面库。

QT4是基于服务器-客户端的一种用户界面设计中间件[1],提供了丰富的功能控件和精美的界面设计功能,可以便捷的设计出赏心悦目的需要功能模块。

系统的最上层就是直接面向用户的应用层。

该层采用QT4设计,向用户提供了精美的用户界面,用户可以通过触摸屏方便的调用相关的功能。

该层主要包含以下几种功能模块:图片浏览功能模块:对预设目录中的图片进行解码绘图,可以单张全屏/最小查看并可对图片进行放大、缩小、翻转灯操作,同时也可以对多张幻灯播放显示。

电子书功能模块:可以显示txt 格式的文本信息,用户可以运行该功能阅读电子书籍。

多媒体功能模块:调用m player 播放器对系统内存或者U SB 接口中的外存定位对应的媒体文件,并将其解码进行播放;视频文件可以全屏播放/最小播放,音频文件可以前台播放/背景播放。

日历时钟功能模块:可以显示时间/日期,并具有记事本功能。

网页浏览功能模块:可以从将网络上下载的超文本信息,通过该功能模块的解码后正确的显示*收稿日期:2009-02-09作者简介:王 震(1980-),男,河南泌阳人,助教,研究方向:嵌入式系统设计与应用在显示屏上,为用户提供便捷的上网服务。

2 系统硬件设计系统采用I ntel 的XSCALE PXA 270处理器作为主处理器。

2.1 XSCALE PXA 270主要特性介绍[2]XSC ALE PXA 270是I n tel 公司于04年4月推出的面向移动设备的具有较高媒体处理能力的芯片。

该芯片是基于XSca le 架构的PXA27X 系列处理器,最高主频达到624MH z ,同时加入了W ire less MMX 无线多媒体扩展指令集技术和SpeedStep 动态电源管理技术,不但增强了PXA270的多媒体处理能力,使得其能够支持2D 和3D 游戏、数据流M PEG4视频、无线加密/解密、语音识别和数字编辑等应用,而且极大地降低了系统功耗,延长了便携产品的电池使用功耗。

2.2 硬件电路的设计多媒体浏览器系统的主要硬件框图如图2所示:图2系统硬件结构图系统的硬件采用模块化设计。

根据功能的不同,主要有以下模块:处理器模块:即PXA270处理器,用于实现系统的输入输出控制和音视频、图像等的编解码;输入接口模块:包括触摸屏和键盘,主要处理用户的交互输入信息;音频输出模块:主要用于音频信息的输出,包括本地内置喇叭的音频输出和音频接口的输出;显示输出模块:主要用于输出视频、图像、日历时间、文本等功能信息的输出,实现人机的交互;系统控制模块:包括晶振、电源等,复位电路,总线扩展槽等。

存储模块:包括NOR /NAND F lash 、SDRAM 、U 盘等。

用于系统初始化代码的存放以及音视频数据的存储;蓝牙模块:用于网络传输。

3 系统软件设计在完成系统硬件的设计与调试之后,接下来就是嵌入式L i n ux 操作系统以及ARM +DSP 双向通信驱动的开发,以及嵌入式视频监控系统应用程序的开发。

其软件的开发框图如图3所示:图3 系统软件开发流程图3.1 嵌入式操作系统的设计在通用的嵌入式L i n ux 操作系统[3]上,对其进行适当的裁剪,使其符合系统的硬件平台,并且初始化PXA270、开发底层的驱动,实现了对系统的控制以及数据的存储和传输。

3.1.1 引导程序bootloader 的实现系统中bootloader [4]的作用主要有:系统底层硬件初始化、拷贝bootloader 自身到RAM 空间中、外围设备初始化、人机界面初始化等功能。

此处根据系统开发板的资源情况,对其进行修改,然后将其烧写到开发板中,即可进行系统的引导,并可以使用其基本的功能。

3.1.2 嵌入式Linux 内核及文件系统的实现1)嵌入式Linux 内核[5]的实现根据开发平台的硬件特性,修改内核中相应的代码。

同时由于本系统要实现音视频数据的编解码,视频有PXA270cpu 进行解码,而音频需要添加UCB1400的驱动和操作。

A.硬件平台存储器空间地址分配在内核i n clude /as m /arch -davinci 目录下的m e m ory .h 头文件中,进行各存储器的空间地址分配的宏定义。

包括NOR F lash 、NAND F l a sh 、SDRAM 的基地址、大小,以及FLASH 和SDARM 空间的分配情况。

61 第1期王 震等:基于QT 4&L i nux 多媒体播放器系统的设计与实现B .硬件平台各种设备寄存器地址的定义在内核i n clude /as m /arch-pxa 目录下的hard w are .h 头文件中,进行硬件平台各种外设寄存器地址的宏定义。

包括UART 、U SB 、TI M ER 、C lock 控制器、SDARM 控制器、Ex terne l BUS 、LCD 、触摸屏等寄存器地址。

还应该根据开发板的具体情况修改ARM 的基时钟的频率,从而为外围设备提供正确的时钟。

C .蓝牙驱动的实现为了实现嵌入式L i n ux 蓝牙网络功能,还应该向L i n ux 内核添加蓝牙的驱动,从而实现系统音频、视频、图象等数据文件的网络传输。

2)文件系统的实现为了创建系统的文件系统,需要利用busybox 这个源代码开放的软件。

同时还要再新建嵌入式L i n ux 所必须得一些目录(包括etc /、dev /、li b /、t m p /、var/、mnt/、ho m e /、proc /)。

由于该系统采用的是NAND Flash 作为系统内部的存储器,因此需要在NAND Flash 中建立yaffs 文件系统,并将其挂载到/m nt/yaffs 目录下,该目录下用于保存QTE 及应用程序,和大容量的数据,如音视频文件、图片文件等。

3.2 图象浏览功能模块的实现3.2.1 用户主界面用户界面用Q t Desi g ner 来设计,Q t Desi g ner 有很强大的GU I 控件编辑功能,是专门针对GU I 设计开发的,可以比较容易的设计出精美的界面出来。

用户主界面设计了一个Fra m e 框架,然后将其他功能模块的图标放在该Fra m e 内,完成了整体的规划设计。

3.2.2 图片浏览此部分的开发涉及到了Q t 4中2D 的绘图系统。

它由三个主要的类支撑起整个框架:QPai n ter ,QPa i n t D ev ice 和QPainter Eng i n e 。

QPai n ter 用来执行具体的绘图相关操作,QPa i n t D ev i c e 是用来绘图的绘图设备。

Qpaint E ng ine 类提供了不同类型设备的接口,它对程序员不透明,由QPa i n ter ,QPa i n t Dev ice 类与其进行交互。

Q t 提供了4个处理图像的类,Q I m age ,QP i x m ap,QB it m ap 和QPicture 。

它们有着各自的特点,Q I m age 优化了I/O 操作,可以直接存取操作纵像素数据;QPix m ap 主要用来在屏幕上显示图像;QB it m ap 从QPix m ap 继承,只能表示两种颜色;QPicture 是可以记录和重放QPa i n ter 命令的类。

在本项目中使用QPix m ap 绘图设备来绘制相片。

QPix m ap 主要完成屏幕后台缓冲区绘图。

通常QPainter 在设备的坐标系统上绘制图形,但QPainter 也支持坐标变换,它提供了多个图像格式转换函数,这些函数的使用也比较直观。

可以通过QPainter ::sca le()函数进行比列变换,可以使用QPainter ::rotate()函数进行旋转变换,平移变换则使用QPa i n ter ::translate ()函数,不同的变换矩阵可以使用堆栈保存,用QPa i n ter ::save()保存变换矩阵到堆栈。

图4 图像浏览器的播放效果图3.2.3 绘制图片的实现图片绘制功能通过绘制图片的paint E vent 事件来实现。

如图片的缩放,图片的旋转,图片的全屏播放模式等等都是需要经过pa i n tEvent 事件处理的。

在本项目中,图片绘制这部分主要程序通过I m age W i d ge:t :pai n t E vent(QPaint E vent *even t)函数实现。

相关文档
最新文档