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

关键词: 视频 监控 系统

基于A8的嵌入式Linux远程视频监控系统的设计与实现(共9篇)

篇1:基于A8的嵌入式Linux远程视频监控系统的设计与实现

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

摘 要:将网络技术和嵌入式技术相结合的远程视频监控系统是视频采集技术的发展趋势,文中提出了一种基于对等网络模型的嵌入式远程视频监控系统的设计方案。该方案将嵌入式系统和Web开发技术相结合,再利用USB摄像头作为视频监控系统的终端进行图像采集,并使用网络TCP协议将其远程发送给服务器终端。相较于传统的Client/Server网络模型,本系统实现采用对等网络模型,即确定发送命令的控制程序既可以是客户端,又可以是服务端。文中选择嵌入式开发平台ARM系列A8处理器进行研究和设计,并采用PC机下的Linux系统作为主机开发环境。

关键词:嵌入式;视频监控;网络远程控制;对等网络

中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2016)05-00-03

0 引 言

网络远程控制(Network Remote Control,NRC)是利用计算机网络对远程计算机进行操作的一种控制方式。计算机技术和网络技术目前都在高速发展,现在监控系统已经发展到网络视频监控系统[1]。网络视频监控具有数字视频监控和网络传输技术的优点,其具有不受地理位置约束、扩展方便简单、信息处理较容易等特点,可以使远程的管理和维护变成现实,只要是网络覆盖的地方,就能实现网络监控[2]。嵌入式系统向网络发展已成必然趋势,目前嵌入式系统对网络协议如TCP/IP协议和HTTP协议的支持也越来越广泛。系统硬件设备选择与配置

系统硬件设备选择凌阳嵌入式A8教学实验系统进行设计与实现。该实验箱基于ARM CortexTM-A8内核的处理器S5PV210,该芯片又名“蜂鸟”(Hummingbird),是三星公司推出的一款适用于智能手机和平板电脑等多媒体设备的应用处理器[3]。本系统使用了人机交互模块的USB接口、多媒体模块摄像头接口及通信模块以太网接口。

1.1 USB摄像头

摄像头属于视频类设备。在目前的Linux核心中,视频部分的标准是Video for Linux(简称V4L)。这个标准其实定义了一套接口,内核、驱动、应用程序以这个接口为标准进行交流。目前的V4L涵盖了视、音频流捕捉及处理等内容,USB摄像头也属于它支持的范畴。

本系统所采用的嵌入式Linux操作系统如果需要使用USB摄像头则必须在内核配置时添加Video4Linux驱动和对USB摄像头驱动模块的支持。本系统的设计与实现采用静态加载以上驱动。首先进入Linux源代码所在的目录,在终端输入make menuconfig命令,在基于Ncurses内核配置图形界面进行内核选项的配置。选中多媒体设备选项“Multimedia device->”,进入多媒体设备配置界面,选中“Video For Linux”,加载Video4Linux模块,就可以使内核实现对Video4Linux驱动的支持,为视频采集设备提供编程接口。在内核配置主界面,选中USB支持选项“USB support―>”,选中“USB Multimedia device”选项下的“USB OV511 Camera support”,使内核中加入OV511接口芯片的USB数字摄像头的驱动支持。OV511 USB 摄像头驱动配置界面如图1所示。

图1 OV511 USB 摄像头驱动配置界面

1.2 开启帧缓冲设备

帧缓冲(Frame Buffer,FB)是Linux为显示设备提供的一个接口,是把显存抽象后的一种设备,它允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。由于FB设备驱动为受限驱动,因此必须进行设备开启。本系统开发环境采用发行版Linux操作系统Ubuntu10.10,Ubuntu下启用FB设备的一般步骤如下所示:

安装v86d和hwinfo两个包查看显卡是否支持,并设置本机支持模式。

修改启动文件/etc/default/grub,如图2所示。

图2 修改启动文件图

修改modules文件/etc/initramfs-tools/modules,如图3所示。

图3 修改modules文件

更新以上两个文件并重启系统,即可查看到FB设备,具体如图4所示。

图4 查看FB设备系统软件设计

本系统软件由摄像头驱动模块、图像采集模块、网络传输模块和网络服务器模块组成[4]。摄像头驱动模块使得摄像头为应用程序编写提供系统编程接口。功能主要包括摄像头设备信息的获取与设置、设备的打开和关闭、信号通道选择、窗口初始化等。图像采集模块的作用是使用编程接口获取摄像头采集来的图像信息并进行暂时存储。服务器通过网络传输模块与远程监控PC机端进行信息交流。

2.1 V4L图像信息采集流程

V4L图像信息采集流程分为如下几步:

(1)打开摄像头设备

int vd->fd = open(“/dev/video0”,O_RDWR);

(2)读video_capability 中的信息,成功后可读取vd->capability各分量ioctl(vd->fd,VIDIOCGCAP,&(vd->capability));

(3)读video_picture中的信息,成功后可读取图像的属性ioctl(vd->fd,VIDIOCGPICT,&(vd->picture));

(4)初始化channel

int i;

