Linux Camera驱动开发(常见sensor驱动开发的误区)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

关于摄像头,大家都知道很有用,但是如何开发camera,大家并不是很清楚。或者说,大家都知道sensor开发很有用,但是怎么配置、怎么学习,很多同学并不是很清楚,今天正好可以和大家一起讨论一下。

1、优先从ipcam soc处学习camera

提到soc,大家几乎都可以想到linux。但是soc和soc之间差异巨大,有的偏向于消费类,有的偏向于工业,还有的偏向于汽车或者是医疗。这个时候,怎么选择soc就非常重要。大家如果想学习camera驱动方面的知识,可以优先学习ipcam soc。且不说目前在ipcam这块,国内不管是设备,还是soc,整体上都非常领先,而且ipcam soc的资源也很多,各家竞争非常激烈,所以想学习camera,建议优先选择ipcam soc。本质上ipcam,就是cam+ip的集合体,所以在camera驱动这块肯定是花足了功夫。

**当然,不仅仅是soc,现在的camera sensor,国产的ov、思特威、格科微,发展也未尝迅速,所以这部分国产的优势其实非常大。**当然,top级别的sensor,离sony、samsung还是有一点距离。

2、优先学习ipcam soc厂家的media框架

虽然linux kernel里面有v4l2的框架,camera sensor代码应该放在什么地方、soc platform在什么地方,都有官方的推荐目录,但事实上很少厂家会把自己的framework code上传到开源平台上面。只有客户购买自己的soc chip,他们才会把对应的sdk释放给客户。因此,假设客户只是自己希望从公开的渠道获取这些sdk,其实是很难的。

3、很多know-how都在文档里面

除了sdk之外,很多时候我们还可以从渠道拿到对应的原理图、手册、开发文档。这些开发文档一般都是soc厂家持续维护的。不同的soc芯片,很可能使用的都是一份文档。这就意味着,我们学习好了一份文档,基本上可以复用很多的soc芯片。

大部分情况,只要我们认真阅读文档,就可以从中发现自己需要的知识点。就算是不明白的部分,也尽量几个问题凑在一起,发给对方的fae,这样询问的效率比较高。假设自己公司规模不是很大,采购量不是很大,想获得实时的服务响应,有的时候是非常困难的。这个时候,与其抱怨,不如静下心来好好看一下对应的soc文档资料。

4、优先选用适配好的sensor

很多soc,尤其是ipcam soc,都已经是配好了大量的sensor。不管是驱动部分,还是isp标定部分,都不需要自己再去进行配置。这种情况下,我们只需要选用对应的camera模块就可以了。

5、新sensor的驱动也是以拷贝、调试为主

如果是没有适配过的sensor,那么可以找到同品牌的sensor,或者是相同配置的sensor,直接修改他们的源代码、他们的isp calib文件。**不要重头来写代码,一来容易写错,二来没有必要。**我们只需要把这些代码调试好,配置文件配置好,可以在真实场景用起来就可以了。

另外,如果发现其他品牌的soc支持了这个sensor,也可以把代码直接拿过来修改。

6、isp就是学习各个厂家自己的上位机软件

不同厂家的isp实现是不一样的,那么他们的标定过程、上位机软件也是不一样的。即使isp中基本的算法内容差异不大,但是上位机的操作还是差异比较大的。所以,基本上isp标定的过程,就是各个soc上位机软件学习的一个过程。学习好了一次,同品牌的soc,基本上都可以这么来进行标定了。至于调试过程中需要的灯箱、道具、灰度卡、色卡、棋盘格,这些都差异不大。

最后,非常推荐网上的这篇文章,是为数不多的isp调试在线资料,

复制代码
https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/isp/isp.html
相关推荐
wj3055853785 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
abigriver5 小时前
打造 Linux 离线大模型级语音输入法:Whisper.cpp + 3090 显卡加速与 Rime 中英混输终极调优指南
linux·运维·whisper
wangqiaowq6 小时前
windows下nginx的安装
linux·服务器·前端
YYRAN_ZZU6 小时前
Petalinux新建自动脚本启动
linux
charlie1145141917 小时前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
于小猿Sup7 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y7 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
不仙5209 小时前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
AI视觉网奇9 小时前
linux 检索库 判断库是否支持
java·linux·服务器
dapeng-大鹏9 小时前
KVM+LVM 零停机在线扩容 Ubuntu 根分区:从磁盘添加到逻辑卷扩展完整
linux·运维·ubuntu·磁盘空间扩展