FPGA转行ISP的探索之二:技术路线和概念

图片

ISP领域的概念

1 相机方面的概念

1)DENOISE,图像去噪

图像噪声按噪声与信号的关系可分为加性噪声和乘性噪声;按照产生原因可分为外部噪声和内部噪声;按照统计特性可分为平稳噪声和非平稳噪声;平稳噪声基于统计后的概率密度函数又可以分为:高斯噪声、泊松噪声、脉冲噪声、瑞利噪声。

图像去噪的算法一般是滤波,比如空域滤波,变换域滤波,机器学习方法等,经常是用OpenCV的代码来写。

2) CONTRAST,对比度

对比度调节在科研成像中的两个重要作用:将图像调亮,让噪音消失。
图像由像素组成,每个像素的值我们称之为灰度值(Gray Scale),灰度值的大小代表每个像素的亮度,越大越亮;

灰度最小值为0,最大值由图像的位深决定,例如位深为8的图像(即我们常说的8位的图像或者8bit的图像),最大值为2的8次方即256;

当图像在电脑屏幕上显示时,0并不一定代表最暗(即纯黑),256并不一定代表最亮(即纯白),我们完全可以将譬如203设置为最亮,15设置为最暗;

将图像的灰度值与电脑屏幕的纯白和纯黑对应设置的过程我们称之为图像的对比度调节。说通俗点就是拉对比度。

3) SATURATION,饱和度

饱和(Saturation)数值是成像传感器(imaging sensor)的一个重要指标,不同相机的饱和(saturation)的数值不一样。

饱和度计算公式:

Ω=双键数+三键数×2+环数

饱和度可定义为彩度除以明度,与彩度同样表征彩色偏离同亮度灰色的程度。

但由于其和彩度决定的是表现于人眼里的同一个效果,

所以才会出现视彩度与饱和度为同一概念的情况。

可以理解为饱和度虽然表现的东西在人眼中与彩度一致,

但实际是包含着彩度更高一级的单位(饱和度=彩度÷明度)。

4) SHARPNESS,清晰度/图像锐化

sharpness在图像的边缘更明显,一般用图像的边缘响应来测量。

sharpness有几种测量方法:10%-90%上升距离法,MTF,空间频域,斜边算法等。

假设,在一张白色图像里有一个黑色条纹,那么黑色条纹边缘的像素亮度由里到外是逐渐升高的,最暗的地方是黑色条纹的中间部分,最亮的地方在白色区域,而上图中亮度变化的快慢就表示成像系统的清晰程度。取10%-90%这一距离来表示清晰度,距离越大,说明边缘像素的亮度变化越缓慢,黑白交界处就越模糊,清晰度就越低。

图片

2 手机的camera结构和成像流程

不同于胶卷相机和单反相机,手机中的Camera已经集成为一个整体的模组,感光sensor(芯片)为核心器件,其它组成器件包括镜头、音圈马达、eeprom等。

其中的sensor IC,音圈马达和eeprom需要通过I2C进行控制,图像数据通过MIPI协议进行传输。其基本工作原理为:景物通过镜头生成光学图像投射到图像传感器表面上,产生电信号,经过A/D转换后变为数字图像信号,再将数字图像信号输出至手机的图像处理芯片(ISP)中。

3 ISP的技术路线

通常分为两种技术路线
1)针对相对固定的业务场景,本身又包含强大的算法团队支撑,也就是说可以明确自己想要什么算法落在芯片上(又能保证在产品周期内算法的竞争力),通常采用ASIC的设计。这种设计的优势对芯片来说是显而易见的,即最优的PPA,缺点是算法不能改动。采用此类设计方案的厂商包括比如Nvidia, TI和海思等

2)另一种方案是采用软核的方案,即采用可编程的DSP加速ISP算法。优势就在于其可编程性增加了算法的灵活性,便于OEM提供差异化的算法针对不同业务场景,主要厂商包括高通和NXP等.

4 典型ISP:S32V处理器

该芯片是NXP提供的第二代视觉处理器系列,旨在支持图像处理的计算密集型应用,并提供了一个ISP、强大的3D GPU、双APEX-2视觉加速器和安全性,以及支持SafeAssure™。S32V适用于ADAS、NCAP前视摄像头、异物检测和识别、环视、机器学习和传感器融合应用,S32V专为汽车级可靠性、功能安全和安全措施而设计,以支持汽车和工业自动化。