for(i = 0; i capability.channels; i++){

vd->channel[i].channel = i;

篇2:基于A8的嵌入式Linux远程视频监控系统的设计与实现

发 布 时 间 : 2008-11-19 来 源 : 中电网 作 者 : 张永强,赵永勇,李崇德 浏 览 :

984

多媒体通信技术的发展为信息的获取和传输提供了丰富的手段,视频采集是其中不可缺少的重要组成部分,该系统基于S3C2410的ARM9芯片和嵌入式Linux操作系统,采用USB摄像头捕捉视频,经MPEG-4算法压缩编码,系统直接与网络相连,用户使用标准的网络浏览器和流媒体播放程序即可查看远程视频影像。硬件系统

系统硬件平台选用基于ARM9架构嵌入式芯片S3C2410,稳定工作在202MHz主频,板载64MB SDRAM 64MB FLASH,主板资源包括:主USB口、从USB口、10M/100M以太网口,触摸屏、彩色LCD、键盘、8个用户自定义LED数码管,A/D,RTC电路,2个串口、1个JTAG通用接口,音频模块,支持MPEG4,MP3编解码,3个168PIN的扩展插座,32位的数据总线,保留充分扩展空间。

其中标配模块包括:IC卡+PS2模块、IDE硬盘+CF卡模块、PCMCIA+SD/MMC模块。另外可选配模块有:GPS模块,GPRS模块,FPGA模块,CAN+AD+DA模块、红外模块、蓝牙模块、摄像头模块。软件系统

2.1 内核配置与USB摄像头驱动

假定已经搭建好嵌入式Linux的开发环境,下面第一步工作就是USB摄像头的安装与驱动。首先检查Linux Kernel中是否已经添加了USB模块的支持,并且加入Video4Linux支持。

Multimedia devices→Video For Linux

Video For Linux→[*]V4L information in proc filesystem

在主菜单的USB Support下还有各种摄像头的驱动,选中将要使用的摄像头芯片类型。

<>USB IBM(Xirlink)C-it Camera support<*>USB OV511 Camera support<>USB Philips Cameras <>USB SE401 Camera support<>USB STV680(Pencam)Camera support<>USB 3com HomeConnect(akavicam)support 在USB摄像头选购时,优先考虑Linux内核公开支持的摄像头芯片,不然要额外编写相应的USB摄像头驱动程序,然后进行编译、安装。在此选用网眼公司的V3000产品,他采用了OV511的芯片。

确定USB摄像头被正常驱动后,下一步就是使用Video4Linux提供的API函数集来编写视频采集程序。

2.2 基于V4L设计的视频采集模块

在Linux下,所有外设都被看成是一种特殊的文件,称为设备文件。系统调用是内核和应用程序之间的接口,而设备驱动程序则是内核和外设之间的接口。他完成设备的初始化和释放、对设备文件的各种操作和中断处理等功能,为应用程序屏蔽了外设硬件的细节,使得应用程序可以像普通文件一样对外设进行操作。

Linux系统中的视频子系统Video4Linux为视频应用程序提供了一套统一的API,视频应用程序通过标准的系统调用即可操作各种不同的视频捕获设备。Video4Linux向虚拟文件系统注册视频设备文件,应用程序通过操作视频设备文件实现对视频设备的访问。

Linux下与Video4Linux相关设备及用途如表1所示。

这里主要针对设备文件/dev/video进行视频捕捉方面的程序设计。

Linux下视频采集流程如图2所示。

其中用到的主要函数有:

Camera_open():用来开启视频设备文件,使用前需要首先声明一个video_device类型的设备文件。

Camera_get_capability():通过调用ioctl()函数取得设备文件的相关信息,并存放到video_capability结构里。

Camera_get_picture():通过调用ioctl()函数取得图像的相关信息,并且存放到video_picture结构里。

Camera_close():用来关闭设备文件。Camera_grab_image():用来抓取图像,采用mmap方式,直接将设备文件/dev/video0映射到内存,加速文件I/O操作,还可以使多个线程共享数据。

剩下的还有设备初始化、参数设备等相关函数,不再详述。

2.3 视频压缩编码模块

获取图像数据后,可以直接输出到FrameBuffer进行显示,由于本系统要将采集到的视频影响通过网络传输出去,所以在传输之前要对原始的图像数据进行压缩编码,在此选用MPEG-4视频编解码方案。和其他标准相比,MPEG-4压缩比更高,节省存储空间,图像质量更好,特别适合在低带宽条件下传输视频,并能保持图像的质量。

MPEG-4中基于对象的视频编码过程可以分为3步进行:

(1)从原始视频流中分割视频对象。

(2)对视频对象进行编码,对不同视频对象的运动信息、形状信息、纹理信息分配不同的码字。对输入的任意形状的VOP序列,用基于块的混合编码技术编码,处理顺序是先IVOP后PVOP,BVOP。在对VOP的形状信息编码后,取得任意形状VOP的采样,每个VOP划分为不相交的宏块,每个宏块含有4个8×8象素块进行运动补偿以及纹理编码,已编码的VOP帧保存在帧存中,在当前VOP帧和已编码VOP帧之间的计算运动矢量;对将编码的块和宏块,计算他们的运动补偿预测误差;运动补偿预测后的IVOP及误差用8×8块DCT变换,并进行DCT系数的量化,然后是游程编码和熵编码。

(3)对各个视频对象的码流进行复合,每个视频对象的形状、运动纹理信息复合成VOL比特流,各视频对象视频流复合成统一的码流输出。对视频流进行压缩编码以后,接下来就要实现网络传输部分的功能。

2.4 JRTPLIB网络传输模块

流媒体指的是在网络中使用流技术传输的连续时基媒体,RTP是目前解决流媒体实时传输问题的好办法,JRTPLIB是一个面向对象的RTP库,他完全遵循RFC1889设计,下面讲述如何在Linux平台上运用RTP协议进行实时流媒体编程。

2.4.1 初始化 在使用JRTPLIB进行实时流媒体数据传输之前,首先应该生成RTPSession类的一个实例来表示此次RTP会话,然后调用Create()方法来对其进行初始化操作。RTPSession类的Create()方法只有一个参数,用来指明此次RTP会话所采用的端口号。

2.4.2 数据发送

当RTP会话成功建立起来之后,接下来就可以开始进行流媒体数据的实时传输了。首先需要设置好数据发送的目标地址,RTP协议允许同一会话存在多个目标地址,这可以通过调用RTPSession类的AddDestination()、DeleteDestination()和ClearDestinations()方法来完成。目标地址全部指定之后,接着就可以调用RTPSession类的SendPacket()方法,向所有的目标地址发送流媒体数据。

2.4.3 数据接收

对于流媒体数据的接收端,首先需要调用PollData()方法来接收发送过来的RTP或者RTCP数据报。由于同一个RTP会话中允许有多个参与者(源),因此既可以通过调用GotoFirstSource()和GotoNextSource()方法来遍历所有的源,也可以通过调用GotoFisstSourceWithDat()和GotoNextSourceWithData()方法来遍历那些携带有数据的源。在从RTP会话中检测出有效的数据源之后,接下去就可以调用RTPSession类的GetNextPacket()方法从中抽取RTP数据报,当接收到的RTP数据报处理完之后,要及时释放。

JRTPLIB为RTP数据报定义了3种接收模块,通过调用RTPSession类的SetReceiveMode()方法可以设置下列这些接收模式:

RECEIVEMODE_ALL:缺省的接收模式,所有到达的RTP数据报都将被接受;RECEIVEMODE_IGNORESOME:除了某些特定的发送者之外,所有到达的RTP数据报都将被接受,而被拒绝的发送者列表可以通过调用AddToIgnoreList(),DeleteFromIgnoreList()和ClearIgnoreList()方法来进行设置;RECEIVEMODE_ACCEPTSOME:除了某些特定的发送者之外,所有到达的RTP数据报都将被拒绝,而被接受的发送者列表可以通过调用AddToAcceptList(),DeleteFromAcceptList和ClearAcceptList()方法来进行设置。

2.4.4 控制信息 JRTPLIB是一个高度封装后的RTP库,只要PollData()或者SendPacket()方法被成功调用,JRTPLIB就能够自动对达到的RTCP数据报进行处理,并且还会需在要的时候发送RTCP数据报,从而能够确保整个RTP会话过程的正确性。

在本系统中,使用RTPSession JRTPLIB类库提供的方法来实现底层的RTP/RTCP操作,并且把他封装在CrtpTransmitter类中,该类从Media Sink类继承而来,接收到相应的媒体帧数据,使用RTPSession类库的操作把数据发送到网络上。结语

篇3:基于A8的嵌入式Linux远程视频监控系统的设计与实现

关键词:嵌入式,无线视频系统,视频监控系统

1 嵌入式无线视频监控系统总体设计方案

其结构设计一般分为软件和硬件两部分, 对于嵌入式的视频监控系统而言。具体来说, 软件部分主要涵盖:依托底层的操作系统平台、依托于平台系统内的无线网卡驱动、依托于软件内核的视频采集、传输程序、依托于外延部分的USB摄像头以及依托于屏幕显示技术的监控可视网页。硬件部分则主要涵盖:主控模块系统、采集抓取系统、数据传递系统及外延的PC机。整个系统的设计, 如框图1所示。

此方案中, 不难看出, 系统主要包括后端的用户监控体系、基于连接系统的网络传输体系和基于显示前端的视频输入设备。其中基于ARM硬件平台设计的视频监控设备主要负责控制摄像头采集数据, Wi Fi无线网卡接入互联网, 同时等待与响应用户请求信息, 进行视频数据传输。用户可以通过PC机或者智能手机终端上的Web浏览器访问视频监控设备, 即可在用户界面上显示实时的视频信号。同时, 为了便于对视频进行监控管理, 用户也可以在PC机上启动监控管理系统软件, 实现远程选通安放在某一位置上的视频监控设备、启动视频采集程序、显示视频、录像保存等功能。视频监控设备可分别部署在监测区域内不同地点, 用户通过远程选通某个设备实现从不同方位观察的效果, 实现对区域内全方位监测。

2 嵌入式无线视频监控系统的关键技术

嵌入式系统通常被定义为:基于现代计算机技术下的, 以嵌入式的处理器配合嵌入式的操作系统、基于外部处理的硬件设备和基于用户自拟化管理的程序四部分组成的的计算机操作系统。嵌入式的无线视频系统, 则是建立在嵌入式系统基础上的, 实现对某一特定区域, 实现全程监视、回放、数据分析、管理等方面功能的系统, 其结构如图2所示:

其关键的技术特定, 可以概括为:设计的针对性、技术的密集性、系统的低耗性、处理数据的集成性、开发环境工具的独特性。本文研究的对象, 是基于Linux下的系统设计的实现。

3 Linux下嵌入式系统的开发流程

其开发流程, 如图3所示:

4 基于嵌入式Linux的无线视频监控系统设计

4.1 视频服务器程序总体设计

为实现通过USB接口摄像头获取直观的图像数据, 并通过数据解析, 传递用户。需建立两个线程。一是建立以采集原始图像为功能的输入线程;二是以满足用于需求的图像数据输出线程。结构如图4所示。

4.2 服务器信号采集功能的设计与实现

基于Linux, 对硬件设备驱动通常采取:一是直接编译驱动程序, 二是以模块加载形式驱动编译。本设计主要采取第一种方法, 即直接编译:进入进入Device Drivers选项, 再选择Video capture adapters进入, 在列表中选中<*>GSPCA based Webcams。在配置完摄像头驱动后, 退出菜单。如此, USB摄像头驱动可在Linux内核中正常运行起来, 并通过在在/dev目录下生成video0设备文件, 进行较为方便的读写操作。

4.3 基于V4L2的视频信号采集

通过V4L2接口采集视频数据的工作流程如下:调用open () 函数打开/dev/video0视频设备文件——获取基础信息——设置采集信号参数——申请内核帧缓冲区——采用mmap方式, 方便用户读取——视频采集——帧缓冲区再次放人采集输入队列尾部。

5 视频服务器信号传输功能的设计与实现

主要设计与实现流程如图5所示。

经测试可以证明, 整个系统运行正常, 视频监控设备能够正确识别USB摄像头和无线网卡, 实现稳定的视频采集和传输功能。客户端的浏览器和监控软件可完成实时的视频显示, 视频图像清晰流畅。同时监控管理系统软件还配置了视频录像保存功能, 扩展引用的运动目标检测功能也运行稳定。整个系统的设计成本低, 移动性好, 使用方便, 可以满足用户需要, 达到了项目的设计要求。

参考文献

[1]陈源.基于CDMA1X无线网络的视频监控系统[J].武汉大学学报, 2009, 33 (9) :90-93.

[2]李贤权.3G车载远程视频监控系统方案[J].电信科学, 2012, 27 (12) :131-134.

[3]苏祥海.基于网络的数字视频监控系统[J].吉首大学大学学报, 2009, 33 (7) :79-83.

[4]周建忠.嵌入式Web视频服务器的设计[J].兵工自动化, 2005, 24 (1) :67-71.

篇4:基于A8的嵌入式Linux远程视频监控系统的设计与实现

【摘要】针对现代视频监控视频数据的传输和线路的架设需要耗费大量的人力、物力问题,采用电力线载波通信和嵌入式技术,设计了一种电力线载波嵌入式视频监控系统。以嵌入式处理器S5PV210为控制核心,通过电力线载波传输视频数据。

【关键词】电力载波嵌入式视频监控

【中图分类号】 G 【文献标识码】A

【文章编号】0450-9889(2014)06C-0181-03

视频监控被广泛应用到各种生产、管理、检测领域。视频监控的视频数据的传输通常使用光纤、宽带网络、双绞线等方式作为传输媒介,在生产和安装过程中需要消耗大量的人力、物力。采用电力载波传输技术,利用广泛存在的电力线网络作为视频数据传输的媒介,能够有效节省生产和线路架设的成本。本系统采用嵌入式ARM作为视频采集、编码控制核心,结合电力线载波传输视频数据构成基于电力线载波嵌入式视频监控系统。以嵌入式处理S5PV210作为控制核心能够快速获取摄像头视频图像信息,利用内部硬件H.264编码器实现快速视频编码。以INT6400和INT1400作为电力线载波视频传输模块,能够快速组网实现多点监控和稳定地传输视频数据。该系统能够免除烦琐的视频数据线路的生产、架设安装,具有节约成本、即插即用等优点。实验表明,该视频监控系统具有低功耗、节省成本、安装方便、图像清晰等特点。

一、电力载波视频监控系统的总体设计

本视频监控系统采用C/S(客户端/服务器端)模式,由视频监控服务器和视频监控客户端组成。视频监控服务器设置固定的IP地址。视频监控服务器与客户端采用UDP通信协议进行视频传输。视频监控服务器主要由摄像头模块、嵌入式处理器模块、电力线载波通信模块组成。客户端在PC机上实现。系统总体结构框架图如图1所示。

图1 系统总体结构框架图

二、电力线载波视频监控系统硬件设计

(一)嵌入式处理器模块。嵌入式处理模块视频监控系统服务器控制核心主要负责原始视频图像数据的采集、H.264格式视频编码、视频数据传输给电力线载波通信模块。该模块采用Samsung公司的S5PV210嵌入式ARM CortexTM-A8处理器。处理器主频最高可达1GHz,支持USB2.0通信,支持对MPEG4、H.263、H.264等视频格式的硬件编码。嵌入式处理模块采用USB方式与摄像头进行连接,通过以太网网络芯片DM9000AEP接口与电力线载波通信模块进行连接。

(二)电力线载波通信模块。电力线载波通信模块主要负责接收嵌入式主控模块的视频数据,然后进行正交频分复用(OFDM)编码将数据调制到电力线上。本模块主要由INT6400电力线调制控制芯片和INT1400模拟前端组成。ATHEROS公司生产的INT640电力线载波调制芯片,内部集成A/D和D/A转换功能,其采用HomePlug1.0通信协议最高通信速率高达200Mbps,能够满足视频监控系统多路视频数据同时传输。INT6400通过RTL820CP网卡网络接口与主控模块通信。模拟前端INT1400主要负责将模拟信号进行放大加载到电力线上。图2 为电力线载波通信模块结构框图。

图2电力线载波通信模块

三、电力线载波视频监控系统软件设计

(一)视频图像采集。视频监控系统原始视频图像数据采集主要通过嵌入式ARM处理模块的USB接口读取摄像头图像信息。摄像头采用深圳威视有限公司生产的USB视频监控摄像头。该摄像头通信接口为:USB2.0;图像最大解析度为:640x480;图像输出格式为:YUYV;图像数据帧率最高为:30fps。本视频监控系统服务器端采用Linux嵌入式系统作为操作系统。V4L2内核驱动为Linux系统对进行视频采集设备提供了通用接口。Linux2.6.32内核已包含该摄像头的视频驱动,应用程序可利用V4L2标准的通用接口操作函数获取摄像头原始视频图像信息。本视频监控Linux系统中,对摄像头设备进行读写的系统文件为“/dev/video0”。对摄像头的操作通过ioctl(系统对内核驱动I/O设备进行管理的函数)函数进行操作即可。对视频设备进行操作主要由以下几个步骤组成。

1.打开视频设备,通过open()打开函数完成。

static char * usb_name= "/dev/video0";

/*定义摄像头设备文件名*/

usb_fd = open (usb_name, O_RDWR| O_NONBLOCK, 0); /*打开视频设备,usb_name设备名*/

2.获取USB摄像头所支持的各种参数。

ioctl (*usb_fd, VIDIOC_QUERYCAP, &cap_video); /* 在V4L2编程框架下采用VIDIOC_QUERYCAP 指令为结构体cap_video获取USB摄像头的各种参数*/

3.设置USB摄像头的输出格式。

ioctl ( * usb_fd, VIDIOC_S_FMT, &video_set); /*定义video_set 为摄像头设置输出图像的像素大小、输出像素格式*/

4.向驱动申请缓冲帧的个数。

ioctl ( * usb_fd, VIDIOC_REQBUFS, &video_requre );

5.获取视频缓冲帧的地址。

ioctl ( * usb_fd, VIDIOC_QUERYBUF, &video_buf );/*申请图像输出的内存存放起始地址*/

6.将缓冲地址放入视频采集队列和开始采集视频数据。

ioctl (*usb_fd, VIDIOC_QBUF, & video_buf));

