当前位置: 首页 > news >正文

ISP有感自发

一、黑电平

由于传感器,即便在无光的情况下,依然会产生微小的暗电流,这些暗电流可能是噪点会影响后期的调试。因此,我们便将这些电流处理为0,成为纯黑的颜色。可以在源头消除这些误差。

如何矫正黑电平:

在其中有个ob区域(Optical Black Region),这个区域是不感光的,但是也会接收到黑电平。因此,可以把有效区域的值减去ob区的值,这样就可以得到矫正后的值。

  1. 获取OB区数据:从传感器读取遮蔽区域的像素值(如每行的前若干列)。

  2. 计算基准值:取OB区所有像素的均值或中位数(避免异常值干扰)。

  3. 矫正图像数据

    矫正后像素=原始像素−OB区基准值矫正后像素=原始像素−OB区基准值
  4. 限幅处理:确保结果不小于0(避免负值)。

二、ISP的调试思路

1、明确ISP的调试顺序。

因为靠前的会影响到靠后顺序的模块。不同平台会不同,一定要问清楚对应的厂商。

如上是一个比较简单的 ISP pipeline,各家平台会有些差异,但其实大概的流程原理都是差不多的,可能会多些小的功能模块,及做一些数据转换处理,比如raw域去噪前,因为raw数据比较暗,可能会加一条曲线把暗部调亮一点,有助于去噪的处理。
简单过一下如上的流程图,可以分为3个模块来看,sensor 出来的是 bayer 格式的raw 数据,中间经过黑电平矫正(blc),去除暗电流、镜头阴影矫正(lsc),去掉边缘暗角及color shading、接着经过坏点矫正(dpc),去除sensor中的动静态坏点。
再经过 Demosaic 处理后,输出RGB格式的数据,接着会经过时/空域的去噪处理、白平衡(awb)、颜色矩阵矫正(ccm)、gamma的处理,后面会转换成YUV格式的数据输出,再经过自动曝光(ae)、降彩噪(CNR)、锐化等的处理,最后经过编码输出显示出来。

2、特征标定

特征标定是ISP调试的第一步,目的是通过实验室环境下的标准化测试,提取传感器模组的物理特性,并生成一组静态参数。

  • BLC(Black Level Correction,黑电平校正):消除传感器暗电流引起的基线噪声。

  • LSC(Lens Shading Correction,镜头阴影校正):补偿镜头边缘亮度衰减和颜色不均匀性。

  • Noise Profile(噪声特性分析):量化传感器在不同光照条件下的噪声分布,为降噪算法提供依据。

  • Gamma(伽马校正):调整图像对比度,使输出符合人眼感知特性。

  • AWB(Auto White Balance,自动白平衡):校正色温,确保白色物体在不同光照下呈现中性色。

  • CCM(Color Correction Matrix,颜色校正矩阵):补偿传感器颜色滤波阵列(CFA)的色偏。

  • CAC(Chromatic Aberration Correction,色差校正):修正镜头色散导致的颜色边缘偏移。

这些参数本质上是传感器模组的 "物理指纹",反映了其硬件特性(如感光能力、噪声特性、镜头缺陷等)。标定得到的参数是 静态的,即在特定实验室环境下(固定光照、色温、标定板等)生成的参数,理论上 不随场景变化。它们是后续在线调试的基准。如果不矫正好,会影响后续的模块。在标定完成后,ISP会进入 在线调试(Tuning) 阶段,即根据实际场景动态调整参数(如动态降噪强度、局部对比度增强等)。但这一阶段需要 基于准确的标定参数。

3、不同功能模块调试

亮度/对比度相关的模块,如 gamma、ltm、gtm、aeb、色彩相关模块,如 ccm、awb、gamma、blcc、清晰度相关模块,如 ae、lsc、2d/3d nr、demosaic、dpc

4、在线调试

 ①在线调试的第一步是AE。

        因为很多模块都是基于曝光的,AE里面会涉及gain值和噪点,如果AE不确定,其他模块的噪点也不确定,调试也是没有意义的。