从编程的角度来看完成ISP的功能需要两个维度的编程工作:
1)Kernel层面的函数实现pixel级图像处理功能,通常用来实现单一或者融合的ISP算法,计算过程运行在IPUS/IPUV中。
2)Graph层面用于组合和排列各种算法实现完整的ISP pipeline. 这部分工作更像是对处理流程的描述,然后通Seqeuncer完成IPU的任务调度和buffer的状态管理。Sequence的代码由厂商作为firmware提供,并向用户开放特定API用于如IPU寄存器读写请求等工作。

5 ISP firmware

ISP firmware是指嵌入式系统中的固件,用于控制和管理图像传感器(Image Sensor)的功能和算法。

ISP firmware通常由多个部分组成,包括ISP控制单元和基础算法库、AE(Auto Exposure)/AWB(Auto White Balance)/AF(Auto Focus)算法库以及sensor库

其中,ISP控制单元和基础算法库负责调度和管理各种算法库的运行,而AE/AWB/AF算法库则负责实现自动曝光、自动白平衡和自动对焦等功能。sensor库则用于与ISP基础算法库和3A算法库进行函数回调,以实现对不同传感器的适配。
通过ISP firmware,可以实现对图像传感器的控制和优化,从而提高图像质量和性能。它可以应用于各种嵌入式系统中,如数字相机、智能手机、安防监控等。

6 ISP的工作

大致理解ISP的工作是在做固件/驱动,会看已有产品的芯片手册,会用OpenCV编程(C语言或者Python),可能也有一部分类似FPGA的工作,只不过因为芯片是固定的(ASIC),是了解而不是HDL编程
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA面试框架篇

1. Spring refresh 流程 要求 掌握 refresh 的 12 个步骤 Spring refresh 概述 refresh 是 AbstractApplicationContext 中的一个方法,负责初始化 ApplicationContext 容器,容器必须调用 refresh 才能正常工作。它的内部主要会调用 12 个方法&#x…

单主模式和多主模式切换

1 组复制模式切换注意点 组复制有两种运行模式,一种是单主模式,一种是多主模式。这个模式是在整个组中设置的,由 group_replication_single_primary_mode 这个系统变量指定,而且在所有成员上必须保持一致。ON 表示单主模式&#…

禁止电子邮箱地址登录WordPress后台的插件No Login by Email Address

WordPress 4.5及之后的版本增加了使用注册用户的电子邮件地址代替用户名登录的功能,但是大多数个人站长的管理员邮箱地址都是固定,而且到其他站点进行评论留言也是同一个邮箱地址,很容易给一些别有用心的可乘之机,所以禁止WordPre…

(AtCoder Beginner Contest 341)(A - D)

比赛地址 : Tasks - Toyota Programming Contest 2024#2&#xff08;AtCoder Beginner Contest 341&#xff09; A . Print 341 模拟就好了 &#xff0c; 先放一个 1 , 然后放 n 个 01 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout…

【Effective Objective - C 2.0】——读书笔记(五)

文章目录 二十九、理解引用计数三十、以ARC简化引用计数三十一、在dealloc方法中只释放引用并解除监听三十二、编写异常安全代码时留意内存管理问题三十三、以弱引用避免保留环三十四、以”自动释放池块“降低内存峰值三十五、用"僵尸对象"调试内存管理问题三十六、不…

C++ 调用js 脚本

需求&#xff1a; 使用Qt/C 调用js 脚本。Qt 调用lua 脚本性能应该是最快的&#xff0c;但是需要引入第三方库&#xff0c;虽然也不是特别麻烦&#xff0c;但是调用js脚本&#xff0c;确实内置的功能&#xff08;C 调用lua 脚本-CSDN博客&#xff09; 步骤&#xff1a; 1&…

解决elementUI固定列后,下方多了一条横线的问题