ioctl (*usb_fd, VIDIOC_STREAMON, &video_type));

7.获取视频数据同时必须将缓冲地址再次放入采集队列。

ioctl ( * usb_fd, VIDIOC_DQBUF, &video_buf ); /*获取原始视频图像信息*/

ioctl ( * usb_fd, VIDIOC_QBUF, &video_buf ); /*对下一次视频图像采集入列 */

(二)嵌入式视频编码。对原始视频图像信息必须进行视频格式压缩才适合传输。本视频监控系统采用H.264视频格式进行视频编码。H.264视频格式编码采用流媒体技术支持边传输边播放功能,是一种高效率、高压缩率、高图像质量同时对误码具有较强的纠错能力的编码技术。嵌入式处理器S5PV210内置硬件H.264编码器,支持对视频进行H.264格式进行硬件编码,减轻系统的工作负担,提高工作效率。Samsung公司为该处理器提供相应的硬件驱动,应用程序只需对相关的驱动函数进行操作即可完成对视频进行编码。H.264编码主要由以下步骤组成。

1.打开编码设备。

handle = VideoMfcEncOpen(&buf_type)

2.设置H.264硬件编码的格式,设置图像像素的长宽、码率等参数。

SSBSIP_MFC_ENC_H264_PARAM * H264_video_mfc; /*定义硬件编码器为H.264格式*/

