【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
isp只是soc的一个部分。也就是说,最多isp只是soc一个重要的ip。因为除了isp之外,soc上面还有很多重要的ip,比如gpu,比如h264、h265编解码、比如音频编解码,再比如pcie、usb3、npu、cpu等等,这些部分也很重要。而且,这还没有包括软件开发的部分。所以,我们做好isp学习和调试的同时,有必要了解isp的输入、输出的部分是什么。

1、isp的输入
毫无疑问,isp的输入是sensor。如果是usb camera,其实也不需要isp。毕竟usb camera内部,一般已经用isp做好了tuning。isp和sensor的接口分成两个部分,一个i2c,一个是mipi。如果是传统一点的接口,还有可能是dvp接口。其中i2c负责控制,mipi负责视频数据传输。
2、视频输出
这种是最简单的case。从vi,也就是isp侧拿到数据之后,直接yuv转rgb加速送给屏幕,这是能想到的、最直观的case。这在工业检测、医疗设备、车辆设备当中用的很多。**有些专用设备,比如内窥镜,就是这样的一种执行场景。**做得好的,还会加一个qt、或者是lvgl,做一点人机交互的工作。
3、视频编码
如果生成的video,不是直接通过vo送出去,那么还有一种方式,就是先编码,再通过rtsp/rtmp送出去,或者本地保存。大家都知道,视频当中有很多的冗余信息,这个时候就需要帧内压缩和帧间压缩,这样才能减少视频的延迟输出。由于软件压缩无法做到低延时,这部分基本都是硬件来完成的。
4、传统数字图像算法
这部分处理,就直接是拿到图像,开始做一些数字图像处理的工作。比如说大家都比较熟悉的scale、增强、降噪、二值化、腐蚀、膨胀、分割,这些都属于传统图像处理的范畴。所有的工作都是为了从图像当中获取有用的信息,把camera当传感器用。
5、npu AI加速处理
现在ai特别火,在图形领域cnn更是经久不衰。但是由于cpu处理cnn网络特别慢,所以大家开始慢慢习惯于在终端,用npu 对cnn进行加速处理。适当的算法model,再加上硬件的加持,往往能实现很多传统算法达不到的效果,特别是非规则场景的处理上面,ai的优势更是比较的明显。
6、上位机标定工具
每一颗soc,要想使用好里面的isp ip,有一个好的上位机tunning软件是必不可少的。一般情况下,上位机需要通过usb,或者是网口直连开发板。开发板上的server启动之后,就可以启动上位机tunning工具开始标定处理了。标定的时候,需要做一些准备,比如暗室、光源、灰度渐变条、色卡、玩具人偶等等,先拍摄raw picture,逐个标定基础模块。基础模块ok之后,开始依次标定rgb和yuv,做isp各个模块的处理。最难的部分是噪声,中间需要做很多的妥协和取舍。等到标定完了,获得对应的config文件,这个时候sensor和isp的match关系,就算是确定下来了。
注:
最小的isp,其实做到黑电平校正-》白平衡 -》去马赛克-》色彩校正矩阵-》gamma矫正就可以,在这个基础之上再引入3a算法、3a反馈,这样学起来就会容易很多。