最近遇到一个bug,如下图,el-table的操作列使用fixed属性固定后,下方多了一条横线: 我们将样式设置高优先,以覆盖内联样式,如下是less里使用穿透样式解决的办法: <style lang="less" scoped> /deep/ .el-table__fixed-right {height: 100

unity学习(25)——客户端与服务器合力完成注册功能(7)逻辑流程彻底解决

在服务器LoginHandler类中&#xff1a; public void login(Session session, SocketModel model) {LoginDTO loginDto Coding<LoginDTO>.decode(model.Message);//MyLog.form.textAdd("用户申请登录" loginDto.userName " " loginDto.pass…

Quartz---JobDataMap使用的两种方式

任务调度执行原理图&#xff1a; JobDataMap的使用 JobDataMap是Quartz调度器中的一个重要组件&#xff0c;主要用于存储和传递与作业&#xff08;Job&#xff09;相关的数据。它是一个实现了Java Map接口的对象&#xff0c;可以用来保存一系列的序列化的对象。这些对象在作业执…

IPv4编址方式

IPv4编址方式 本文的知识都可以到B站up湖科大教书匠的视频里去看具体讲解。 分类地址 IPv4地址被分为网络号和主机号&#xff0c;可分为A类地址、B类地址、C类地址、D类地址、E类地址。其中&#xff0c;只有A类、B类、C类地址的可用于给网络中的主机编址。 A类地址的网络号…

【Jvm】性能调优(下)线上问题排查思路汇总

文章目录 前言性能调优&#xff08;上&#xff09;线上问题排查工具汇总JVM调优&#xff08;中&#xff09;Java中不得不了解的OOM Error 一.JVM参数1.参数分类2.非稳定参数&#xff08;-XX&#xff09;说明3.查询JVM默认参数及运行时生效参数4.常用参数5.GC日志相关参数6.发生…

嵌入式系统在智慧城市建设中的关键角色与挑战

&#xff08;本文为简单介绍&#xff0c;观点源于网络&#xff09; 智慧城市的概念&#xff0c;随着信息技术的日益发展而不断深化。它利用各种信息传感器&#xff0c;通过物联网、云计算、大数据等技术手段&#xff0c;实现城市管理的智能化、精细化。在这一过程中&#xff0…

jvm、jre、jdk的关系

jvm Java 虚拟机&#xff08;JVM&#xff09;是运行 Java 字节码的虚拟机。 jre JRE&#xff08;Java Runtime Environment&#xff09; 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合&#xff0c;主要包括 Java 虚拟机&#xff08;JVM&#xff09;、J…

沁恒CH32V30X学习笔记06---串口dma接收+空闲中断组合接收数据

DMA 控制器提供 18 个通道,其中 DMA1 包含 7 个通道,DMA2 包含 11 个通道,每个通 道对应多个外设请求,通过设置相应外设寄存器中对应 DMA 控制位 通道映射 dma1 dma2 示例代码 bsp_usart_it.c /** bsp_usart_it.c** Created on: 2024年2月18日* Author: admin*/…

SPSSAU【文本分析】|LDA主题分析

LDA主题分析 LDA主题分析是一种提取出文本数据核心主题的模型&#xff0c;其可将整份数据文档的信息提取成几个主题&#xff0c;并且标题出主题与关键词之间的权重情况&#xff0c;用于识别主题的具体实际意义&#xff0c;除此之外&#xff0c;LDA主题分析涉及到可视化展示和图…

PyCharm 自动添加文件头注释

PyCharm 自动添加文件头注释 1. File and Code Templates2. Python FileReferences 1. File and Code Templates File -> Settings -> Editor -> File and Code Templates -> Python Script Reformat according to style & Enable Live Templates Created by…

stm32--笔记

一、引脚与变量 ​​​​​​​​​​​​​​ 二、STM32时钟 [STM32-时钟系统详解_stm32时钟_KevinFlyn的博客-CSDN博客] 三、定时器中断实验 1、定时器中断实验 ​ stm32关于通用定时器的周期、频率计算公式_stm32tim频率计算_胶囊咖啡的博客-CSDN博客 ​ 【STM32】通用…

2024.2.18 C++QT 作业

思维导图 练习题 1>定义一个基类 Animal&#xff0c;其中有一个虛函数perform&#xff08;)&#xff0c;用于在子类中实现不同的表演行为。 #include <iostream>using namespace std;class Animal { public:virtual void perform() {cout << "这是一个动…

pytest 框架自动化测试

随笔记录 目录 1. 安装 2. 安装pytest 相关插件 2.1 准备阶段 2.2 安装 2.3 验证安装成功 3. pytest测试用例的运行方式 3.1 主函数模式 3.1.1 主函数执行指定文件 3.1.2 主函数执行指定模块 3.1.3 主函数执行某个文件中的某个类、方法、函数 3.1.4 主函数执行生…

Deployment

一、Deployment&#xff1a;管理部署发布的控制器 1、背景问题&#xff1a; 应用中的 Pod 如果出现了一些故障&#xff0c;如何保证集群内可用 Pod 的数量&#xff1f; 如何为所有 Pod 更新镜像版本&#xff1f; 在更新过程中&#xff0c;如何保证服务的可用性&#xff1f;…