原创 嵌入式网络摄像机视频采集模块设计与实现

2008-8-30 17:20 2235 8 11 分类: MCU/ 嵌入式
视频采集模块是嵌入式网络摄像机的核心模块之一。它通过嵌入式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。
PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户200013 2009-3-12 23:29

hao

用户1399169 2008-8-31 08:48

下次把全文贴上啊,呵呵

xucun915_925777961 2008-8-30 23:52

好, 不错呀
相关推荐阅读
用户158720 2010-01-20 18:55
好久没有写博客了,如果想找请看下边的网址
http://bbs.eeworld.com.cn/index.php?fromuser=daicheng...
用户158720 2008-12-20 18:44
状态机的两种写法
有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM--有限消息机)。它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,...
用户158720 2008-12-20 18:43
基于状态机控制的面向对象的前后台协从多任务系统设计
一、任务分析    根据题目要求,划分任务如下:    1、键盘扫描线程    2、灯显示线程    3、LED1-LED4四个独立线程    4、后台监视线程    5、串口收发中断    共计7个...
用户158720 2008-12-20 18:42
一种裸奔多任务模型
stateMachine + timerTick + queue。在RTOS环境下的多任务模型:任务通常阻塞在一个OS调用上(比如从消息队列取数据)。外部如果想让该任务运转,就要向消息队列发送消息。任...
用户158720 2008-12-19 20:35
C-51语言程序设计基础
c51设计基础<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />1.7 寄存器组定义8...
用户158720 2008-12-19 20:31
硬件工程师面试试题
模拟电路 1、基尔霍夫定理的内容是什么?(仕兰微电子) 2、平板电容公式(C=εS/4πkd)。(未知) 3、最基本的如三极管曲线特性。(未知) 4、描述反馈电路的概念,列举他们的应用。(仕兰微电子)...
我要评论
3
8
关闭 站长推荐上一条 /3 下一条