毕业论文---基于ARM的视频采集系统的设计.doc_第1页
毕业论文---基于ARM的视频采集系统的设计.doc_第2页
毕业论文---基于ARM的视频采集系统的设计.doc_第3页
毕业论文---基于ARM的视频采集系统的设计.doc_第4页
毕业论文---基于ARM的视频采集系统的设计.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

密级: 科学技术学院nanchang university college ofscience and technology学 士 学 位 论 文thesis of bachelor(2011 2012 年)题 目 学 科 部: 信息 专 业: 自动化 班 级: 081班 学 号: 学生姓名: 指导教师: 起讫日期: 2011/12/52012/5/10 目 录摘要iabstractii第一章 绪论11.1 本课题的研究意义及背景11.2 嵌入式系统的发展概况11.3 视频监控的发展概况21.4 课题主要研究内容3第二章 视频监控系统设计42.1监控系统的结构和原理42.2 嵌入式视频监控系统的总体设计4第三章 监控系统硬件设计63.1 硬件组成63.2 s3c2410处理器63.3 sdram存储器83.4 lash存储器83.5 摄像头8第四章 嵌入式视频服务器系统中操作系统的建立104.1 交叉编译环境的建立104.2 bootloader 移植104.3 linux2.6.12 内核的移植114.4 移植cramfs 根文件系统13第五章 监控软件设计145.1 摄像头驱动程序模块155.2 图像采集模块设计155.3 jpeg 图像压缩模块设计175.4 嵌入式web 服务器设计185.5 网络传输模块18第六章 性能测试与分析20总结22参考文献(references)23致谢2424基于arm的视频采集系统的设计专业:08自动化 学号:7021308009 姓名:华志刚 指导教师:汪灿华摘要:本文介绍了一种基于arm9 高速嵌入式处理器和jpeg 高效压缩算法的嵌入式实时视频监控系统。介绍了系统的总体结构、硬件结构,并详细阐述了系统软件的设计与实现。硬件系统主要是采用arm9 为核心的嵌入式开发系统,包括微处理器芯片s3c2410,以太网控制芯片dm9000a,sdram 等芯片组成,采用usb 数字摄像头ov511 做为采集终端。软件部分采用嵌入式arm-linux 作为硬件的操作系统,通过移植改进的嵌入式boa服务器作为嵌入式服务器,并采用video4linux 接口编程实现视频的采集与处理,视频压缩采用jpeg 压缩算法,视频的传输采用rtp/rtcp 协议进行传输,并通过activex控件显示动态视频。本文成功利用了usb 摄像头作为视频监控系统的终端,usb 摄像头和嵌入式开发板的组合更加可以方便的实现中间数据的处理、保存和查询等功能。同时动态web技术应用到嵌入式网络监控系统中,利用web 浏览器实现了用户和嵌入式系统的交互。本系统经测试在实验室条件下比较稳定,图像清晰流畅。达到了预期的设计要求。关键词:视频服务器;远程监控 ;arm9arm based video capture system designabstract: this paper describes a high speed based on arm9embedded processor and embedded jpeg compression algorithm and efficient real-time video monitoring system. describes the overall system structure hardware and software described in detail the design and implementation. hardware system is mainly used as the core arm9 embedded development system ,including microprocessor chip s3c2410, ethernet control chip dm9000a, sdram and other chips, the use of usb digital camera ov511 as a collection terminal. software is part of the embedded arm-linux as a hardware, operating system, by trans planting improved embedded boa server as an embedded server and programming interface, using video4linux video acquisition and processing, video compression using jpeg compression algorithm, video transmission using rtp / rtcp protocol for transmission and display motion video through the active control. the authors successfully used a usb camera as a video monitoring system terminal, usb camera and a combination of embedded development board can easily achieve a more intermediate data processing, storage and query functions. the same time, dynamic web technology to the embedded network surveillance system, using web browsers and embedded systems to achieve the user interaction. the system has been tested under laboratory conditions relatively stable, clear and smooth images. achieve the desired design requirements.key words: video server;remote monitoring;arm9第一章 绪论1.1 本课题的研究意义及背景随着计算机技术及网络技术的迅猛发展,视频监控系统的发展趋势必然是全面数字化、网络化,即采用嵌入式网络摄像机,利用网络进行传输,利用嵌入式监控设备体积小巧、性能稳定、通讯便利等特点,将使视频监控无处不在。目前,我国基于嵌入式技术的网络视频监控系统刚刚起步,因此,研究并开发基入式系统的网络视频监控系统具有很大的工程实际意义。随着计算机技术的发展,嵌入式系统已逐渐成为后pc时代的主导,特别是32位嵌入式处理器的出现,使得一些基于pc的应用也得以在嵌入式系统上实现。图像采集系统正从模拟采集向数字采集发展,其中的嵌入式图像采集系统由于其优越的性能越来越受到人们的关注。对于像家庭、停车场视频监控这样的应用,不需要那么多的功能,只要简单的视频采集、传输和显示就够了,体积也要尽可能的小。基于以太网的嵌入式视频监控系统,具有视频图像采集、压缩、传输和存储等功能,非常适宜图像的监控。传统的监控系统是将其前端设备与中心端设备用电缆简单地进行连接或者利用传统无线通道传输。互联网为用户网络环境带来了前所未有的发展,不管是采用无线网络技术、光纤还是adsl等专线的网络连接,也不管是局域网、城域网还是广域网,网络视频监控系统的建立将不受到影响。传统的视频监控系统是应用现有的计算机技术,系统庞大,软硬件资源得不到充分利用。而arm嵌入技术的应用能使监控系统小型化,更能集中各种所需功能。因此,利用arm9 linux系统组成的远程嵌入式计算机监控网络具有现实意义和实用价值。1.2 嵌入式系统的发展概况嵌入式系统的出现至今已经有30多年的历史,近几年来,计算机、通信、消费电子的一体化趋势日益明显,嵌入式技术已成为一个研究热点。纵观嵌入式技术的发展过程,大致经历四个阶段。第一阶段是以单芯片为核心的可编程控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。这类系统大部分应用于一些专业性强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制。这一阶段系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简单、价格低,以前在国内工业领域应用较为普遍,但是已经远不能适应高效的、需要大容量存储的现代工业控制和新兴信息家电等领域的需求。第二阶段是以嵌入式cpu为基础、以简单操作系统为核心的嵌入式系统。主要特点是:cpu种类繁多,通用性比较弱;系统开销小,效率高;操作系统达到一定的兼容性和扩展性;应用软件较专业化,用户界面不够友好。第三阶段是以嵌入式操作系统为标志的嵌入式系统。主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口api,开发应用程序较简单;嵌入式应用软件丰富。第四阶段是以internet为标志的嵌入式系统。这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于internet之外,但随着internet的发展以及internet技术与信息家电、工业控制技术结合日益密切,嵌入式设备与internet的结合将代表嵌入式系统的未来。综上所述,嵌入式系统技术日益完善,32位微处理器在该系统中占主导地位,嵌入式操作系统已经从简单走向成熟而且种类丰富。据统计,仅用于信息电器的嵌入式操作系统就有40种左右,其中较为流行的主要有:windows ce、palm os、real-time linux、vxworks、pesos、power tv以及microware公司的0s-9。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。随着与网络、internet结合日益密切,嵌入式系统应用将日益广泛。1.3 视频监控的发展概况在国内外市场上,主要推出的是数字控制的模拟视频监控和数字视频监控两类产品。前者技术发展已经非常成熟、性能稳定,并在实际工程应用中得到广泛应用,特别是在大、中型视频监控工程中的应用尤为广泛;后者是新近崛起的以计算机技术及图像视频压缩为核心的新型视频监控系统,该系统解决了模拟系统部分弊端而迅速崛起,但仍需进一步完善和发展。目前,视频监控系统正处在数控模拟系统与数字系统混合应用并将逐渐向数字系统过渡的阶段。图像监控技术的发展经历了三个主要阶段:模拟图像监控技术,基于pc的数字图像监控技术和基于嵌入式系统的数字图像监控技术。目前国内还较多地使用本地模拟图像监控系统,即采用由摄像机、视频矩阵、监视器和录像机组成的监控系统,使用视频线、控制线等电缆连接。虽然本地模拟图像监控系统能够保证采集得到的图像清晰、不失帧,但在许多方面都存在着明显的局限。数字图像监控系统不仅可以克服模拟图像监控系统的局限性,而且能够很好地满足客观现状对图像监控系统的高要求。第一代数字图像监控系统是以pc机为核心,以大容量硬盘作为存储介质,使用pc机处理图像信号,利用计算机的数据处理能力与显示器的高清晰度,将视频信号通过视频采集卡采集到计算机中、并由显示器显示,大大提高了图像的质量,利用通信接口卡,可以通过通信网络实现信息在一个多个监控中心的共享,很好地体现了数字图像监控系统的优势。但同时也存在缺点:一是无法实现“无人值守”,系统需要专人看护;二是稳定性较差,整个系统的稳定性依赖于pc机的性能,而且功耗相对较大。新一代的数字图像监控系统以嵌入式处理器为核心,开发以太网接口直接实现图像数据经现有网络传输,授权用户在任何地方都可以查看监控终端的图像,工程费用大大降低,而且系统可以长时间稳定运行。1.4 课题主要研究内容本论文主要研究的是基于 arm9 的远程监控系统的设计与实现,主要工作包括如下内容:嵌入式系统的硬件设计,主要工作是扩展板的设计与制作,外围电路主要包括网络接口电路,usb 接口电路,串口接口电路,电源,复位,jtag 等电路部分的设计。建立arm linux 系统软件开发平台,主要包括boot loader 的移植、内核的裁剪、驱动的移植、根文件系统的裁剪、以及交叉编译环境的建立等。构建嵌入式web 服务器,本系统采用嵌入式boa 服务器作为嵌入式服务器。图像采集模块设计,采用video4linux 的编程方法,通过usb 采集到的视频信息经过jpeg 压缩后,通过内部总线送到嵌入式web 服务器。web 页面设计,远程pc 机通过网络连接嵌入式web 服务器,获取视频信息,并利用在网页中嵌入的图像播放器,通过浏览器直接观看web 服务器上的摄像机图像。第二章 视频监控系统设计2.1监控系统的结构和原理本系统由监控现场摄像头、嵌入式视频服务器、客户端三部分组成。监控现场的摄像头实现图像的采集,并把采集的图像信息通过内部总线传送给嵌入式视频服务器。嵌入式远程视频监控系统是一个基于s3c2410 处理器、jpeg 压缩、web 服务器和linux 操作系统的嵌入式系统,它的主要功能是对摄像头采集到的图像进行jpeg 压缩编码,并对编码后的图像通过internet 进行传输。客户端主要完成图像的接收和解压缩,用户可以通过web 浏览器访问嵌入式视频服务器来观看摄像头采集到的图像,从而实现远程视频监控。嵌入式远程视频监控系统总体结构如图 2-1。客户端嵌入式视频服务器监控现场摄像头监控现场摄像头图 2-1 嵌入式视频监控系统的总体结构2.2 嵌入式视频监控系统的总体设计嵌入式视频监控系统的总体设计主要包括:硬件电路设计,嵌入式操作系统经裁剪移植到硬件开发平台,嵌入式boa服务器的建立;视频采集模块的编写,利用jpeg压缩算法进行视频编码;最后编写客户端程序。系统的总体设计流程如图 2-2 所示。设计流程硬件裁剪设计操作系统的移植设备驱动修改与编译建立嵌入式boa服务器编写视频采集模块编写视频编码模块编写客户端程序图 2-2 嵌入式视频监控系统的总体设计流程图第三章 监控系统硬件设计3.1 硬件组成嵌入式系统是软硬件可以裁剪的,功能专一,功耗低的专用计算机系统,由于嵌入式系统价格低廉,功能强大,携带方便等优点,目前已经在生活,工业领域应用比较广泛。嵌入式系统的开发中分为硬件开发和软件开发两部分,其中硬件是软件的载体,没有硬件的支持软件没办法运行,只有搭建好了硬件系统,才能进行软件系统的开发。因此硬件是嵌入式系统的基石,软件是嵌入式系统的灵魂。嵌入式系统采用模块化设计方案,主要包括以下几个模块:主控制器模块、储存电路模块、外围接口电路模块、电源和复位电路,如图3-1所示sdramnandflash串口jtag口摄像头s3c2410(主控芯片)网口电源和复位电路图3-1系统硬件结构图3.2 s3c2410处理器samsung公司推出的1632位risc处理器s3c2410,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。为降低整个系统的成本,s3c2410提供了以下丰富的内部设备:分开的16kb的指令cache和16kb数据cache,mmu虚拟存储器管理,lcd控制器(支持stn&tft),支持nand flash系统引导,系统管理器(片选逻辑和sdram控制器),3通道uart,4通道dma,4通道pwm定时器,to端口,rtc,8通道10位adc和触摸屏接口,iic-bus接口,usb主机,usb设备,2通道的spi以及内部pll时钟倍频器。s3c2410采用了arm920t内核,018um工艺的cmos标准宏单元和存储器单元。它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。同样它还采用了一种叫做advanced microcontroller bus architecture(amba)新型总线结构。s3c2410的显著特性是它的cpu核心,是一个由advanced risc machines(arm)有限公司设计的1632位arm920t risc处理器。arm920t实现了mmu,amba bus和harvard高速缓冲体系结构。这一结构具有独立的16kb指令cache和16kb数据cache, 每个都是由8字长的行(1ine)构成。通过提供一系列完整的系统外围设备,s3c2410大大减少了整个系统的成本,消除了为系统配置额外器件的需要。如图 3-2图 3-2 s3c2410结构框图3.3 sdram存储器随机存取存储器 ram(random access memory)是易失性的存储器,在掉电以后数据即消失, 不能够长久保存。但与 rom 器件不同的是,它的随机读写速度非常快,写入数据之前也不需 要进行擦除,这些特性使它成为嵌入式系统中必不可少的存储设备之一。在嵌入式系统中,通 常都将数据区和堆栈区放在 ram 中,供快速的读写。 常用的 ram 分为 sram(静态 ram)的 dram(动态 ram)两种类型,以下将介绍这两种 ram 的区别, 并着重介绍“同步动态 ram (sdram) ”器件。 black fin 芯片本身提供了与 dram 和 sdram 进行直接接口的解决方案,因此不需要通过编程来实现它们所需的接口时序,而只 需对存储器控制器相关的寄存器进行适当配置。这个配置工作一般在初始化代码中完成。 如何将系统运行的数据区定位在 sdram 的地址范围内呢?这个工作通过修改连接器描述文件 (.ldf)完成,有关详细内容请参考black fin 处理器 ldf 文件指南 。在 black fin 开发系统 上,sdram 的地址范围为 0x0000,00000x07ff,ffff。 待配置完连接器描述文件后,不需要通过任何特殊的程序或语句来操作 sdram,处理器将自 动产生读写、刷新 sdram 的时序。3.4 lash存储器本系统中,flash存储器主要用于存储u-boot、linux内核及文件系统。常见的flash存储器有nor flash和nand flash,两种flash各有优缺点。本系统选用了采用samsung k9f1208芯片构成64m nand flash。k9f1208uom的数据总线与s3c2410的数据口data相连;wp为写保护,进行调试时通过上拉电阻接高电平,不使它写保护;调试完成,通过接地进行写保护。其余控制引脚在s3c2410中有相应的引脚和控制寄存器,所以连接比较简单。3.5 摄像头摄像头(camera)又称为电脑相机,电脑眼等,是一种视频输入设备,被广泛的运用于视频会议,远程医疗及实时监控等方面。普通的人也可以彼此通过摄像头在网络进行有影像、有声音的交谈和沟通。另外,人们还可以将其用于当前各种流行的数码影像,影音处理。摄像头分为数字摄像头和模拟摄像头两大类。数字摄像头可以将视频采集设备产生的模拟视频信号转换成数字信号,进而将其储存在计算机里。模拟摄像头捕捉到的视频信号必须经过。 特定的视频捕捉卡将模拟信号转换成数字模式,并加以压缩后才可以转换到计算机上运用。数字摄像头可以直接捕捉影像,然后通过串、并口或者usb接口传到计算机里。现在电脑市场上的摄像头基本以数字摄像头为主,而数字摄像头中又以使用新型数据传输接口的usb数字摄像头为主,目前市场上可见的大部分都是这种产品。除此之外还有一种与视频采集卡配合使用的产品,但目前还不是主流。由于个人电脑的迅速普及,模拟摄像头的整体成本较高等原因,usb接口的传输速度远远高于串口、并口的速度,因此现在市场热点主要是usb接口的数字摄像头。以下主要是指usb接口的数字摄像头。如图3-31、图像解析度/分辨率(resolution) 图3-3 摄像头2、自动白平衡调整(awb) 定义:要求在不同色温环境下,照白色的物体,屏幕中的图像应也是白色的。色温表示光谱成份,光的颜色。色温低表示长波光成分多。当色温改变时,光源中三基色(红、绿、蓝)的比例会发生变化,需要调节三基色的比例来达到彩色的平衡,这就是白平衡调节的实际。 3、图像压缩方式 jpeg:静态图像压缩方式。一种有损图像的压缩方式。压缩比越大,图像质量也就越差。当图像精度要求不高存储空间有限时,可以选择这种格式。目前大部分数码相机都使用jpeg格式。 4、彩色深度(色彩位数) 反映对色彩的识别能力和成像的色彩表现能力,实际就是a/d转换器的量化精度,是指将信号分成多少个等级。常用色彩位数(bit)表示。彩色深度越高,获得的影像色彩就越艳丽动人。现在市场上的摄像头均已达到24位,有的甚至是32位 5、图像噪音 指的是图像中的杂点干扰。表现为图像中有固定的彩色杂点。 6、视角 与人的眼睛成像是相同原理,简单说就是成像范围。 7、输出/输入接口 串行接口(rs232/422):传输速率慢,为115kbit/s 并行接口(pp):速率可以达到1mbit/s 红外接口(irda):速率也是115kbit/s,一般笔记本电脑有此接口 通用串行总线usb:即插即用的接口标准,支持热插拔。usb1.1速率可达12mbit/s,usb2.0可达480mbit/s ieee1394(火线)接口:其传输速率可达100m400mbit/s第四章 嵌入式视频服务器系统中操作系统的建立4.1 交叉编译环境的建立由于嵌入式系统的资源有限,无法运行一些大型的开发程序,通常嵌入式程序的开发都是在宿主机pc机上开发,在pc机上安装交叉编译器,写好程序之后,经过交叉编译器编译成嵌入式系统可以运行的软件,然后通过串口或者网络接口下载到嵌入式系统目标板。本设计在宿主 pc 机上装有redhat9.0 操作系统,需要在这个系统中建立新的交叉编译工具。首先从h 的ftp 上下载交叉编译工具的源代码包arm-linux-gcc-3.3.1.tar.bz2。把开发包放到虚拟光驱,执行如下命令:mount /dev/cdrom /mnt若系统不识别/dev/cdrom 的话,可以用如下命令,假设cdrom 为从盘,即为/dev/hdb,则:mount t iso9660 /dev/hdb /mnt(首先把软件包挂在到目标系统目录下面)cd /mnt (跳转到系统目录mnt 目录下面)此时在系统 mnt 目录下已经存在软件包并且已经有安装脚本文件install.sh执行如下命令进行安装./install.sh (运行安装脚本)安装脚本程序将自动建立/arm2410s 目录,并将所有开发软件包安装/arm2410s目录下,同时自动配置编译环境,建立合适的符号连接。在 pc 机linux 系统终端上输入armv , 按一下tab 键,会自动显示arm-linux-gcc-3.3.1 这时表明交叉编译环境已经建立,交叉编译器已经安装完毕。4.2 bootloader 移植bootloader 的作用是引导系统程序的运行,此程序的功能是建立系统的映射表,初始化系统的硬件资源,为运行内核资源做好准备。系统在上电后,arm处理器开始复位时从0x00000000 位置获取第1 条指令代码,因此需要把系统中的nand flash映射到这个地址。因此必须要把bootloader的程序代码存储在nand flash之中,等系统加电以后,cpu一开始执行的就是它。uboot 整个移植过程我们可以分为三个阶段:1) 移植可以从nor flash 启动的uboot,这个阶段是移植一个最简单的uboot,可以烧在nor flash 内运行.2) 移植支持nand flash 驱动的uboot,加入nand flash 驱动的支持,可以在uboot命令行下操作nand flash.但还未能从nand flash 启动,只能在nor flash 内运行.3) 移植可以从nor flash 启动的uboot,可以烧录在nand flash,并设置从nand flash启动运行uboot.分三个阶段进行移植,可以对整个uboot 的移植过程及原理更加清晰明了,同时降低了发现问题时解决问题的困难度和解决范围。4.3 linux2.6.12 内核的移植linux内核采用模块话的设计,对于内核的裁剪比较方便,内核的配置采用界面化设计,在界面中选择和自己定制的系统相关的硬件资源进行配置,配置的目的是为了和系统的硬件资源相匹配达到系统稳定、高效运行的目的。因此剪裁内核一般考虑一下三个方面因素。1)为了使运行速度加快,尽量的减小系统的内核,把一些不相关的没有用到的资源剔除。2)合理裁剪内核,保留和系统硬件相关的资源进行配置。3)为了节省内存,可以采用动态配置内核的方法,一些硬件资源不是很常用,但是如果没有也不行的一些资源采用动态内核配置。下面根据以上三条原则开始配置内核。(1) 下载内核软件包下载内核软件包 linux-2.6.12.tar.gz,下载完成后进行解压,解压后保存在src 目录下面。(2) 配置内核进入 linux_2.6.12 目录,linux 内核的配置编译都是由最外层的make file 文件对内核的整体进行管理,它制定了配置和编译的规则,针对arm 系统的内核配置,首先要修改的是最顶层的make file 文件。修改 make file 文件修改内核根目录下的 make file 文件,指出所用的交叉编译器找到 arch 和cross_compile,修改为:arch ?=armcross_compile ?=/opt/eldk/usr/bin/arm-linux-设置flash 分区修改 arch/arm/mach-s3c2410/devs.c 文件/*-for nand flash-*/#include #include #include /*nand controller*/*建立flash 分区表*/static struct mtd_partition partition_info=/*128k*/name:u-boot,size:0x00020000,offset:0x00000000,/*64k*/name:param,size:0x00010000,offset:0x00020000,/*2m+832k*/name:kernel,size:0x002d0000,offset:0x00030000,/*3m*/name:root,size:0x0030000,offset:0x00300000,/*48*/name:user,size:0x03000000,offset:0x00600000;/*加入nand flash 分区*/static struct s3c2410_nand_set nandset = nr_partitions:5, /*the number of partition*/partitions:partition_info,;配置内核修改 fs/kconfig,支持启动时挂载devfs$vim fs/ kconfig找到menu “pseudo filesystem”在其中添加:config devfs_fsbool “/dev file system support (obsolete)”default yconfig devfs_mountbool “automatically mount at boot”default ydepends on devfs_fsrootlocalhost linux_2.6.12# make menuconfig 执行内核配置命令然后再执行make uiamge,生成内核镜像文件。4.4 移植cramfs 根文件系统根文件系统是构成linux 嵌入式系统的重要组成部分,目前嵌入式系统可以应用的根文件系统有:romfs、cramfs、ramfs、jffs2、ext2 等。cramfs系统一般是只读的系统,在系统操作过程中如果对文件系统进行写操作,将会产生系统错误,本文提出的配置根文件系统的方法经多次试验验证可以进行写操作,系统比较稳定,可以节省系统的内存空间,linux的根文件系统必须包括的部分有支持系统运行的基本组件,一些为应用程序调用的系统函数和接口函数,包括一些用户的应用程序所必须的组件。在根文件系统中一般包括如下文件夹:1)linuxrc 系统启动所需要的命令文件。2)/bin 系统在启动阶段所需要的系统命令文件和用户命令文件。3)/sbin 包含一些命令工具集为高级用户所使用。4)/etc 存放的系统的命令文件和系统的数据文件。5)/lib 存放的是一些动态库为根文件上的命令文件所使用。6)/dev 用户所编写的驱动文件。7)/usr 用来存放用户编写的程序。8)/mnt 用来挂载设备的文件加。9)/proc 用来存放系统状态的文件加。10)/var 包含有数据变化的文件。最后将生成的根文件系统烧写到nand flash中,这样嵌入式系统平台搭建完成。第五章 监控软件设计本嵌入式远程视频监控系统软件由摄像头驱动模块,图像采集模块,jpeg 图像压缩模块,网络传输模块,嵌入式web 服务器组成。摄像头驱动模块的作用是使得摄像头在linux 操作系统下可以正常工作,为应用程序的编写提供底层系统的编程接口。图像采集程序使用驱动程序提供的编程接口获取摄像头采集来的图像信息并进行暂时存储。jpeg 压缩模块的功能是完成对采集到的原始图像信息进行编码处理,使得图像达到最小化,清晰化,为网络传输解决带宽不足的问题。web 服务器通过http 协议与远程监控计算机端的浏览器进行信息交流,它提供了应用程序模块的编程接口以及视频监控的界面。嵌入式视频监控系统的总体结构如图 5-1 所示。嵌入式web服务器jpeg图像压缩模块摄像机图像采集模块摄像机驱动程序模块网页浏览器配置程序应用程序接口cgi安全应用引擎图 5-1 嵌入式视频监控系统软件体系结构5.1 摄像头驱动程序模块图像的采集是利用 ov511 数字摄像头实现的,ov511 通过usb 串行总线s3c2410相连,因此驱动程序的开发主要是对linux 系统下usb 驱动程序的开发,ov511 的驱动独立开发难度比较大,主要是既要涉及图像采集芯片的驱动开发,还要涉及usb 的驱动的开发。在linux2.6 内核中有ov511 的驱动程序的开源代码,根据自己的系统的开发平台进行相应,移植,重新配置编译内核等操作可以实现ov511 的驱动程序集成到linux内核之中。5.2 图像采集模块设计video4linux的简称是v4l,是linux系统中的影像串流系统与嵌入式影像系统的基础,它是linux 内核里免支持影像设备的一组应用程序的接口,配合恰当的视频采集工具与视频采集工具的驱动程序, v4l可以实现视频图像的采集的功能23。v4l为二层式结构,上层为v4l的驱动程序,下层构成则是影音设备的驱动程序。这里我们用到的是v4l的上层驱动程序,即v4l本身所提供给程序开发人员的一组应用程序开发接口。video4linux 视频图像采集流程如图 5-2 所示。开始视频设备开启获取设备信息和图像信息初始化采集窗口捕捉视频数据是否终止视频采集关闭视频设备结束图像数据处理图 5-2 video4linux 视频图像采集流程图(1)视频设备打开struct vdin*vf;if(vf-fd=open(vf-videodevice,o_rdwr)=-1)exit_fatal(error open v4l);(2)获取图像信息和视频信息struct vdin*vf;/获取设备相关信息if(ioctl(vf-fd,vidiocgcap,&(vf-videocap)=-1)exit_fatal(couldnt get videodevice capability);/获取图像相关信息if(ioctl(vf-fd,vidiocgpict,&vf-videopict)hdrwidthl=320;vf-hdrheightl=240;vf-formatinl=format;/设置图像格式位为jpeg 格式,大小为320240。(4)捕捉视频帧数据read(videoin.fd,videoin.pframebuffer,size);(5)关闭视频设备close(vf-fd);5.3 jpeg 图像压缩模块设计jpeg 是目前网络最流行的压缩格式,可以把图像压缩到最小的图像格式,经常用photoshop 的人会知道,在存图像格式时有个分级压缩,共分为11 级压缩,就是最小压缩比的10 级压缩,压缩比例也可以到5:1,在压缩比例最大的0 级压缩可以达到40:1。通常我们选用的8 级压缩压缩比达到24:1,这个比例压缩出来的图片我们肉眼几乎分辨不出和原图的差距,虽然数据量大大的减少,但是图像我们看不出有任何的变化。接收到图像数据后进行jpeg压缩,其主要处理过程包括:色彩模型转换、离散余弦dct变换、重排dct结果、量化、编码等25。编码流程如 5-3 所示。原始图像基于dct变换dct变换量化嘀编码压缩图像参数表图 5-3 jpeg 编码流程5.4 嵌入式web 服务器设计嵌入式web服务器一般由五个主要模块组成:嵌入式http引擎,安全模块,应用程序接口,文件系统和配置模块。由于本嵌入式视频监控系统的操作系统选用arm linux嵌入式操作系统,它的文件系统比较成熟,提供了可以使文件访问的接口,可以直接使用文件系统提供的读写接口访问嵌入式web资源文件,解决了专门设计文件系统的麻烦。本系统中嵌入式服务器选用适合嵌入式系统的boa服务器,它是单任务的嵌入式http服务器,它占用内存小,另外支持动态cgi技术,源代码开放,功能强大。5.5 网络传输模块对于现在网络带宽有限的情况,要想实现视频监控系统中视频传输流畅的最好方法是采用流媒体传输技术。流媒体是一种可以使音频数据、视频数据和其它多媒体数据能在internet 上以实时的、不需要下载等待的方式便可以播放的技术。现在我们在网上看的视频的技术都是流媒体技术。因为目前的网络带宽还不足以承担相对比较庞大的网络多媒体,音视频等多媒体信息必须要经过预先的处理才能进行网络的传输。传输之前的预处理工作主要包括两个方面:一是需要降低数据的流量;二是采用目前比较先进的高效的压缩算法进行数据的压缩。流媒体是在目前来说是一种比较新的媒体格式,应用前景非常广泛。视频监控系统对传输的实时性要求比较高,因此流媒体技术在网络视频监控系统中的应用也会越来越广泛。本文用到的流媒体传输的网络协议是实时传输协议(rtp),实时传输控制协议(rtcp)。rtp是用于针对多媒体数据流的一种传输协议。rtp被一般用在一对一或一对多进行传输情况下工作,它目的是提供数据流的时间信息和实现数据流的同步28。rtp一般采用udp来传输数据,不过rtp也可以试用tcp或atm等其他协议来传输数据。当rtp工作在一对多进行传输的情况下时,这时需要依靠底层网络实现组播。rtp的优点是协议灵活,可以使数据流和控制流分离,并且协议的可扩展性和适用性非常好。因为rtp协议具有以上特点,所以使用rtp来传输jpeg数据流有以下几个优点:(1)可以使jpeg 格式的数据流与其它的rtp 负载数据保持同步;(2)传输过程中使用rtcp 传输控制协议对jpeg 格式的数据流的传输性能进行进行控制;(3)可以利用rtp 的合成器将jpeg 数据流和其它来自多传输终端的实时数据流合成一个块数据流来进行传输;(4)用rtp 的解释器可以用来转换数据流的数据类型。rtp协议本身包括两部分:rtp数据传输协议和rtcp传输控制协议。为了使数据可以可靠、高效地实时传送,rtp和rtcp必须配合使用才能完成,通常rtcp包的数量占所有传输量的百分之五。rtp传输协议的主要作用是负载多媒体数据,并通过包头时间参数的配置使其具有实时的特征。rtp本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠rtcp传输控制协议提供这些服务。rtcp传输控制协议主要用于周期的传送rtp包,监视rtp传输的服务质量。服务器端rtp 协议的实现如图 5-4压缩后的多媒体数据数据平面rpt控制平面rtcpudp/tcp传输网块图 5-4 服务器端rtp协议的实现第六章 性能测试与分析首先将网线插入嵌入式视频服务器的网口插槽,然后插上摄像头,开启电源启动系统,本系统已经设置了程序自启动,开机后自动运行视频服务器软件程序,运行结果如图 6-1 所示图 6-1 系统开机运行界面在本图中可以看到的是摄像头驱动已经工作,boa 服务器开启,准备外部程序的访问。采集的图像如下图 6-2图 6-2 采集的图像总结嵌入式系统的低功耗,高计算性能等特点满足了本文监控系统的设计要求,本文以嵌入式linux为开发平台,在arm9嵌入式处理器s3c2410的基础上,利用linux图

温馨提示

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

评论

0/150

提交评论