②降噪和清晰度调试。

        接着可以是降噪和清晰度模块的调试,降噪过大肯定是会对清晰度有损失,调试时是需要平衡的, 还有调试时要注意是raw域还是yuv域的处理(如果是raw域锐化或去噪过大,可能就会放大噪声或者损失清晰度,你后续yuv域的去噪或锐化就做不出来了),另外清晰度不够时,要思考是否是 demosaic 模块细节没做出来,或者raw域去噪太强,导致细节损失了,而不是一味的去调整锐化强度。解释如下:

        在低光场景(ISO 3200),需 适度放松降噪强度 以保留暗部细节,同时 降低锐化强度 避免放大噪声;而在明亮场景(ISO 100),可 增强降噪和锐化 以提升清晰度。

③ RAW域与YUV域处理的差异

RAW域处理
  • 输入数据:传感器输出的原始RAW数据(Bayer格式,未插值)。

  • 关键操作

    • 降噪:优先在RAW域进行 基础降噪(如时域降噪、空域滤波),因为此时噪声尚未被后续处理(如Demosaic)放大。

    • 锐化:RAW域锐化需谨慎,避免在插值前破坏Bayer模式的结构(可能引入伪色或混叠噪声)。

风险

  • RAW域降噪过强:会抹除高频细节(如纹理、边缘),导致后续Demosaic无法恢复。

  • RAW域锐化过度:可能放大噪声或产生伪色,后续YUV域处理难以修正。

YUV域处理
  • 输入数据:经过Demosaic、色彩校正、Gamma后的YUV格式数据(亮度Y + 色度UV分离)。

  • 关键操作

    • 降噪:针对YUV分量的特性进行 精细化降噪(如亮度通道降噪、色度通道降噪分离)。

    • 锐化:在Y通道(亮度)进行边缘增强,或在UV通道抑制色噪。

  • RAW域:侧重 基础降噪(抑制固定模式噪声、时域噪声),避免过度处理。

  • YUV域:侧重 精细化降噪(如色度降噪、亮度通道自适应滤波)和 可控锐化

④色彩模块

色彩相关的模块可以单独去调影响不大,但ccm调整的过饱和时,会出现色噪。一般整体的偏色都是白平衡偏了,图像中某个颜色不对可以调整ccm,一般情况下不建议手动去调整ccm,因为这肯定是会影响到其他颜色的。另外gamma的调整会对颜色有影响(具体为啥会有影响,我后续文章会在具体总结)。

相关文章:

  • 数据结构基础排序算法
  • MCP(一)——QuickStart
  • JS中的数据类型
  • 计算机视觉----基础概念、卷积
  • 【Docker】Windows10环境下安装DockerDesktop
  • Spring Boot requestBody postman
  • Math工具类全面指南
  • 深入理解Java适配器模式:从接口兼容到设计哲学
  • 前端最新面试题及答案 (2025)
  • 通过MCP让LLM调用系统接口
  • HTML5 浮动(Float)详解
  • VastBase的日常操作记录
  • 计算机网络:手机和基站之间的通信原理是什么?
  • 解决SQL Server SQL语句性能问题(9)——合理使用表分区
  • Chrome浏览器实验性API computePressure的隐私保护机制如何绕过?
  • 位与运算
  • windows版redis的使用
  • 用Array.from实现创建一个1-100的数组
  • element基于表头返回 merge: true 配置列合并
  • Mixup
  • 占地57亩的“潮汕豪宅”面临强制拆除:曾被实施没收,8年间举行5次听证会
  • 中华人民共和国和巴西联邦共和国关于强化携手构建更公正世界和更可持续星球的中巴命运共同体,共同维护多边主义的联合声明
  • 北京航空航天大学首个海外创新研究院落户巴西
  • 习近平在中拉论坛第四届部长级会议开幕式的主旨讲话(全文)
  • 中美经贸高层会谈11日在日内瓦将继续进行
  • 上海证监局规范辖区私募经营运作,6月15日前完成自评自纠