海思AE模块Lines_per_500ms参数的意义

news2024/9/21 22:51:45

 基础知识

1秒(S)=1000毫秒(ms)=1000_000微妙(µs)=1000_000_000纳秒(ns)

1GHz=1000Mhz=1000_000KHz=1000_000_000Hz

1Hz=1/s

抗频闪原理

海思AE模块参数中有一个LinesPer500ms的参数,意思为500ms对应的曝光行数。此个参数和抗频闪有关。

我们知道:

50HZ交流电能量周期:T = 1/(50*2)s

sensor曝光一行 line_time = line_length/pclk=HTS*(1/pclk),

line_length = pclk * line_time;

fps=pclk/(VTS*HTS)

= pclk/(frame_length*line_length)


line_time = 1/(frame_length *fps ) = 1/(VTS *fps )

为了避免flicker,必须满足每一行获取的能量是交流电能量周期的整数倍,否则会应为获取的能量不一致,导致水波纹现象的产生。即:

line_time* Step = n * T

故:

Step= n*T/line_time=n*T/(1/(VTS *fps ))=n*T*VTS*FPS=n*VTS*FPS/100       (n取正整数)

Fps为一秒内的帧数,因此line_time应该以秒为单位。或者说是pclk 以MHZ为单位需要转换为Hz为单位,才与50Hz在同一个度量水平。而1Hz=1/s,所以line_time参数也是以s为单位。

linesPer500ms参数主要是进行以曝光行为单位的曝光时间和微妙为单位的曝光时间的转换。AE自动曝光算法内部还是以曝光行为单位进行AE的调整,而调试工具界面除了曝光时间上下限是以曝光行为单位,其他时间相关的都是以微妙为单位。

https://i-blog.csdnimg.cn/direct/324194f1fb9f4b3e863218486456f48b.png

海思抗频闪方式描述如下:

https://i-blog.csdnimg.cn/direct/7999ed23d2be4d819431d47942587bf3.png

Lines_per_500ms=pclk/(Picture_width+Width of the horizontal blanking region)/2=pclk/HTS/2

上述公式怎么得到的呢?

我们知道sensor一行的曝光时间为line_time=HTS/pclk,那么500ms需要对应曝光多少曝光行呢?

1/line_time=x/0.5   注意等式两边时间单位是以s为单位

x=0.5/line_time=pclk/HTS/2

即500ms对应的需要曝光pclk/HTS/2曝光行才行。

抗频闪参数(Lines_per_500ms)定义的问题

以50HZ抗频闪为例,50HZ抗频闪每行需要曝光10ms,也即是pclk/HTS/100,也即VTS*fps/100

那为什么不直接定义一个linesPer10ms(10ms对应的曝光行数)的参数去进行抗闪时间计算呢?如果定义linesPer500ms的参数,那还需要再此参数的基础上再除以50才能以转换为以每10ms为步进进行曝光。本质上linesPer10ms和linesPer500ms在此情景中是一样的作用。实际内部计算中用linesPer10ms去计算曝光时间根据方便些。

抗频闪参数(Lines_per_500ms)定义的问题

原因1

再继续思考定位。发现海思内部计算工频闪烁类型的时候有用到Lines_per_500ms参数。如下图描述:

https://i-blog.csdnimg.cn/direct/b01754d3f94847f9aded5d920b755f5b.png

https://i-blog.csdnimg.cn/direct/f2fdda6ab6064f10b5d889f2599448d8.png

https://i-blog.csdnimg.cn/direct/097a48646a194084be4bfed3f603e086.png

大概意思是利用获取到的3帧图像数据根据LinePerSecond变量,计算出当前环境是有无工频闪。有工频闪时候,是50HZ还是60Hz工频闪,亦或是未知类型的工频闪。

计算工频闪烁的时候需要LinePerSecond,即1秒的最大总曝光行数。

我们知道1s=0.01*100s=0.5*2s。

假设当前帧率为8帧,VTS等于1124为偶数

我们以Lines_per_500ms=VTS*fps/2,Lines_per_10ms=VTS*fps/100分别计算得到:

Lines_per_500ms = 1124*8/2=4496

Lines_per_10ms =  1124*8/100=89

然后以Lines_per_500ms 、Lines_per_10ms分别计算LinePerSecond,

分别得到4496*2=8992,、89*100=8900。
以上以Lines_per_10ms计算得到的LinePerSecond存在误差,而以Lines_per_500ms计算得到的LinePerSecond无误差



假设当前帧率为8帧,VTS等于1125为奇数

