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
相关推荐
0xDevNull15 小时前
Linux切换JDK版本详细教程
linux
进击的丸子15 小时前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
Johny_Zhao2 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1234 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑4 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件4 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号4 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash4 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI5 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行5 天前
Linux和window共享文件夹
linux