Linux Driver V4L2
win9zz
Life is brief, and then you die, you know?
展开
-
V4L2框架分析学习
1、概述Video4Linux2是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口。凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代码避免代码冗余等好处。就像公司的老板一般都不会直接找底层的员工谈话,而是找部门经理了解情况,一个是因为底层屌丝人数多,意见各有不同,措辞也不准,部门经理会把情况汇总后再向上汇报;二个是老板时间宝转载 2017-05-02 21:32:35 · 1751 阅读 · 0 评论 -
v4l2-controls
介绍V4L2 control API似乎很简单,然而正确实现地驱动程序很快就变得很难。因为大部分需要处理control的代码实际上是不特定的驱动和可移动的V4L核心框架。毕竟,驱动程序开发人员感兴趣的惟一部分是:1)如何添加控件? 2)如何设置控件的值?(即s_ctrl)偶尔:3)如何获得控件的值?(即g_volatile_ctrl) 4)我如何验证用户建议的控制值?(即t...翻译 2018-03-18 23:45:48 · 3309 阅读 · 0 评论 -
M-JPEG、MPEG4、H.264都有何区别
压缩方式是网络视频服务器和网络摄像机的核心技术,压缩方式很大程度上决定着图像的质量、压缩比、传输效率、传输速度等性能,它是评价网络视频服务器和网络摄像机性能优劣的重要一环。 随着多媒体技术的发展,相继推出了许多压缩编码标准,目前主要有JPEG/M-JPEG、H.261/H.263和MPEG等标准。1、JPEG/M-JPEG①、JPEG是一种静止图像的压缩标准,它是一种标准的帧内压缩编...转载 2018-02-13 05:07:58 · 1877 阅读 · 0 评论 -
v4l2 核心分析 (待续)
v4l2核心是构建一个内核中标准视频设备驱动的框架,为视频操作提供统一的接口函数,由v4l2-dev.c实现,主要作用申请字符主设备号、注册class和提供video device注册注销等相关函数。涉及到的结构体:struct v4l2_file_operations { struct module *owner; ssize_t (*read) (struct file *,原创 2017-08-25 14:56:54 · 1696 阅读 · 0 评论 -
v4l2 ioctl框架分析
v4l2的ioctl框架由drivers/media/v4l2-ioctl.c实现涉及到的结构体:struct v4l2_ioctl_ops { /* ioctl callbacks */ /* VIDIOC_QUERYCAP handler */ int (*vidioc_querycap)(struct file *file, void *fh, struct v4l2_cap原创 2017-08-24 20:45:23 · 2243 阅读 · 0 评论 -
2440使用ov7670摄像头寄存器配置(待续)
使用2440CAMIF中的P通路,C通路涉及到的寄存器暂不设置。2440寄存器设置:OV7670是601接口,水平像素640,垂直像素480。s3c2440的输入源格式必须是YCbCr的,而我选的是ITU-RBT.601 YCbCr 8-bitmode,下面很重要的一个就是YCbCr的排列顺序。我用的是YCbYCr,即00,这必需与ov7670的YUV输出格式一致,在ov7原创 2017-07-24 17:58:38 · 2245 阅读 · 0 评论 -
ITU-R BT.656 协议
ITU-R BT.601和ITU-R BT.656国际电信联盟(International Telecommunication Union)无线通信部门(ITU-R)制定的标准。严格来说,ITU-R BT.656应该是隶属ITU-R BT.601的一个子协议。ITU-R BT.601是演播室数字电视编码参数标准,而ITU-R BT.656 则是ITU-R BT.601附件A中的数字接口标准,用于主原创 2017-07-23 21:30:26 · 3536 阅读 · 0 评论 -
RGB、YUV和YCbCr
之前对RGB、YUV和YCbCr一直没有清晰的理解和认识,今天打算做一个小结,结合网上的文章谈谈自己的看法,也希望有机会看到这篇文章的人能指点一二,相互交流,共同进步。 首先要说明,上述的RGB、YUV和YCbCr都是人为规定的彩色模型或颜色空间(有时也叫彩色系统或彩色空间)。它的用途是在某些标准下用通常可接受的方式对彩色加以说明。本质上,彩色模型是坐标系统和子空间的阐述。【1】RG转载 2017-07-23 03:34:53 · 1599 阅读 · 0 评论 -
v4l2框架v4l2-device API分析
涉及到的结构体:struct v4l2_device在v4l2框架中充当所有v4l2_subdev的父设备,管理着注册在其下的子设备:struct v4l2_device { /* dev->driver_data points to this struct. Note: dev might be NULL if there is no parent device as原创 2017-05-19 15:23:32 · 1471 阅读 · 0 评论 -
CMOS图像传感器
1. CMOS图像传感器的历史 CMOS图像传感器出现于1969年,它是一种用传统的芯片工艺方法将光敏元件、放大器、A/D转换器、存储器、数字信号处理器和计算机接口电路等集成在一块硅片上的图像传感器件,这种器件结构简单、处理功能多、成品效率高和价格低廉,有着广泛的应用前景。CMOS图像传感器主要由光敏电阻、MOS场效应管、放大器与开关电路等构成。2. CMOS图像传感器的原理首先,外原创 2017-05-11 01:25:47 · 3311 阅读 · 0 评论 -
controls for advanced topics and scenarios
Controls继承当sub-device通过调用v4l2_device_register_subdev()注册时,v4l2_device 和v4l2_subdev的ctrl_handler字段都会设置,然后V4L2驱动程序中subdev的controls 也会有效。如果subdev驱动 包含在V4L2驱动已存在的控制,那这些会跳过(所以V4L2驱动也可以重写一个subdev控制)。...翻译 2018-03-19 15:02:04 · 1943 阅读 · 0 评论