海思AE模块Lines_per_500ms参数的意义
基础知识
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)ssensor曝光一行 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的调整,而调试工具界面除了曝光时间上下限是以曝光行为单位,其他时间相关的都是以微妙为单位。

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

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参数。如下图描述:



大概意思是利用获取到的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=4496Lines_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=4500Lines_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 计算得到的值误差要大些,再按照下述关系转换为微秒的时候误差也较大;相反的,由微秒为单位的曝光时间转换为对应以曝光行为单位的曝光时间的时候,前者转换后的结果所带来的误差也比后者大。
在应用层面上,由于带来的误差可能将导致一些应用逻辑失效或者出错。

所以,以Lines_per_500ms 为抗频闪参数,为的是尽量减小精度保证相应逻辑正确的的前提下所设计的参数值。
其他原因:?? 欢迎讨论补充
相关文章:
海思AE模块Lines_per_500ms参数的意义
基础知识 1秒(S)1000毫秒(ms)1000_000微妙(s)1000_000_000纳秒(ns) 1GHz1000Mhz1000_000KHz1000_000_000Hz 1Hz1/s 抗频闪原理 海思AE模块参数中有一个LinesPer500ms的参数,意思为500ms对应的曝光行数。此个参数和抗频闪有关。 我们知道: 50HZ…...
【代码随想录】区间和——前缀和方法
本博文为《代码随想录》学习笔记,原文链接:代码随想录 题目 原题链接:58. 区间和(第九期模拟笔试) 题目描述 给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。 输入描述 第一行输入为…...
Bug 解决 | 前端项目无法正确安装依赖?
目录 1、网络问题 2、权限问题 3、版本冲突 4、缓存问题 5、依赖配置错误 6、系统环境问题 前端项目和后端项目一样,都需要用到很多第三方的类库依赖。目前基本上我们主流的前端项目都使用 Npm、Yarn 等包管理工具来管理项目依赖,正常情况下通过执…...
【mysql 第四篇章】bin log 的作用是啥呢?
一、redo Log 介绍 redo log 是一种偏向物理性质的重做日志,因为他里面记录类似的这样的东西,“对那个数据也中的什么记录,做了个什么修改”。它是 InnoDB 存储引擎特有的东西。 二、bin Log 日志 bin log 叫做归档日志,它里面…...
Linux 操作系统:基于环形队列的生产者消费者模型
Linux 操作系统:基于环形队列的生产者消费者模型 一、前言二、大致框架二、P操作、V操作三、生产者生产数据四、生产者获取数据五、代码测试六、所有代码 一、前言 环形队列采用数组模拟,用模运算来模拟环状特性。和基于阻塞队列的生产者消费者模型不同的…...
python求解二次方程
为了找到x和y之间的关系,并假设这种关系是一个二次函数,我们可以使用numpy的polyfit函数来拟合一个二次方程(即形式为y ax^2 bx c的方程)。然后,我们可以使用matplotlib来绘制散点图,并在图上添加最佳拟…...
Spring框架面试总结
Spring基础 什么是spring框架 Spring 框架是一个用于构建企业级 Java 应用程序的开源框架。【Java项目快速构建轻量级框架】我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。【根据模…...
java之网络编程篇
前言 网络编程就是计算机和计算机之间通过网络进行数据传输,下面介绍一些概念和如何实现UDP和TCP两种模式的传输。 一、常见的软件架构C/S和B/S C/S架构需要一个客户端软件程序服务器 B/S只需要打开网页服务器 C/S架构的优缺点和应用场景 优点:画面可以…...
stm32f103c8t6与TB6612FNG解耦测试
stm32f103c8t6与TB6612FNG解耦测试 本文操作方式: 忽略底层,只做上层, 所以前面全部照搬步骤,重在调试 文章目录 stm32f103c8t6与TB6612FNG解耦测试本文操作方式:创建基本工程(1)跳转此链接,创建(2)创建电机驱动文件夹(3)PWM原理(4)电机转动控制 oled调试和key调试(5)OLED转速…...
2253336 - 资源库 - OAC0 中的脱机状态
症状 资源库的状态显示为离线。 环境 SAP 内容服务器 6.50 或更高版本与 MaxDB 存储媒介结合使用对于状态为离线的资源库,测试报表 RSCMST 运行正常资源库可在应用程序中使用,没有任何问题 重现问题 启动事务 OAC0双击资源库按 "CSADMIN"…...
uni-app总结
1. <u-form-item label"报废人" ><u--input v-model"model.remark" border"bottom" placeholder"请输入"></u--input> </u-form-item> border"bottom" 报废日期 为了...
【JavaEE初阶】线程安全的集合类
📕 引言 我们之前讲过的集合类,,大部分都不是线程安全的. Vector, Stack, HashTable, 是线程安全的(都是自带了synchronized,不建议用), 其他的集合类不是线程安全的。 注意:加锁不能保证线程一定安全,不加锁也不能确定线程一定…...
关于Vue项目npm快捷键,点击run启动报错,及npm i也报错的解决办法
1.配置idea的npm 2.点击运行按钮 3.结果 分析原因及问题: npm i npm run dev 由于是刚刚从gitlab新拉的前端代码,可能没有用命令install过类似于没有编译过,所以执行一下上面的命令 结果报错如下: F:\tbyf\qjyy\hip-manager-ui&…...
React中,className属性自定义组件不生效的问题
在React中,className属性不仅适用于原生的HTML元素,也可以用于自定义组件。实际上,className属性是React中通用的属性,可以应用于任何React元素,无论是原生的HTML元素还是自定义的组件。 为什么使用className而不是cl…...
Ubuntu22.04搭建fabric开发环境、开发环境下运行链码
在智能合约开发过程中,开发人员需要一种快速、迭代地测试链码包的方法,而无需为每次修改运行链码生命周期命令。 使用 Fabric 二进制文件并启动peer处于开发模式(“DevMode”),然后将链码连接到peer。它允许您启动链代…...
[BSidesCF 2019]Kookie1
打开题目,看到 根据提示,账号:cookie。密码:monster。试一下登录,登陆成功 抓包看看信息 根据提示, 看一下返回包 账号要加username要改成admin,改一下试试 构造cookie 直接得到flag flag{c…...
LCM红外小目标检测
根据站内的matlab代码修改成python版本。 import numpy as np import matplotlib.pyplot as plt import cv2 from pylab import mpl# 设置中文显示字体 mpl.rcParams["font.sans-serif"] ["SimHei"]def LCM_computation(patch_LCM_in):row, col patch_L…...
振德医疗选择泛微千里聆RPA,助力电商、人事业务流程自动化
振德医疗用品股份有限公司成立于1994年,中国A股上市公司,是医用敷料和感控防护产品主要的供应商之一。 (图片素材来自振德医疗官网) 振德医疗的业务在线上线下齐发力。目前拥有5个国内生产基地,3个海外工厂࿰…...
VBA高级应用30例应用3在Excel中的ListObject对象:创建表
《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以…...
IP 地址在 SQL 注入攻击中的作用及防范策略
数据库在各个领域的逐步应用,其安全性也备受关注。SQL 注入攻击作为一种常见的数据库攻击手段,给网络安全带来了巨大威胁。今天我们来聊一聊SQL 注入攻击的基本知识。 SQL 注入攻击的基本原理 SQL 注入是通过将恶意的 SQL 代码插入到输入参数中…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
