《arm920t的实时视频监控.docx》由会员分享,可在线阅读,更多相关《arm920t的实时视频监控.docx(17页珍藏版)》请在三一办公上搜索。
1、第一章绪论1.1课题相关背景及现状随着电了信息技术,多媒体技术及网络技术的快速发展,视频监控系统正在向集成化、数字化和网络化方向发展。嵌入式视频监控系统充分利用大规模集成电路和先进而效编码标准,以其体积小、性能槎定、通讯便利等优点正渐渐变广泛应用。M.I课题探讨相关背景陵着全球跨入数字化、网络化、全球一体化的信息时代,人们之间的信息沟通越来越矮繁,方式越来越多样。从原始的纸笔书信,到传统的语音通信,再到新兴的数字通信,无不体现若人们对通信方式多样化的追求。而“百闻不如一见”,视觉是人类获得信息的最重要方式。在现代信息社会中多媒体信息已成为人类获得信息的最主要载体,同时也成为电子信息领域技术开发
2、和探讨的热点。通常多媒体系统传递的信息可以归结为数据、语音和图像三类。其中图像信息具有直观性强、信息量大等特点,因而图像的传送具有特殊重要的地位。如今电子信息技术、计算机技术和通信技术正飞速发展,这为视频监控走入人们的日常生活供应了技术保证。视频监控在工业、军事和民用领域正发挥着不行忽视的作用。相对单一的图像来说,连续的图像序列一一视频具有表达客观事物更加直观、去动、形象,信息内容更加丰富等优点。般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件(由于多数嵌入式设备的应用软件和操作系统都是紧密结合的,在这里我们对其不加区分,这也是嵌入式系统和一般的PC操作系统的
3、最大区分)1.3系统的总体设计方案及支配本设计要实现的是通过摄像头采集到视频数据通过网络传输将采集到的图像数据传到客户端显示,因此整个系统可分为硬件和软件两个部分,而硬件部分则由主限制板模块、摄像头采集模块,传输模块和视频监控PC等组成:软件模块则由IinUX2.6.32男未婚无、摄像头驱动、网卡驱动和视领图像的采集程序、图像的发送和接收程序。针对监控系统中的关键技术进行分析,本文将重要探讨一下内容全文结构支配如下:第一章:综合论述f视频监控系统的现状和发展状况。第二章:介绍了视频监控系统整体结构和硬件结构S3C241O的体系结构,第三章:简洁介绍f基于V41.的视频采臾程序以及图像压缩理论.
4、第四章:视频传输的实现介绍了视频监控的软件结构。第五章:介绍/视频监控的软件结构第六堂对本论文的够工作进行总结,提出展望。致谢.2.2ARM处理器简介ARM(AdvanceRlSCMachines),既可以认为是一个公司的名字,也可以认为是对位处理罂的统称,还可以认为是种技术的名字.ARM处理器是个32位元精简指令集RlSCReducedInstructionSetComputing)处理器架构,其广泛应用在很多嵌入式系统设计。ARM处理器具有以下特点:I、体积小、低功耗、低成本、高性能;2,支持ThUmb(16位)/ARM(32位)双指令集.蕉容性好。3、大量运用寄存器,指令执行速度更快:4
5、、大多数数据操作都在寄存器中完成:5、寻址方式敏旋简洁,执行效率高:6、指令长度固定2.3S3C2440开发板简介硬件设计方案如图示2.3.1 主要结构S3C244O的频率是400MHZ,其中ARM920t核由ARM920TDMk内存存储单元(MMU)(MemoryManagementUnit)和高速缓存三部分组成。其中,MMU可以管理虚拟内存,高速缓存由独立的16KB地址和I6KB的数据高速Cache组成,ARM92Ot有两个内部协处理器:CPI4和CPI5。CP14用于调试限制,CP15由于存储系统限制以及测试限制。该芯片架构如图下:3二.就;_二*3WaPMAUARTO.U,Jj-.KW
6、 *,(USRetIJW-AXMMC.F*GPIog1一I,一SfJA,二RTC *一va*v*一BttrwAOC ,11,一”SPIO.ITimerVU1川图2.11S3C6410内部结构图3.2应用程序通过V41.2进行视频采集的原理V41.2支持内存映射方式(mmap)和干脆读取方式(read)来采集数据,前名般用于连续视频数据的采集,后者常用于静态图片数据的采集,本文盘点探讨内存映射方式的视频采集。应用程序通过V41.2接口采集视频数据分为五个步骤:首先,打开视频设备文件,进行视频采集的参数初始化,通过V41.2接口设置视频图像的采集窗口、采集的点阵大小和格式;其次,申请若干视频采集的
7、帧缓冲区,并将这些帧缓冲区从内核空间映射到用户空间,便于应用程序读取/处理视频数据;第三,将申请到的帧缓冲区在视频采集输入队列排队,井启动视频采集;第四,驱动起先视频数据的采集,应用程序从视频采集输出队列取出帧缓冲区,处理完后,将帧缓冲区重新放入视频采集输入队列,循环往发采集连续的视频数据;第五,停止视频采集.3.2.1 视频采集的弁数初始化在1.inux下,摄像头硬件已经被映射为设备文件OdevMdeoO”.用OPen函数打开这个设备文件,获得其文件描述符fd_v4l2,然后对这个文件描述符进行参数初始化。(1)设置视频的采集窗口参数设置采集窗口就是在摄像头设备的取景范围之内设定一个视频采集
8、区域.主要是对结构体v4l2-crop赋值,v4l2_crop由一个v4l2_buffer_type枚举类型的typefilv4l2_rect类型的结构体C构成,来描述视频采集窗口的类型和大小。type设置为视频采桀类型V41.2_BUF_TYPE_VIDEO_CAPTUREeC是表示采集窗口的大小的结构体,它的成员1.eft和Top分别表示视频采集区域的起始横坐标和纵坐标,width和height分别表示采集图像的宽度和高度。赋值后,用i。Ctl函数通过这个结构体对fd_v4l2进行设置。structv4l2_cropenumv4l2_buf_typetype;structv4l2_capt
9、ureparmcapture;structv4l2_outputparmoutput;_u8raw-data200;user-defined*/parm;;3.2.2 申请并设置视频采集的帧震冲区前期初始化完成后,只是解决了一帧视频数据的格式和大小问题,而连续视频帧数据的采集须要用帧缓冲区队列的方式来解决,即要通过驶动程序在内存中申请几个帧缓冲区来存放视频数据。应用程序通过API接口供应的方法(VIDloC一REQBUFS)申请若干个视频数据的帧缓冲区,申请帧缓冲区数量一般不低于3个,每个帧缓冲区存放一帧视频数据,这些帧缓冲区在内核空间.应用程序通过APl接口供应的铿询方法(VIDI。JQUE
10、RYBUF)杳询到帧缓冲区在内核空间的长度和偏移量地址。应用程序再通过内存映射方法万map),将申请到的内核空间帧缓冲区的地址映射到用户空间地址,这样就可以干脆处理帧缓冲区的数据。(1)将帧缓冲区在视频输入队列排队,并启动视频采臾在驱动程序处理视频的过程中,定义了两个队列:视频采集输入队列(incomingqueues)和视频采集输出队列(OUlgoingqUeUes),前者是等待驱动存放视频数据的队列,后者是驶动程序已经放入了视频数据的队列。如图2所示。应用程序须要将上述帧缓冲区在视频采集输入队列排队(VIDoC_QBUF),然后可启动视频采集。(2)循环往夏,采集连续的视频数据启动视频采集
11、后,驱动程序起先采集一帧数据,把采集的数据放入视频采集输入队列的第一个帧缓冲区,一帧数据采集完成,也就是第一个帧缓冲区存满一帧数据后,驱动程序将该帧缓冲区移至视频采集输出队列,等待应用程序从输出队列取出。驱动程序接下来设置视频帧格式,包括帧的点阵格式,宽度和高度等,运用ioctl(fd_v4l,VIDIOC_S_FMT,&fmt)设置视频的帧率,运用ioctl(fd_v4l,VIDIOC_S_PARM,&parm)设置视频的旋转方式,运用ioctl(fd_v4l,VIDIOC_S_CTR1.,&ctrl)(4)向驱动申请视频流数据的帧缓冲区恳求/申请若干个帧缓冲区,一般为不少于3个,运用ioc
12、tl(fd_v4l,VIDIOC_REQBUFS,&req)杳询帧缓冲区在内核空间中的长度和偏移坡ioctl(fd_v4l,VIDIOC.QERYBF.&buf)(5)应用程序通过内存映射,将帧缓冲区的地址映射到用户空间,这样就可以干脆操作采集到的做了,而不必去划制.buffersi.start=mmap(NU1.1.,buffers(i.length,PROT_READPROT_WRITE,MAPSHARED,fd_v4l,bffersi.offset);(6)将申谙到的帧缓冲全部放入视频采集输出队列,以便存放采集的数据。ioctl(fd_v4l,VIDIOC_QBUF,&buf)(7)起先
13、视频流数据的采集。ioctl(fd_v4l.VIDIOC_STREAMON.&type)(8)驱动将采集到的一帧视频数据存入输入队列第一个帧缓冲区,存完后将该帧缓冲区移至视频采集输出队列。(9)应用程序从视频采集输出队列中取出已含仃聚集数据的帧缓冲区。ioctl(fd_v4l,VIDIOC_DQBUF,&buf),应用程序处理该帧缓冲区的原始视频数据。(10)处理完后,应用程序的将该帧缓冲区重新排入输入队列,这样便可以循环采集数据。ioctl(fd_v4l,VIDIOC_QBUF,&buf)重笈上述步骤8到10,直到停止采集数据。(11)停止视频的采集。ioctl(fd_v4l,VlDlOJS
14、TREAMoFE&type)(12)糅放申请的视频帧缓冲区unmap,关闭视频设备文件close(f1.V41)。以上的程序流程,包含了视频设备采集连续的视频数据的逻辑关系。而在实际运用中,往往还要加入对视频数据进行处理(如压缩编码)的工作,否则,视频流数据量相当大,须要很大的存储空间和传输带宽.上述过程中,每一个帧缓冲区都有一个对应的状态标记变量,其中每一个比特代表一个状态第四章视屏传输的实现要实现现场监控,出r完成视屏采集的过程,还须要吧视频图像数据通过网络传输出去,因此须要在完成视频采集的基础上建立网络服务器,实现客户端和服务器之间的数据通信。4.1TCP/IP协议简介Transmiss
15、ionControlProtocolZlnternetProIoCOl的简写,中译名为传输限制协议/因特网互联协议,乂名网络通信协议,是InternCt最基本的协议、IntCrnet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成.TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议果纳了4层的层级结构,每层都呼叫它的下一层所供应的网络来完成自己的需求。通俗而言:TCP负责发觉传输的问题,一有问题就发出信号,要求重新传输,宜到全部数据平安正确地传输到目的地而IP是给因特网的每一台电脑规定一个地址。TeP/IP结构对应OSlOSI结构TCP/IP应用层应
16、用U表示层会话层主机到主机必(TCP)(又称传输层)传输层网络层(IP)网络层网络接口层(又称链数据链路必路层)物理层SOCke,程序可以调用SOCkel函数.该函数返回一个类似于文件描述符的句柄,socke函数原型为:iniSockcKintlomain.inttypc.intProtOCMxlomain指明所运用的协议族,通常为PFJNET.(其与addrinfo里的AF_1NET在现在看来是相同的。只是历史上人们曾构想将AF(地址家族addressfamily)与PF(ProtoColfamily协议家族)分开,但事实上这种区分并未真正推广,所以现在AFJNET和PFJNET具有相同的意
17、义。其中AFJNET是基于IPv4而PFNET基于IPv6)表示互联网协议族(TCP/IP协议族;type参数指定socket的类型:SoeK_STREAM或SoCK_DGRAM.Socket接口还定义了原始SocketATH:SHOM匕biWusr/IOCaIZamWbin到此为止,整个嵌入式1.inUX的开发环境(宿主机部分)已经完成5.5 Bootlader的国己置5.5.1 bootloader的主要功能(1)初始化硬件初始化CPUCloCk,Memorytiming,interrupt*UARTIIIGPI0(2)启动1.inUX这是booikader最重要的功能.它将内核映像复制到
18、SDRAM中并跳转到内核入口地址处。5.6 对内核重新配置和编译将内核源码压缩包进行解压:cd/fanfantar-ZXVf对内核进行重新配置,要实现支持USB摄像头驱动:进入内核书目:makemcnucong进行配置DeviceDriVeS玲MultimediasupportVideocaptureadaptersV41.USBdevices.配置完成后对内核进行重新编译生成开发板上可用的内核:make在/archar11vbo用目卜会生成ZimagC文件makeinstall在/ardVarm.boot竹目下会生成ulinage文件Ulmage即是要移植到开发板上的内核镜像文件5.7 将客
19、户端代码编译生成ARM板下可执行的镜像文件a11n-linux-gccIuvcvicw.c-oIuvcvicwIuvcview就是要移植在开发板上的镜像文件5.8 程序移植(PC机和开发板实现视频监控)(1)打开超级终端和UbUntUlo.4,启动S3C2440开发板,在开发板和PC机之间连上网线、USB-UART数据线。(2)烧写bootloader到开发板3)烧写己经得到的a11n开发板上的内核镜像文件(4)设置IP地址,通过挂敦吩咐,将1.inUX根书目挂在开发板的mm书目下。(5)将IUvCVieW通过编译生成的可执行程序IUVCVieW和全部程序放在同一个文件书目下。(6)将可执行文
20、件Iuvcview通过tftp下载到开发板上tftp-g-rIuvcvicwPC机ip地址(5)在板子上运行客户端程序./IuvcvicwAnn开发板起先采集图像并传送绐服务器本设计以AR.M9处理器为核心建立嵌入式实时视频监系统,将已经编写好的镜像文件烧写到ARM开发板上,最终实现由开发板上USB摄像头采集的实时视频数据通过套接字socket传送回Qt界面显示。在试验的过程中,为了确保画面不丢失,刚起先采纳的传输协议时tcp,可是在画面传输中,即使采纳的分帧传输依旧会讲画面显示不全,之后再请教了同学和老师后确定采纳IDP协议,因为在实时视频传输过程中,可以忽视丢帧的时间,对于要进行的视频传输
21、影响不大,也不会出现闪醉的状况.本次设计也存在一些技术缺陷,就是只能进行实时视频监控,不能对视频进行保存在日后查看。但我信任在日后的工作生涯中,随着学问面的拓宽和实践的增多,肯定会将我的视频监控进行完善,达到预想的状态.在此次毕业设计中,首先要感谢毕设指导老师刘荣香。无论是初选题、定探讨方向时,她处身设地从我们学生的角度提出的一些建议,还是在毕设过程中为我们供应软件及硬件环境和很多参考资料,都让我们感觉到一位老和的无私与宏大。嵌入式领域,原来不是我熟识的一部分,但因为喜爱探究未知的学问,喜爱挑战自己的极限,所以我选择/嵌入式PMP“也正因如此在设计过程中遇到r好多问题,但每次刘老师都不厌其烦的
22、给我讲解,帮我杳找资料。而我能够在规定时间内顺当地完成设计,刘老师功不行没。在此,我真诚地道声:老师,你辛苦了!其次我要感谢通信学院的全部老师。在漫长的高校四年中,是他们岸默地奉献、无私的教化,让我自由的徜徉在学问的海洋里,心灵得到r净化,思想得到了升华。总之,在这次毕设过程中,我收获颇深。不仅学会了怎么去做探讨,而且懂得探讨的严谨性,学问的严密性。这些都离不开老师的指导和引领。信任在今后的日子里,它会是我们无价的财宝。最终,祝各位老师老师工作顺当,身体健康。参考文献文峻,网络用频的零距离沟通N,市场报,2002.9(13)2刘富强,数字视翔监控系统开发及应用M,北京:机械工业出版社,20033J李小同等,多媒体通信技术M.北京:北京航空航天高校出版社.2WM陈俊宏,嵌入式系统原理与务实M.中国铁道出版社,2004S)吴明呷,基于ARM的嵌入式系统开发与应用M,人民邮电出版社,2004李小同等,多媒体通信技术M,北京:北京航空航天高校出版社,20047J孙家广.软件工程一理论、方法与实践.高等教化出版社.2006.张素文,付薇,刘明兰,做入式视痂图像传输系统的设计和实现.微计算机信息(嵌入式与SOO.2007年第23卷32期