前言
本文将介绍图像信号处理(ISP)行业的最佳实践和实用案例。目的并非提供针对ISP的最佳单一实现方案。相反,这些示例旨在为性能和功能的可移植性提供建议,并解决自动驾驶和辅助驾驶计算平台中涉及的图像格式和图像功能的互操作性需求。
另外,本文还探讨了图像处理功能在摄像头数据进行预处理之前如何对传感器融合算法和检测进行进一步处理的问题。主要介绍ISP体系结构的运作、图像格式、关键性能指标、精度、精确度、吞吐量以及实时成像等要点。
本文讨论的范围仅限于ISP领域,从图像传感器的输出开始,到预处理模块(如GDC和缩放)的输出结束。尽管安全性和保密性也是重要的考虑因素,但它们属于整个系统的问题,因此不在本文讨论之列。
下图展示了系统级功能框图中的ISP提取,以及摄像头、预处理和感知模块。
系统级功能模块框图
二、 感知模块中的ISP模块
下图详细展示了感知模块中图像处理模块的框架,这些模块是在系统级功能框图中所描述的。图的输入来自摄像头传感器。下面描述的功能并没有给出特定的流程或推荐的连接点。
在某些情况下,需要从一个摄像头图像中同时生成经过独立调优的人眼视觉(HV)和计算机视觉(CV)图像。这可以通过多个ISP并行实现,或通过在ISP内部将计算划分为两个独立的路径并具有独立输出来实现。
感知模块中的ISP模块
2.1 校正技术
在辅助驾驶和/或自动驾驶中,摄像头为AI辅助决策提供了关键的数据。图像的清晰和可操作性至关重要。图像处理使用各种工具进行;这些模块通过完善图像,使助力驾驶和自动驾驶系统能够确保安全舒适的乘车体验。在本节中,我们将介绍目前可用的各种校正技术。
红绿蓝-红外线(RGB-IR) 4x4 重构像
互补金属氧化物半导体(CMOS)传感器通常采用Bayer格式的彩滤阵(CFA)。这种格式允许每个像素捕获可见光谱和部分红外波长的特定波长的光。最常用的Bayer CFA像素布局是2x2像素簇,其中每个簇有一个红色、两个绿色和一个蓝色像素,如下图所示:
RGB-IR 4x4 CFA技术可以捕获红外线(Ir)光,但与典型的Bayer CFA不同,它有一个专用的Ir像素。RGB-IR CFA以4x4集群组织,如下所示:
到目前为止,大多数开发的ISP都是为处理2x2 Bayer模式而设计的。如果需要彩色成像,ISP可能需要一个专门的RGB-IR4x4转RGGB2x2转换模块。该过程应包括从彩色像素中减去Ir内容,以及插值红色和蓝色颜色通道以匹配 Bayer2x2 CFA模式。没有专门的RGB-IR重构像模块,RGB-IR4x4 CFA的处理就是不可能的。如果ISP的设计全面考虑了处理这种模式,那么就不需要RGB-IR重构像模块。
2.2 线性化(Linearization)
图像传感器的输出并不总是线性的。为了使RAW图像(包含直接的图像传感器输出)中的非线性响应线性化,在将其从Bayer格式重构像(demosaicing)到RGB以及进行任何其他处理(如白平衡调整、黑电平校正)之前,使用线性化。该模块提供线性扩展,然后进行动态范围压缩,用于具有压缩输出的高动态范围(HDR)图像传感器。较低位宽的传感器输出通常是线性视频的分段线性压缩表示,覆盖高达20位或24位的范围。线性化模块在功能上将压缩的传感器值转换回线性范围,适合ISP后续处理阶段。
2.3 高动态范围合成器(HDR Combiner)
HDR合成器模块将多个时间相近但曝光时间不同的图像帧合成为一个精度高于原图的单独HDR帧。
下图展示了两个不同曝光时间产生的强度响应示例,一个曝光时间长,一个曝光时间短。假设传感器具有线性响应,因此积分时间的比率R与响应的梯度比率相同。
曝光强度响应
2.4 根据坐标的坏点矫正(DPC)
根据坐标的DPC存储在一次可编程(OTP)嵌入式内存中,也称为静态坏点校正模块,它根据每个坏点的(x,y)位置坐标图来矫正坏点。这个坐标图通常存储在传感器的OTP内存中。
2.5 动态坏点检测/实时矫正
动态DPC执行实时坏点检测和矫正。可以矫正的单像素或小簇坏点的数量没有限制。
2.6 RAW去噪
去噪在保留细节的同时去除图像中的噪声,使结果清晰。空间去噪滤波器对每一帧进行独立处理,,在NxN像素的滤波核中采用各种线性和非线性操作来减少未滤波RAW域中的噪声。
2.7 时间去噪
该模块在视频帧之间执行时间降噪,特别适用于提高黄昏或夜间驾驶图像的清晰度。它可以预测移动以对齐然后平均帧,从而提高信噪比。在大多数情况下,平均水平由当前帧中检测到的本地运动程度本地设置。时间累积需要通过高级可扩展接口(AXI)直接存储器访问(DMA)使用外部双数据速率(DDR)存储器。
2.8 黑电平补偿
黑电平补偿对获得正确对比度和细节至关重要。每个数字图像传感器都具有不敏感光的单元,,用于测量参考电压(黑电平),然后从图像信号中减去该电压。为Bayer组分颜色通道(R、Gr、Gb、B)中的每一个提供单独的黑电平偏移,或者为成像器使用的其他CFA提供偏移。
2.9 ISP增益
ISP增益通过软件中实现的自动曝光(AE)算法放大和增亮整个图像。
2.10 白平衡(WB)增益
WB增益为每个颜色通道提供增益。这些增益的使用应该是尝试将场景捕获的色温拉回到中性。增益应该由软件中实现的自动白平衡(AWB)算法动态计算。
2.11 镜头阴影矫正
镜头阴影,也称为渐晕(与图像中心相比,图像边缘的亮度或饱和度减少),是许多镜头在大光圈时的常见问题。该模块的目的是为了矫正光线衰减类图案。镜头阴影矫正算法应该能够估计损坏并校正亮度和色度的光线衰减不均匀性。
2.12 色差矫正
相机光学系统在不同波长的光通过时,会遭受不同程度的折射或色散,因为媒质的折射率取决于光的波长。简单地说,有时镜头无法将所有颜色对焦在同一点,留下不该出现的色彩环绕。这种效应会导致在最终图像中可见的像差。典型原因是金属反射或车道上高对比度物体。主要有两种色差,横向和纵向色差。
纵向像差(也称为紫边)发生在光学系统无法在同一焦距上对不同颜色对焦的时候。基本上,不同色道的焦点沿着光轴的纵向方向位于不同的点上。相反,当色道在同一平面上对焦但焦点不在光轴上时,会发生横向色差。横向像差不会导致紫色/蓝色的紫边,而是导致高对比度物体周围的边缘,因为放大倍数取决于波长。这在镜头的角落通常会更糟。
色差矫正模块可以矫正像差,还可以自动检测像差。
2.13 局部色调映射(LTM)和全局色调映射(GTM)
色调映射解决了从场景辐射到可显示范围的高对比度压缩问题,同时保留了感知原始场景内容所需的图像细节和色彩外观。色调映射,也称为动态范围压缩或直方图均衡化,根据特定应用使用不同的目的。色调映射可以通过不同的方式进行;局部或全局。这两种方法通常在ISP中协同工作。
局部色调映射(LTM)通过使用从图像的局部区域聚集的信息,对图像应用强度变换以实现压缩或更好的可视化。在某些情况下,局部色调映射用于在保持中音和高光的同时尽可能强调暗区域的细节,或者仅仅是为了最大化整体图像对比度。
全局色调映射(GTM)是根据图像的亮度值执行的非线性空间均匀操作。一旦根据特定图像估计出最佳函数,则图像中的每个像素以完全相同的方式映射,与图像中周围像素的值无关。这种技术简单快速,但可能导致局部对比度损失。
2.14 去马赛克
今天使用的大多数彩色相机都是使用覆盖有CFA的单个图像传感器来获取图像的。由于成像传感器中部署的CFA的特性,颜色通道以不同的速率采样。这会导致信息丢失。去马赛克过程从不完整的颜色样本中重建完整的彩色图像。
去马赛克模块通过插值缺失的像素,从不完整或空间下采样的颜色样本中获得全彩图像。去马赛克模块是ISP最复杂的模块之一,因为它通常包括用于抑制混叠伪像(摩尔纹伪像)的逻辑,同时达到高细节重现。
2.15 色彩校正矩阵(CCM)
CCM用于将传感器特性适配到特定颜色空间域的光谱特性,为CV目的或仪表板、界面或监视器查看提供更高保真度的图像。CCM模块对支持的CFA的3个颜色通道应用线性颜色校正。对支持的CFA模式的3x3计算如下:
其中In1、In2、In3是支持的CFA的输入颜色通道。A11、...、A33是可配置的矩阵系数,coeff[1、2、3]是每个通道的增益。
例如,对于RGB模式,系数将配置如下:
2.16 伽马校正
伽马定义了像素的数字值与其实际亮度之间的关系。没有伽马校正,捕获的阴影不会如我们眼睛所见那样出现(在仪表板、界面或监视器上),也不能压缩计算机视觉引擎的动态范围。伽马校正是一种非线性操作,幂律变换,用于有效编码(压缩)图像的不同颜色通道到所需的行业标准,如BT.709。
2.17 颜色空间转换
在汽车应用中,由于颜色空间能够以使计算方便的方式来表示颜色信息,或者因为特定的颜色空间以更直观的方式识别某些颜色,所以使用了许多不同的颜色空间。例如,RGB颜色空间将颜色定义为红色、绿色和蓝色混合的百分比。其他颜色模型,如YUV(Y定义亮度,UV控制色度分量)通过色调、饱和度和亮度来描述颜色。YUV更接近人类对颜色的感知。
颜色转换模块的主要目的是减小文件大小以及在不同设备之间转换颜色。本建议中考虑的转换是RGB到YUV。
RGB到YUV的转换是用标准3x3矩阵乘法和一个向量偏移完成的。
本建议只考虑RGB到YUV,但这并不意味着该模块应该限制于单一转换,因为许多应用可能需要不同的颜色空间。
2.18 Y去噪
为了正确的计算机视觉和人眼视觉,必须有效处理图像噪声,Y空间去噪滤波器对每一帧进行独立处理,在NxN像素的滤波核中采用各种线性和非线性操作来减少亮度域中的噪声。
2.19 色度降噪
色度噪声,也称为颜色噪声,是一种低频噪声,通常表现为像素之间的颜色斑驳波动。这种噪声非常难看,可以说比亮度噪声更令人恼火。
ISP中的色度降噪模块通过消色被认为是颜色噪声的像素来去除颜色噪声。为此,通常在NxN图像滤波核中使用线性和非线性滤波的组合。
2.20 锐化
ISP中的锐化模块恢复了光学系统和图像传感器所损失的部分锐度。锐化模块的主要目标是通过从检测到的边界的相邻像素中减去和添加一定比例来增强边界(边缘、纹理)的图像对比度。
2.21 ISP计量
ISP计量模块由一系列专门用于每帧基础上提取统计数据的硬件或软件模块组成,这些数据可被高级算法(如3A或计算机视觉算法)用来提高检测准确性。
这些计量模块充当硬件计算加速器,每帧提供汇总统计数据,每个区域提供,或者两者都提供,并且通常在整个流水线中的多个位置提供。具有专用硬件的计量模块减少了ISP驱动程序的负载。
还有一些其他的计量模块可以提供像素转储,以及来自图像帧中感兴趣区域(ROI)的统计数据。这通常被计算机视觉算法使用。
常见的计量模块集合如下:
直方图
ISP直方图是一种提供图像数据易于理解摘要的方法。它以预定义的箱数跟踪图像中的色调分布。这可以是每个颜色通道的,也可以是在亮度域中的。直方图可以是全局的,也就是说,图像中的所有像素都被统计,或者基于区域的,用户可以设置感兴趣区域(ROI),只收集该ROI内的直方图。此外,ISP可以在一帧内提供多个ROI直方图。
直方图在相机中起着至关重要的作用,因为它们的数据可以用来控制图像的亮度和对比度。因此,可能需要沿着流水线上的多个采样点。
色调和颜色信息
颜色信息通常被自动白平衡算法或计算机视觉算法使用。色调和颜色信息通常以区域为基础和每帧为基础提供。区域数量将取决于应用需求和成像系统考虑的最大图像分辨率。通常收集的颜色统计信息有:
每个区域的颜色比:定义为红色与绿色的比率,以及蓝色与绿色的比率。为此功能建议提供一个阈值函数,该函数仅考虑指定亮度范围内的像素。
- 每个区域和每个颜色通道的平均值
- 每个区域和每个颜色通道的最小值
- 每个区域和每个颜色通道的最大值
对比度
当前的汽车摄像头没有自动对焦功能,但计算机视觉算法最近利用此统计数据来辅助决策。对比度检测的工作原理是通过分析边缘之间对比度的幅值。与色调和颜色信息计量类似,对比度检测通常以每个区域和每帧为基础提供。
输出格式转换器
输出转换器模块与颜色空间转换模块密切配合。
该模块的主要目的是将数据格式化为特定格式,以便后续ISP模块、编码器或感知块可以高效接收和使用输出像素。输出格式转换器的功能通常包括考虑以下方面将数据打包成特定格式:
- 数据和颜色格式:如视频编解码标准中指定的,例如:YUV444、422、420、RGB等。
- 图像格式:交织、平面或半平面。注意,对于某些颜色格式,需要对颜色信息进行子采样。建议仔细进行子采样和缩放以避免图像中出现伪像。
- 像素位深:最常见的应用在每个颜色通道使用相同位数的像素。但对于感知引擎和系统架构中的带宽约束,可能需要每个颜色通道使用不同的位深度。例如,YUV 444 avec 16/8/8 bpp。
缩放器
缩放器模块负责在ISP输出图像之前对其进行上采样或下采样。该模块应能够调整到系统需求所规定的特定长宽比和缩放因子。调整大小的质量应由最终应用的图像质量要求驱动。反过来,这将推动该模块中需要的插值质量和复杂度。缩放器应支持多种输出以生成金字塔图像,这通常用于CV系统中以减少DDR带宽和计算成本。
几何畸变校正(GDC)
光学成像系统通常会遭受畸变伪像,特别是在需要大视场(FOV)的自动驾驶系统中。这对直接解释人眼或计算机视觉算法看到的图像带来重要限制。
几何畸变校正(GDC)模块通过图像处理校正光学系统引入的镜头畸变,通常包括桶形畸变、枕形畸变和胡须畸变校正。除此之外,GDC模块还可以用于旋转、透视校正和镜像。
几何畸变引擎也可以用于360全景图像拼接,该引擎可以拼接所有图像,或者只校正畸变,以便视觉流水线中的其他模块进行拼接。
三、 ISP延迟
本文中,ISP延迟被理解为图像传感器数据在ISP输入和ISP输出处经修改后相同参考(例如第一个像素)之间的时间延迟。由于不同使用案例的总系统延迟预算差异很大(安全关键系统的延迟需要比信息娱乐系统低得多),延迟需要是一个系统范围的设计考量,并设计成保持在目标应用驱动的某些范围内。示例应用包括人眼视觉或安全关键应用。本文不再详细介绍这个话题。
ISP内主要的延迟来源是内存访问(读/写)。由于更低的延迟通常更好,应尽可能在有可能的情况下,特别注意将内存访问限制在最小,数据流是最佳情况。如果没有访问内存,ISP通常被设计为达到几个图像行的延迟,这被认为从系统总延迟来看可以忽略。
四、不同使用案例的摄像头
本节提供了用于不同使用案例的候选摄像头类型列表。这些摄像头类型通过典型的空间分辨率、颜色模式、每秒帧数(FPS)、摄像头到SoC接口的数据通道数量和位宽以及视场来进行特征化。然后这些参数可以用来确定ISP性能和其他低像素处理功能的规模,例如直化器。
在比较颜色模式时,Bayer CFA有25% 红色(R)像素,25% 蓝色(B)像素和25% 绿色(G)像素。对每个像素,只有R、G或B可用,但为了完整的颜色呈现需要完整的RGB信息。ISP通过称为CFA插值或去马赛克的技术来实现这一点。插值参数可通过寄存器接口编程。
红色清晰清晰清晰(RCCC)有75%的“清晰”像素,提供光强度信息而没有颜色信息。25%的像素具有红色颜色信息。蓝色被完全丢弃。这对于单色观察或仅需要红色信息的分析应用(例如交通信号检测)来说是可以接受的。这种格式的优点是它对光更敏感,因此在暗条件下效果更好。
注意:摄像头及其参数的列表表示发布时可用的摄像头的示例。不同使用案例的摄像头规格可能会随时更改。摄像头的选择完全取决于实现者。这包括几何形状、帧速率、彩色滤波阵列、每像素位数和视场。
4.1 前视场摄像头
前视场摄像头参数
4.2 驾驶环视摄像头
驾驶环视摄像头参数
4.3 停车环视摄像头
停车环视摄像头参数
4.4 倒车摄像头
4.5 驾驶员监控摄像头
驾驶员监控摄像头参数
4.6 车厢监控
车厢监控摄像头参数
4.7 事故录像摄像头
事故录像摄像头参数
注:事故录像可能复用其他摄像头的数据流(例如前视场或环视)
五、 摄像头到系统芯片(SoC)的输入接口
5.1 移动行业处理器接口 - 摄像头串行接口2(MIPI CSI-2)
- MIPI CSI-2 是将摄像头连接到SoC的标准移动接口。它由于易用性及支持广泛的高性能应用(包括1080p、4K、8K及以上的视频和高分辨率图像)而获得广泛采用。设计人员可以放心地在移动设备的任意单摄像头或多摄像头实现中使用MIPI CSI-2。
- MIPI CSI-2被设计来传输以行和列组织的数据。帧中的第一行和最后一行以及一行中的第一个像素和最后一个像素由数据流中的特定数据标记表示。此外,该标记指示每行的数据类型,这与典型的图像数据格式以及一些通用数据格式(包括8位、10位或12位原始数据)对齐。这形成了图像数据的优化接口。
- MIPI CSI-2是一个具有高速数据通道的串行端口。为了达到这些高频率,数据通道使用每个通道有2个差分物理信号的LVDS连接实现(D-PHY)。为了每个通道达到更高的带宽,一个数据通道使用3个物理信号(C-PHY)。
通常,每个摄像头或摄像头交换机(又名反串联器)连接有1到4个通道。并行数据通道始终提供一个数据字的位。不预见对不同数据流拆分位,因为数据通道需要与由发送方(摄像头或反串联器)提供的数据时钟高度同步。如果一个4通道MIPI CSI-2接口被拆分,例如成2个数据流,每个有2个通道,也需要两个时钟线,因此形成2个完整的2通道MIPI接口。
MIPI-CSI PHY最大带宽
上表总结了不同MIPI-CSI PHY标准相对于每个数据通道的最大带宽。然后需要考虑这些带宽数据与每个用例的带宽需求。
5.2 远程相机连接
MIPI CSI-2 C-PHY或D-PHY连接被设计用于短距离连接(主板内)。由于相机可能远离实际接收这些数据的SoC,因此需要长距离连接。为此,采用MIPI CSI-2 A-PHY、千兆级多媒体串行链路(GMSL)或专有的Future Technology Devices Interglobal(FTDI)接口,在相机端使用串行器,在SoC端使用对应的反串行器。反串行器然后将A-PHY、GMSL或FTDI连接解码成MIPI CSI-2 C-PHY或D-PHY接口。反串行器还可以允许连接多个远程相机输入,因此可以切换多个相机到一个MIPI-CSI-2端口。这些接口完全支持先进驾驶辅助系统(ADAS)所需的高带宽、复杂互联和数据完整性。
5.3 外设组件互连Express(PCIe)
将相机数据传输到SoC的另一种接口可以是PCIe。PCIe与特定类型的数据流(例如相机数据)无关,被认为是一种通用接口。这种通用特性意味着与优化的MIPI-CS2接口相比,实现这种接口需要更多的资源。
PCIe标准允许不同PCIe标准代之间良好的向后兼容性,因此可以连接较旧的现有相机系统到具有较新PCIe接口版本的SoC。
PCIe接口不提供固定的协议用于数据流,如一行的开始或结束,或者一帧的开始或结束。因此,数据的发送方和接收方需要对数据格式及各自的数据缓冲区位置进行对齐。或者,可以将MIPI CSI-2数据流语法与纯数据流一起使用,即没有给出特定的地址。目前,对这种方案还没有定义标准。
5.4 以太网
将图像数据输入SoC的另一种接口是以太网。在这种情况下,同样提供了纯数据流,,以便接收器可以根据需要组织数据。可能的是以一个数据包传输一行。如果数据包缓冲区排列良好,可以产生完整的帧内存图像。但是,目前还没有这样的标准来定义这些要求。混合不同的数据流也可能会阻止在不解析数据包的情况下正确地在内存中对齐数据包缓冲区。另一方面,如果接收到的图像数据不需要复制,那么对内存带宽是有利的。
对于高速以太网通信,数据包大小起着重要作用。如果使用短数据包,数据包解析本身也可能在CPU负载上产生明显的开销,以管理以太网接口。尽管在物理层具有名义高比特率,但这是可实现带宽的一个限制。
六、ISP输出
提取指的是在流程中对数据的提取,并使其可用于进一步处理。如图像处理模块图所示,ISP模块从图像传感器获取数据,并将数据传递给后续模块用于存储和/或进一步处理。系统应该为数据提供多个提取点。对于每个提取点,数据可以存储在内存中和/或流传输到后续模块。建议的提取点如下:
T1:RAW传感器数据提取。
T2:像素级函数模块之后的提取。
T3:每个后处理模块(几何畸变校正和缩放)之后的提取。
6.1 RAW传感器数据提取
系统应提供在ISP修改之前访问传感器数据的可能性。这些数据的格式将是RAW和取决于传感器。除RAW数据外,还可以添加传感器元数据。元数据格式也依赖于传感器。默认情况下,ISP将CRC字段(如果可用)与图像数据进行校验,如果CRC无效,则在元数据字段中设置标志。
6.2 ISP像素级函数后的提取
第二个数据提取点是在所有像素级函数模块之后、后处理模块之前。对于此提取点,AVCC建议未来的系统将进入存储器的格式数量限制在某个范围内。
减少输出格式数量的目的如下:
- 通过使外部存储器中ISP处理后的输出数据的表示形式最小化(单一),可以保持写入图像数据的带宽在可控范围内。假设外部存储器带宽是性能限制的关键资源,扩展代价高昂。这使外部存储器带宽成为图像处理系统最宝贵的资源之一。
- 在将ISP输出流传输到后处理模块(例如几何校正)的情况下,后续模块不需要支持多种格式。
- 有一个定义的输出格式增加了不同功能模块之间的互操作性,,这些模块可能由不同提供商提供(例如,ISP来自供应商A,神经网络算法来自供应商B,光流硬件加速器来自供应商C)。因此,如果未来设计的IP能够协调颜色格式,那将是有益的。
如果后处理需要不同的颜色格式,则后处理模块应即时执行颜色空间转换。对于硬件加速器,这特别推荐。对于基于软件的加速器(例如DSP),颜色空间转换可能很耗时。因此,系统应提供硬件单元,代表后处理模块执行颜色空间转换。为避免冗余内存访问,未来的系统应考虑将转换后的图像数据多播流传输到多个并行单元。
- 如果现有遗留IP模块需要不同的格式放入内存,其中内存后转换代价过高(例如软件中),则转换功能可以是ISP的一部分。
除了提取到内存外,还可以添加多路流提取作为流选项。留给实现者选择这些流通道的数据格式。以下是一些选择良好ISP输出格式的考虑因素:
- ISP输出的突出颜色格式是RGB和YUV,但在视觉处理功能中也使用其他格式。
- RGB本质上与光的物理性质(波长)相关,因此被传感器、显示器和GPU使用。原始数据图像格式也经常使用RGB格式(例如ppm)。
- YUV来自电视技术,经常用于视频编码和解码,包括静态图像JPEG格式。它也经常用作ISP实现中的中间和本机输出格式,因为色调映射、亮度和颜色滤波或边缘增强。大多数显示控制器和GPU也支持YUV输入格式。与RGB相比,YUV将最重要的信息浓缩在Y(亮度)通道,而在RGB中信号能量分布在3个通道上。
图像格式的另一个特性是数据交织,如交织(所有像素的所有通道一起保存,如RGB、RGB、RGB,... 或 YUYV、YUYV、YUYV,...),平面(每个通道存储在不同的缓冲区中,如RRRR...、GGGG...、BBBB...),或半平面(在不同的缓冲区中分离亮度和颜色,如YYYY...、UVUVUVUV...)
- 交织提供了在图像处理功能需要所有通道进行处理的情况下最佳的数据局部性。
- 如果只处理一个通道,则平面缓冲模型允许减少要加载的数据量。
使用半平面通道模型允许仅使用Y通道或完整的YUV数据进行处理。此外,它允许为亮度通道和颜色通道使用不同的位深度和空间分辨率。
图像格式的下一属性是用于对颜色分辨率进行子采样的变体。这主要适用于具有亮度和色度通道的颜色格式。这里色度信息以较低分辨率进行,因为与亮度相比,它被认为包含较少的重要信息。在视频应用中,这也符合人眼的特点,色彩分辨率低于亮度分辨率。例如,在YUV格式中,我们观察到444(完整颜色分辨率)、422(水平子采样)和420格式(水平和垂直子采样)。
使用420色度子采样可减少外部存储器带宽。例如,8/8/8 bpp的YUV 420需要比8/8/8 bpp的YUV444或RGB少一半的存储器带宽,因为视频编码通常需要YUV 420。YUV 420也可以通过使用图像金字塔并将完整分辨率的Y通道与半分辨率的UV通道组合来生成。
YUV422格式仅在水平方向上子采样。这主要源自隔行视频,其中两个相邻的线不属于同一时间点,因此无法进行垂直滤波。YUV422的一个方面是它可以支持交织像素格式,如YUYV(或UYVY)。
对亮度通道和色度通道使用不同的位深度可以通过适度增加所需的内存带宽来提高图像数据的保真度。例如,YUV 444 16/8/8 bpp需要RGB 16/16/16 bpp的2/3内存带宽。8/8/8 bpp可用于人眼视觉和显示。
为了将典型的20或24 bpp的动态范围减小,可能需要局部色调映射。对于计算机视觉,更高的位深度可能是有益的,这需要较少的压缩,因此可以进行保持压缩函数单调性的全局色调映射。要从更高的位分辨率(例如16/8/8 bpp)转换为较低(例如8/8/8 bpp),可能需要(局部)色调映射步骤。格式数量的依赖性取决于自动驾驶级别。
6.3 每个后处理模块后的提取
每个GDC和缩放模块之后都可以提取。每个提取点的选定格式由实现者决定。但是,出于效率原因,建议与GDC和缩放模块的输入格式保持一致。
6.4 统计输出
除像素数据外,统计信息也由IPS处理链生成。有关统计数据的更多信息,请参阅第一部分ISP计量(2.21)。
这些统计数据由高级控制功能处理。统计数据在输入帧的ISP像素级处理期间生成,并在下一帧开始时重置,因此需要在ISP像素级处理的短垂直消隐期间救援这些数据。请注意,即使与像素数据相比,所需带宽也可能相当高,因为时间窗口也可能很短。
由于统计数据在高级控制功能(例如AEC、AWB)中进行处理,因此所得的新的相机和ISP设置需要写入相机或ISP配置寄存器。一旦传感器中的捕获或ISP中的处理开始,就不能再对该帧应用新设置。因此,从统计数据通过高级控制、将捕获参数写入相机的IIC、捕获图像以最终获得下一个生成的统计数据,可能需要3-4帧的周转时间。
七、ISP吞吐量
本节根据示例相机选择提供关键性能要求的指示。所示的性能值涵盖:
- 系统的总像素吞吐量,作为要处理的数据的测量。该值与处理步骤的数量(即后处理功能以及感知功能)相乘。结果数字需要与处理内核的数量和性能相匹配。
- 相机数据的输入数据速率,驱动接口数量及其吞吐量。
- 所需的DDR内存带宽,该带宽与读取和写入处理步骤之间的次数相乘。由于外部DDR内存带宽是成本驱动因素之一,此数字有助于确定DDR内存系统的尺寸,或通过外部内存或SoC内部数据流来架构处理步骤之间的数据流。
我们还看到所选输出格式的影响。如果需要两种格式,带宽也会相加。本节根据用例中的相机计数给出一些示例计算,计算根据自动驾驶级别定义组织。计算还考虑了典型的开销。示例计算应用以下规则:
- 对于输入带宽计算,例如在串行MIPI CSI接口上,我们需要考虑相机接口上的图像消隐期。这包括垂直消隐和水平消隐。计算的数字假设相机输出16位压缩HDR输出格式。然后将16位原始图像数据解压缩为20或24位,以线性化相机数据。对于非HDR图像,选择了实际位宽。
- 对于ISP处理及其输出带宽,假设可以忽略水平消隐。因此,只需要考虑垂直消隐。
- 在示例计算中,我们假设水平消隐因子为1.3倍(有效行长度+ 0.3倍有效行长度的消隐)。假设垂直消隐对于最高1080行@ 30 fps约为1.2倍,对于> 1080行@ 30 fps为1.1倍。
- 对于通常与主动照明结合使用的全局快门相机,垂直消隐可以大大变化。在示例计算中,我们使用了2倍的系数。
- 计算的ISP输出带宽数字假设一种情况下为RGB 8/8/8 bpp,另一种情况下为计算机视觉的YUV420 16/8/8和人眼视觉的YUV420 8/8/8。
注意:以下表格对中间结果进行了舍入,因此表格值的精确计算会有所不同。
7.1 L1级系统计算
对于L1级自动驾驶系统,下表中给出了四个示例计算。因此,表中的每一行表示单个相机系统的不同实现。
7.2 L2级系统计算
对于L2级自动驾驶系统,下表中给出了一个示例计算。实际的相机空间-时间分辨率由实现者定义。计算出的总带宽对应于各个相机的总和。
7.3 L3级系统计算
对于L3级自动驾驶系统,下表中给出了一个示例计算。实际的相机空间-时间分辨率由实现者定义。计算出的总带宽对应于各个相机的总和。
7.4 L4级系统计算
对于L4级自动驾驶系统,下表中给出了一个示例计算。实际的相机空间-时间分辨率由实现者定义。计算出的总带宽对应于各个相机的总和。
7.5 L5级系统计算
对于L5级自动驾驶系统,下表中给出了一个示例计算。实际的相机空间-时间分辨率由实现者定义。计算出的总带宽对应于各个相机的总和。
7.6 比较各级
下图可视化了上述自动驾驶级别的总像素计数,从L1案例中的1x 4M像素相机情况选择。
像素数的等级比较
八、ISP图像质量关键性能指标
需要注意的是,各种ISP实现方式在如何对给定的硅片面积、功耗、性能目标和/或系统所需的功能进行图像处理以优化输出图像质量方面有所不同。例如,计算机视觉引擎可能需要很少的处理就可以使用图像,而在显示器上为人查看的图像需要非常高的图像质量。ISP模块也基于典型的ISP实现,但绝不限制或规定图像处理应该如何完成。例如,专用的CNN可以替代参考管线中的典型降噪器和去马赛克器。
通常,ISP仅通过列出所需的ISP功能来指定,但仅列出模块不能给出系统需要什么的任何具体指示,也不能指出所提议的ISP是否适合其用途。因此,在定义系统的图像处理要求时,ISP KPI至关重要。
为示例工作负载派生了五个系统。下图概述了这些系统。
如图所示,从ADAS到自动驾驶的转变需要更充分地意识到汽车周围的一切。为实现这一目标,汽车上的传感器数量正在急剧增加,需要多个激光雷达、多台摄像头和雷达传感器来基本上取代和增强人的视觉和情境意识。这些传感器不仅价格昂贵,而且理解它们“看到”的内容以及汽车外部演变的情况所需的处理与更简单的ADAS功能(如自适应巡航控制或紧急制动)所需的计算大不相同。此外,就摄像头而言,同一摄像头可用于人类和计算机视觉。这一事实对ISP的指定施加了很大约束,以便为人类和机器视觉生成适当的图像质量。因此,为了加快自动驾驶的发展,重要的是根据终端用例在自动驾驶平台中定义客观要求。
九、行业质量标准
通过使用通用语言和客观的性能测量,就可以按照预期的应用指定ISP。到目前为止,行业内还没有一致的方法来测量图像质量,包括在摄像头对汽车感知和理解周围环境至关重要的新兴汽车行业。
有些标准组织如IEEE、ISO、IEC和ICC等正在努力建立行业公认的测量和KPI。
ISO TC42工作组18包括:
ISO 17957:均匀性/阴影测量
ISO 18844:眩光
ISO 19084:色偏
ISO 19567:纹理复制–部分支持
ISO TC 22公路车辆SC 35:照明和可见性
ISO 16505:汽车侧视镜替代系统标准(部分支持)
ISO 12233用于摄影和电子静止图像成像的分辨率和空间频率
ISO 12232用于ISO速度评级、标准输出灵敏度和推荐曝光指数
ISO 15739:噪声和动态范围
ISO 14524:色调曲线OECF标准
ISO 17850:几何畸变
另一个工作组是IEEE-SA P1858工作组 - 相机手机图像质量(CPIQ)。该小组致力于行业内的图像质量指标和实践的标准,以将客观测量与人类感知相关联,从而对系统进行排名。
EMVA1288 机器视觉传感器和摄像头的测量和规格表征标准是另一个关注标准化图像质量的团体。EMVA1288一直关注图像传感器而不是完整的摄像系统。
认为IEEE Std 1858、EMVA1288或ISO在汽车成像质量用例方面存在缺陷。由于其多样化和独特的成像条件景观,汽车成像带来了独特的挑战,上述标准没有很好地解决这些条件。
这一事实促使IEEE-SA创建了汽车系统质量标准 - IEEE-SA P2020工作组。P2020的目标是塑造相关的指标和关键性能指标(KPI),用于汽车图像质量,使客户和供应商能够有效地定义、测量和传达其成像系统的图像质量。
作者:Bruce Jiang
文章来源:智车Robot
推荐阅读
更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。