山西大学商务学院本科毕业论文(设计)
1. 引言
随着计算机设备的普及和Intenet的广泛应用,近年来,远程监控技术在环境监测、工业控制等领域应用越来越广泛。在监控领域,集中了多媒体技术、网络技术等多种计算机技术应用。视频监控系统以其直观、方便、信息内容丰富广泛应用于许多领域。嵌入式视频采集以其小巧灵活、低成本和高性能的特点而独具优势。
本题结合Intenet技术和图像视频处理技术,开发一套嵌入式Linux的视频监控系统,实现了独立的嵌入式智能终端设备与Intenet的直接接入,通过网络与后台PC进行通信;在嵌入式智能设备终端上完成图像采集、存储等工作,并通过Intenet传输图像到后台PC。这样,前台作为视频服务器,进行数视频数据采集;后台PC作为客户端,进行数据加工和现实图像。此思路也正是网络视频服务器为核心的第三代全数字化远程视频集中监控模式的发展方向。 开发平台介绍 2.1嵌入式系统介绍
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等几个部分组成,用于实现对其他设备的控制、监视或管理等功能。与传统的通用计算机、数字产品相比,嵌入式系统具有低功耗、体积小、集成度高、可靠性强、软件硬件可裁剪等特点,并且一般嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
嵌入式操作系统是嵌入式系统的核心,豳前常用的嵌入式搡作系统主要有:VxWorks、嵌入式Linux、Windows CE等,其中开放源代码的嵌入式Linux是应用最广泛的嵌入式操作系统之一。国外开展嵌入式Linux应用的研究较早,成果较多。例如,韩困三星公司己经率先推出了采用嵌入式Linux的掌上计算机概念样机,两美国网虎公司则推出了精简版嵌入式Linux系统Xlinux。在国内也有多家公司开展相关研究。中软总公司推出的嵌入式Linux3.0不仅满足了数控机床的需求,同时也可以应用于其他工业控制领域。另外还有华恒公司推出的嵌入式平台产品和红旗Linux等。可见,无论国内外,嵌入式Linux的研究都属于热点领域,而且对其本身的应用已经取得了可观的经济效益。 2.2 硬件平台介绍 2.2.1 ARM产品简介
ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对微处理器的通称,还可以认为是一种技术的名字。ARM处理器是一个32位元精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。据最新消息称,微软在2012年2月29日即将发布的消费者预览版Windows 8操作系统,将支持ARM系列处理器。Windows平板电脑时代即将到来。 ARM处理器特点:
体积小、低功耗、低成本、高性能;
支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 大量使用寄存器,指令执行速度更快; 大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高; 指令长度固定。
1
基于Qt的四路视频监控系统中客户端的设计与实现
ARM处理器系列
ARM7系列、ARM9系列、ARM9E系列、ARM10E系列; SecurCore系列:Intel的Xscale、Intel的StrongARM ARM11系列。
其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。 2.2.2 SC2400开发板介绍
SC2440 是一款真正低价实用的ARM9 开发板,它采用Samsung S3C2440 为微处理器,并采用专业稳定的CPU 内核电源芯片和复位芯片来保证系统运行时的稳定性。mini2440 的PCB 采用沉金工艺的四层板设计,专业等长布线,保证关键信号线的信号完整性,生产采用机器贴片,批量生产。其外观如图2.1所示:
图2.1 SC2440开发板外观 2.3 软件环境
2.3.1 Qt Creator开发环境介绍
Qt Creator是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。
在功能方面,Qt Creator 包括项目生成向导、高级的 C++ 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端,集成 qmake 构建工具等。 功能和优势:Qt Creator 主要是为了帮助新 Qt 用户更快速入门并运行项目,还可提高有经验的 Qt 开发人员的工作效率。
本次开发位于Linux环境下,开发工具使用Qt creator 4.7.1版本。
2
山西大学商务学院本科毕业论文(设计)
2.3.2 SDL开发包介绍
SDL(Simple DirectMedia Layer)是一个自由的跨平台的多媒体开发包,适用于 游戏、游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件。其中包含了对图像、声音、线程等的支持,且可在多种平台上运行。
因为SDL专门为游戏和多媒体应用而设计开发,所以它对图形的支持非常优秀,尤其是对高级图形的能力,比如Alpha混合、透明处理、YUV覆盖、Gamma校正等等。而且在SDL环境中能够非常方便的加载支持OpenGL的Mesa库,从而提供对二维和三维图形的支持。
本系统客户端接收到的视频解压后为YUV格式,考虑到SDL在YUV覆盖方面的优势,我们选择SDL实现视频信息接收解压后的显示。 3. 系统需求分析 3.1 系统需求分析
视频监控技术,随着计算机、编解码、网络传输技术的发展,目前正朝着数字化、智能化、IP化、网络化继续发展。同时视频监控同其他技术相结合,产生了许多新的应用,这有助于满足不同视频监控用户的需求。
(1)视频监控数字化
视频监控发展经历了模拟视频监控、半数字监控、数字监控三个阶段。对于视频监控,数字化存储带来的是一场革命性的变化。数字化是21世纪的时代特征,视频监控的数字化是监控技术的必然趋势。 (2)视频监控智能化
智能化是视频监控技术发展比较高级的层次。由于视频监控的数据量非常大,而用户真正需要的信息只是少部分,或者说真正需要监视的只是发生概率很少的某些事件,如何通过海量数据获取有价值的信息或者说如何从目视解释变为机器自动解释是视频监控技术发展的一个新方向。因为能把视频监控从静态的、事后取证变成动态的、实时预防和报警对用户来说显得更加重要。实际上现有的监控系统都配置有如自动位移侦测、昼夜自适应切换存储、预警设置(如可疑人物照片、指纹等)等一些低级形式的智能化功能。随着技术的发展,全智能的监控系统将要求事发前能够识别并作出正确的判断,为人们提供最为有效、及时的快速反应措施。 (3)视频监控IP化
视频网络、IPTV等都是网络快速发展的重要应用。随着Internet技术的发展,基于IP的视频监控更能为人们所接受,网络摄像机把压缩的视频信息通过TCP/IP协议,采用流媒体技术实现视频在网上的多路复用传输,拥有授权的用户可以随时访问互联网,实现对整个监控系统的指挥、调度、存储、授权控制等功能。鉴于IPv6在服务质量、网络性能、安全性改善提高一级IPv6对下一代Internet网络的影响,基于IP的视频监控将会成为主流。 (4)视频监控无线化
无线化包括两方面内容:一是监控中心的移动,通常情况下,被监控对象或是摄像机往往是固定的。而作为监控系统的使用者(监控中心)则可以是动态的,当公司领导出差在外,需了解公司生产情况时,可使用笔记本随时随地访问摄像机的IP获取信息。二是视频监控网络的无线化,随着无线宽带网络发展,基于3G的无线视频应用备受关注。当监控点分散且与监控中心距离较远,或被监控对象不固定(如出租车、运钞车等)时,利用传统有线网络的视频监控对象往往成本高且难以实现,而基于多种无线传输手段的移动视频监控实现了不可替代的优势。 3.2 可行性分析
使用嵌入式系统实现远程视频监控技术,符合网络化数字化的特点,对公安、安防等行业有着重要的现实意义。视频监控系统一般采用基于PC机平台+视频采集卡的形式,该方案系统体积大、成本高,在远距离、多点系统中实现困难。本课题所设计的系统成本低,操作简易,安装方便,即插即用,体积小巧。整个系统采用ARM9处理器S3C2440作为系统核心,外接红外触发开关,可以检测例如人,动物
3
基于Qt的四路视频监控系统中客户端的设计与实现
等并启动视频监控。 3.2.1 技术可行性
软件平台由三部分组成:系统引导加载程序、嵌入式Linux内核、文件系统及应用程序。嵌入式操作系统采用Linux,开发模式采用最为普遍的宿主开发模式,即在宿主机上编译内核及应用程序然后通过网口下载到目标平台上运行,通过打印终端打印调试信息。文件系统是嵌入式系统软件平台占用存储量最大的一部分,它存储了系统配置文件、系统程序和系统外设驱动程序。嵌入式Linux内核移植好后,主要工作就变成在操作系统下编写驱动程序。
系统主要由视频采集和传输部分组成。有嵌入式处理器、CMOS图像传感器、存储器、以太网接口。嵌入式处理器是韩国三星公司的基于ARM920T内核的16/32 位RISC嵌入式微处理器(型号:S3C2440),主要面向高性价比、低功耗的应用。为了处理图像数据,CPU的工作频率可达400MHz。S3C2440的资源包括LCD控制器,SDRAM控制器,摄像头接口,3路串行接口,IIC BUS接口,USB接口,触摸屏接口。在处理器丰富资源的基础上,还进行了相关的扩展,配置了256M Flash ROM和64MB SDRAM。在嵌入式处理器的控制下,CMOS图像传感器(片上)采集到的数据经帧同步信号触发产生中断后被拷贝到SDRAM,经过MPEG-4编码后由网口发送到远端监控中心显示。 3.2.2 经济可行性
经济可行性主要是对项目的经济效益进行评价。Linux的低成本和开放性,使其广泛应用于嵌入式系统领域。本系统客户端运行于LINUX上,而服务端运行于高性价比的SC2440的arm开发板上。 3.2.3 操作可行性
本项目开发工具为Qt Creator,作为用户终端监控平台,对本系统界面有跨平台的要求;作为网络监控手持终端,要求本系统界面能在嵌入式系统上运行。因此选用Qt编写本业务监控系统图形界面。Qt是一个多平台的C++图形用户界面应用程序框架。它完全面向对象,有良好的封装机制,模块化程度高,可重用性好,容易扩展,允许真正的组件编程,提供给应用程序开发者建立艺术级图形用户界面所需的功能,提供了信号储机制替代回调函数,使组建间信号传递更安全、简单。它拥有强大类库,而且具有一个包括Qt设计者、语言学家和详细联机开发文档的跨平台开发环境。 4. 总体设计
4.1 系统总体结构设计
系统软件主要有两部分:系统构建模块和软件监控模块。系统构建模块包括U。BOOT的移植、linux2.6内核的移植及相关驱动程序的移植和开发(包括网卡、LCD显示屏、USB系列设备等)、根文件系统的构建和Qt用户接踞的移植。软件监控模块包括USB视频采集模块、LCD显示模块、服务端程序模块、控制端模块和网络模块。控制端可以PC机为主,也可采用另外一台ARM架构的设备为主,通过浏览器来监控与操控服务端。本系统通过网络实现客户端(PC机)与服务端(ARM9开发板)进行通信;在服务端ARM开发板直接连接摄像头,完成图像采集、编码、存储等工作,并通过Intenet传输图像到客户端PC。PC机中运行客户端界面,将解码后的帧经SDL处理后再Qt开发的窗口中显示。具体过程如图4.1所示:
图4.1 功能模块图 层显示 SDL4
Socket通信 LINUX (PC) 数据传输 C 数据解码 S 数据编码 SC2440 (ARM) 视频采集数据 Uboot移植 UI界面显示 山西大学商务学院本科毕业论文(设计)
4.2 客户端UI界面设计
在四路视频监控系统中,客户端运行于LinuxPC机上。在此客户端中,实现的功能有:与服务器的连击、监控点的选择、视频画面展示等功能。视频画面显示采用双缓存显示机制,保证视频画面质量。具体功能如下图显示:
提高视频显
图4.2 UI界面功能图 详细设计
5.1 与服务器端的SOCKET连接
所谓socket通常也称作\套接字\,应用程序通常通过\套接字\向网络发出请求或者应答网络请求。socket用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。 5.1.1 SOCKET连接过程
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。
服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。 5.1.2 SOCKET创建模型
Server-Client模型的程序的开发原理如图5.1所示:
Socket() 5
客户端UI界面 与服务器端的SOCKET连接 UI界面四路视频画面显示 SDL层显示 连接选择 画面显示 IP设置 双缓存显示 示质量