VideoMfcEncInit(handle , H264_video_mfc); /*初始化H.264编码器*/

3.设置H.264图像输入存放地址。

SsbSipMfcEncGetInBuf( handle , input_info_video_mfc );

/*摄像头采集的视频图像存放在起始地址为input_info_video_mfc,图像视频数据长度为SourceWidth * SourceHeight */

ret= SsbSipH264EncodeExe(handle); /*进行视频的编码*/

4.进行H.264视频格式编码。

SsbSipMfcEncExe( handle );

5.获取H.264编码的视频数据。

SsbSipMfcEncGetOutBuf( handle , output_info_video_mfc ); /* output_info_video_mfc 为视频编码后视频数据存放的数据地址*/

6.关闭视频编码设备。

(三)视频传输。电力线载波视频监控服务器与客户端通信采用UDP通信协议。UDP是一种无连接的网络通信协议,适合对数据量传输要求比较高的通信。服务器与客户端进行数据通信主要有以下步骤:

1.创建UDP协议套接口,采用无连接方式。

videofd=socket(AF_INET,SOCK_DGRAM,0);

2.利用bind函数对套接字进行绑定。

bzero(&video_adr,sizeof(struct,sockaddr_in));

video_adr.sin_family=AF_INET;

video_adr.sin_addr.s_addr=htonl(INADDR_ANY);

video_adr.sin_port=htons(SERVER_PORT);

bind(videofd,(struct sockaddr*)& video_adr, sizeof(struct sockaddr_in))

3.利用sendto()函数进行视频数据打包发送。

video_adr= sizeof(struct sockaddr_in) ;

sendto(videofd,video_out,3000 , 0 , (struct sockaddr *)& video_adr , video_adr );

本系统每次发送3000个字符型视频数据。视频数据UDP协议通信方式如图3所示。

图3 视频数据UDP通信方式

四、系统测试

本视频监控系统采用S5PV210嵌入式ARM处理器、4块K4T160840F内存组成的512MB RAM作为主控模块,采用INT6400和INT1400组成的电力线载波模块。电(下转第184页)(上接第182页)力线载波通信的协议为:HomePlug1.0,主控模块与上位机PC通信协议采用UDP通信协议,视频传输像素为:320*240。PC端作为视频接收播放客户端。视频播放帧率为:30fps。视频编码格式为:H.264编码。每个电力线载波服务器设置固定IP地址,利用编写的播放应用软件进行视频播放,利用电力线网络数据测试工具检测视频通信的速率。在实验环境下,采用两个视频监控服务器进行视频监控。表1为两个视频监控服务器与PC客户端不同通信距离下的通信速率。在测试中图像清晰、视频延时小、图像稳定、通信速率高,能够满足多路视频同时传输和较好适应环境,实现视频监控。

表1 通信速率与距离

序号测试距离1号通信速率2号通信速率

15m172 Mbps175Mbps

210m167 Mbps162Mbps

320m127Mbps133Mbps

430m116Mbps113Mbps

540m88Mbps85Mbps

五、结论

基于电力线视频嵌入式监控系统采用电力线作为介质在短距离传输视频数据,利用广泛存在的电力线网络实现视频监控的即插即用,节省大量建造材料和安装的费用。同时采用嵌入式S5PV210处理器作为主控模块利用其内含H.264硬件编码器,能够快速高效率视频编码和传输视频数据。实验表明该方案可行,能够应用于停车场、工厂、仓库、家庭、银行等领域,具有广泛的市场应用前景。

【参考文献】

[1]童方圆,于强.基于Android的实时视频流传输系统[J].计算机工程与设计,2012(12)

[2]黄俊伟,巴义.基于V4L2移动视频监控系统的研究与设计[J].电视技术,2012(17)

[3]祝世平,张玲.基于分形和H.264的视频编码系统[J].光学精密工程,2013(3)

[4]岳兆娟,任勇毛,等.基于UDP的高速网络传输协议研究[J].计算机应用研究,2013(10)

(责编黎原)

3.设置H.264图像输入存放地址。

SsbSipMfcEncGetInBuf( handle , input_info_video_mfc );

/*摄像头采集的视频图像存放在起始地址为input_info_video_mfc,图像视频数据长度为SourceWidth * SourceHeight */

ret= SsbSipH264EncodeExe(handle); /*进行视频的编码*/

4.进行H.264视频格式编码。

SsbSipMfcEncExe( handle );

5.获取H.264编码的视频数据。

SsbSipMfcEncGetOutBuf( handle , output_info_video_mfc ); /* output_info_video_mfc 为视频编码后视频数据存放的数据地址*/

6.关闭视频编码设备。

(三)视频传输。电力线载波视频监控服务器与客户端通信采用UDP通信协议。UDP是一种无连接的网络通信协议,适合对数据量传输要求比较高的通信。服务器与客户端进行数据通信主要有以下步骤:

1.创建UDP协议套接口,采用无连接方式。

videofd=socket(AF_INET,SOCK_DGRAM,0);

2.利用bind函数对套接字进行绑定。

bzero(&video_adr,sizeof(struct,sockaddr_in));

video_adr.sin_family=AF_INET;

video_adr.sin_addr.s_addr=htonl(INADDR_ANY);

video_adr.sin_port=htons(SERVER_PORT);

bind(videofd,(struct sockaddr*)& video_adr, sizeof(struct sockaddr_in))

3.利用sendto()函数进行视频数据打包发送。

video_adr= sizeof(struct sockaddr_in) ;

sendto(videofd,video_out,3000 , 0 , (struct sockaddr *)& video_adr , video_adr );

本系统每次发送3000个字符型视频数据。视频数据UDP协议通信方式如图3所示。

图3 视频数据UDP通信方式

四、系统测试

本视频监控系统采用S5PV210嵌入式ARM处理器、4块K4T160840F内存组成的512MB RAM作为主控模块,采用INT6400和INT1400组成的电力线载波模块。电(下转第184页)(上接第182页)力线载波通信的协议为:HomePlug1.0,主控模块与上位机PC通信协议采用UDP通信协议,视频传输像素为:320*240。PC端作为视频接收播放客户端。视频播放帧率为:30fps。视频编码格式为:H.264编码。每个电力线载波服务器设置固定IP地址,利用编写的播放应用软件进行视频播放,利用电力线网络数据测试工具检测视频通信的速率。在实验环境下,采用两个视频监控服务器进行视频监控。表1为两个视频监控服务器与PC客户端不同通信距离下的通信速率。在测试中图像清晰、视频延时小、图像稳定、通信速率高,能够满足多路视频同时传输和较好适应环境,实现视频监控。

表1 通信速率与距离

序号测试距离1号通信速率2号通信速率

15m172 Mbps175Mbps

210m167 Mbps162Mbps

320m127Mbps133Mbps

430m116Mbps113Mbps

540m88Mbps85Mbps

五、结论

基于电力线视频嵌入式监控系统采用电力线作为介质在短距离传输视频数据,利用广泛存在的电力线网络实现视频监控的即插即用,节省大量建造材料和安装的费用。同时采用嵌入式S5PV210处理器作为主控模块利用其内含H.264硬件编码器,能够快速高效率视频编码和传输视频数据。实验表明该方案可行,能够应用于停车场、工厂、仓库、家庭、银行等领域,具有广泛的市场应用前景。

【参考文献】

[1]童方圆,于强.基于Android的实时视频流传输系统[J].计算机工程与设计,2012(12)

[2]黄俊伟,巴义.基于V4L2移动视频监控系统的研究与设计[J].电视技术,2012(17)

[3]祝世平,张玲.基于分形和H.264的视频编码系统[J].光学精密工程,2013(3)

[4]岳兆娟,任勇毛,等.基于UDP的高速网络传输协议研究[J].计算机应用研究,2013(10)

(责编黎原)

3.设置H.264图像输入存放地址。

SsbSipMfcEncGetInBuf( handle , input_info_video_mfc );

