ISP 是什么?
ISP (Image Signal Processor),图像信号处理器,是用于摄影和视频处理的一种专用芯片。它是用来干什么的呢?简单说就是用来将图像传感器(CCD, CMOS)信号转化成可视的信号的功能,这里可视的是指人眼可见的意思;在其它的应用场景,比如车载自动驾驶和机器人领域,“可视的”就要改成“可识别的“,可识别是指机器可识别,计算机可识别,或者算法可识别,这就是computer vision机器视觉(总之不是给人看的)。总之,就是将传感器信号进行处理,让人或者机器人能够看得见。要达到这个目的,我们对isp提了一些基本的要求。
人类视角看到的花:
机器视角看到的花:
ISP通常会作为一个模块集成到SoC上,也可以在设备的CPU或GPU上执行在ISP上的操作
ISP要求三原则
- 看得见 (动态范围, 明暗的分布范围,在科学研究中用lux来衡量亮度的大小。在日常生活和应用场景中,我们在晴天的日光下,照度可以达到10万lux,在树荫下照度下降到了1万lux,在日光灯下,只有300lux,白炽灯下又下降了一半只有150lux,在夜晚的路灯下只有10lux烛光下是1lux,在有月亮并且是满月的情况下照度只有0.1lux;星光下是0.001lux,在没有月亮也没有星星的漆黑的夜晚,照度达到了最低,仅仅1/10000 lux(万分之一);看得见的要求是在一个比较暗的环境下,依然能看得见。比如包括安防、无人机、自动驾驶等等对“看得见”的基本要求是在10lux,也即是在路灯下能够看得见。军工级别的要求是在0.001lux也就是有星星的夜晚能够可视(看得见)。)
- 看得清 (清晰度,噪音,这个就比较好理解,你看各手机厂,相机厂都在拼分辨率,就是为了能让照片拍得更加清晰)
- 看的好 (色彩或风格,比如什么哈苏色彩,徕卡色彩)
ISP应用领域
应用领域只能说很广泛,比如你现在玩的手机,出去玩带的各种相机,家里装的监控,以及汽车,机器人,特别是自动驾驶汽车,摄像头可能有十几个,车内车外都可能有。
ISP的工作流程PIPELINE
下图展示的是相机isp的典型pipeline, 这个例子中传感器数据最终会被输出为一个JPEG图片:
不同的ISP可能会以不同的顺序或方式应用这些步骤并且往往更加复杂,但一般包含这些步骤:3A(auto focus, auto exposure, auto white balance, 自动对焦, 自动曝光,自动白平衡),ISO增益,raw图片的各种处理,Demoasicing解马赛克,降噪,色彩空间转换,镜头和sensor校正,色彩校正,对比度和动态范围的调整,锐化,编码压缩等等。
下图是另一个使用场景的isp pipeline,这个例子中,传感器输出的raw data会被转化为yuv格式,然后进行视频编码。上一个例子是拍照的场景,这个是录视频的场景。
上一个图中按照图片在不同阶段的格式将pipeline划分为三个不同的阶段:raw domain, rgb domain,yuv domian。raw就是sensor 直出的,未经过处理的格式;在经过解马赛克这个工序之后就变成了rgb格式;但是在视频处理领域用得比较多的的是yuv格式,所以pipeline中需要将rgb格式转化成yuv进行后续的处理。
ISP 算法分类
从算法层面来讲,我们可以把ISP的常用算法分为几大类:2A(3A),镜头和sensor校正,对比度与动态范围,色彩,清晰度和降噪。
3A
3A就是指3auto focus自动对焦, auto exposure自动曝光, auto white balance自动白平衡。2A就是不包括自动对焦。
自动曝光曝光就是通过分析统计信息对sensor的曝光强度进行控制,确保视频(图片)亮度的稳定性。
自动白平衡同样也是通过分析统计信息对sensor输出的信号进行白平衡进行校正,确保色彩感知的稳定性,或者说叫让白色呈现为白色,解决环境光不同色温导致整幅图片偏色的情况。
同理,自动对焦也是通过分析统计信息对镜头的焦距进行调整保证兴趣区域的清晰度。
镜头和sensor校正
镜头是由透镜组成,由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真(包括形状,亮度,色彩)。镜头的畸变分为径向畸变和切向畸变两类。同时sensor模组本身也会导致一些信号的退化(亮度变化,串色等)。为了解决这些问题,ISP有各种算法来对这些畸变进行校正。
LSC:lens shading correction.镜头阴影校正,用来校正由于镜头模组导致的成像时的亮度和色彩不平衡。
CAC:color aberration correction, 用来校正由于镜头模组导致的色散现象。
DPC:defected pixel corrtction, 传感器像素坏点校正,用来处理传感器制作过程中出现的坏点。
BLC: black level correction, 黑电平校正