1、什么是 Image Quality Tuning 

IQ_Tuning_Overview_技术文档

如上是一个成像系统的组成,包含光源(人造光,自然光)、被摄物体、成像的接收系统三大部分。

在成像的接收系统中有镜头、控制对焦的马达、光圈、ir_filter、快门(电子快门/机械快门)、sensor、ISP、及后面用于编码显示、存储、机器视觉的分支,

他们是在CPU和操作系统的统筹下,使整个成像系统能够进行工作,其中的组成单元都有一些可调整的参数。

所以广义的 IQ tuning:就是根据相机的应用需求,通过调节系统软件、硬件、光学参数使相机性能达到最优。

狭义的 IQ tuning:就是我们工作在其中某个组件上面,要将其某个组件的性能调到最优化。比如调 sensor 的 IQ 工程师,目标是怎么让 sensor 的输出达到最佳,通过控制一系列 sensor 的寄存器配置来实现。

所以怎么理解IQ tuning 还是要看自己本身所处的工作岗位,大部分的 IQ 工程师都是工作在系统级的,就是怎么让整个相机输出最好的图像效果,而对于一些工作在某个组件上的工程师,多了解一些整个系统级的 IQ tuning 的需求也是有好处的。

2、IQ Tuning 的理论准备

光学

图像传感器原理

颜色科学

信号处理

相机开发软硬件环境

图像质量理论

3、IQ Tuning 的工具准备

a、经过校准,颜色显示准确的显示器。尤其是和竞品对比时,不同的显示器对效果影响很大,无法进行有效的对比。

b、图像质量分析软件:IE Analyzer、Imatest、DXO Analyzer,有其中一个就可以了,这样可以做到量化的分析图像结果,这是图像质量测试中最基本的。

c、比较工具:faststone、Beyond compare,faststone 是图像比较工具,可以同时打开放大两张调试前后的图,来对比图像差异,非常好用。Beyond compare 是代码的比较工具,在对比效果参数的时间非常实用。

d、图像编辑工具:photoshop、Gimp,可以基于图像编辑工具来做一下调整看看效果,而且他也有一些图像分析的功能,比如看直方图,亮度等等,来辅助调试。

e、图像分析工具:matlab, 更进一步的图像分析就要用到matlab,比如计算色差,信噪比,求图像局部亮度的方差,标准差等等。而且也有涉及到理论上一些图像质量算法开发的作用。

f、ISP系统调试工具,包括离线工具及在线的调试工具,离线工具是指不需要设备,将图像数据导入PC工具中,就可以看到调整后的效果。在线工具是可以实时的去读到设备的所有参数到本地PC上,从而去调整这些参数,来优化图像效果。

g、软硬件的开发调试环境,就是要有一套调试编译的环境,可以将你的修改效果,放到设备里面去实时生效。

4、IQ Tuning 的环境

客观调试环境:需要有固定的光源,不同类型的图卡,去调测图像的客观指标。

IQ_Tuning_Overview_图像质量_02

主观调试环境:模仿现实世界的环境,去布置场景,要做到每个景物都有要测试的内容,不是随便摆的。

IQ_Tuning_Overview_图像处理_03

总结:IQ Tuning 的环境要满足,可重复性,有代表性的特点。

5、技术文档

调试时,必须要掌握如下文档,才能知道如何去做 IQ Tuning

a、图像传感器的技术文档:通过规格书要知道当前要调试的 sensor 的性能如何。

b、镜头技术文档:通过规格书要了解镜头的规格参数,比如光圈,CRA,相对照度,焦距,fov 等等。

c、红外滤过片:通过规格书要了解红外截止波长是否正确。

d、对焦马达:支持AF的产品需要去了解对焦马达的指标。

e、闪光灯等

f、图像信号处理器的技术文档:要深入理解isp的技术文档,掌握 ISP 能力如何,isp pipeline 等等,才能更好的去 Tuning。 

g、IQ Tuning Guide:包含isp中每个硬件模块的功能说明,每个模块下的参数说明,也包含3a的一些可调参数的说明,必须掌握这些,才能知道如何去 Tuning。

6、ISP 与 IQ Tuning 的开发流程

IQ_Tuning_Overview_图像处理_04

对于ISP 与 IQ tuning 的开发流程,不同的公司有不同的开发流程,从做 ISP 的公司来说,会先做算法IP,会基于一个模块比如 shading correction 去做算法的开发,后面 IQ 工程师会参与进来帮验证算法设计的结果是否符合要求,属于IP 级的 IQ Tuning。

算法工程师开发出一个一个的 IP 的模块后,会把它整理成 ISP pipeline 的 matlab 模型。这时就可以做系统级的 IQ Tuning 了,基于整个 ISP 的模型去 Tuning 出一个结果,这个时候就可以看出整体上的一个图像质量水平。

接着 C model 工程师会把 matlab 模型变成 C model,也就是用C,C++来做的模型。开发 C model 的目的,一方面是做一个在PC 上可以参考的模型,因为 C 语言和开发硬件的语言、描述逻辑上比较接近,通过 C model 给硬件工程师,硬件工程师写出RTL,做出真正的硬件 ISP 的设计。这两个之间可以做交叉的验证,来确认RTL是否有错的,硬件如果错了,做出的产品流片出来损失就太大了。C model 和 RTL 硬件模型是完全一样的,所以C model 所代表的就是整个硬件最后的图像质量,可以基于相机模组做产品级的预先 Tuning 了。

从 ISP 的开发角度,做完 RTL 后,在FPGA上做出实验性的板子,有的公司就会只做出 FPGA 形式的产品。有的公司就会将 ISP 的 IP 授权给做 Camera Soc 的公司,Camera Soc 的公司会流片出来。基于 FPGA 或者 Soc 都是最终产品级的 IQ Tuning , 达到了一个真正的物理上的 ISP ,连上 sensor 、镜头,后面是编码、存储、显示,组成了一个成像系统的产品。大多数工程师都是基于这个阶段来做 IQ Tuning 的。

7、Image Quality 调试过程

a、系统特征化:是 IQ Tuning 的第一步,基于要调试的模组(包含sensor、IR、镜头)做 Black level、shading、ccm、awb、noise profie、cac 等的特征化,将特征化数据存放在成像系统里 ,供成像算法去调用。它是开始 Tuning 阶段很重要的一步,如果前期的特征化没做好,对后期的调试过程可能带来一系列的问题。

b、实验室场景画质调试:按客户需求,或者内部的要求,不同照度,色温下去拍摄各种图卡去调试客观指标。

IQ_Tuning_Overview_技术文档_05

c、实际场景画质调试:客观指标不能完全的说明问题,另外需接着在实验室中模拟现实世界的各种场景,从亮到暗主观的去调试一遍效果。

IQ_Tuning_Overview_图像处理_06

d、场景测试与主观调试:接着在更多的实际场景中去进一步的调测,调试完后也要去再测试一下客观的指标看是否有影响,要求是都要兼顾好为准。

IQ_Tuning_Overview_技术文档_07

8、IQ Tuning 的要点

  • 理解ISP 硬件设计
  • 理解硬件算法与寄存器含义
  • 理解 3A 算法与可调参数
  • 了解系统的指标与局限
  • 理解目标应用的 IQ 需求