/*摄像头采集的视频图像存放在起始地址为input_info_video_mfc,图像视频数据长度为SourceWidth * SourceHeight */

ret= SsbSipH264EncodeExe(handle); /*进行视频的编码*/

4.进行H.264视频格式编码。

SsbSipMfcEncExe( handle );

5.获取H.264编码的视频数据。

SsbSipMfcEncGetOutBuf( handle , output_info_video_mfc ); /* output_info_video_mfc 为视频编码后视频数据存放的数据地址*/

6.关闭视频编码设备。

(三)视频传输。电力线载波视频监控服务器与客户端通信采用UDP通信协议。UDP是一种无连接的网络通信协议,适合对数据量传输要求比较高的通信。服务器与客户端进行数据通信主要有以下步骤:

1.创建UDP协议套接口,采用无连接方式。

videofd=socket(AF_INET,SOCK_DGRAM,0);

2.利用bind函数对套接字进行绑定。

bzero(&video_adr,sizeof(struct,sockaddr_in));

video_adr.sin_family=AF_INET;

video_adr.sin_addr.s_addr=htonl(INADDR_ANY);

video_adr.sin_port=htons(SERVER_PORT);

bind(videofd,(struct sockaddr*)& video_adr, sizeof(struct sockaddr_in))

3.利用sendto()函数进行视频数据打包发送。

video_adr= sizeof(struct sockaddr_in) ;

sendto(videofd,video_out,3000 , 0 , (struct sockaddr *)& video_adr , video_adr );

本系统每次发送3000个字符型视频数据。视频数据UDP协议通信方式如图3所示。

图3 视频数据UDP通信方式

四、系统测试

本视频监控系统采用S5PV210嵌入式ARM处理器、4块K4T160840F内存组成的512MB RAM作为主控模块,采用INT6400和INT1400组成的电力线载波模块。电(下转第184页)(上接第182页)力线载波通信的协议为:HomePlug1.0,主控模块与上位机PC通信协议采用UDP通信协议,视频传输像素为:320*240。PC端作为视频接收播放客户端。视频播放帧率为:30fps。视频编码格式为:H.264编码。每个电力线载波服务器设置固定IP地址,利用编写的播放应用软件进行视频播放,利用电力线网络数据测试工具检测视频通信的速率。在实验环境下,采用两个视频监控服务器进行视频监控。表1为两个视频监控服务器与PC客户端不同通信距离下的通信速率。在测试中图像清晰、视频延时小、图像稳定、通信速率高,能够满足多路视频同时传输和较好适应环境,实现视频监控。

表1 通信速率与距离

序号测试距离1号通信速率2号通信速率

15m172 Mbps175Mbps

210m167 Mbps162Mbps

320m127Mbps133Mbps

430m116Mbps113Mbps

540m88Mbps85Mbps

五、结论

基于电力线视频嵌入式监控系统采用电力线作为介质在短距离传输视频数据,利用广泛存在的电力线网络实现视频监控的即插即用,节省大量建造材料和安装的费用。同时采用嵌入式S5PV210处理器作为主控模块利用其内含H.264硬件编码器,能够快速高效率视频编码和传输视频数据。实验表明该方案可行,能够应用于停车场、工厂、仓库、家庭、银行等领域,具有广泛的市场应用前景。

【参考文献】

[1]童方圆,于强.基于Android的实时视频流传输系统[J].计算机工程与设计,2012(12)

[2]黄俊伟,巴义.基于V4L2移动视频监控系统的研究与设计[J].电视技术,2012(17)

[3]祝世平,张玲.基于分形和H.264的视频编码系统[J].光学精密工程,2013(3)

[4]岳兆娟,任勇毛,等.基于UDP的高速网络传输协议研究[J].计算机应用研究,2013(10)

篇5:基于A8的嵌入式Linux远程视频监控系统的设计与实现

随着科技的进步,视频监控系统正在向嵌入式、数字化、网络化方向发展。嵌入式视频监控系统充分利用大规模集成电路和网络的科技成果,实现了体积小巧、性能稳定、通讯便利的监控产品。本文以S3C2410为核心硬件平台开发了基于嵌入式的远程视频监控系统,并对关键技术进行了论述和研究。首先给出了系统总体软硬件设计方案,针对本系统硬件对vivi进行了修改和移植,对编译和移植Linux内核以及制作YAFFS文件系统也做了深入的研究,重点讨论了在嵌入式Linux操作系统下开发USB接口摄像头驱动程序和利用linux提供的Video4Linux API函数实现视频数据采集,其次采用背景差法实现了对视频图像中运动目标的检测,然后通过MJPEG压缩算法实现了视频数据压缩,接着介绍了在Linux下基于TCP/IP协议的socket编程,实现了视频数据的网络发送。最后着重论述了嵌入式Web服务器的设计,编写了视频监控主界面程序,并实现了基于B/S模式的视频监控系统结构。本系统采用模块化设计方法,使得设计更加简洁、高效,具有良好的扩展性和易用性,有利于系统升级。另外采用嵌入式的方法,系统成本较低,易于推广使用。

【关键词相关文档搜索】: 控制理论与控制工程;ARM;嵌入式Linux;USB摄像头;Video4Linux;嵌入式Web服务器

篇6:基于A8的嵌入式Linux远程视频监控系统的设计与实现

1 系统概述

整个视频监控系统从功能可划分为三个部分:视频监控服务器、中心平台、视频监控客户端。视频监控服务器或叫监控前端 (PU) , 是系统的信息采集端, 实现视频信息、音频信息、数据信息及告警信息的采集功能以及音视频录像的存储功能, 具有语音信息和数据信息的双向传送功能。视频监控客户端或叫监控中心界面 (CU) , 是系统的客户应用端, 实现视频信息、音频信息、数据信息及告警信息对用户的呈现。根据客户端类型的不同, 部分CU还具备对系统的设备管理、用户管理等功能[1]。中心平台是系统的中心管理服务器, 负责业务流程的控制和策略管理[2], 包括视频分发/转发服务器 (V T D U) 、网络录像存储服务器 (N R U) , S I P信令处理解析服务器、SIP服务器和数据库管理系统。系统的整体框架如图1所示:

2 系统硬件开发平台

系统PU端采用基于Da Vinci技术的TMS320DM6467作为核心处理器, 它是TI公司专门针对数字视频服务器DVS应用而推出的高性能数字媒体处理器。本文所研究的采集编码系统是无线视频监控系统PU端的重要部分, 其硬件功能框图如图2所示。

DM6467具有非常丰富的外围设备接口, 系统充分利用这一优点, 采用两片TVP5158芯片作为采集译码芯片, 可同时完成最多8路D1实时视频采集和H.264编码。两片TVP5158的视频输出口分别接入到DM6467的视频端口VPIF, 模拟视频经过A/D (analog/digital) 转换, 亮、色度分离, 降噪滤波等处理后转换为符合DM6467的VPIF接口传输的数字信号, 再由DM6467进行压缩编码等处理后送入通信模块 (网口或USB2.0) , 经无线或有线网络传输[3]。DM6467通过I2C总线对采集译码芯片进行控制, 串口RS232连接Windows工作台, 用于系统调试, 串口RS485接云台。另外还有PHY802.3以太网接口及Flash、DDR2等存储设备。

3 无线视频监控传输系统的设计

本视频监控系统的软件是以嵌入式Linux为基础的。无线视频监控传输系统大致分为:视频采集模块、视频编码模块、H.264视频流的R T P传输模块。

3.1 视频采集模块

V4L2 (Video For Linux Two) 是Linux系统平台下开发视频采集程序的一组规范, 是V4L (Video For Linux) 规范的升级版本。V4L2使用分层的方法为驱动程序的开发提供了一致的接口和清晰的模型, 这是Linux系统下视频采集程序开发的基础。开发程序员只需调用V4L2规范提供的的API, 即可快速实现应用程序的视频采集功能。本系统的视频采集功能, 也是使用V4L2 API来完成的[4]。Capture线程的程序流程如图3所示。

3.2 视频编码模块

