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

02Isp的基础算法

TestPattern

主要是为了排查故障用的

BLC(BlackLevel Correction)------黑电平校正

就是cmos在完全暗的时候也会产生小电流,导致输出的图像会有噪声
黑电平矫正就是将这个噪声计算出来,以后拍摄图像之后减去这个噪声

LSC(Lens Shade Correction)------镜头阴影校正

就是说镜头获取的图像亮度由中间向四周递减,这个算法就是给他补上这个递减的部分
补上,在数学实现上其实是乘以一个增益系数
不止补“亮度”,还要补“颜色”
光源变了,补法也要变

DPC(Bad Point Correction)------坏点校正

sensor不能保证读到的每个点都是好的,
DPC 的核心逻辑就是“少数服从多数”(中值滤波)。
检测: ISP 看着一个像素说:“哎,你周围的 8 个邻居数值都是 50 左右,怎么就你一个是 200?”
判断: 只要差值超过了一个阈值(Threshold),就判定你是坏点。
替换: ISP 会说:“你别说话了,我用你邻居的平均值来代替你。”

GB(Green Balance)------绿平衡

由于人眼对绿色较为敏感在感官原件设计时将绿色像素点设计为2个,红色和蓝色各一个,但是两个绿色像素点的滤光效果可能有区别,所以要对两个像素点做平衡处理,一般都是取平均

Denoise-----去除噪声

Denoise就是要去除噪点,但是噪点从哪里来呢:

  • 光照强度:光是一种随机性粒子,光线越暗,进来的光子越少,导致了随机性波动比例越大
  • 传感器:即使没有光,硅片中的电子就会因为热运动而乱跑
  • ADC噪声:将模拟信号转换成数字信号时产生的噪声

那怎么去除噪声呢:
原来是使用高斯滤波,但是这会导致图像的边缘轮廓变得模糊,因为算法不知道哪里是边缘

为了解决这一问题,现在通常使用的是双边滤波算法,
他是怎么判断边缘的呢,主要是在优化之前,看看邻居点的关系,如果差距较大,就认为是边缘,不进行优化,差距较小就进行优化

Demosaic------颜色插值

Demosaic的作用就是将sensor感受到的光照强度转换为可以看见的颜色
由于像素点只能感受光照强度,所以工程师在sensor之前加了一个滤光片,这个滤光片是经过特意设计的一个像素点只能感受一种颜色,那滤光片是排列的呢,目前主流的是GRBG排列

那么目前的情况是一个像素点具有一个颜色,那么如何使一个像素点有rgb三种颜色呢,这就要用到颜色插值算法了,插值的原理就是猜,根据周围邻居的颜色来猜自己的颜色

AWB (Automatic White Balance) —— 自动白平衡

对于人眼来说无论是在中午大太阳下,还是黄昏昏暗的光照下看一张白纸都是白的,但是对于sensor来说,他就不具备这种能力,这时候我们的白平衡算法就要出手了

白平衡的核心思想就是:不管环境光是什么颜色,还是要把画面中的白色物体还原成白色

CCM(Color Correction Matrix)------颜色校正

就是滤光片真实情况下不可能完全滤光这就导致了颜色的偏差,所以给他乘以一个矫正矩阵来恢复颜色偏差

http://www.cnnetsun.cn/news/576858.html

相关文章:

  • 一文说清ES6模块化:与CommonJS的核心差异解析
  • 文心Moment·上海站|Agent训练营:把Agent玩明白,侬来伐
  • 构建高效XDMA数据通路的关键步骤:操作指南
  • 智能家居中LED显示控制的核心要点解析
  • 利用Multisim验证克拉泼振荡电路起振条件的详细过程
  • error: c9511e 导致构建失败的项目环境修复
  • ModbusRTU功能码解析:常用0x03与0x10指令实战案例
  • 【零基础学java】(等待唤醒机制,线程池补充)
  • 自变量机器人宣布融资10亿:字节跳动与红杉中国是股东
  • 植物医生冲刺深交所:半年营收10亿净利7902万 解勇控制79%股权
  • Multisim首次安装遇到主数据库错误的操作指南
  • PCB设计必看:Altium Designer线宽电流对照详细说明
  • 易语言开发从入门到精通:全景复盘·进阶策略·行业认可·共生路线
  • 企业使用 ChatBI 会有数据泄露风险吗?
  • AUTOSAR架构图层级结构:基于Vector工具链建模示例
  • 行业风向标︱2025年“医疗+”热词盘点
  • 构建白名单机制防御未知USB设备(设备描述):工控实战项目
  • 基于光感反馈的自适应LED灯PWM调光设计
  • 探索go-view:轻量级数据可视化神器,让数据跃然屏上
  • 驴贷款给自己买了一个磨
  • 每日一个C++知识点|const 和 constexpr 的区别
  • 前后端分离人事系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • ES数据库节点故障处理:实战案例详解
  • RealMem: 重新定义AI的“长期记忆”,挑战真实场景交互
  • 企业级大创管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • Excel 双向数据同步:轻松实现跨单元格数据联动
  • WinDbg Preview下载使用全攻略:系统学习调试技巧
  • 大数据分布式事务:CAP定理视角下的解决方案对比
  • 零基础学OBD:汽车故障诊断原理快速理解
  • PCB封装基础:通俗解释引脚间距与焊盘设计