摄像头驱动的使能配置、V4L2编程接口的设计应用
摄像头采集子系统
一.摄像头驱动的使能配置
摄像头软件驱动构架


摄像头采集系统由上图所示,硬件(摄像头) -> 驱动(Linux内核配置中,选择支持V4L2的驱动选项) -> V4L2接口设计 -> 图像采集。
硬件:选择USB摄像头,内置芯片ZC30系列,Linux包含的万能驱动兼容;
驱动:配置Linux内核,选择万能摄像头驱动中ZC30系列驱动文件、支持V4L2接口,编译下载内核;
内核下载至开发板并挂载后,摄像头开发环境以搭建完成,以下即为应用采集。
V4L2接口:编写基于V4L2接口的测试程序,使之能满足基本采集需求->测试程序camera.c;
应用:" arm-linux-gcc camera.c -o camera ",插上USB摄像头至开发板显示驱动连接信息,运行执行文件" ./camera ",即可捕获采集的图像。
二. V4L2图像编程接口基础设计
1.V4L2接口设计构架图:

由上图可看出,内核空间中帧缓冲存储着摄像头驱动所采集的图像信息,用户空间的应用程序需要获取采集到的的图像,则需要对帧缓存进行一下处理:
取出帧缓冲(出队列) -> 读取帧缓冲中数据 -> 放回帧缓冲(入队列)!
2. V4L2摄像头编程模型

步骤1~3 :为图像参数的基本配置;
步骤4~7 :为帧缓冲的处理工作,必须将内核的帧缓冲映射到用户空间,方可获取图像信息;
步骤8~11:为采集图像流程,通过对帧缓冲进行取出 -> 读取 -> 放回,实现对图像的采集;--->>>此步骤可按照应用要求设计!
摄像头驱动的使能配置、V4L2编程接口的设计应用的更多相关文章
- s5k4ba摄像头驱动分析
注释: 本驱动是基于S5PV310的,但是全天下的摄像头驱动都是采用V4L2,因此驱动框架流程基本差不多.其中fimc_init_camera()函数会回调.init函数,该函数主要就是通过IIC总线 ...
- 网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结
引: http://coach.iteye.com/blog/2024511 什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. ...
- 阶段2-新手上路\项目-移动物体监控系统\Sprint2-摄像头子系统开发\第2节-V4L2图像编程接口深度学习
参考资料: http://www.cnblogs.com/emouse/archive/2013/03/04/2943243.htmlhttp://blog.csdn.net/eastmoon5021 ...
- 8、摄像头驱动_Linux的V4L2架构分析
V4L2架构可以参考 linux-3.4.2\Documentation\video4linux\v4l2-framework.txt V4L2全名为Video For Linux 2,它是针对Li ...
- [国嵌攻略][171][V4L2图像编程接口深度学习]
V4L2摄像编程模型 1.打开摄像头设备文件 2.获取驱动信息-VIDIOC_QUERYCAP 3.设置图像格式-VIDIOC_S_FMT 4.申请帧缓冲-VIDIOC_REQBUFS 5.获取帧缓冲 ...
- V4L2(二)虚拟摄像头驱动vivi深入分析【转】
转自:http://www.cnblogs.com/tureno/articles/6694463.html 转载于: http://blog.csdn.net/lizuobin2/article/d ...
- 摄像头驱动——V4L2框架分析
一.概述 Video for Linux 2,简称V4l2,是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口. 摄像头驱动是属于字符设备驱动程序.(分析linu ...
- 二十四、V4L2框架主要结构体分析和虚拟摄像头驱动编写
一.V4L2框架主要结构体分析 V4L2(video for linux version 2),是内核中视频设备的驱动框架,为上层访问视频设备提供统一接口. V4L2整体框架如下图: 图中主要包括两层 ...
- 找回了当年一篇V4L2 linux 摄像头驱动的博客
从csdn找回 , 无缘无故被封了..当时损失不少啊!!!!!!!!! linux 摄像头驱动 :核心数据结构: /** * struct fimc_dev - abstraction ...
随机推荐
- SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
原文:SQLSERVER使用密码加密备份文件以防止未经授权还原数据库 SQLSERVER使用密码加密备份文件以防止未经授权还原数据库 在备份数据库的时候,用户可以为媒体集.备份集或两者指定密码 在ba ...
- 安卓ImageButton圆角按钮设置
首先图片要做成圆角的,使用美图秀秀,这个不多说. 之后使用设置了圆角的按钮,效果有缺陷,按钮会有灰色的边角. 类似这样: 去掉的方法是将layout的 android:src="@draw ...
- UBUNTU 16.04 + CUDA8.0 + CUDNN6.0 + OPENCV3.2 + MKL +CAFFE + tensorflow
首先说一下自己机子的配置 CPU:Intel(R) Core(TM) i5-5600 CUP @3.20GHz *4 GPU : GTX 1060 OS : 64bit Ubuntu16.04LTS ...
- QML动画概述(几十篇相关博客)
QML提供了丰富的动画元素,说起动画,无非是给UI增光添彩罢了.在QML中,动画常常与State和Transition联系在一起,这几个概念(下面的例子中都用到了)都比较简单,相关介绍可查看Qt官方文 ...
- Codility--- NumberOfDiscIntersections
Task description We draw N discs on a plane. The discs are numbered from 0 to N − 1. A zero-indexed ...
- python自动化测试之mysql5.0版本数据库查询数据时出现乱码问题分析
1.确保数据库编码是utf8编码.若不是,请将my.ini的client,mysql,mysqld三个字段下面添加default-character-set = utf8,这样可以永久改变在新建数据库 ...
- kubernetes client-go解析
注:本次使用的client-go版本为:client-go 11.0,主要参考CSDN上的深入浅出kubernetes之client-go系列,建议看本文前先参考该文档.本文档为CSDN文档的深挖和补 ...
- git push 时 failed to push some refs 的解决方案
我们在利用 GIt 上传代码的时候,往往会遇到这样一个问题,导致我们的代码没有办法正常上传到仓库中 造成这个问题的原因其实很简单,就是因为远程仓库和本地库不一致. 基于这样的一个问题,解决办法自然也就 ...
- Scala 学习之路(九)—— 继承和特质
一.继承 1.1 Scala中的继承结构 Scala中继承关系如下图: Any是整个继承关系的根节点: AnyRef包含Scala Classes和Java Classes,等价于Java中的java ...
- string类总结第二部分实战练习
第二部门:实战练习 昨天由于时间原因,这个部分应该在同一个文章中的,无奈只能今天再开一个了,今天主要是讲一些面试题 一:equals和==的区别 最简单的面试题,也是最基础的,我估计每个学习java的 ...