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

海思ISP开发说明

1、概述

       ISP(Image Signal Processor)图像信号处理器是专门用于处理图像信号的硬件或处理单元,广泛应用于图像传感器(如 CMOS 或 CCD 传感器)与显示设备之间的信号转换过程中。ISP通过一系列数字图像处理算法完成对数字图像的效果处理。主要包括3A、坏点校正、去噪、强光抑制、背光补偿、色彩增强、镜头阴影校正等处理。ISP包括逻辑部分以及运行在其上firmware。

名词解释:

3A表示自动曝光(AE,Auto Exposure)、自动白平衡(AWB,Auto White Balance)、自动对焦(AF,Auto Focus)

1.1功能描述

镜头将光信号投射到sensor的感光区域后, sensor经过光电转换,将Bayer格式的原始图像送给ISP ,ISP经过算法处理,输出RGB空间域的图像给后端的视频采集单元。在这个过程中, ISP通过运行在其上的firmware对ISP逻辑, lens和sensor进行相应控制,进而完成自动光圈、自动曝光、自动白平衡等功能。其中, firmware的运转靠视频采集单元的中断驱动。

1.2基本概念

1)色温:不是色的温度,是表明白光光源光谱成分的标志。

2)白平衡AWB:就是摄像机对白色物体的还原。在不同色温的光源下,白色在传感器中的响应会偏蓝或偏红。白平衡算法通过调整R, G, B三个颜色通道的强度,使白色真实呈现。不通色温值对应的色温渐变如下图所示。

色温是一个被量化的数值,那么就也会存在高低之分,而且在我们的视觉感受上也会存在差异。低色温光源的特征是能量分布中,红辐射相对要多些,通常称为“暖光”;色温提高后,能量分布中,蓝辐射的比例增加,通常称为“冷光”。

二者关系:为了更好的理解白平衡,这边需要引入另外一个概念 —— 色温。色温是表示光线中包含颜色成分的一个计量单位。色温可以理解为以开尔文温度表示色彩。根据马克斯·普朗克的理论,将一个完全吸收与放射能力的标准黑体加热,温度逐渐升高,光度亦随之改变。CIE色度坐标中的黑色曲线显示黑体由红 -> 橙红 -> 黄 -> 黄白 -> 白 -> 蓝白的过程。

不同光线下色温相差十分悬殊,造成摄像机在不同的光线下彩色还原不同。为解决这个问题,现在的摄像机都具有白平衡校正功能,对不同的色温进行补偿,从而真实地还原拍摄物体的色彩。自动白平衡使得摄像机能够在一定色温范围内自动地进行白平衡校正,其能够自动校正的色温范围在2500K-7000K之间,超过此范围,摄像机将无法进行自动校正而造成拍摄画面色彩失真,此时就应当使用手动白平衡功能进行白平衡的校正。

AWB 算法通常包括的步骤如下:

(1)色温统计: 根据图像统计出色温;(2)计算通道增益: 计算出R 和B 通道的增益;(3)进行偏色的矫正: 根据给出的增益, 算出偏色图像的矫正。

3)颜色校正矩阵CCM(Color Correction Matrix):颜色校正的工作原理是通过一个矩阵系数来校正图像传感器获得景物的RGB图像数据,使其接近人眼真实看到的颜色。如下图所示:

4)图像处理模块IMP(Image Processing):

主要包括以下模块:

(1)Sharpen模块:用于增强图像的清晰度,包括调节图像边缘的锐化属性和增强图像的细节和纹理的清晰度,同时还能分别独立控制图像的带方向的边缘和无方向的细节纹理的锐化强度。此外,还能控制锐化后的图像的overshoot(白边白点)和undershoot(黑边黑点),以及抑制噪声的增强。

(2)Gamma模块对图像进行亮度空间非线性转换以适配输出设备。Gamma模块校正R、G、B时调用同一组Gamma表, Gamma表各节点之间的间距相同,节点之间的图像像素值使用线性插值生成。

