下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于DM365网络视频监控系统的设计的策略研究0 引言随着电子、计算机、通信和自动化技术的发展,嵌入式视频监控系统已成为现代安防系统发展趋势,并且已经引起了人们的重视。嵌入式视频监控系统主要由嵌入式处理器、嵌入式操作系统及相关软硬件等组成。TI公司的达芬奇技术是一种专门针对数字视频应用、基于信号处理的解决方案,能为视频设备制造商提供集成处理器、软件、工具和支持,以简化设计进程,加速产品创新【1】。本系统采用TM320DM365(简称DM365)视频处理芯片开发嵌入式网络视频监控系统,它具有功耗低、性能高、开发周期短、可扩展等优点。1 网络视频监视系统结构DM365处理器集成了一个ARM926E
2、J-S内核,一个H.264高清编解码协处理器HDVICP和一个MPEG-4/JPEG高清编解码协处理器MJCP,可以支持H.264/MPEG-4高清视频编解码。本系统利用DM365的强大运算能力,在ARM926EJ-S内核上运行基于Linux操作系统的应用程序实现视频采集、视频显示、网络通信、流媒体传输、外围器件控制等;在HDVICP协处理器上运行H.264算法来实现视频编码。本系统所设计的网络视频监控系统总体结构如图1所示,它由摄像头、视频服务器、网络和客户监控端等模块组成。摄像头实现对现场实时视频的采集,由视频服务器读取采集到的视频信号经H.264编码器编码后进行存储和网络实时传输;客户监
3、控端主要完成视频信号的接收、存储、播放和下载等功能。另外,客户监控端可以把用户的操作转换成相应的控制信号发送到视频服务器,由视频服务器对外围器件进行控制。2 视频监控服务器模块的设计视频监控服务器的主要任务是监听网络连接,采集视频数据,视频数据压缩编码,存储视频数据并分发给客户监视端【2】。在视频数据采集方面,使用V4L2常用模型;在编码方面,结合DM365芯片的特点采用H.264压缩编码标准;另外,使用RTP/RTCP协议在视频监控服务器与客户监控端之间进行视频数据传输【3】。2.1 视频监视服务器模块工作流程视频监控服务器包括三个子模块,一是视频数据处理子模块,负责视频数据采集与编码;二是
4、视频监控控制子模块,负责开启、关闭视频监控等控制操作;三是数据传输子模块,负责视频数据的实时传输以及备份视频数据等工作。视频监控服务器模块的工作流程如下。 主控程序对系统初始化,主要包括ARM处理器与HDVICP协处理器的共享内存的配置,视频采集设备的初始化等。 主控程序建立视频采集线程Capture、视频压缩线程Video、视频数据存储与实时传输线程Trans、视频文件备份线程BackData和监听线程Listen。当主控程序完成初始化工作和线程创建工作后转化为系统控制线程Ctrl。 Capture线程负责采集视频信号;Video线程负责将视频采集线程采集到的视频信号用H.264编码器压缩编
5、码;Trans线程负责将压缩后的视频数据存储在视频服务器端的硬盘上,并实时地将视频流传输给视频监控端;Listen线程主要负责监听客户监控端的控制命令,并对命令进行词法解析,执行相应的命令;BackData线程负责视频文件的传输,以备客户端备份视频文件。 如果退出系统,则所有线程结束;否则循环执行。2.2 视频数据处理子模块流程在视频监控服务器中涉及到的数据分为两类:一类是摄像头采集到的原始视频数据,一类是压缩后的视频数据。这两类数据均存放在缓冲区中,这些缓冲区被多个线程共享。共享的方法是采用管道通信,一方将缓冲区的地址送入管道,另一方从管道读取缓冲区地址对该缓冲区共享。2.2.1 缓冲区共享
6、由于运行在Linux上的应用程序调用malloc获得的缓冲区所用地址均为虚拟地址,因此,缓冲区的物理空间不一定连续,当把缓冲区的地址传递给协处理器进行编码的时候,数据完整性问题就出现了,因为编码算法是运行在HDVICP协处理器上的,这是一个只有实地址的世界。所以,TI公司开发的编码引擎(Codec Engine,简称CE)的软件架构时提供了CMEM模块,该模块为ARM926EJ-S内核和协处理器之间通信提供了连续的内存。程序员可调用CMEM API申请物理上连续的共享缓冲区。本系统设置了四个管道,其中CVInFifo和CVOutFifo这两个管道由Capture线程和Video线程共享;VTI
7、nFifo和VTOutFifo这两个管道由Video线程和Trans线程共享。三个线程共享四个管道的示意图如图2所示。在系统初始化时,Video线程和Trans线程通过调用CMEM API分别申请若干个物理地址连续的缓冲区,Video线程将其申请的缓冲区地址送入CVInFifo管道,Trans线程将其申请的缓冲区送到VTOutFifo管道。Capture、Video、Trans和Ctrl四个线程汇集在一起后,循环执行以下步骤以实现视频数据的采集、编码和传输。 Capture线程从CVInFifo管道获取一个空缓冲区hCapBuf,采集一帧视频并保存在该缓冲区中; Capture线程将缓冲区hC
8、apBuf地址送入CVOutFifo管道; Video线程从CVOutFifo管道中获得装有原始视频帧的缓冲区hCapBuf; Video线程从VTOutFifo管道中获取一个空缓冲区hDstBuf,并对hCapBuf缓冲区中的视频数据用H.264编码器进行编码,其结果存放在缓冲区hDstBuf中; Video线程将废弃的缓冲区hCapBuf送CVInFifo管道,供Capture线程循环利用; Video线程将已编码的视频数据缓冲区hDstBuf的地址送入VTInFifo管道; Trans线程从管道获取一个已编码的缓冲区hDstBuf,将其内容写入文件,并按RTP/RTCP协议传输给客户端;
9、 Trans线程将废弃的缓冲区hDstBuf送入管道供Video线程使用。2.2.2 H.264编码器系统选择先进的H.264编码方案。H.264编码器继承了H.263和MPEGl/2/4视频编码器的优点,在吸收变换编码和运动补偿的基础上,采用全新的帧内预测、多帧参考预测、高精度运动估计、类DCT整数变换、基于上下文的自适应熵编码、去块效应滤波等编码技术,有效提高了数据压缩效率【4】。H.264引入了面向包的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输,能适应于不同网络中的视频传输,网络亲和性好。在H.264标准中定义了两个层次:视频编码层(VCL)和网络抽象层(NAL)。VC
10、L主要负责高效的数字视频数据压缩。VCL处理的是块、宏块和片的数据,并尽可能地设计成不依赖于任何网络的特性。NAL处理的主要是片以上的数据,提供适当的接口对数据进行打包和传送。在VCL和NAL之间定义了一个基于分组方式的接口。这样,高编码效率和网络友好性的任务分别由VCL和NAL来完成。H.264的这种双结构扩大了应用范围,几乎涵盖了视频监控、视频点播、流媒体业务等大部分的视频业务。本系统采用TI达芬奇技术来实现H.264编码器,此视频压缩算法运行在HDVICP协处理器端,ARM端通过引擎Codec Engine和服务器Code Server与HDVICP协处理器进行交互【5】。编码后的H.2
11、64视频序列是由一系列NAL单元构成。一个NAL单元就是一个变长的包括某一类型的语义元素的字节流。比如,NAL单元可以装载一个图像码片、一个A/B/C的数据分割、一个序列或者图像的参数设置等。2.3 网络传输模块的设计网络传输模块的主要功能是负责为客户端的请求建立链接,并将经H.264编码器编码的视频流传输给客户端。这项工作由Listen和Trans两个线程完成。网络服务器与客户监控端采用UDP数据包进行通信。Listen线程循环监听用户请求,当有用户请求实时监控视频时,Listen线程将该用户的IP地址及UDP端口号保存在与Trans线程共享的变量ClientUdp中,Trans线程根据变量
12、ClientUdp创建UDP套接字,并按RTP/RTCP协议传输实时视频编码。当用户关闭视频监时,Listen同样将用户的关闭视频请求传递给Trans,Trans将关闭相应的UDP套接字,停止视频的实时传输。另外,Listen线程还具有接收来自客户端的控制命令,比如实现视频文件的下载,以及关闭和开启实时视频监控等功能。2.3.1 NAL单元的提取与RTP数据包的传输由于在达芬奇DM365开发平台上的H.264编码器的输出码流中,每个NAL单元前面有4个字节的前缀来标识NAL单元边,即起始码前缀(0x00000001)。因此,Trans线程可以根据起始码从已编码缓冲区中提取出各个NAL单元以备发
13、送,即从Video线程和Trans线程共享的缓冲区中获得H.264编码的图像帧的数据,并在每帧的数据里搜寻出每个NAL单元。在默认情况下,达芬奇DM365开发平台采用的H.264编码器每次提供一个完整的H.264视频帧,除第一帧由三个NAL单元组成外,其他帧仅包含一个NAL单元。第一帧的三个NAL单元的类型分别为序列参数集(SPS)、图像参数集(PPS)和IDR图像片段。其他帧的NAL单元类型均为I图像片段。实时传输协议RTP负责提供实时数据(如交互式的音频和视频)的端到端传输服务,它可以建立在底层的面向连接或非面向连接的传输协议之上。通常情况下RTP数据包使用UDP来传送,但它不能为按顺序传
14、送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,而是依靠实时传输控制协议RTCP提供这些服务。本系统按RTP数据包格式将每一帧视频打包后,使用UDP套接字将该数据包发送给客户监控端。2.3.2 实时监控的实现4 结束语本系统基于DM365嵌入式平台,设计了嵌入式网络视频监控系统。视频服务器端主要实现视频的采集、编码与网络传输,通过四个共享管道实现视频数据流的共享,整个视频服务器由五个线程相互配合完成。客户监控端采用Davinci-VLC客户端程序实现视频的监控及视频文件的备份。下一步的工作重点是研究基于WiFi+3G视频监控,以及保证视频数据在网络上的安全传输。参考文献:【1】 TI. DaVinci? Technology Overview.http:/【2】 韩慧英,潘娅.基于Davinci的嵌入式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特殊食品管理办法
- 飞机小知识课件
- app暑期活动策划方案(3篇)
- 2026年福建省烟草专卖局(公司)招聘127人(第二批)备考考试题库及答案解析
- 2026西安经开文景天心幼儿园招聘(5人)参考考试题库及答案解析
- 2026国家中规院分支机构招聘高校毕业生30人考试备考试题及答案解析
- 2026重庆垫江县县属国有企业招聘27人(第一次)备考考试试题及答案解析
- 2026西安未央区张家堡社区卫生服务中心招聘(4人)考试备考题库及答案解析
- 2026年淮北市卫生健康委员会直属医疗机构公开招聘工作人员13名考试备考题库及答案解析
- 2025河南洛阳市瀍河区区属国有企业招聘背景调查事宜备考考试题库及答案解析
- (一诊)重庆市九龙坡区区2026届高三学业质量调研抽测(第一次)物理试题
- 2026年榆能集团陕西精益化工有限公司招聘备考题库完整答案详解
- 2026广东省环境科学研究院招聘专业技术人员16人笔试参考题库及答案解析
- 2026年保安员理论考试题库
- 2025年人保保险业车险查勘定损人员岗位技能考试题及答案
- 电梯日管控、周排查、月调度内容表格
- QC-提高卫生间防水一次验收合格率
- 江苏省徐州市2022-2023学年高一上学期期末抽测政治试题(原卷版)
- 地基处理施工中的安全风险与防范
- 人教版六年级科学上期末测试题(2份)有答案
- 食品安全全球标准BRCGS第9版内部审核全套记录
评论
0/150
提交评论