我的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

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存