(3)DRC算法用于对WDR合成后的数据进行动态范围压缩(Dynamic Range Compression)。图像一般需要在显示设备上显示, CRT显示器的动态范围一般只有 <50dB,而WDR合成后的数据的动态范围可以达到120dB,如果直接在CRT显示器上显示,就会由于动态范围不匹配的问题,造成丢失亮度较高或者较低处的细节。 DRC算法的目的就是要使真实场景的观察者和显示设备的观察者都能获得相同的视觉感受。DRC算法将高动态范围的图像压缩到显示器的动态范围,同时尽可能的保留原图像的细节和对比度。

(4)LSC模块主要用来处理由于镜头光学折射不均匀导致的镜头周围出现阴影的情况。目前流行的处理方式有Radial(同轴圆)方式以及Mesh(网格)方式。

(5)Defect Pixel坏点检测模块:DPC算法通过在5x5的窗口中通过某些坏点检测算法找到该窗口中明显异于临近像素的坏点。该模块主要包含以下两种模式:静态坏点标定/校正有两种流程:亮点和暗点流程。在亮点流程中,光圈处于关闭状态,启动坏点标定程序,得到坏点坐标信息。坏点个数的总数由坏点校正模块的memory决定的。得到的坏点通过临近像素的中值滤波进行校正。

(6)Crosstalk Removal模块的主要功能是为了平衡raw数据上临近像素Gr和Gb之间的差异,能够有效防止demosaic插值算法产生的方格或其他类似pattern。由于sensor可能会因为特殊角度的光线入射而产生Crosstalk,形成一些pattern,根本原因就是因为临 近像素值之间Gr和Gb值域不一致。

(7)图像去噪:是数字图像处理中的重要环节和步骤,去噪效果将对后续图像处理产生影响。该去噪模块基于噪声标定结果,建立更符合噪声特性的去噪模型,且可根据不同 sensor做标定模型定制化。 NR在Bayer域进行空域去噪处理和时域去噪处理。利用动静检测机制,对图像分前景和背景分别处理,来抑制噪声,提高整体图像信噪比。

(8)Dehaze:是通过动态的改变图象的对比度和亮度来实现的,将图像分块,统计每块内的像素值,估算出雾的浓度,根据局部自适应曲线调整去雾强度。Dehaze分为手动和自动模式,两种模式下均可调节去雾强度。

(9)去伪彩:高频分量在图像插值时易引起高频混叠。用镜头对准一个分辨率测试卡,当sensor表 面没有OLPF时,在分辨率的高频部分容易出现伪彩。 去除伪彩主要是指去除高频部分因插值错误所导致的伪彩现象。增大去伪彩强度值会减弱伪彩现象,但可能导致正常的颜色灰度化。 该模块原理是计算出伪彩出现区域及范围,通过可配去伪彩强度寄存器值调整去伪彩强度值,将RGB三个通道值灰度化,从而达到减弱伪彩现象的目的。

(10)去马赛克:Demosaic模块实现的功能是:将输入的Bayer数据转化成RGB数据。CFA(Color Filter Array,彩色滤波阵列)得到的Bayer数据,每一像素点只能获得R、G、B三基色中的 一种彩色分量值。为获得彩色图像,需要利用当前像素及周围像素的色彩分量值,估计出当前点缺失的其他两个分量值。 该模块能输出较高的图像分辨率,对弱细节及清晰度有较大提升。

(11)BayerSharpen模块用于增强图像的弱纹理清晰度,同时还能控制锐化后的图像的overshoot和undershoot,以及抑制噪声的增强。

(12)黑电平通常指没有外界光线输入时, sensor仍会输出的亮度值。ISP需要减去这个亮度值,以进行颜色的处理。

(13)去固定模式噪声:Sensor将光信号转换成电信号,再通过数百万个ADC器件后输出图像。每个像素结构 中的光电二极管的尺寸、掺杂浓度、生产过程中的沾污以及MOS场效应管的参数的偏 差等都会造成像素输出信号的变化,由于这些偏差造成的噪声对于给定的单个像素它 是固定的,这种噪声就是固定模式噪声FPN(Fixed Pattern Noise)。

(14)颜色调整模块:支持在YUV空间进行色域调整的操作,这个模块下有两个模式, 一个是CA模式,另外一个是CP模式(热成像上色),工作的时候,两者只能二选一。 在CA模式下,通过下面的公式可以将一个像素点( Y,U,V )映射到另一个像素点 ( Y’,U’,V’)。

