关于 Camera 产品的功能分析

1、问题背景

通过最近做的一些项目,发现 Tuning 一款 Camera 产品前,要考虑到的事情有很多,不是简单的点亮,按要求调完效果就结束了。

从目前的经验来看,准备工作做的越充分,后期遇到的问题也就越少。本文主要内容是对 Camera 产品的相关功能做一些分析及整理。

2、问题分析

对于 Camera 的功能具体要看是什么产品,目前在做的多是基于安卓平台带 Camera 的设备,其功能还是有点复杂的,比如。

a. AF,是否支持PDAF

b. 是否烧录OTP

c. 关于模组,是否分一供、二供模组

d. 是否要做畸变校正

e. 关于拍照、预览、录像有哪些尺寸要求

f. 是否支持第三方 Camera app

g. 预览是否要做镜像

h. 确定镜头的规格

i. 是否支持HDR

j. 人脸检测、人脸AE、人脸/人像居中等等

如上是列的 Camera 开发过程遇到的一些相机功能需求,大部分功能是和画质调试强相关的,前期开始 Tuning 时就必须要考虑到。

a、AF,是否支持PDAF

也就是自动对焦功能,通过移动相机的镜头位置,来调整焦距,可以实现远景近景的画面清晰,相较于固定焦距的镜头有更大的一个景深范围。

AF分为相位对焦和反差式对焦,支持相位对焦的 sensor 都会有PD点,如下图所示。

关于 Camera 产品的功能分析_第1张图片

当是 type2/type3 的 pdaf sensor 时,关于pdaf sensor 的描述具体可看这篇文章:关于 Camera 开始 Tuning 时的一些注意事项

则需要平台端去做pd点的补偿,若平台不支持pdaf,那就只能依靠去坏点的模块抹掉,但这就会导致画面清晰度的损失。

所以当接入支持 pdaf 的sensor时,而平台又不支持pdaf时,就需确认sensor 是否有pd补偿功能,否则靠后面ISP dpc模块去处理的话,对清晰度影响会很大。

b、是否烧录OTP

是否烧录OTP也是项目开始前就要确认好的,是为了保证模组一致性才去做的,当产品出货量不大时就没必要去做这个事情了。

具体怎么烧录,烧录哪些内容,之前有总结过一篇文章:关于摄像头模组OTP配置的概述

c、关于模组,是否分一供、二供模组

当产品出货量比较大时,有些厂家会因为供货及成本的一些问题,会选择二供、三供的模组。

可能是相同的镜头、相同的sensor,也有可能是不同的sensor,对于不同的sensor 那就相当于重新调一个项目了,这没什么可说的。

而当用的是同样的镜头及sensor时,就要考虑是否软件上就要做区分,做两套效果参数,否则因为模组生产的差异导致的效果问题,就没办法处理了,

那具体怎么区分呢?如果是带OTP的话,可以在OTP里烧录不同的模组厂的id去做区分,模组也可以做不同的I2C地址去做区分等等。

d、是否要做畸变校正

对于大fov的镜头,一般都会存在畸变。这时就需要后端有畸变校正的模块去做畸变的处理,畸变处理的越小,则fov损失就会越大。

但有些厂家对畸变及fov都会有要求,这时就要考虑这之间的平衡了。关于镜头畸变相关概念具体可查看这篇文章:关于镜头畸变问题的总结

e、关于拍照、预览、录像有哪些尺寸要求

关于拍照、预览、录像这是 Camera 产品最基本的功能,具体尺寸怎么配置这是有要求的,我们所做的项目中,一般拍照是用全尺寸的,

比如13M的 sensor ,拍照的最大尺寸就是13M,也有拍照的小尺寸可供用户选择,这一般都是从全尺寸 crop 出来的,常见的一般有4:3和16:9两种尺寸。

关于4:3、16:9 尺寸的 crop,需注意的是,从4:3到16:9会保证左右的 fov, 而去 crop 上下的部分,因为平常人们会更关注的是水平方向的 fov。

预览的尺寸我们做的一般是 1080P,录像也可以是 1080P 和预览走同一路,也可有更高的分辨率,比如 4K,这个具体要看项目需求和所接平台的性能限制来决定。

另外有些要求高的项目,对于预览、拍照和录像要分别对应一套效果参数,调试出不同的效果出来。

要注意的是,如果要烧录 OTP 的话,就要提前确认好尺寸的问题,关于小尺寸的分辨率建议一般是后端的模块去做 crop 的处理,而不是通过 sensor 来处理,

否则若 OTP 中烧录的 shading 数据是用全尺寸来标定的,而后面的拍照/预览是用 sensor crop 出的尺寸来做的话,那就会导致 shading 补偿的效果不正确了。

f. 是否支持第三方 Camera app

有些客户会使用自己开发的 camera app,可能有接入一些美颜算法之类的,我们则需要对应其实际使用的 camera app 去做画质调优,确认效果。

g. 预览是否要做镜像

带有自拍功能的相机,一般拍照预览都是左右镜像的,这样貌似更符合自拍的习惯。关于镜像的配置,sensor、isp、及后端的应用都可以去做设置,但建议是不要用 sensor 去做,

因为修改 sensor 寄存器去做镜像,会改变bayer pattern,而ISP算法中的一些图像处理模块是要获取 bayer pattern 信息去做处理的,

所以如果使用 sensor 去做镜像,再用原来的效果参数,可能会导致图像效果有问题。

h. 确定镜头的规格

镜头的规格也是项目开始时就要确定下来的,一般包含镜头的清晰度、fov、景深、点胶距离、CRA、畸变、镀膜等等。

镜头的规格要根据产品的具体使用场景,及搭配的 sensor 去做相应确认的,关于产品的具体使用场景,那就要考虑到 fov、景深、畸变等参数。

上篇文章有写到最近有做一个化妆镜的项目,它定义的点胶距离是30cm,景深范围则只有10cm,

所以当人头稍微前后动一下就非常容易超出景深范围,导致人脸模糊,所以这个规格的定义就不是太合理了。

关于sensor 和镜头的匹配,就要考虑清晰度、CRA、镀膜等参数,之前有整理过一篇镜头和sensor CRA的文章:什么是 CRA ?

另外拿到镜头后要确认下是否有镜头质量问题,有遇到过几次成像出来,图像一半模糊一半清晰的问题,具体可查看这篇文章:相机出图画面一半清晰,一半模糊的原因是什么?

i. 是否支持HDR

关于真实的hdr是指 sensor 支持出多帧,后端ISP负责做长短帧的融合,来实现高动态范围。

但据说MTK、高通的平台也支持 isp 做多帧hdr的效果,但可能是指针对照片来做处理,而非视频。  

j. 人脸检测、人脸AE、人脸/人像居中

首先人脸检测是基础,基于人脸检测才能去做人脸AE、人脸/人像居中的功能。

一般是需要 NN 来支持人脸检测,当检测到人脸后,也要结合AE的算法,当某些场景下人脸过暗/过曝时,可自动调整AE的参数来提亮/压暗人脸,实现人脸清晰可见。

或者检测到人脸/人像后,实现实时的 crop 图像,将人像显示在图像中间区域。

3、问题总结

对于 camera 调试,看起来似乎没什么,但实际做起来要考虑的东西就多了,就复杂了,所以项目开始前就必须把该确认的事情都确认下来,后续才好进行下去。

 

你可能感兴趣的:(ISP调试相关,Camera,isp,图像处理)