Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.5 V4L2 control的原理和实现
1. 概述
既然涉及到视频输入,就会有很多与 ISP
相关的效果,比如对比度、饱和度、色温、白平衡等等,这些都是通用的、必须的控制项,并且大多数仅需要设置一个整数值即可。Linux
内核中V4L2
已经为我们提供了这个控制类型的API
,我们只需要明确自己需要添加什么控制类型,然后将其添加进内核中即可。该部分摄像头代码一半厂家会提供驱动或者相对应的参数,否则没有图像处理知识很难开发出来。
2. v4l2_ctrl 注册流程框图
- 一个
v4l2
设备可以对应多个v4l2_ctrl_handler
,一个v4l2_ctrl_handler
下可以对应多个控制单元,这些控制单元统一交给v4l2_ctrl_ref
链表统一管理,具体如下:
- 控制单元类型定义:
控制类型 | 说明 |
---|---|
V4L2_CID_VBLANK | 垂直消隐。 每帧之后的空闲时间段,在此期间不生成图像数据。垂直消隐的单位是行。 每条线的长度为图像宽度加上行消隐&#x |
Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.5 V4L2 control的原理和实现相关推荐
- Linux ARM平台开发系列讲解(IIO子系统) 2.8.1 IIO驱动开发分析
1. 概述 工业场合里面也有大量的模拟量和数字量之间的转换,也就是我们常说的 ADC 和 DAC.而且随着手机.物联网.工业物联网和可穿戴设备的爆发,传感器的需求只持续增强.比如手机或者手环里面的加速 ...
- Linux ARM平台开发系列讲解(GMSL摄像头篇)1.2 MAX9296 GMSL链路配置
1. 概述 GMSL摄像头主要是由sensor + 串行器 +解串器组成,软件需要做的就是写这三部分的驱动,让摄像头数据能到达SOC内部处理,如下图是max9286和max96705的链路,其它同类型 ...
- Linux ARM平台开发系列讲解(GMSL摄像头篇)1.1 GMSL协议介绍
1. 概述 Maxim集成公司发布了GMSL作为汽车行业视频应用程序的通信链接.GMSL基于SerDes( 串行器-解串器)技术,这意味着它在传输端使用序列化,在接收端使用反序列化.它是专门为高级驾驶 ...
- Linux ARM平台开发系列讲解(网络篇) 2.3 Marvell 88EA6321/88EA6320 Switch 设备树的配置分析
1. 概述 交换机设备树主要是要配置它的端口数量,每个Port的物理模式(例如Mac to Phy).双工模式.连接速度.地址和与之连接的PHY地址等等,这一节就以88EA6321做例子解析一下DSA ...
- Linux ARM平台开发系列讲解(SPI与TTY实战) 2.6.1 SPI主设备驱动WK2124实战
1. 概述 本次主要讲解wk2124 SPI转四路串口的驱动,比较新手而言难度过大,建议看完spi章节再看看后续uart章节,再来学习该驱动. 2. wk2124 驱动源码下载 本驱动只可以参考学习, ...
- Linux ARM平台开发系列讲解(入门篇) 1.1.3 开发板、Ubuntu和windows三者相互连接,无需路由器,全网最详细
1 . 本次使用的是没有路由器的情况,采用网线让开发板和电脑直接相连,如果有路由器或者集线器的话尽量使用,不然直接相连有时候会出现奇奇怪怪的问题,下面就是我平时的配置环境.开发板网线直连电脑,然后电脑 ...
- Linux ARM平台开发系列讲解(自旋锁) 3.3.1 Linux内核自旋锁描述
1. 概述 原子操作只能对整形变量或者位进行保护,但是,在实际的使用环境中怎么可能只有整形变量或位这么简单的临界区.举个最简单的例子,设备结构体变量就不是整型变量,我们对于结构体中成员变量的操作也要保 ...
- Linux ARM平台开发系列讲解(TTY) 2.5.2 串口TTY子系统驱动源码分析
1. TTY驱动流程 如下图,整个TTY驱动流程基本如下,后续会逐一分析,先记住这个框架. 2. TTY驱动流程分析 2.1 驱动入口和出口 2.1.1 函数接口用法分析 根据自己选择的驱动模型,调用 ...
- Linux ARM平台开发系列讲解(网络篇) 2.1 Marvell 88EA6321/6320 Switch 数据手册阅读之了解芯片功能
1. 概述 注意:88EA6321/88EA6320 和 88E6321/88E6320软件上无区别,区别在于硬件外围电源上 Marvell 88EA6321/88EA6320设备是一个集成了7端口千 ...
最新文章
- sap 后台作业状态都是什么含义
- P6623-[省选联考2020A卷]树【Trie,树上启发式合并】
- adb 启动命令,pc启动两个微信,INSTALL_FAILED_CONFLICTING_PROVIDER
- 专访|从程序员到架构师:交流和分享最能让技术人进步
- coon.php连接,新手关于$coon的连接问题
- AAE结合resnet的生成器搭建(失败)
- 维谛技术(Vertiv)开启网络能源新时代
- Deep Learning(深度学习)学习笔记整理
- 【JAVA】:java中getTime函数
- PHP png合并到jpg,合并jpg的png并保持与php的透明度
- 用C语言实现简单的猜数字小游戏
- CSS3 弹性盒子和常用标签
- HTTP协议的 “无连接,无状态”
- 解决Total Commander总是使用老旧的“Windows照片查看器”打开图片的问题
- 同步,异步,并行概念的歪解
- Linux服务器简单配置
- 【STM32H7教程】第94章 STM32H7的SPI总线应用之双机通信(DMA方式)
- 【element-ui】 el-table 表格动态合并相同数据单元格最全教程,可指定列+自定义合并条件,附完整代码
- .NET把小写数字金额转换成大写人民币金额的两种算法
- 网易员工对《阿凡达》的爆笑影评