(15)色差(Chromatic Aberration)是指光学上透镜无法将各种波长的光聚焦在同一点上的现象,是一种与镜头有关的缺陷,它产生的主要原因是不同波长的光具有不同的折射率 (色散现象)。色差可以分为如下的两类:

● 轴向色差(Axial Chromatic Aberration)
透镜对于不同的光会有不同的折射率,因此不同颜色的光会聚焦在不同的焦平面上,大口径镜头容易产生这种色差,缩小光圈可以减弱轴向色差。 人眼对于G通道更敏感, 一般G通道可以正确对焦,从而引起R、B的模糊,造成高光区与低光区交界处出现明显的紫边表现。
● 横向色差(Lateral Chromatic Aberration)
透镜的放大倍数也与折射率有关,它使得不同波长光线的像高不同,即不同波长的光会聚焦在焦平面上不同的位置,会造成R 、G、B 3通道具有不同的影像高度,在影像上产生色的错位。 越偏离图像中心,横向色差越明显, 一般横向色差表现为物体相对的两侧边缘出现不同的颜色,但具体表现为什么颜色与镜头组密切相关,不同的镜头组会表现出不同种类的颜色边缘。
CAC模块的作用是对图像中的色差进行自动检测与校正,包含ACAC和LCAC两种色 差校正算法, ACAC作为主要校正算法,不仅可以校正纵向色差,还可以校正横向色差; LCAC作为辅助校正算法,当色差严重时ACAC无法完全校正,可再结合作用于局部色差的LCAC进行校正。
(16)WDR: 由于传统的图像传感器的动态范围比较低,因此,如果用传统的图像传感器拍摄高动态范围的场景,就会要么亮处过曝,丢失很多细节;要么暗处曝光不足,细节难以分辨。为了记录高动态范围场景的每一个细节,可以采用多次曝光图像合成的方法。WDR算法的目的就是将从sensor输出的长短帧数据合成为一帧20bit的数据。长短帧数据是先缓存在DDR中,然后同时给WDR模块进行合成。合成的原则是择优选取,即对于比较亮的区域,采用短帧数据,而对于比较暗的区域,采用长帧数据。
(17)AWB量产标定工具:AWB量产标定结果通过修正AWB的静态白平衡系数实现个体差异校正。因此,用户通过MPI接口修改静态白平衡系数,会导致量产标定失效。
AWB量产标定工具实现在量产过程中,针对不同机器的差异进行对AWB差异参数校正的功能。用户可以调用 ss_mpi_isp_get_lightbox_gain 接口,在色温范围4500K到6500K的均匀光源下的均匀背景环境下,获取图像中心若干个块的Rgain和Bgain的均值,即AWB增益,用于量产过程中矫正不同机器的AWB差异参数。
(18)ColorTone提供色调调节接口,用户可通过该接口实现图像颜色偏红、偏绿、偏蓝等喜
好调节。
(19)LDCI是局域自动对比度增强的简称(Local Dynamic Contrast Improvement)。该算
法采用局域直方图均衡来增强图像局部对比度,提升暗区细节。
(20)Radial Crop:在YUV域对图像进行radial crop操作,将设定半径之外的地方直接拉黑掉。
(21)色彩空间转换模块(Color Space Conversion),用来将RGB信号转换成符合标准的YUV信号。
(22)CLUT:COLOR_3D_LUT是利用线性RGB空间17x17x17分格的3D LUT实现复杂的颜色调整操作,比如亮度的调整,饱和度的调整,色调的调整。阴影区域,中间亮度区域,高亮区域分别调整。它将像素的RGB信号的bit高位用来查找像素点位于表中的位置,利用RGB信号的bit低位用来在表的一个方格中插值出精确的偏移量。将偏移量应用于原像素值,得到调整后的最终像素值,从而使颜色得到调节。
(23)从地址空间来分,当前ISP模块可分为五个部分: AE库、 AWB库、 AF库、 ISP物理寄存
器模块、ISP其他模块。
(24)Inner State Information接口的作用是输出数个与ISO相关的参数其逻辑寄存器当前配置的真实值。 用户在调试过程中可以通过MPI接口读取这些真实值参数,观察参数强度是否正确配置。通过该接口用户只可以获取参数,而非操作改变该寄存器里的值。
(25)DNG (Digital Negative)是Adobe开发的一种开放的 raw image ile format,里面使用的tag基本上都定义在TIFF或者TIFF/EP中,在DNG Sepcification中只是定义或者建议了数据的组织方式,颜色空间的转换等等。DNG spec标准文档来定义和确定具体的dng数据格式,对标准文档中定义的标签和规定,根据实际应用场景和客户需求选择必要的最小集合实现。将raw数据封装成标准dng文件,可以由dng解析工具进行解析。
(26)

