海思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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/963667.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot私房菜定制上门服务系统设计与实现(源码+数据库+文档)

私房菜定制上门服务系统目录 目录 基于springbootvue私房菜定制上门服务系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能实现 &#xff08;1&#xff09;菜品管理 &#xff08;2&#xff09;公告管理 &#xff08;3&#xff09; 厨师管理 2、用…

SpringBoot 整合 SpringMVC:配置嵌入式服务器

修改和 server 相关的配置(ServerProperties)&#xff1a; server.port8081 server.context‐path/tx server.tomcat.uri‐encodingUTF‐8 注册 Servlet 三大组件&#xff1a;Servlet、Fileter、Listener SpringBoot 默认是以 jar 包的方式启动嵌入式的 Servlet 容器来启动 Spr…

如何实现滑动网格的功能

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了SliverList组件相关的内容&#xff0c;本章回中将介绍SliverGrid组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的SliverGrid组件是一种网格类组件&#xff0c;主要用来…

17.[前端开发]Day17-形变-动画-vertical-align

1 transform CSS属性 - transform transform的用法 表示一个或者多个 不用记住全部的函数&#xff0c;只用掌握这四个常用的函数即可 位移 - translate <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta ht…

高清种子资源获取指南 | ✈️@seedlinkbot

在如今的数字时代&#xff0c;高清影视、音乐、游戏等资源的获取方式不断丰富。对于追求高质量资源的用户而言&#xff0c;一个高效的资源分享平台至关重要。而 ✈️seedlinkbot 正是这样一个便捷的资源获取工具&#xff0c;为用户提供高质量的种子资源索引和下载信息。 1. ✈️…

DeepSeek R1安装与使用

DeepSeek R1安装与使用 1、安装 Ollama 如果之前没有安装过 Ollama&#xff0c;先在 Ollama官网 下载对应系统的 Ollama 进行安装。 2、部署 DeepSeek R1 模型 选择需要下载的模型。这里我们选择 deepseek-r1 根据自己机器配置&#xff0c;选择不同参数的模型。这里我们选择…

Van-Nav:新年,将自己学习的项目地址统一整理搭建自己的私人导航站,供自己后续查阅使用,做技术的同学应该都有一个自己网站的梦想

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Van-Nav是一个基于Vue.js开发的导航组件库&#xff0c;它提供了多种预设的样式和灵活的配置选项&#xff0c;使得开发者可以轻松地定制出符合项目需求…

C++ Primer 命名空间的using声明

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

Python 中最大堆和最小堆的构建与应用:以寻找第 k 大元素为例

引言 在数据处理和算法设计中&#xff0c;堆&#xff08;Heap&#xff09;是一种非常重要的数据结构。它是一种特殊的完全二叉树&#xff0c;具有高效的插入和删除操作特性&#xff0c;时间复杂度为 O ( log ⁡ n ) O(\log n) O(logn)。堆主要分为最大堆和最小堆&#xff0c;…

如果把Linux主机作为路由器转发流量,性能可靠吗?

正文共&#xff1a;666 字 13 图&#xff0c;预估阅读时间&#xff1a;1 分钟 strongSwan是一个开源的基于IPsec的VPN解决方案&#xff0c;我计划是将strongSwan部署在CentOS系统中&#xff0c;但是这中间涉及到一个小问题&#xff0c;那就是strongSwan网关的子网怎么处理&…

Qt Creator 中使用 vcpkg

Qt Creator 中使用 vcpkg Qt Creator 是一个跨平台的轻量级 IDE&#xff0c;做 Qt 程序开发的同学们肯定对这个 IDE 都比较属于。这个 IDE 虽然没有 Visual Stdio 功能那么强&#xff0c;但是由于和 Qt 集成的比较深&#xff0c;用来开发 Qt 程序还是很顺手的。 早期&#xf…

Linux防火墙基础

一、Linux防火墙的状态机制 1.iptables是可以配置有状态的防火墙&#xff0c;其有状态的特点是能够指定并记住发送或者接收信息包所建立的连接状态&#xff0c;其一共有四种状态&#xff0c;分别为established invalid new related。 established:该信息包已建立连接&#x…

智能小区物业管理系统推动数字化转型与提升用户居住体验

内容概要 在当今快速发展的社会中&#xff0c;智能小区物业管理系统的出现正在改变传统的物业管理方式。这种系统不仅仅是一种工具&#xff0c;更是一种推动数字化转型的重要力量。它通过高效的技术手段&#xff0c;将物业管理与用户居住体验紧密结合&#xff0c;无疑为社区带…

马铃薯叶子病害检测数据集VOC+YOLO格式1332张9类别

数据集中大约1000张是单个叶子图片 数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1332 标注数量(xml文件个数)&#xff1a;1332 标注数…

【LeetCode: 81. 搜索旋转排序数组 II + 二分查找】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

解锁FPGA的故障免疫密码

我们身处“碳基智能”大步迈向“硅基智能”序曲中,前者更像是后者的引导程序,AI平民化时代,万物皆摩尔定律。 越快越好,几乎适用绝大多数场景。 在通往人工智能的征程中,算力无处不在,芯片作用无可替代。 十六年前,就已宣称自己是一家软件公司的英伟达,现已登顶全球…

Skyeye 云 VUE 版本 v3.15.6 发布

Skyeye 云智能制造&#xff0c;采用 Springboot winUI 的低代码平台、移动端采用 UNI-APP。包含 30 多个应用模块、50 多种电子流程&#xff0c;CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公告、问卷、报表…

数据结构课程设计(三)构建决策树

3 决策树 3.1 需求规格说明 【问题描述】 ID3算法是一种贪心算法&#xff0c;用来构造决策树。ID3算法起源于概念学习系统&#xff08;CLS&#xff09;&#xff0c;以信息熵的下降速度为选取测试属性的标准&#xff0c;即在每个节点选取还尚未被用来划分的具有最高信息增益的…

w187社区养老服务平台的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

如何让跨域文件管控简单又高效

在当今全球化和数字化的商业环境中&#xff0c;企业往往需要跨越不同的地理区域进行协作。这种多区域协作的一个关键挑战就是如何实现高效且安全的跨域文件传输。随着企业的规模不断扩大&#xff0c;并在全球范围内设立分支机构&#xff0c;跨域文件管控已经成为了一个必不可少…