我的NPI项目之Android Camera (四)-- 对应Camera tuning的一些理解

2024-02-27 13:20

本文主要是介绍我的NPI项目之Android Camera (四)-- 对应Camera tuning的一些理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Camera作为产品的一个核心部件,在产品竞争力方面有着不容争辩的地位。所以,选择一款合适的Camera模组并发挥出模组的性能对项目极其重要。

在Camera的选型方面,我不用多说,国内前五的有:舜宇,丘钛,联创,欧菲光,信利。其它的还有例如:比亚迪,合力泰; 国际上的有 三星、夏普、富士康、致伸科技等等。

那项目启动之后,如何去将选定的Camera的能力调整到最大? 就是tuning要进行的工作。

首先,Camera tuning分为三大部分:

Camera bringup:

这个工作主要是在整个项目的bringup阶段进行。PCB Fab,SMT和组装之后,就可以拿到对应的机器。机器上会进行最初的启动代码的移植,这里我们用的是Qualcomm的平台,也有MTK的平台,那么都有对应的bringup guide可以用来参考。这里我们就不细节的说bringup的内容,重点关注一下Camera的bringup。主要涉及到,Camera的软件架构, 例如:Qualcomm比较早期的mm-camera架构,后面的cameraX架构。核心就是Sensor驱动、马达驱动、闪光灯驱动和eeprom的驱动;Hal层的适配和framework、application的打通。具体细节,后面可以专门出一篇详细的聊一下。Camera bringup完成之后,就可以进行对应的tuning工作了。

Camera 客观调试和tuning:

那么,假如我们选择了一家名为GpcColor的Camera模组厂的模组,拿到了第一批的样品(50pic),进行完bringup工作之后。GpcColor的厂家将继续进行批量生产(e.g 10K),并从中挑选出golden sample 给我们,和golden smaple相对的就是limited sample;Camera tuning的工作是要基于golden sample进行。为了保证Camera效果一致性,模组厂会挑选一部分模组作为golden sample,然后将其他模组的相应参数校准到和这些golden一样或者相近,golden sample不是最好的模组,也不是最差的模组,而是在大批次模组中各方面(AWB,AE,AF等等)表现比较均衡模组,这是一个取样的结果,golden是一批模组的代表。具体如何挑选golden模组,后面可以和camera的厂家打听一下。

那么,拿到这个golden smaple之后,我们会对装机(对机器一致性要求比较高,通常是evt2或者dvt)之后,golden sample进行取图,并进行3A的tuning。这里面不禁想问,camera的模组厂已经对一批要出货的模组做了和golden sample类似的参数。设备厂(ODM)为什么还要做一轮tuning?原因主要有两类:第一,组装成机器之后,还有一层我们的盖板。而盖板和镜头之间也是有很多个体差异的。所以,我们要进行tuning以确定一组适用于设备的camera 模组参数。第二,就是客户偏好。下面的主观tuning就是对应的内容。

Camera 主观调试和tuning:

主观就很好理解了,主要是设计到应用场景的需求。例如,我的设备经常被用于零售行业、服装行业这些对颜色、细节要求比较高的场景,我就需要对应着调整出合适的一组参数来满足客户的需求。通常我们会定义一套我们的标准用于验收最后主观tuning。

这里tuning到最后的结果是,生成一套用于camera ISP(高通ISP)的参数,使得ISP能够根据参数,生成对应偏好的图像并显示出来。

一边认识一边深入!

从sensor到touch,从touch到display,从display到camera,从camera走向更广阔的世界!

这篇关于我的NPI项目之Android Camera (四)-- 对应Camera tuning的一些理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752520

相关文章

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.