我们以Lines_per_500ms=VTS*fps/2,Lines_per_10ms=VTS*fps/100分别计算得到:

Lines_per_500ms = 1125*8/2=4500

Lines_per_10ms =  1125*8/100=90
以上以Lines_per_10ms计算得到的LinePerSecond无误差,而以Lines_per_500ms计算得到的LinePerSecond无误差

即使是帧率为奇数帧,VTS为奇数,根据Lines_per_500ms 、Lines_per_10ms分别计算LinePerSecond时,以Lines_per_500ms计算得到的LinePerSecond也会比以Lines_per_10ms计算得到LinePerSecond误差要小些。

通过图像帧数据和LinePerSecond判断当前是否有误频闪的时候,LinePerSecond参数越精确越好。如果以Lines_per_10ms为抗闪参数,在计算LinePerSecond时会有些许误差。最后将导致判断频闪类型的时候可能会出现误判或者漏判的情况。所以海思的抗闪参数定义为Lines_per_500ms。

原因2:

基于同样精度的原因,在下述海思曝光行转换为微秒的关系式中,由于Lines_per_10ms计算的值相对比Lines_per_500ms 计算得到的值误差要大些,再按照下述关系转换为微秒的时候误差也较大;相反的,由微秒为单位的曝光时间转换为对应以曝光行为单位的曝光时间的时候,前者转换后的结果所带来的误差也比后者大。

在应用层面上,由于带来的误差可能将导致一些应用逻辑失效或者出错。

https://i-blog.csdnimg.cn/direct/68d673f840e14b668091c5e3606d54cb.png

​所以,以Lines_per_500ms 为抗频闪参数,为的是尽量减小精度保证相应逻辑正确的的前提下所设计的参数值。

其他原因:?? 欢迎讨论补充

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

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

相关文章

SQL注入实例(sqli-labs/less-17)

0、初始网页 1、确定闭合字符 注入点在于password框,闭合字符为单引号 2、爆库名 1 and updatexml(1,concat(0x7e,database(),0x7e),1)# 1 and (select 1 from (select count(*),concat((select database()),floor(rand()*2))x from information_schema.tables gr…