Video线程负责从Capture线程获取一帧原始的视频数据, 对它进行H.264压缩编码, 然后再把压缩编码后的视频数据流发送给Writer线程。TI公司针对Da Vinci平台提供了多媒体数字信号编解码引擎 (CE, Codec Engine) , 是一组用于示例和运行XDAIS算法的API。CE封装了一组VISA (Video, Image, Speech, Audio) API接口, 而VISA类是用来与XDAIS-DM算法标准定义的基于各种多媒体算法的函函数集进行交互的接口。A R M端的程序可以简单地使用VISA API就可调用运行在DSP端的编解码算法, DSP高效的执行各种算法, 并通过VISA API将算法执行的结果返回给A R M端的程序。本系统的视频编码模块程序也使用了编解码引擎CE及VISA AP1[5]。Video线程的执行流程如图4所示。

3.3 H.264视频流的RTP传输模块

该模块负责把编码后的H.264视频流按照H.264数据的RTP封包策略打包成RTP数据包, 然后依次发送给远程客户端接收端程序, 这个模块是该实时视频传输系统的关键技术。这部分功能由Writer线程来完成, Writer线程的执行流程如图5所示。

4 测试结果

本文对PC客户端进行了测试, 将整个系统应用于监控楼道口安全中。摄像头放置在楼道大门口和实验室内, 铺设好所有设备、联通网络。在保证各个设备使用正常、网络畅通的情况下, 依顺序运行数据库、视频服务器、流媒体服务器、PC客户端、SIP服务器、SIP客户端。在客户端点击视频请求后, 迅速有视频数据从流媒体传上来, 播放流畅, 时延很小, 画面清晰, 如图6所示。

5 结语

本文针对运行在Da Vinci DVS6467T开发板上的视频监控系统, 详细说明了无线传输系统的系统的设计与实现。实验结果表明, 该方案可以实现流畅、延时小、画面清晰的视频监控, 具有较好的实用价值。

摘要:达芬奇技术是一款集成了DSP处理器、ARM处理器、软件、工具以及技术支持的综合型解决方案系列, 非常适用于开发各种优化的数字视频终端设备。本文介绍了一种基于达芬奇技术的数字视频监控传输系统设计方案。本文详细阐述了该系统的总体架构、硬件构成以及视频传输系统软件实现。

关键词:达芬奇技术,数字视频,TMS320DM6467,TVP5158

参考文献

[1]中国电信集团公司.中国电信网络视频监控业务技术规范 (V3.0) --总体技术要求[S].200708.

[2]中国电信股份有限公司上海研究院.中国电信网络视频监控业务技术规范 (V3.0) --中心服务平台分册[S].200808

[3]文武, 吴勇, 张杰.基于TMS320DM6467的视频采集系统设计[J].电视技术, 2011.35 (17) .39-40

[4]黄睿邦, 汤采江, 李文亮.Linux下基于Video4Linux的USB摄像头视频采集实现[J].现代计算机开发案例, 2009, (309) :182-184.

篇7:基于A8的嵌入式Linux远程视频监控系统的设计与实现

【关键词】嵌入式;Linux;指纹识别;MiniGUI

0.引言

计算机的发展使指纹识别技术得到高速发展。目前指纹识别系统的发展以嵌入式系统为主,嵌入式指纹识别系统需要构建可靠的嵌入式平台,而且由于资源有限,对指纹识别算法要求较高。嵌入式指纹识别系统体积小、灵活性高、操作简单,能够很好的满足实际需要。与其它生物识别技术相比,指纹具有较高的稳定性、独特性。指纹绝对可以通过每个指纹的细节特征进行区分。

1.指纹识别系统设计方案

本系统以S3C2410微处理器为核心,外围扩展了SDRAM、RAM芯片、FLASH芯片、RTL8019AS网卡芯片。S3C2410的通用IO口与液晶显示屏、键盘相连,完成与用户的交互操作,构成了了本系统的硬件开发板。指纹采集模块采用的是Veridicom公司的FPS200指纹传感器模块,并通过USB接口与开发板相连,实现数据指令的传送,从而在开发板上完成指纹的获取、预处理、提取特征值、特征值对比等功能。系统机构框架见图1。

操作系统启动后对FPS200指纹模块进行初始化,然后通过USB将采集到的指纹图像传送到ARM开发板上,应用程序对读入的指纹图像进行处理并,最后进行指纹的匹配。

2.嵌入式linux开发平台搭建与实现

2.1嵌入式系统概述

嵌入式操作系统(Embedded Operating System,简称EOS)负责嵌入式系统的全部资源的分配和调度工作,管理任务和并发操作,为开发人员提供统一的接口和硬件抽象。嵌入式操作系统除具备任务调度、中断处理、文件操作等一般操作系统所具有的最基本功能外,还具有小巧、稳定可靠、可移植性好、可扩展性好、具有强大的网络功能及硬件支持等优点。

2.2嵌入式Linux交叉编译环境的搭建

交叉编译需要一个高性能的宿主机,用来编译应用开发的源程序,然后可以生成目标平台的可执行程序。建立交叉编译环境需要完成两件事:宿主机的选择和交叉编译环境的建立。

2.2.1宿主机的选择

嵌入式Linux开发的宿主机可以选择安装Linux操作系统的主机或是装有Linux虚拟机的主机。本文选择Fedora12作为宿主机的操作系统,Linux宿主机与目标机通过两种方式进行连接:(1)网络方式,通过TFTP和NFS服务;(2)串口方式minicom。

2.2.2交叉编译环境的建立

交叉编译就是在一个平台上编译生成可在另一个平台上执行的程序。平台是指体系结构(Architecture)和操作系统(Operating System)。为了Linux的应用程序的开发,构建一个多体系结构的交叉编译环境是非常必要的。

2.5设备驱动程序移植

在Linux系统下将设备分为三类:字符设备,块设备和网络设备。字符设备驱动程序与访问普通文件一样,需要至少实现open、close、read和write等方法,但是普通文件可以前后移动的访问,字符设备通常只能顺序访问。块设备与字符设备类似,块设备上可以容纳文件系统。但是块设备和字符设备在内核中数据的管理方式不同,内核与驱动程序之间的软件接口也不同。

Linux设备驱动的移植分为两种,一种是内核已经支持的硬件,这些设备驱动移植比较简单,只需在内核配置时加入该设备,并添加相应的初始化代码即可。另一种是内核不支持的硬件,首先要编写相应的驱动程序,然后通过交叉编译生成驱动模块文件,在应用程序使用该驱动时加载驱动模块。与U-Boot的移植一样,Linux内核也需要对K9F1208U0B NAND Flash、RTL8019AS网卡进行驱动的移植,而且内核中还要加入LCD、触摸屏和USB驱动的移植。

2.6根文件系统的设计

嵌入式Linux可以支持的多种文件系统,最常用的是Cramfs、YAFFS、JFFS等。

3.指纹识别算法研究

指纹识别算法是将采集到的指纹与指纹模板进行对比,判断它们是否为同一枚手指。目前的指纹识别过程如图3所示。系统从指纹传感器获得原始指纹图像,首先要对采集的图像进行预处理,将噪声等无用信息去除,并且将有用信息加强。其次对处理后的图像提取特征,获得能够区分指纹的唯一性特征。注册指纹是把得到的指纹加入到指纹库中。最后对指纹匹配,通常为了节省查找时间,会将指纹数据库分类。

3.1指纹图像预处理

指纹模块采集到的指纹图像是灰度图像,这些灰度图像中通常包含有噪声等无用信息,而这些无用信息严重影响到指纹识别系统的准确性,为了提高系统的性能需要对指纹图像进行预处理。指纹图像预处理包括提取指纹图像中指纹的有效区域,去除有效区域中的噪声,加强指纹有效信息,为指纹特征提取和最终的识别提供好的条件。

3.1.1归一化

归一化的算法描述如下:假设指纹图像大小为N×N,G(i,j)为像素点(i,j)的灰度值,N(i,j)为归一化后像素点(i,j)的灰度值,对指纹图像中的像素点依次应用公式(1)实现归一化。归一化处理调整图像灰度值的均值和方差到一个希望的范围内,保证采集到的指纹图像的灰度值能够在同一个级别上,为以后的处理算法提供一个好的条件。

3.1.2分割

指纹模块采集到的指纹图像包括指纹和背景两部分,所以在预处理时需要将背景分割出去,只留下指纹部分。分割操作就是将指纹图像的有效指纹区域保留下来进行后续的预处理操作。