相关文章:

海思ISP开发说明

1、概述 ISP&#xff08;Image Signal Processor&#xff09;图像信号处理器是专门用于处理图像信号的硬件或处理单元&#xff0c;广泛应用于图像传感器&#xff08;如 CMOS 或 CCD 传感器&#xff09;与显示设备之间的信号转换过程中。ISP通过一系列数字图像处理算法完成对数字…...

实验十 Servlet(一)

实验十 Servlet(一) 【实验目的】 1&#xff0e;了解Servlet运行原理 2&#xff0e;掌握Servlet实现方式 【实验内容】 1、参考课堂例子&#xff0c;客户端通过login.jsp发出登录请求&#xff0c;请求提交到loginServlet处理。如果用户名和密码相同则视为登录成功&#xff0c…...

doris:聚合模型的导入更新

这篇文档主要介绍 Doris 聚合模型上基于导入的更新。 整行更新​ 使用 Doris 支持的 Stream Load&#xff0c;Broker Load&#xff0c;Routine Load&#xff0c;Insert Into 等导入方式&#xff0c;往聚合模型&#xff08;Agg 模型&#xff09;中进行数据导入时&#xff0c;都…...

Java NIO_非阻塞I/O的实现与优化

1. 引言 1.1 背景介绍 随着互联网应用的快速发展,传统的阻塞I/O模型已经无法满足高并发、高性能的需求。Java NIO(Non-blocking I/O)提供了高效的非阻塞I/O操作,使得开发者能够构建高性能的网络应用和文件处理系统。 1.2 Java NIO的重要性 Java NIO通过非阻塞I/O和多路…...

代码随想录算法训练营Day51 | 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿

文章目录 101.孤岛的总面积思路与重点 102.沉没孤岛思路与重点 103.水流问题思路与重点 104.建造最大岛屿思路与重点 101.孤岛的总面积 题目链接&#xff1a;101.孤岛的总面积讲解链接&#xff1a;代码随想录状态&#xff1a;直接看题解了。 思路与重点 nextx或者nexty越界了…...

Games202Lecture 6 Real-time Environment Mapping

RTRT RTRT&#xff08;real time ray tracing): path tracingdenoising PRT PRT (Precomputed radiance transfer):离线预计算&#xff0c;运行时快速内积。 预计算&#xff08;Offline Precomputation&#xff09;&#xff1a; 传输函数&#xff08;Transfer Function&…...

在 Zemax 中使用布尔对象创建光学光圈

在 Zemax 中&#xff0c;布尔对象用于通过组合或减去较简单的几何形状来创建复杂形状。布尔运算涉及使用集合运算&#xff08;如并集、交集和减集&#xff09;来组合或修改对象的几何形状。这允许用户在其设计中为光学元件或机械部件创建更复杂和定制的形状。 本视频中&#xf…...

MySQL知识点总结(十八)

说明你对InnoDB集群的整体认知。 MySQL组复制技术是InnoDB集群实现的基础&#xff0c;组复制安装在集群中的每个服务器实例上。组复制能够创建弹性复制拓扑&#xff0c;在集群中的服务器脱机时可以自动重新配置自己。必须至少有三台服务器才能组成一个可以提供高可用性的组。组…...

[论文总结] 深度学习在农业领域应用论文笔记14

当下&#xff0c;深度学习在农业领域的研究热度持续攀升&#xff0c;相关论文发表量呈现出迅猛增长的态势。但繁荣背后&#xff0c;质量却不尽人意。相当一部分论文内容空洞无物&#xff0c;缺乏能够落地转化的实际价值&#xff0c;“凑数” 的痕迹十分明显。在农业信息化领域的…...