【C语言】通讯录的实现(基本版和动态版)

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html 🎁代码托管:C语言: C语言方向(基础知识和应用) (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、…

教育法、义务教育法、教师法、未成年人保护法、预防未成年人犯罪法、学生伤害事故处理办法

《中华人民共和国教育法》 《中华人民共和国义务教育法》 《中华人民共和国教师法》 《中华人民共和国未成年人保护法》 《中华人民共和国预防未成年人犯罪法》 《学生伤害事故处理办法》

C++:string

1.STL简介 STL(standard template library标准模版库),是c标准库的重要组成部分,是一个包罗数据结构与算法的软件框架。 STL有很多版本,我们学习STL要阅读部分源代码,主要参考SGI版本。 STL的六大组件&a…

Volana:一款基于Go开发的Shell命令代码混淆工具

关于Volana Volana是一款功能强大的Shell命令代码混淆工具,该工具基于Go语言开发,可以帮助广大研究人员实现对Shell命令或脚本代码的混淆处理。 在红队测试过程中,隐蔽性是非常重要的一个方面,许多基础设施会记录命令并实时将其发…

Java 中的泛型 集合(List,Set) Map

泛型的本质是参数化类型,即允许在编译时对集合进行类型检查,从而避免安全问题,提高代码的复用性 泛型的具体定义与作用 定义:泛型是一种在编译阶段进行类型检查的机制,它允许在类,方法,接口后通过<> 来声明类型参数.这些参数在编译时会被具体的类型替换.java在运行时,会通…

Java生成Word->PDF->图片:基于poi-tl 进行word模板渲染

文章目录 引言I Java生成Word、PDF、图片文档获取标签渲染数据生成文档案例II 工具类封装2.1 word 渲染和word 转 pfd2.2 pdf转成一张图片III poi-tl(word模板渲染) 标签简介文本标签{{var}}图片标签表格标签引用标签IV poi-tl提供了类 Configure 来配置常用的设置标签类型前后…

dwg图纸识别,提取建筑外轮廓坐标数据

1.业务流程说明 目的是通过dwg图纸&#xff0c;在网页端绘制出一个包括建筑外轮了的白模。为了达到这个目的&#xff0c;我们需要dwg图纸识别&#xff0c;提取到图纸中的建筑外轮廓的坐标数据。 2. 实施步骤 1.1 根据dwg图纸&#xff0c;转换成dxf文件&#xff0c;通过对dxf文…

区域与语言CultureInfo

CultureInfo 类 命名空间: System.Globalization 程序集: System.Globalization.dll 提供有关特定区域性&#xff08;对于非托管代码开发&#xff0c;则称为“区域设置”&#xff09;的信息。 这些信息包括区域性的名称、书写系统、使用的日历、字符串的排序顺序以及对日期…

56 锐键交换机开局

锐键交换机开局 一 锐键视图切换 1 Ruijie> 用户视图 2 Ruijie# 特权模式 3 Ruijie(config)# 全局配置模式 4 Ruijie(config-if-GigabitEthernet 1/1/1)# 接口配置模式 5 Ruijie(config)#show vlan 6 exit (退出) 7 enable(进入)

【电子数据取证】支持最新版微信、企业微信、钉钉等重点应用数据提取分析!

文章关键词&#xff1a;电子数据取证、手机取证、云取证、电子物证、仿真取证 针对取证调查员目前在案件现场无法提取通讯聊天数据的情况&#xff0c;为了更好地适应这一实战需求&#xff0c;龙信科技快速响应对A303“鹰眼”介质快取系统和A315计算机快速采集系统全面升级&…

java10-集合框架

1. 集合的简介 1.1什么是集合 集合Collection&#xff0c;也是一个数据容器&#xff0c;类似于数组&#xff0c;但是和数组是不一样的。集合是一个可变的容器&#xff0c;可以随时向集合中添加元素&#xff0c;也可以随时从集合中删除元素。另外&#xff0c;集合还提供了若干个…

人工智能安全态势和趋势

吴世忠 中工院士 国家保密科技委主任 重大风险隐患呼唤加强安全研究&#xff0c;人工智能面临未来担忧 1 总体态势 1.1 相对于技术发展&#xff0c;安全研究严重滞后 1.2 我国研究十分活跃&#xff0c;论文数量遥遥领先 1.3 影响力美国排名第一&#xff0c;大厂大学作用大 1…

【python】Python操作Redis数据库的详细教程与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

三防平板助力MES系统,实现工厂移动式生产报工

在当今竞争激烈的制造业环境中&#xff0c;提高生产效率、优化生产流程以及实现精准的生产管理已经成为企业生存和发展的关键。 MES系统作为连接企业计划层和控制层的桥梁&#xff0c;在实现生产过程的信息化、数字化和智能化方面发挥着重要作用。与此同时&#xff0c;三防平板…

JNPF快速开发平台助力企业实现工作流自动化

随着企业信息化建设的不断深入&#xff0c;工作流自动化已成为提升企业效率、优化业务流程的关键手段。JNPF快速开发平台凭借其强大的功能和灵活的配置&#xff0c;为众多企业提供了实现工作流自动化的高效解决方案。 关于低代码开发平台的普及应用 随着信息技术的迅猛发展&…

高中数学必修一函数部分重难点(上)

高中数学必修一函数部分重难点&#xff08;上&#xff09; 本文主要引出映射的概念&#xff0c;明确函数即为映射的一种方式&#xff0c;同时本篇叙述了我在初学时的困难点—定义域等以及当时所觉的难题&#xff0c;最后一图为纯手整理的干货&#xff0c;需要可以留下三联自行取…

Swagger 自动生成 Dubbo 服务的接口文档,以及测试调用

1. 概述 在使用 SpringMVC 构建 HTTP API 时&#xff0c;我们可以通过 Swagger 自动生成 HTTP 接口文档&#xff0c;通过 Swagger UI 界面上进行 HTTP 接口调试。如下图所示&#xff1a; Swagger HTTP 界面 秃头提示&#xff1a;对 Swagger 不太了解的胖友&#xff0c;可以去阅…

论文阅读笔记:Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels

论文阅读笔记&#xff1a;Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels 1 背景2 创新点3 方法4 模块4.1 伪标签4.2 使用不可靠的伪标签 5 效果5.1 与SOTA方法对比5.2 消融实验5.3 定性结果 6 结论 论文&#xff1a;https://arxiv.org/pdf/2203.03884…

北京崇文门中医院贾英才主任:战胜头晕,重获“清醒人生”

头晕&#xff0c;这个看似常见却又恼人的症状&#xff0c;常常让患者的生活陷入困境。在北京崇文门中医院&#xff0c;有个叫贾英才的医生&#xff0c;他凭借医术&#xff0c;给不少头晕患者带去了希望。 北京崇文门中医院贾英才主任在医学领域辛勤耕耘多年&#xff0c;对于头晕…