3.1.3基于点方向的二值化

通常在对指纹图像进行二值化之前要先完成滤波去噪,如卷积法、Gabor等,但是这些算法运算量较大,不适宜在嵌入式应用系统中使用,所以本文中采用将滤波和二值化合并的算法,即基于点方向的二值化,能够在较小的运算代价下去除一定的粘连和连接断文等。二值化操作就是将255级灰度图像转化为只显示黑和白两种颜色的指纹图像。

3.1.4去噪

虽然二值化能够消除一些噪声干扰,但是可能会引入新的噪声,而且指纹纹线上可能会存在少数气泡噪声,指纹图像边缘上也会有部分毛刺存在。这些噪声会对后面的指纹特征提取造成影响,所以在完成二值化操作后需要进行一步去噪的操作,删除指纹图像边缘的毛刺和对指纹纹线上的气泡进行填充。

3.1.5细化

经过上面几步的处理,基本得到了指纹纹线,但是纹线的宽度却是不均匀的,原因可能是采集指纹图像时手指压力大小不同或是手指不干净等噪声影响,纹线不均匀会给指纹特征提取带来比较大的误差。对图像进行细化的算法有很多,常用算法有:Hitditcb算法、E.S.Deutsch算法和OPTA算法。

3.2指纹特征提取

在进行指纹特征提取前会利用纹线跟踪算法对指纹图像中纹线进行修复,修复后的指纹图像会提高指纹特征提取的效果和效率,但是如果指纹图像噪声干扰严重时,指纹修复就是一件非常困难的任务,对于不同的指纹图像,指纹修复算法效果差别会很大,从而影响到指纹识别算法。还有一种处理方法是,对细化后的指纹图像直接进行指纹特征提取,当然提取的特征中会包含大量的伪特征,但是这样的提取过程简单,简化了算法的复杂度;然后再根据实际中真实特征点和伪特征点的特点,对提取的特征进行筛选,删除伪特征,最终得到真实有用的特征点集。

3.3指纹特征匹配

指纹匹配是指纹识别系统非常关键的一步,目前已经做了大量的研究,常见的匹配算法有基于点模式的指纹匹配算法,基于纹理结构的匹配算法,基于纹线的匹配算法等。点模式匹配算法因其不高的时间和空间复杂度,非常适合在嵌入式环境下使用。本文就采用基于二维群集的点模式匹配算法进行指纹匹配。

4.结束语

本设计在S3C2410实验箱平台上实现基于Linux操作系统的指纹识别系统的设计与实现,采用先进的FPS200指纹采集模块,设计了良好的图形交互界面。本文对基于嵌入式linux的指纹识别系统进行了深入研究,硬件平台采用基于ARM9架构的S3C2410嵌入式平台。对指纹识别算法进行了深入的研究,选择和改进后的算法更适用于嵌入式平台,算法主要分为三个部分:指纹图像预处理、特征值提取和指纹匹配。 [科]

【参考文献】

[1]颜永龙.嵌入式自动指纹识别系统若干问题的研究[D].重庆:重庆大学硕士学位论文,2008.

[2]陈梁.嵌入式指纹识别系统研究与实现[D].南京:南京航空航天大学硕士学位论文,2007.

[3]丁飞.基于的指纹识别系统的研究与实现[D].广州:华南理工大学硕士学位论文,2007.

篇8:基于A8的嵌入式Linux远程视频监控系统的设计与实现

1 硬件平台

本系统硬件平台选用飞凌嵌入式公司的FL2440开发板,该开发板的处理器为三星公司推出的32位RSIC S3C2440A芯片,该芯片采用ARM920T内核,主频400MHz,可倍频至533MHz,整体融合了MMU、AMBA BUS和Harvard结构。具有独立的16KB的指令cache和16KB的数据cache,64M的SDRAM,256M的NAND Flash,12MHz系统外部时钟电源,32.768MHz的RTC时钟源,支持3.3V或者5V电源供电。该平台还扩展了一个100M网口,采用DM900AE,带连接和传输指示灯;四个USB HOST接口;一个USB Device接口。任意一个USB HOST接口可接zc301摄像头,该摄像头自带JPEG硬件编码电路,能够高速速实现图像编码,减轻处理器的负荷,从而保证了视频的流畅。

2 系统的软件实现

2.1 Boot Loader的移植与嵌入式Linux的移植

本文的Boot Loader选用U-Boot-1.1.6,经过配置、编译、连接最终得到ELF格式的U-boot,Makefile还会将它转换为二进制格式、S-Record格式,利用DNW和并口进行烧写Boot Loader。在PC机的Linux下根据需要对内核进行配置和裁剪,本系统使用的是2.6.12版本的内核,最后编译成映像文件z Image,通过烧写好的Boot Loader烧写到开发板的NAND Flash分区上。

2.2 视频采集的实现

2.2.1 摄像头驱动的实现

zc301摄像头的驱动是spca5xx,该驱动是一个通用驱动,针对嵌入式环境,有专门的补丁(patch),本系统用到是usb-2.6.12LE06.patch.tar.gz,下载好后对内核进行打补丁即可,然后重新配置内核。摄像头的相关配置为:

编译生成新的内核后,可以使用命令insmod加载该模块。

2.2.2 基于Video4Linux(V4L)视频采集模块的实现

当USB摄像头被成功驱动后,再编写一个对视频图像采集的程序就可以实现视频的采集,本系统针对视频设备文件/dev/video0进行视频图像采集的程序设计,当开发板插上USB摄像头后,对文件video0进行操作就是对摄像头的操作。当进行图像采集时,首先打开摄像头设备,再对图像参数和摄像头分辨率进行设置,对图像的采集用内存映射的方式进行。内存映射即mmap(),它是将将一个文件或者其它对象映射进内存,而对内存的访问往往是最快的。mmap()系统调用使得进程间通过映射同一个文件实现共享内存,各进程可以像访问普通内存一样访问文件,不需要调用read(),write()等文件操作函数,mmap()方式需要的内存空间较大、实现非常复杂、但读取速度很快,而read()方式则与mmap()方式相反。所以系统在程序的设计上采用了mmap()方式。采集的流程图如图1所示。

利用内存映射方式截取视频操作如下:

1)定义相关数据结构

struct video_mmap vmmap;

struct video_capability videocap;

struct video_mbuf videombuf;

struct video_picture videopict;

struct video_window videowin;

struct video_channel videochan;

struct video_param videoparam;

2)打开摄像头设备:if((vd->fd=open(vd->videodevice,O_RDWR))==-1)

并初始化;使用ioctl函数实现对摄像头进行设置:if(ioctl(vd->fd,VIDIOCSPICT,&vd->videopict)<0)包括对图像参数和摄像头分辨率的设置。

3)利用函数mmap()将摄像头的设备文件映射到内存:

vd->p Framebuffer=

(unsigned char*)mmap(0,vd->videombuf.size,PROT_READ|PROT_WRITE,

MAP_SHARED,vd->fd,0);

此函数执行成功时将返回映射内存区的首地址,执行失败返回-1。

当采集完一帧数据后,在服务器端采用推送技术,主动发送信息,监控端随时显示服务器发送的视频图像,从而达到视频监控的目的.

2.3 嵌入式Web服务器的实现

Linux系统目前支持boa,httpd等Web服务器,由于嵌入式系统的处理器能力和存储器容量有限,本系统选择Boa Web服务器。Boa是—个单任务的HTTP服务器,能够实现HTTP1.1协议的基本内容,支持CGI技术,源代码开放。同时,本系统采用C语言编写的CGl来实现Web,CGl程序接受客户端浏览器发送给服务器的信息,同时对访问权限进行控制,将响应结果再返回给Web服务器和浏览器,PC机的浏览器端通过Active控件就能实现视频监控。

2.3.1 交叉编译Boa

交叉编译工具使用的是crosstool-3.4.1.tar.bz2,实现步骤如下:

1)下载Boa源码包,解压后,在源码所在的目录下运行./configure命令,生成Makefile文件。

2)将生成的Makefile文件中的其中两行修改为:

ARCH:=arm

CROSS_COMPILE:=/usr/local/arm/3.4.1/bin/arm-linux-

