基于QT的无线视频监控系统监控中心设计.docx
《基于QT的无线视频监控系统监控中心设计.docx》由会员分享,可在线阅读,更多相关《基于QT的无线视频监控系统监控中心设计.docx(53页珍藏版)》请在冰豆网上搜索。
基于QT的无线视频监控系统监控中心设计
齐齐哈尔大学
毕业设计(论文)
题目基于QT的无线视频监控系统监控中心设计
学院通信与电子工程学院
专业班级电子信息工程102班
学生姓名朱建民
指导教师王艳春
成绩
2014年6月10日
摘要
随着计算机网络的飞速发展,图像处理和传输技术在嵌入式视频监控领域有着越来越广泛的应用。
为了提高传统的视频监控系统的移动性,本文提出一种基于嵌入式视频监控系统的设计,该系统具有较高的性能数据处理,采取ARM11为核心处理器和嵌入式Linux作为操作系统。
由CMOS摄像头获得视频,视频数据根据H.264格式进行压缩由WiFi模块发送到PC机,PC机客户端使用C++语言在Qt平台下编写。
客户端实现了视频实时播放和截取视频图像的功能,可以对视频画面进行一些分辨率、亮度等的设置,截取的图像为JPG格式。
监控中心使用Qt来开发客户端并且使用了多线程技术,可以显著提高CPU利用率,使软件运行更加流畅系统功耗更低。
本系统具有良好的操作界面,优异的便携性,移动性和低功耗等优势,可以广泛的应用于多种场合。
关键词:
嵌入式;Linux;无线;视频监控
Abstract
Withtherapiddevelopmentofcomputernetworks,imageprocessingandtransmissiontechnologyembeddedinvideosurveillancetechnologymorewidely.Inordertoimprovethemobilityofthetraditionalvideosurveillancesystem,thispaperpresentsadesignsystembasedonembeddedvideomonitoring,thesystemhasahighperformancedataprocessing,takingARM11coreprocessorandembeddedLinuxastheoperatingsystem.VideoobtainedbytheCMOScamera,videodataiscompressedbytheWiFimodulesendstothePC,PCclientmachineusingC++languageintheQtplatformbasedonH.264format.Clientsachieveareal-timevideoplaybackandvideoimagesinterceptfeature,youcanmakesomeofthevideoscreenresolution,brightnessandothersettings,theinterceptionofimagestoJPGformat.
MonitoringcenterusingQttodevelopclientandusesmulti-threadingtechnology,cansignificantlyimproveCPUutilization,makethesoftwarerunmoresmoothlylowersystempowerconsumption.Thesystemhasagooduserinterface,excellentportability,mobilityandlowpowerconsumptionadvantages,canbewidelyusedinavarietyofoccasions.
Keywords:
Embedded;Linux;Wireless;VideoMonitor
第1章绪论
1.1课题背景
视频具有表达客观事物直观、生动、形象,信息丰富等优点,它在各行各业的应用日益受到人们的关注。
传统的视频监控系统主要是模拟图像监控系统和基于有线传输的数字监控系统。
虽然模拟图像监控系统能够保证图像清晰、不失帧,但是传输距离小,布线工程量大,需要大量存储介质,极大地浪费了资金。
数字监控系统多采用各种视频采集卡实现,灵活性不够,成本高,且同样存在布线上的缺陷。
在视频监控领域,由于受传输带宽的限制,如何对视频数据进行高效压缩,从而便于信息稳定高质量传输,以及如何设计系统,保证系统的体积更小,成本、功耗更低等各种棘手问题摆在了当前技术人员的面前。
随着与电子产业的快速发展,多媒体视频技术和无线传输通信技术的迅速升级,视频监控系统向嵌入式方向,数字和无线的方向快速进军。
具有体积小,更好的实时和优点高稳定性,嵌入式技术的应用在监控正在成为一个新的热点领域。
相比与以前的视频编解码标准来看,新发布的H.264标准具有更高的压缩性能,更好的网络的兼容性和更好的容错,并且它能够适应高丢包率的无线信道和严重干扰。
因此,H.264视频编码标准应用前景相当广泛。
视频监控系统已经发展网络数字从模拟信号和时下的PC监控系统插入卡数字监控系统,这是一个趋势,网络视频监控向着嵌入式方向发展与嵌入式处理器和开源Linux系统中广泛应用。
获得了初步开发这一领域,目前,它不能使用因为监视系统的硬件是昂贵的。
但是,价格便宜的设备不能满足用户的动态可视化以及稳定性和可靠性请求。
鉴于用户的需求,本文设计了一种成本低,效率高的项目。
视频监控系统已在楼宇、水利、商业、交通、旅游及教育等领域得到了大量的应用。
视频监控系统被设计为一个完整的系统,用于监视运动内的地区在这个系统中监控条件基于网络的视频监控已设想在经典的视频流在无线网络的扩展,远端没有处理只有远程控制由人工操作,或作为一个特殊的情况下,分布式无线传感器网络中的一个类型的传感器对应的视频传感器的视频监控系统经历了三个阶段:
模拟监控系统,数字监控系统和现在最流行的,最广泛使用的网络监控系统[1]。
数字网络视频监控是生活中应用最广泛的视频监控系统。
网络监控系统有两种方式:
有线传输及无线传输。
有线传输网络结构和监测点固定,布线复杂,不能很好的在环境变化较大的情况使用,但是无线视频监控能够解决这些问题。
市场上已经存在使用无线网络的无线视频监控系统,可是由于使用成本及网络本身通信速度致使其使用范围较小[2]。
随着嵌入式技术的飞速发展,嵌入式微处理器有着实时性较高、体积较小、成本很低和可靠性非常高等特点,使用嵌入式技术开发视频监控系统将在很大程度上提高系统的稳定性,也降低了系统成本。
该项目以三星嵌入式微处理器S3C6410作为硬件平台,采用嵌入式Linux系统的程序开发的软件环境。
它使用USB数字摄像头采集图像和TCP/IP协议实现网络通信。
用户能够通过客户端查看视频,实验表明,该系统具有更高的稳定性和可靠性。
1.2课题意义
和其他监控系统相比,使用嵌入式技术的无线视频监控系统体积较小、易安装,无需人为值守。
这种系统有着实时特点,系统成本较低,稳定度很高,维护和操作便利。
嵌入式无线视频监控系统将嵌入式技术和无线通信技术相结合,和其他监控系统相比节省了网络布线的费用。
使用嵌入式技术的无线视频监控系统分利用大规模集成电路和先进高效编码标准,解决了传统视频监控系统成本高,体积大,布线麻烦等问题。
这将改变目前的视频监控,能够满足多种特殊场合的需要,在家庭安防、交通监控、远程教育、森林防火监控、远程医疗等众多领域产生巨大影响。
1.3国内外的研究状况
近年来,IP网络对于多媒体通信的需求急剧膨胀,国际标准组织ITU(国际电联)停止了对ITU-TH.320(基于窄带ISDN的多媒体通信终端设备)标准的进一步研究,而将多媒体通信标准定位在低成本、高性能的基于分组网的多媒体通信上,因此,在IP网络上传输视频和音频成为一种趋势。
在网络层采用TCP/IP协议可以屏蔽不同网络的下层细节,在上层达到统一(即所谓的IPOverEverything),可以将数据、语音、图像、视频等均归结到IP包中,通过分组(包)交换技术和路由技术,采用全球性寻址,实现对各种网络的无缝连接。
由此可见,将监控的功能与IP网络技术结合起来时数字监控领域发展的方向,把模拟的视频监控信号转换成为数字信号引入IP网,即可随时随地的实现必要的监控功能,在应用上不再受到距离等方面的限制。
1.3.1国外研究状况
现在国外市场上主要推出的是数字控制的模拟视频监控和数字视频监控两类产品。
模拟视频监控的技术发展已经相当成熟,产品性能也比较稳定,并且在实际生活中得到了比较广泛应用。
数字视频监控是以图像视频压缩技术,无线通信技术和电子计算机技术为核心的视频监控系统,数字视频监控系统解决了模拟视频监控的一些缺点,因而正在得到正为普及的应用。
随着互联网用户的飞速增长,网络传输速率的加快和网络带宽成本的下降,视频监控技术也在快速发展,嵌入式网络视频监控系统应运而生,其良好的应用了多媒体技术、嵌入式技术和网络通信技术,使视频监控成本更低,效果更好。
国外对视频监控的主要研究领域还集中在:
人物的智能识别与跟踪、视频监控中图像的处理、交通领域的监视等方面,并正逐渐将研究范围扩展到如何组建大规模的摄像机网络、如何进行大范围监控以及智能视频监控系统。
1.3.2国内研究现状
早期,由于国内无线通信技术发展得还不够成熟,同时,相比于有线通信网络,无线通信环境通常都具有多变性和复杂性,导致无线通信网络的可靠性以及各种网络性能都比较低,所以应用领域也相对较少。
但是,随着各种无线通信标准的制定与提出,以及各个地方对无线通信建设的重视和投入,这种现状正逐渐得到改善[3]。
国内高清监控产品和应用市场有了长足的发展,高清监控在上海世博会等一批高端项目的应用对中国高清监控市场的发展起到了实质性的推动。
高清监控产品的研发、制造和应用已经成为行业发展的方向和新的增长点。
国内视频监控厂商对高清监控的热情集中爆发,几乎所有的视频监控厂商都宣称推出了高清、智能化的视频监控产品。
“高清”几乎成为视频监控的代名词。
与此同时,监控设备厂商纷纷向全线监控产品和提供行业整体解决方案的方向发展[4]。
现在国内对基于嵌入式的视频监控系统的研究取得了很大的进步,但是国内对基于嵌入式的无线视频监控系统的研究还在起步阶段。
在嵌入式远程视频监控系统的研究领域,国外起步时间比较早,技术水平比国内高,并且己经拥有可以运用在实际项目和工程中的嵌入式视频监控产品。
国外视频监控产品性能一般都比较好,因为大多数产品都是使用MEPG和小波压缩的方法,可是价格也相当昂贵,不在国内用户可以消费的范围之内。
国内嵌入式视频监控产品都采用专门的视频压缩芯片,也就是使用硬件压缩方式,速度更快,缺点就是不方便对产品进行升级。
1.4课题设计目标和主要研究内容
利用ARM和QT开发一款基于WiFi网络的无线视频监控系统监控中心系统。
监控中心由远程视频采集端、WiFi网络和监控中心三部分构成。
远程视频采集端采用S3C6410ARM11微处理器为核心的硬件平台,并在其上建立Linux操作系统,完成视频的采集、H.264编码压缩和传送。
监控中心使用QT利用多线程技术开发了客户应用软件,实现监控视频的解码和显示。
WiFi网络实现视频采集端和监控中心间的视频传输。
基于Qt的无线视频监控系统监控中心主要是由数据采集模块、编码模块、解码模块、显示模块四大模块构成,采用了C/S构架。
本设计作为C/S构架中的客户端(Client),主要是实现把采集的视频数据经解码后在终端显示。
本设计以QT为软件开发平台,基于C/S构架,采用socket编程,集成了数据连接、数据传输和数据显示功能,软件界面良好,功能比较清晰。
系统基于嵌入式系统的图像采集和传输的设计,它是基于ARM-Linux,进行相机远程监控,使用V4L2接口技术组织和协同完成YUV数据采集工作,实现图像压缩和传输的功能。
三星的芯片S3C6410被采用作为硬件开发平台和Linux软件平台,此外,该设计系统具有成本低,使用简单,强大的扩张性的优点。
多媒体信息中的基本元素包括动画、声音以及视频信号等,对这些信息进行实时处理成为了多媒体领域信息处理的基本要求[5]。
图像的数据量通常很庞大,例如以3_52X288像素为例,若采用4:
2:
0格式存储单帧画面,数据量都有352X288X12=1.2Mbit,对于实时25帧/秒的码流达到了30Mbps,这对于网络的带宽来说是很难承受的,同时录制一个小时所需的存储空间也达到了1086,可见对视频数据进行压缩处理是十分有必要的。
视频压缩就是采用某种算法将视频数据由一种数据类型转换为另一种形态。
由于视频数据存在空间冗余、时间冗余以及视觉冗余等特性[6]。
本设计使用硬编码与H.264压缩的视频数据,在Linux的嵌入式环境中,服务器采用V4L2接口技术,最新的H.264视频编码技术,使用RTP/RTCP实时传输协议来完成视频采集,编码和传输过程。
在本文的开始,它描述了系统的设计的必要性,然后阐述硬件和软件的实现方法,并且使得一些方法中,展示出所选择的必要的指示。
最后一章,将会演示本设计的运行结果。
第2章总体设计
2.1系统总体结构
本系统是基于S3C6410的嵌入式系统的视频监控系统的设计。
系统采用无线网络代替传统的有线网络来传输视频数据。
系统服务端实现了视频采集,压缩,无线网络传输功能,客户端实现了视频画面的实时显示,视频画面截取,设置视频画面分辨率等功能。
2.1.1总体结构
本系统由USB摄像头、嵌入式OK6410开发板、无线WiFi模块、计算机上的客户端四个部分构成。
通过监控现场的摄像头来实现视频图像的采集,并把采集到的视频图像信息通过内部总线传送到嵌入式视频服务端。
嵌入式无线视频监控系统是一个基于S3C6410ARM处理器、H.264视频压缩、WiFi无线传输和Linux操作系统的嵌入式系统,它的主要功能是对摄像头采集到的图像进行H.264压缩编码,并将经过编码后的图像数据通过无线网络进行传输。
本人主要完成客户端的设计,客户端使用Qt进行编程,实现的是接收并解压缩视频数据和视频数据的展示的功能,用户能够通过客户端观看嵌入式视频服务端发送来的摄像头采集到的图像,并且可以对视频图像进行分辨率等的设置以及截取视频图像,从而实现远程无线视频监控。
客户端设计整体框图如图2-1所示:
图2-1客户端设计框图
2.1.2设计原理
本系统是以基于ARM的嵌入式Linux操作系统为环境、PC上Linux系统为平台,Qt为编程工具、视频采集压缩及传输协议为编程方法来实现的。
网络化视频监控是指在ARM板上运行一项服务可以通过网络让PC机上的客户端能够观看到ARM开发板连接的摄像头传输过来的视频数据。
设计原理流程如图2-2所示:
图2-2设计原理图
2.2关键技术
系统使用C++作为编程语言,Qt作为编程工具,H.264视频编码方式,视频使用TCP/IP方式进行视频数据的传输。
2.2.1编程平台Qt
QT是由奇趣科技于1991年开发的跨平台C++图形用户界面应用程序的开发框架。
广泛用于开发GUI程序,也可用于开发非GUI程序,例如控制台工具和服务器。
1.QT的优势
QtCreator提供了一个跨平台的,完整的集成开发环境(IDE),它为您提供了工具来设计和开发的Qt应用程序框架的应用程序。
Qt是专为开发应用程序和用户界面设计的,可以将其部署到多个桌面和移动操作系统,如Android和iOS应用程序,它可在Linux,MacOSX和Windows操作系统下进行开发。
QtCreator提供您的整个应用开发生命周期完成你的任务,从创建一个项目,将应用程序部署到目标平台的工具。
为了能够构建并运行应用程序,QtCreator的需要同样的信息作为编译器会需要这些信息在项目设置中指定。
建立在QtCreator的新项目是由一个向导,指导您一步一步地完成整个项目创建过程,创建必要的文件,并根据你的选择指定的设置帮助。
QtCreator中提供了两个集成的可视化编辑器,快速的QtQuick和QtDesigner。
要创建直观的,现代的外观,流畅的用户界面,您可以使用QtQuick,如果你需要一个传统的用户界面,结构清晰,并强制执行平台的外观和感觉,你可以使用集成的QtDesigner。
作为一个IDE,QtCreator的不同之处在于它知道如何构建和运行应用程序的文本编辑器,它理解C++和QML语言的代码,而不仅仅是纯文本,这使得它为您提供有用的功能,如语义突出显示,检查代码的语法,代码完成和重构行动。
Qt是一个跨平台应用程序和用户界面开发框架,它由多个软件库和开发工具组成。
Qt的开发作为一个开源项目,它是遵循可开源项目和商业许可证。
Qt是面向对象的框架,使用一些宏以及特殊的代码生成的扩展,可扩展行更强,同时允许组件编程。
2.QT的优势
QtCreator为不同的目标平台提供了用于构建,运行和部署Qt应用程序,或者使用不同的编译器,调试器,或Qt的版本的支持。
提供套件定义工具,设备类型和其他设置建设和运行项目时使用。
通过Qt我们可以很容易开发多平台应用程序:
(1)可以在多个平台上创建程序,生成配置包含您需要将源代码编译成二进制文件的一切。
构建配置使用在其相应的包中定义的工具和设置。
(2)可以在多个平台上运行,运行配置启动应用程序在它被复制的部署配置的位置。
默认情况下,当您选择Run函数,QtCreator中生成项目,它部署在包中定义的设备,并运行它。
然而,如果你还没有做出任何改变,因为你最后构建和部署了该项目,QtCreator只需要再次运行它。
(3)可以部署到移动设备,部署配置处理必要的文件打包并复制到你想在运行可执行文件的位置。
这些文件可以被复制到一个位置,在开发PC或移动设备的文件系统。
(4)可以连接移动设备,当您安装工具链的设备类型作为SDK的一部分,用于移动设备的类型构建和运行设置可能会自动设置,不过,您可能需要在设备上安装并配置一些额外的软件,能够连接到他们从开发PC。
2.2.2视频编码
一般采集的原始视频信号体积都非常大,里面有很多相同的、眼看不到的内容。
为了减小体积便于存储、传输、交流,就有了压缩无用信息和不重要的信息的“压缩处理”,也就是编码。
1.H.264简介
H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式。
H.264视频编码标准被视为新一代视频编码标准,因为其具有较强的网络适应能力和优越的压缩比,使得H.264/AVC标准得到了日益广泛的应用。
2007年六月,JVT确定了基于H.264架构扩展而来的可伸缩编码SVC标准,更好地适应了不同的网络环境和用户终端的网络业务应用。
H.264的发布是视频压缩编码学科发展的里程碑,其优异的压缩性能也将在视频实时通信、网络视频流媒体传递、多媒体短信和数字广播电视等各个方面发挥重要的作用。
H.264编码规范包含了一系列的新的特征,使得它不仅能够在各种网络环境中应用,比起以往的编解码技术更还能够有效的进行编码。
MPEG-4中的重点是灵活性不同,而H.264着重在传输的高可靠性和压缩的高效率,因此其等到了广泛的应用。
2.H.264编码器
H.264规定了一个经过编码的视频比特流句法,而不是明确的规定如何实现一个编码器,这使得不同厂商的解码器和编码器都能够在此框架下互通,并且在实现上也具有较大灵活性,有利于相互竞争。
H.264编码器采用的是变换和预测的混合编码法。
其定义的码流结构为分级结构,共分为四层。
从上到下依次是:
图像层、块组层、宏块层和块层。
与以往的视频压缩格式相比,H.264采用的不再是严格的分级结构。
H.264的功能层有两层组成:
视频编码层和网络提取层。
该编解码器规范本身的区别概念上的视频编码层(VCL)和间网络抽象层(NAL)。
VCL的包含编解码器的信号处理功能;机制如变换,量化,和运动补偿预测,以及一个环路滤波器。
它类使用今天大多数的视频编解码器,一个宏块为基础的使用帧间预测的运动编码器补偿的残差信号和传输编码。
VCL的编码器输出片:
包含一个位串的宏块的整数倍的宏块数据,以及切片头中的信息(包含在该切片的第一宏块的空间地址,该初始量化参数,以及类似的信息)。
在宏块排列在扫描顺序时,除非不同的宏块分配被指定,否则通过使用所谓弹性宏块排序语法在图像传输时,只能同时有一个宏块在使用。
网络抽象层(NAL)编码器对VCL编码器的输出片封装成网络抽象层单元(NAL单元),这是适于传输分组网络或者使用在面向分组的多路环境。
在内部,NAL使用NAL单元由一个1字节的报头和有效载荷组成的字节串。
头指示NAL单元的类型,该在比特错误或语法违反(潜在的)的存在NAL单元的有效负载,以及有关的信息NAL单元的解码相对重要性过程。
其中H.264的主要性能是完成发送时间的去耦,解码时间,和切片取样演示文稿的时间和图片。
在H.264中规定的解码过程是不知道时间,H.264的语法不携带信息,诸如跳过的帧的数量(这是在早期的时域参考的常见形式视频压缩标准)。
另外,还有一些NAL单元这影响到许多的图片,因此本质上永恒的。
出于这个原因,本程序处理RTP时间戳需要一些特殊的注意事项NAL单元为其采样或演示时间是没有定义,或者传输时间未知。
在客户端,S3C6410处理器嵌入了多格式编解码器,支持多种视频格式,如MPEG4,H.264,H.263等。
应用程序能够压缩视频数据饰调用编解码器,并且然后将所压缩的数据缓冲。
3.H.264优势
H.264视频格式有涵盖所有形式的非常广阔的应用范围从低比特率因特网数字压缩的视频流应用到HDTV广播和数字影院应用与近无损编码。
相比于目前的技术状态,整体H.264的表现是这样的,节省50%的比特率,提高数字卫星电视的质量。
据报道,在达到1.5Mbit/s速率下,相比MPEG2视频的当前操作点在网路通讯协定达到约3.5兆比特/秒。
因为多画面图像间的转换,新改造的设计特点和熵编码,H.264具有增强的压缩性能。
H.264的可存档所需的关于MPEG-2数据为36%,H.263的51%,和MPEG-4的61%。
H264是最高效的视频压缩标准。
4.H.264应用架构
摄像头采集视频后传送给视频采集模块,视频采集模块通过调用驱动程序读取采集视频,调用H.264编码库进行视频的压缩编码,将采集和压缩后的视频数据读到缓存。
服务器端软件读出缓冲区中的数据,启动数据发送模块,发送数据时采用RTP协议进行打包传送,模块是以一帧为最小单位来读取缓冲区中的视频流的,因为数据需要在网络中传输,按照一帧打包时数据长度大小更为合适,所以需要在打包前将帧进行分割成为几段以适应网络传输。
视频数据经过打包后,通过TCP传输到客户端进行播放。
客户端的视频数据,以H.264格式转换,然后将视频打包TCP/IP层通过互联网进行传输。
在服务器端,接收到的IP数据包是由解压IP,然后TCP层由过滤器和调度,TCP协议会进行解包分析器和测试丢失检测。
当检测到分组丢失,则消息将被发送到用于进一步的错误隐藏模块处理。
另一方面,在TCP分组是解压后,包含的信息反馈信息将被处理。
据观察是很重要的该反馈信息交换机制和在终端系统的反馈控制算法提供QoS保证。
服务器端然后发送反馈意见TCP包的源,以便通知有关