基于嵌入式Linux的视频监控系统的设计与实现

时间:2022-07-11 08:54:27

基于嵌入式Linux的视频监控系统的设计与实现

摘要:随着互联网的快速发展,嵌入式网络视频监控是目前很受关注的热点,而且在各个领域都涉及它的应用,因此对基于嵌入式视频监控系统的研究具有一定的意义。因此在视频监控方向,该文提出了一种系统设计方案。该系统以Linux作为操作系统,以S3C2410作为开发平台,由USB摄像头实时的采集视频图像数据,经压缩编码后通过TCP网络传输到视频服务器客户端,实现基本的监控功能。

关键词:视频监控;嵌入式;摄像头;视频压缩;视频采集

中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2016)26-0201-02

The Design And Implement Of Video Monitoring System Based On Embedded Linux

HE Yi

(School of Information Engineering,Guangdong University of Technology,Guangzhou 510006,China)

Abstract: With the rapid development of Internet, embedded network video monitoring is hotspot that attracting extensive attention in the present, and have involved in all fields, so the research for the video monitoring system has a certain significance. So in the direction of video monitoring, this paper proposes a system design scheme, The system using the Linux as operating system, S3C2410 as development platform and Collecting video image data by USB camera, after compression coding, the video image data is transmitted to the video server and client through the network, achieve the basic monitoring function.

Key words: video monitoring; embedded; camera; video compression; video capture

1 概述

在当前科技迅速发展的环境下,视频监控系统已经在安防、交通监控和家居生活等重要领域得到了广泛的应用。视频监控系统经过了三个发展阶段,第一是基于模拟摄像机的模拟视频监控系统阶段,第二是基于PC 端的数字视频监控阶段,第三是基于嵌入式Linux的网络视频监控系统阶段[1-2]。传统的模拟视频监控系统存在传输距离和系统数据量有限、图像质量低和不易扩展等不足,数字监控系统虽慢慢取代了模拟视频监控系统,但其本身也存在视频前端采集复杂、系统稳定可靠性差等局限。网络视频监控系统在各类技术的不断发展的基础上也在不断发展中。在网络技术快速发展的趋势下,通过网络传输视频图像[3-5],是目前实现视频监控最好的方法。本文设计并实现一套以S3C2410为开发平台,以Linux为操作系统的基于嵌入式视频监控系统,客户端只要和监控终端在同一局域网内均可实时监控。

2 系统整体设计方案

该嵌入式视频监控系统以Linux系统和S3C2410开发板作为系统核心平台,由在前端的USB摄像头实时采集视频数据,经压缩编码后通过TCP网络传输到后台服务器,客户端可实现实时监控。此系统主要由视频服务器端和客户端组成;服务器端包括视频图像采集模块和TCP网络传输模块,它们的职责就是将视频数据进行压缩、编码后通过TCP网络传输到远程终端设备上。客户端主要实现远程终端设备的视频显示。

3 系统硬件设计

在该系统中,硬件结构包括视频图像采集模块、视频服务器模块和TCP网络传输模块。视频图像采集模块主要完成视频数据的实时采集,ARM开发板通过摄像头采集获取视频图像数据,然后进行压缩存储和处理,然后通过网络传输模块将视频数据传输到远程移动终端上显示。

4 系统软件设计

软件部分的设计主要包括:嵌入式Linux系统的裁剪和移植、视频图像的采集、视频的网络传输以及客户端网络连接程序。系统的裁剪和移植等技术本文不再作详细的论述。以下主要介绍视频图像采集模块和网络传输模块的设计。

进行视频采集[6]必须加入video4Linux模块,要从摄像头设备中采集视频图像帧,必须依靠此模块所提供的接口。video4Linux是摄像头设备的相关内核驱动,它为摄像头提供了编程所需的最基本的接口函数,比如ioctl()函数、打开函数、写函数和读函数等的实现。并把它们定义在file_operation中,当应用程序对设备文件进行打开读写等一系列系统调用的操作时,系统将通过此结构去访问内核驱动程序[7-9]所提供的一些基本函数。video4Linux中的数据结构为视频采集提供了各种视频图像的相关数据信息,其中包括有:

video_window :包含获取的视频图像区域的基本信息

video_capability:包含设备信息,比如设备的分辨率范围、设备的名称和信号的来源信息等

video_picture:包含了所获取图像属性;

video_channel:各个信号源的属性;

video_mmapf:用于内存映射;

video_mbuf:包含映射的帧的属性和信息,比如所支持的最多帧数、每一帧图像的大小和每一帧图像相对基址的偏移等属性;

video_buffer:最底层对缓冲区的描述。图3为整个的视频图像采集流程,视频图像的采集程序包括以下流程,一是初始化设备,二是打开设备,三是获取视频设备和视频图像信息,四是图像参数设定,五是视频图像采集。

视频数据网络传输模块本文采用B/S模式,以此模式来实现网络视频监控。本文采Boa来搭建Web服务器[10]。Boa 有它自己的特点,首先它支持CGI;其次它是单任务的,它与传统的web服务器不同,第一,对于每一个连接,它不会去重新启动一个新的进程,第二,对于二个或者多个连接,它也不会去启动多个对自身的复制;再次,对于所有在进行活动的连接,Boa只会在内部对它进行相应的处理,而且,对每一个CGI连接,它都会重新去开启一个进程。Boa支持的CGI公共网关接口适用于各种不同的平台,是用户应用程序与Web服务器最常用的通信接口。

5 系统仿真和测试

本文提出的构架方案和实现方案已经通过测试。客户端监控界面如图4所示。整个系统开发不仅简洁,而且高效,同时成本比较低,稳定性非常可靠,能够被移动设备应用,实现实时视频监控。

参考文献:

[1] 顾永建,高守乐.基于嵌入式系统的网络数字视频监控系统[J].计算机技术与应用, 2005(1):40-42.

[2] 杨建全, 梁华, 王成友. 视频监控技术的发展与现状[J]. 现代电子技术, 2006(21).

[3] 李保国. 基于嵌入式 ARM 的远程视频监控系统研究[D]. 南京: 南京理工大学, 2009.

[4] 张建. 基于 S3C2410 和嵌入式 Internet 的家庭视频监控系统设计[D].上海:上海交通大硕士学位论文,2007,1.

[5] 赵春媛,李萌,韩会山.基于ARM9的无线视频监控系统设计与实现[J].计算机工程与设计, 2012.

[6] 张蕾.基于嵌入式 Linux 的视频采集系统的研究设计[D].西安: 西安电子科技大学硕士学位论文,2010.

[7] 朱小远,谢龙汉.Linux 嵌入式系统开发[M].北京:电子工业出版社,2012.

[8] 韦东山. 嵌入式Linux应用开发完全手册[M] .北京: 人民邮电出版社, 2009.

[9] 宋宝华. Linux 设备驱动开发详解 [M]. 2版.北京: 人民邮电出版社, 2010.

[10] 余小凑.基于 web 的嵌入式视频监控服务设计与实现[D].杭州:浙江大学硕士学位论文,2007.

上一篇:基于真实运营的电子商务与现代物流实训中心建... 下一篇:谷物进出口中“数量条款”应注意的问题