随着手机端相机的普及,越来越多的相机技术进入大众的眼帘。相机本质上是一种光学信号的采集设备,传统的数码构成如下图所示:
从图中可以清晰看到,相机由光学镜头组,感光元件,图像处理器构成,其中光学镜头组和感光元件主要负责光学信号采集,其质量的好坏直接决定了采集到的原始图像的好坏,然而相机直接采集到的raw图像时没法直接给人类观看的,需要对原始图像信号做基本的图像处理才得到我们日常可以观看和交流的照片,这就是图像信号处理器的用途。
随着携带相机模块的智能手机的普及,移动端相机的画质不断提升,大众对于传统相机的需求下降,取而代之的是手机相机的推广,手机相机与传统相机侧重点方面有所不同,手机相机相对于传统相机更需要傻瓜化的操作,这就对于自动成像与计算成像的算法方面提出了更多的要求,而且随着计算技术以及半导体技术的发展,SOC能够给手机端相机提供更多的算力,这就给基于计算的成像提供了可能,手机端相机技术原理逻辑图如下图所示:
从图中可知,与传统相机不同的是,手机相机的控制系统交给了软件,在计算资源层面,SOC上除了ISP(图像信号处理器之外)还有GPU、NPU、DSP等丰富的计算资源可以利用,通过DDR与这些计算资源的交互,给算法设计提供了非常多的可能性,这也是计算成像技术在手机端不断推出的硬件基础。
在众多计算资源中,ISP负责了绝大部分基础画质的图像处理任务,由于ISP是一段专用集成电路,其灵活性不足,技术迭代的速度更慢,对于像HDRI(高动态范围成像)、Temporal NR(时域降噪)和SR(超分辨率重建)等设计复杂、密集计算、迭代周期短的图像处理算法,很难硬化成ASIC电路,这时CPU、GPU、NPU、DSP等计算资源可以作为ISP的辅助计算资源来完成这些复杂图像信号处理任务,提高手机相机的基础画质。
随后笔者将从raw图像开始构建简单的ISP,逐步迭代出一个可用的ISP系统,借助该ISP模块逐步解读计算成像算法,把计算成像算法在相机系统中的交互过程开放给读者;另外,随着GPU和大量图像数据的积累,以CNN为代表的深度学习算法改变了算法对于画质改善的上限,笔者也会专门开一个章节介绍基于深度学习的计算成像和深度学习辅助画质提升的内容。