基础ISP流水线的架构分析——简介

less than 1 minute read

Published:

ISP是一个对图像传感器捕获的原始图像执行各种图像处理算法。ISP 中包含了许多功能,这些功能在不同的 ISP

实现者之间以相似但不同的方式组合在一起。ISP 功能分为基于像素的和基于帧的,并且专门用于 Bayer、RGB 或 YCbCr 这三种颜色域之一。


Bayer、RGB 和 YCbCr 是图像处理领域中三种重要的颜色域,它们各自有不同的特点和应用场景。

  1. Bayer域:Bayer域通常指的是图像传感器捕获的原始数据,这种数据由拜耳滤色器(Bayer Filter)阵列生成。每个像素只包含红(R)、绿(G)、蓝(B)三种颜色中的一种信息。最常见的模式是RGGB,即两个绿色像素夹在红色和蓝色像素之间。Bayer域的图像不是完整的RGB图像,而是一种色彩不完整的图像,需要通过去马赛克(Demosaicing)等步骤转换为RGB域或其他颜色空间 。

  2. RGB域 :RGB域是每个像素包含完整的红、绿、蓝三个颜色分量的图像数据。这是一种直观的颜色表示法,非常适合于显示设备。RGB颜色模型是一种加色模型,通过红、绿、蓝三原色以不同方式叠加,产生新的颜色。RGB颜色模型广泛应用于显示器、LED灯等,并且在网页中也使用RGB来控制HTML元素的颜色 。

  3. YCbCr域 :YCbCr域是一种颜色空间,其中Y代表亮度(luminance),Cb和Cr代表色度(chrominance)。这种颜色空间将亮度信息与色度信息分离,便于视频压缩和处理。YCbCr通常用于JPEG图像压缩中,它允许独立处理亮度和色度信息,有助于减少数据量而不显著影响视觉质量。在JPEG图像中,RGB值首先被转换为YCbCr,然后可能应用色度子采样,最后进行编码 。

每种颜色域都有其适用的场景和特定的处理算法。例如,Bayer域主要用于图像传感器输出的初步处理,RGB域是处理彩色图像的标准颜色空间,而YCbCr域更适用于视频处理和压缩。选择合适的颜色域能够有效地提升处理效率和图像质量。


ISP中实现的功能可以分为两大类。第一类是基于像素的函数,它通过利用输入像素及其周围的像素来生成结果。由于其输出是通过利用空间信息产生的,因此也被视为空间滤波器。第二类是基于帧的函数,这些函数需要整幅图像的所有像素来获得处理结果。基于帧的函数根据使用多少图像来获得结果进一步细分。

一种是基于单幅图像的整体特征。一幅图像的图像质量需要在图像的所有部分保持一致。扩展图像动态范围(dynamic range extending,DRE)的方法可以归入这一类。还有许多其他算法,如自动白平衡、自动曝光、对比度增强等,它们从给定的单幅图像中提取全局特征。

另一类需要多帧图像的函数通常利用它们之间的时间相关性。一些用于减少噪声或失真的算法就包含在这一组中。它们分析帧之间的时间相关性,并包括如时间噪声降低、卷帘快门去除(rolling-shutter removal)、图像稳定等算法。


卷帘快门(Rolling Shutter)和全局快门(Global Shutter)是图像传感器中两种不同的快门技术,它们各自有不同的特点和适用场景。

  1. 卷帘快门 :这种快门技术在CMOS图像传感器中较为常见。它逐行扫描并曝光像素,从传感器的顶部开始,然后向下移动,完成整个图像的采集。由于是逐行曝光,不同行的像素会在不同时间被读取,这可能导致在捕捉快速移动的物体时出现图像扭曲或“果冻效应”。卷帘快门适合于静止或移动较慢的物体,广泛应用于工业相机中,因其尺寸更小、成本更低,使得相机更便宜、更紧凑。

  2. 全局快门 :与卷帘快门不同,全局快门技术能够使传感器上的所有像素同时曝光。这意味着无论物体是否移动,每个像素都能在同一时刻捕获图像,从而避免了因逐行曝光导致的时间差失真。全局快门适合捕捉快速移动的物体,常用于需要高精度成像的应用中,例如高速摄影或机器视觉系统。全局快门传感器通常尺寸更大、更感光,但成本也相对较高,且可能具有较低的最大帧率。

在选择快门类型时,需要根据具体的应用需求来决定使用卷帘快门还是全局快门。例如,如果需要捕捉高速运动的物体,全局快门可能是更好的选择;而如果拍摄对象相对静止,卷帘快门可能更具成本效益。


基于帧的函数在传统ISP中除了自动曝光控制、自动白平衡和自动对焦(也称为3A)之外,并不常见。例如,如果要通过考虑时间相关性来降低噪声,至少需要存储两帧图像,以检查它是否可以被视为噪声。基本上,ISP已经被开发为嵌入图像传感器中。由于这一要求,它不能使用需要帧存储的功能。3A算法不需要帧存储,因为3A所需的全局特征可以在扫描当前帧时提取。尽管它们被视为基于帧的,但它们可以被视为传统ISP架构中的基本组件,因为它们不需要帧存储本身。

一般而言,ISP可以通过三种方式实现。

(1)嵌入图像传感器的 ISP

这是基线 ISP,它具有由空间滤波器和针对单个pixel的函数组成的级联流水线架构。在这类ISP中,除了3A算法外,都是基于像素的函数。

(2)单独的ISP芯片封装

在ISP(图像信号处理器)的商业化早期,基线ISP本身是作为一个独立芯片构建的。现在,它通常被生产为一个多芯片封装,其中堆叠了SDRAM作为帧存储器。因为它将帧存储器嵌入其中,所以它可以支持基于帧的功能,如图像稳定、时间噪声降低、宽动态范围等。然而,它在处理源自计算机视觉技术的算法时仍然存在困难,这些算法也利用存储在帧存储器中的图像,但需要大量的浮点运算和复杂的控制流程。目前还没有考虑采用高能耗的CPU和/或通用GPU(GPGPU)。

(3)在应用处理器(Application Processor)内嵌入ISP

应用处理器是智能手机、平板电脑等设备中的主要计算单元。应用处理器(AP)内部有强大的编程单元,如 CPU/通用GPU(GPGPU)。此外,应用处理器提供了丰富的内存空间以及带宽。因此,基于像素的函数可以由传统的基线 ISP 处理,而基于帧的函数可以由 GPU/通用 GPU 编程处理。这种 ISP 实现形式消耗大量能源,因为它使用了能耗高的存储设备和高负载的计算单元。尽管如此,它能够为最终用户提供最佳的图像质量,以确保用户满意。ISP 的流水线链没有标准化,以至于每个实现者都设计了许多非常相似但又略有不同的 ISP 流水线。我们主要以下图的ISP流水线展开说明。