一、图像质量调优概述
1.1 什么是图像质量调优(IQT)
图像质量调优,英文叫 Image Quality Tuning,简称 IQT。说白了,就是让摄像头拍出来的照片更好看、更真实。
你可能会问:现在的相机不是已经很好了吗?嗯,硬件确实不错,但硬件只是基础。同样的传感器,同样的镜头,不同厂商调出来的效果天差地别。我见过不少项目,硬件成本花了上百块,最后拍出来的效果还不如别人几十块的方案——问题就出在调优上。
IQT 的核心工作,就是调整 ISP(图像信号处理器)里的各种参数。比如亮度、对比度、色彩、降噪强度等等。这些参数组合起来,决定了最终图像的质量。
IQT 的目标:
- 还原真实场景的亮度和色彩
- 抑制噪声,保持细节清晰
- 适应不同光照环境(白天、夜晚、逆光等)
- 满足产品定位(比如手机要鲜艳,监控要清晰)
我个人习惯把 IQT 分成两个阶段:客观调优和主观调优。客观调优用仪器测,比如色卡、灰阶卡;主观调优靠人眼看,比如肤色好不好看、天空蓝不蓝。两者缺一不可。
1.2 IQT 在相机系统中的位置
一个完整的相机系统,从硬件到应用,大概长这样:
看到了吗?IQT 主要工作在 HAL 层。它连接了底层驱动和上层算法。我经常跟团队说:HAL 层是承上启下的关键。驱动层只管把数据传上来,算法层只管处理图像,而 IQT 工程师要确保中间这条链路是通的、参数是合理的。
我的经验:很多新手容易忽略 HAL 层的重要性。他们觉得算法层才是核心。但实际项目中,80% 的图像问题都出在 HAL 层的参数配置上。比如 AE 收敛太慢、AWB 偏色、AF 拉风箱——这些都不是算法能解决的。
1.3 HAL 层与算法层的边界划分
这个问题,我几乎每次面试都会问候选人。很多人答不上来,或者答得很模糊。
简单来说:
- HAL 层:负责 ISP 的实时控制。包括曝光、白平衡、对焦、增益、Gamma 曲线等。这些参数需要根据场景实时调整。
- 算法层:负责图像的后处理。比如降噪、锐化、色彩增强、HDR 合成等。这些处理通常需要较大的计算量。
举个例子你就明白了:
拍一张夜景照片。HAL 层要做的是:提高 ISO、延长曝光时间、调整白平衡。算法层要做的是:对 RAW 图做降噪、做多帧合成、做色调映射。两者分工明确。
避坑指南:我曾经在一个项目中,算法同事把降噪强度调得特别高,结果画面糊成一片。我查了半天才发现,是 HAL 层的 ISP 增益设置太高,导致噪声本来就大,算法再怎么降噪也救不回来。所以记住:HAL 层先把底子打好,算法层再做锦上添花的事。
边界划分还有一个实际意义:责任归属。出了问题,是 HAL 参数没配好,还是算法有 bug?分清楚了,调试效率才能上去。
1.4 典型 ISP Pipeline 介绍
ISP Pipeline,就是图像信号处理的流水线。传感器把光信号转成电信号,然后经过 ISP 一步步处理,最终变成我们能看到的图像。
一个典型的 ISP Pipeline 长这样:
这只是简化版。实际 ISP Pipeline 还有 Gamma 校正、色调映射、边缘增强、降噪等模块。每个模块都有几十个参数需要调优。
我刚开始做 IQT 时,面对这么多参数完全懵了。后来总结了一个方法:先调全局,再调局部。先把亮度、白平衡这些全局参数调好,再去调降噪、锐化这些局部参数。顺序搞反了,你会陷入无穷无尽的调试循环。
核心要点总结:
- IQT 是连接硬件和算法的桥梁,核心工作是调 ISP 参数
- HAL 层负责实时控制,算法层负责后处理,边界要清晰
- ISP Pipeline 有固定流程,调优要按顺序来
- 80% 的图像问题出在 HAL 层,先把底子打好
嗯,第一章就到这里。内容不多,但都是基础中的基础。后面我们会一步步深入每个模块的调优细节。
一个小建议:如果你手头有开发板或者手机,建议打开相机,对着不同场景拍几张照片。然后想想:这张照片的 ISP Pipeline 是怎么处理的?哪个模块可能出了问题?带着问题去学,效果会好很多。