网络通信 频道

基于Linux的嵌入式网络摄像机设计

2 视频采集模块设计与实现
视频采集模块是嵌入式网络摄像机的核心模块之一。它通
过嵌入式Linux 操作系统调度V4L(video4linux)和影像设备驱动
程序来完成视频捕获。V4L 是Linux 影像系统与嵌入式影像的
基础, 是Linux kernel 里支持影像设备的一组APIs, 配合适当的
视频采集卡与视频采集卡驱动程序, V4L 可以实现影像采集、
AM/FM无线广播、影像CODEC、频道切换等功能。目前, V4L 主
要应用在影像串流系统与嵌入式影像系统里, 其应用范围相当
广泛, 例如:远程教学、远程医疗、视频会议、视频监控、可视电话
等。V4L 为2 层式架构, 最上层为V4L 驱动程序, 最下层则是影
像设备驱动程序。
在Linux 操作系统中, 外部设备都作为设备文件来处理, 因
此, 对外部设备的操作就转变成对设备文件的操作。视频设备
文件位于/dev/ 目录下, 一般情况下为video0。当摄像机通过
USB 接口连接到视频采集终端后, 在程序中调用V4L APIs 对设
备文件video0 的读操作即可实现摄像头视频数据采集。其主要
过程如下:
1) 打开设备文件: int v4l_open(char *dev, v4l_device *vd){}打
开影像源的设备文件;
2) 初始化picture: int v4l_get_picture(v4l_device *vd){} 获取
输入的影像信息;
3) 初始化channel:int v4l_get_channels(v4l_device *vd){} 获取
每个channel 的信息;
4) 对channel 设置norm:int v4l_set_norm(v4l_device *vd, int
norm){} 对所有的channel 设置norm;
5) 设备地址映射:v4l_mmap_init(v4l_device *vd){} 返回存放
图像数据的地址;
6) 初始化mmap 缓冲区: int v4l_grab_init(v4l_device *vd, int
width, int height){};
7) 视频捕获同步: int v4l_grab_sync(v4l_device *vd){};
8) 视频捕获: int device_grab_frame(){}。
通过以上操作, 即可将摄像机视频数据采集到内存。采集到
内存的视频数据既可采用文件的形式保存, 也可将其压缩后通
过网络发布到Internet。本设计采用后一种处理方法, 即:将采集
的视频数据经MJPEG 压缩, 生成视频数据流并发布到Internet。
3 视频压缩模块设计
由于摄像机采集到的视频数据信息量较大, 如果直接将其
处理成视频, 将会给视频处理和网络数据传输带来很大的负担。
因此, 本设计采用高性能ARM9 处理器对采集到的数据进行
MJPEG 压缩。
JPEG(Joint Photographic Experts Group)—联合图像专家组的
简称, 它的主要目标是研究具有连续色调图像(包括灰度和彩色
图像)的压缩算法, 是MJPEG 的基础。JPEG 算法被确定为静态
数字图像压缩的国际标准, 不仅适用于静止图像压缩, 而且适用
于电视图像序列的帧内图像压缩。由于JPEG 压缩采用的是全
彩影像标准, 其主要处理过程包括:色彩模型转换、离散余弦—
DCT 变换、重排DCT 结果、量化、编码等。
MJPEG 是Motion JPEG 的缩写, 即动态JPEG。它将动画播
放与JPEG 结合, 按照25 帧/ 秒的速度使用JPEG 算法压缩视
频信号, 完成动态视频的压缩。
4 Web 服务器设计
在资源有限的嵌入式设备中可以使用的轻量级Web Server
有:httpd、thttpd、boa 等。本设计选用开源的、支持CGI 的Boa
Web Server, 其主要移植过程如下:
(1)到www.boa.org 下载最新软件包并解压到相关目录。
(2) 在目录boa/src 下的defines.h 文件顶部设置默认的
SERVER_ROOT 路径。
(3) 选择交叉编译工具。在boa 目录下使用./configure
- - host=i686- pc- Linux- gnu- - target=arm- Linux完成对boa 的配置。
(4)执行make 编译boa 后即在src/ 目录下生成可执行文件boa。
(5)对boa.conf 文件进行配置。主要完成对boa 运行的端口
号、Server 根目录、log files、html 文件、cgi 文件目录及可读写的
temp 目录的属性的设置。
5 浏览器与服务器之间的通信—通
用网关接口
CGI (Common Gateway Interface) 是外部应用扩展程序与
WWW 服务器交互的一个标准接口。按照CGI 标准编写的外部
扩展程序能够处理客户端浏览器输入的数据, 从而完成客户
端与服务器的交互、实现动态Web 技术。在本设计中, 当用户
通过浏览器向网络摄像机发送控制信息(比如控制摄像机云台
的动作等)时, 服务器守护进程启动CGI 模块, CGI 模块通过串
口将控制命令传送给云台, 使云台执行相应的动作。其流程图
如图2 所示:
- 46 -
邮局订阅号: 82-946 360 元/ 年