3)make一下即可生成可执行程序boa。

2.3.2 Web服务器的配置

将Boa的主配置文件boa.conf放在/etc/boa目录下,将mime.types文件复制到/etc目录下,boa.conf的主要设置如下:

Port 80

Error Log/var/log/boa/error_log

Access Log/var/log/boa/access_log

Document Root/var/www

Mime Types/etc/mime.types

Script Alias/cgi-bin//var/www/cgi-bin

最后将编译好的可执行程序boa移植到开发板的/etc/boa目录下,在DNW下输入./boa&命令即启动Boa服务器,这时开发板就相当于视频监控的服务器端。

3 监控系统的整体实现

当平台搭建完成,应用程序(包括视频采集程序和服务器程序)移植完成,就可以进行视频监控。先需要在PC机上安装Active控件,通过在PC机的浏览器里输入开发板的IP地址,就能看到实时的监控视频。

4 结束语

安全防范的监控已逐渐深入到社会生活的各个领域,视频监控系统是安全防范系统的重要组成部分。本系统是基于嵌入式Linux的实时视频监控系统,因其具有实时性强、网络化、价格低、数字化、信息内容丰富、适合远距离监控、便于人员管理控制等优点,本系统是一个比较好的解决方案,具有广泛的应用前景。

参考文献

[1]王成儒,李英伟.USB2.0原理与工程开发[M].长沙:国防工业出版社,2007.

[2]刘富强.数字视频监控系统的开发及应用[M].北京:机械工业出版社,2003.

[3]王田苗.嵌入式系统设计与实例开发——基于ARM微处理器.II实时操作系统[M].2版.北京:清华大学出版社,2003.

[4]马忠梅,李善平,康慨,等.ARM&Linux嵌入式系统教程[M].北京:北京航空航天大学出版社,2004.

[5]Yaghmour K.构建嵌入式Linux系统[M].北京:中国电力出版社,2004.

[6]周怡聪.多媒体计算机外部设备[M].北京:北京大学出版社,2002.

篇9:基于A8的嵌入式Linux远程视频监控系统的设计与实现

关键词:嵌入式Linux;智能手机;系统软件;实现探究

中图分类号:TP391.9

随着经济的进步和社会的不断发展,极大的促进了智能手机的进一步发展,从而有效的增加了智能手机的功能。在实际生活中,手机除了具备基本的通话与收发短信的功能之外,还能够进行网上冲浪网,视频与拍照以及听音乐等多媒体功能,这时就对智能手机的处理器功能提出了较高的要求。其要在拥有较高性能的嵌入式处理器的基础之上,要更加注意手机系统软件平台的稳定性、可移植性与可扩展性。

本文结合具体实例,在智能手机的硬件设计上,选取了由因特尔公司基于XScale核之上,进行研发与使用的PXA272高性能嵌入式处理器;与此同时,还采用了由展讯公司研发设计的SM5100B通讯模块、flash、LCD与触摸屏等方面,进而能够全方位的变现一个系统相对完整的智能手机硬件开发平台。在此之中PXA272处理器,其在标配主频最高性能能够达到520MHz的处理器基础上,最快速度的处理相关事物,然而XScale核主要采ARMV5TE架构,同时拥有高性能与低功耗的优点。因此该项处理器在PDA、智能手机、MP3等高科技产品中得到了广泛的推广和使用。与此同时,通讯模块SM5100B,内部包括了基带芯片、RF射频芯片组、ComboFlash芯片以及GSM/GPRS终端所必须的全部软件功能,主要支持标准的AT命令控制,拥有语音功能、SMS信息、数据功能、GSM增值服务等方面的功能。下面结合具体实例,进行详细的描述和探索本智能手机系统软件就具体设计。

1 嵌入式Linux背景下智能手机系统软件平台设计

对于智能手机的系统而言,其系统软件的相关设计是其的难点和重点,因此智能手机是否拥有较高质量的设计对能够有效确保系统的稳定性,保证其能够有效的实现可移植性以及可扩展。具体而言,可以将手机系统软件在层次方面,以此分为四层,操作系统层为最底层,主要目的是为了实现对嵌入式Linux的移植与裁剪;其次为系统服务层,通常而言所有与手机相关的业务以及数据库相关服务均由此层进行处理;第三层为中间层,其中嵌入式GUI,作为实现人机交互的有效接口,而通过J2ME的中间件可以对java程序的下载与运行提供有效的支持;第四层则为智能手机的应用管理层,主要对手机的基本功能以及其它相关的应用进行支持。

2 嵌入式Linux背景下智能手机操作系统层

当今市场竞争日益加剧,因此对于众多手机生产厂商而言,不断的研发和升级智能手机的操作系统,是使其能够在市场竞争中占据有利地位重要因素,也是其提高经济效益与社会效益的主要方面。目前市场上面起主导地位的智能手机操作系统为下面三个:Symbian、WindowsCE和Linux。在此之中Linux依据其自由、免费和开放源代码的独特优势,在手机操作系统的市场里起着日益重要的作用,占据重要的地位。与此同时还有效的结合XIP技术,从而能够快速的启动Linux操作系统,来最大限度的解决相关电源管理等问题。

3 嵌入式Linux背景下智能手机系统服务层

3.1 GSM/GPRS服务

通话服务,是智能手机的一个重要应用,因此需要对其进行具体的系统服务配备,以此来对通信模块事件和响应用户事件进行合理有效的监听。在现实生活中,Gsmlib库则是对AT命令的一个封装,具体而言,能够有效的调用gsmlib库,从而对智能手机通讯模块的一些相关操作实施有效的调用。作为系统服务的相关进程——GSM/GPRSServer在对通讯设备进行初始化指令之后,可以有效的等待用户事件,例如拨打和挂断用户电话以及发送普通短信或者彩信、彩铃等方面。

3.2 嵌入式数据库

在该系统中的嵌入式数据库,可以针对电话薄、短信息、黑名单、日程安排等各种数据进行合理有效地保存。在现实生活中,本系统还可以快捷方便的移植嵌入式数据库BerkeleyDB,与此同时,依据该系统开发了一个特别使用于手机访问数据库的库dbphone的设计和开发。具体而言,是电话薄在手机的SIM卡上进行用户名、号码的有效保存,都保存在SIM卡上的存储栏目里。这样就能够保证数据的同步,对于嵌入式数据库里的信息而言,其也主要用于用户名、号码和位置。在对短信息的保存方面,则是其位置、状态、号码、短信内容、时间等方面。

4 结束语

随着经济的进步和社会的不断发展,极大的促进了智能手机技术的发展和应用。本文结合具体实例,详细的分析和介绍了在嵌入式Linux的智能手机系统软件平台之上的智能手机设计,从而有效的实现了智能手机相关功能。通常而言,大多数能够在Linux系统之上应用的程序,一般都可以把其移植在智能手机的系统软件上之后,进行合理有效的运行,例如图片浏览器、电子词典、图书阅读器等。

参考文献:

[1]高金魁,周忠海.基于嵌入式Linux的智能手机系统软件的设计与实现[J].重庆科技学院学报(社会科学版),2009,19(20):36-37.

[2]左大权.嵌入式Linux系统快速启动技术的研究与实现[J].学术交报,2007,24(20):55-56.

[3]ParkC,JaeyuSeo,SunghwanBae,eta.lAlow-costmemoryarchitec-turewithNANDXIPformobileembeddedsystems.Hardware/SoftwareCodesignandSystemSynthesis,2003.FirstIEEE/ACM/IFIPInterna-tionalConferenceon1-3Oct,2003:138-143,2009,12(S1):60-61.

[4]EnriqueCOrtiz,EricGiguere.MobileInformationDeviceProfileforJava2MicroEdition(J2ME).ISBN:0471034657,JohnWiley&Sons.January15,2001,23(11):154-155.

[5]高娟,傅城,尤晋元.一种Linux智能手机的Java图形平台的设计及实现[J].计算机用,2011,16(12):50-51.

[6]周绪宏,梁阿磊,戚正伟.基于嵌入式Linux的智能手机系统软件的设计与实现[J].计算机应用与软件,200816(12):35-37.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:基于嵌入式系统设计及应用的教学实践研究 下一篇:基于嵌入式的掌上点菜系统的设计