MySQL和Redis的区别

MySQL和Redis都是流行的数据存储解决方案&#xff0c;但它们在设计、用途和特性上有显著区别。理解这些区别有助于选择合适的数据库来满足不同的应用需求。本文将详细介绍MySQL和Redis的区别&#xff0c;包括它们的架构、使用场景、性能和其他关键特性。 一、基本概述 MySQL&…...

Rust 中的注释使用指南

Rust 中的注释使用指南 注释是代码中不可或缺的一部分&#xff0c;它帮助开发者理解代码的逻辑和意图。Rust 提供了多种注释方式&#xff0c;包括行注释、块注释和文档注释。本文将详细介绍这些注释的使用方法&#xff0c;并通过一个示例展示如何在实际代码中应用注释。 1. 行…...

2025年2月2日(tcp3次握手4次挥手)

TCP&#xff08;三次握手和四次挥手&#xff09;是建立和关闭网络连接的标准过程&#xff0c;确保数据在传输过程中可靠无误。下面是详细解释&#xff1a; 1. 三次握手&#xff08;TCP连接建立过程&#xff09; 三次握手是为了在客户端和服务器之间建立一个可靠的连接&#x…...

一文了解制造业中的QC是什么

制造业中的QC QC &#xff1a;Quality Control&#xff0c;品质控制&#xff0c;产品的质量检验&#xff0c;发现质量问题后的分析、改善和不合格品控制相关人员的总称。中文意思是品质控制、质量检验。为达到品质要求所采取的作业技术和活动。有些推行ISO9000的组织会设置这样…...

【NEXT】网络编程——上传文件(不限于jpg/png/pdf/txt/doc等),或请求参数值是file类型时,调用在线服务接口

最近在使用华为AI平台ModelArts训练自己的图像识别模型&#xff0c;并部署了在线服务接口。供给客户端&#xff08;如&#xff1a;鸿蒙APP/元服务&#xff09;调用。 import核心能力&#xff1a; import { http } from kit.NetworkKit; import { fileIo } from kit.CoreFileK…...

在CentOS服务器上部署DeepSeek R1

在CentOS服务器上部署DeepSeek R1,并通过公网IP与其进行对话,可以按照以下步骤操作: 一、环境准备 系统要求: CentOS 8+(需支持AVX512指令集)。 硬件配置: GPU版本:NVIDIA驱动520+,CUDA 11.8+。 CPU版本:至少16核处理器,64GB内存。 存储空间:原始模型需要30GB,量…...

算法随笔_36: 复写零

上一篇:算法随笔_35: 每日温度-CSDN博客 题目描述如下: 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改…...

MoonBit 编译器(留档学习)

MoonBit 编译器 MoonBit 是一个用户友好&#xff0c;构建快&#xff0c;产出质量高的编程语言。 MoonBit | Documentation | Tour | Core This is the source code repository for MoonBit, a programming language that is user-friendly, builds fast, and produces high q…...

使用 DeepSeek-R1 与 AnythingLLM 搭建本地知识库

一、下载地址Download Ollama on macOS 官方网站&#xff1a;Ollama 官方模型库&#xff1a;library 二、模型库搜索 deepseek r1 deepseek-r1:1.5b 私有化部署deepseek&#xff0c;模型库搜索 deepseek r1 运行cmd复制命令&#xff1a;ollama run deepseek-r1:1.5b 私有化…...

网络工程师 (13)时间管理

一、定义与重要性 项目时间管理是指为确保项目按时完成而采取的一系列规划、安排和控制活动。它始于项目启动阶段&#xff0c;贯穿整个项目生命周期&#xff0c;直至项目结束。时间管理对于项目的成功至关重要&#xff0c;它有助于项目团队明确工作目标和时间节点&#xff0c;增…...

【xdoj-离散线上练习】T251(C++)

解题反思&#xff1a; 开始敲代码前想清楚整个思路比什么都重要嘤嘤嘤&#xff01;看到输入m, n和矩阵&#xff0c;注意不能想当然地认为就是高m&#xff0c;宽n的矩阵&#xff0c;细看含义 比如本题给出了树的邻接矩阵&#xff0c;就是n*n的&#xff0c;代码实现中没有用到m这…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...