嵌入式网络技术应用
《PLC 技术应用200 例》
您的论文得到两院院士关注
图2 CGI 控制云台动作原理流程图
6 Web 页面的设计
在本嵌入式网络摄像机中,Web 页面的主要功能是显示
Web 页面及动态视频信息。由于标准的html 网页只具有显示文
字和图片的功能, 因而无法在标准的html 网页里嵌入一个窗口
来“实时”观看视频图像。解决这个问题的一种方法是将“实
时” 视频监控软件嵌入到网页中。Microsoft 制定了ActiveX 规
范, 只要符合这个规范的软件都可以嵌入到网页中。为了能满
足多人同时“ 实时”观看视频图像, 在本设计中选用标准ActiveX
控件—VgPlayerObject 来实现这一功能。
7 结束语
本文提出了一种基于ARMS3C2410X 和Linux 的嵌入式网
络摄像机设计。采用嵌入式Linux 操作系统进行视频采集、压缩
并通过ActiveX 控件显示动态视频, 通过嵌入式Web Server 和
CGI 技术融合整个系统, 形成一套完整的网络摄像机系统解决
方案。由于系统采用高性能嵌入式处理器完成主要控制、压缩
和Web 处理工作, 因此该系统具有结构简单、性能稳定、成本低
廉等优点, 在油田、油气井现场视频实时监控、智能小区、移动
监控等领域具有广阔的应用前景。
本文作者创新点: 成功将CGI 技术应用到嵌入式网络摄像
机中, 利用简单的方法实现了用户和嵌入式系统的交互, 本网
络摄像机在智能监控和移动监控中有广阔的应用前景。
参考文献
[1]曹翔. 实时视频传输在MPLS 网络中的QoS 研究[J]微计算机
信息,2006,7- 3:58- 60.
[2]陈俊宏.Embedded Linux 嵌入式系统原理与实务[M].北京:中
国铁道出版社,2004.
作者简介:梅大成(1965.1- ), 男(汉族), 四川广安人, 西南石油大
学副教授, 硕士, 主要研究:数字信号处理、嵌入式系统; 杨大千,
男(汉族), 1977.5- , 四川绵阳人, 讲师, 研究方向:嵌入式系统。西
南石油大学(Southwest Petroleum University), 四川成都西南石油
大学研究生院; 赵娜, 女, 1982- , 四川成都人, 在读硕士研究生,
研究方向:嵌入式系统。西南石油大学(Southwest Petroleum University),
四川成都西南石油大学研究生院。
Biogr aphy:Mei DaCheng (1965.1 - ) , man (the Han nationality),
come from guangan SiChuan, associate professor,Master, master’s
teacher, research way: digital signal process、embedded system.
Southwest Petroleum University,computer science institute of SWPU
chengdu Sichuan.
(610500 四川成都西南石油大学)梅大成杨大千赵娜
(Southwest Petroleum Univer sity Chengdu Sichuan 610500)
Mei Da- Cheng Yang Da- Qian Zhao Na
通讯地址:(610500 四川四川成都西南石油大学计算机科学
学院)梅大成
(收稿日期:2007.5.23)(修稿日期:2007.6.25)
(上接第70 页)
随着PXA27x 处理器的逐步推广使用, 会有越来越多的开
发商和科研机构加入到研究和使用它的行列中, 相应的底层移
植工作也必将会越来越多, 本文总结的移植过程和扩展功能的
基本方法必将对类似的系统开发有直接借鉴意义。
本文作者创新点:本文对移植blob 的过程做了总结, 给出了
扩展blob 现有功能的建议, 对从事嵌入式Linux 系统移植与开
发工作的人员有直接指导作用。
参考文献
[1]毛德操,胡希明.嵌入式系统—采用公开源代码和StrongARM/
XScale 处理器[M].杭州:浙江大学出版社。2003 年:563- 566 页。
[2]白伟平,包启亮.基于ARM的嵌入式bootloader 浅析[J]微计算
机信息,2006.22,4- 2:53,99- 100。
[3]詹荣开. 嵌入式Bootloader 技术内幕[Z] . IBMDW,2003.
[4]Intel PXA27x Processor Family Developer’s Manual [P], Jan
2006.Intel co.ltd
作者简介:吴涛, 男, 1972.12 生, 博士, 副教授。主要研究方向包
括:软件开发与复用、软件质量保证与测试等;张翼, 男, 1981.10
生, 华中科技大学2004 级硕士研究生, 研究方向:嵌入式系统;
杨鹏, 男, 1981.11 生, 华中科技大学2005 级硕士研究生, 研究方
向:系统分析与集成。
Biogr aphy:Wu tao, Male, born in 1972, mainly interested
areas: Software development and duplicate usage, Software
quality assurance;Zhangyi, Male, born in 1981, the realm of
study: embedded systems;Yang peng, Male, born in 1981, the
realm of study: system analysis and integration.
(430074 武汉华中科技大学软件学院)吴涛张翼
(430074 武汉华中科技大学水电学院数字化工程与仿真中
心)杨鹏
(School of Softwar e Engineer ing)Wu Tao Zhang Yi
(School of Mater ials Science & Engineer ing . Huazhong
Univer sity of science and Technology, Wuhan, China)
Yang Peng
 

0
相关文章