camera密码错误_camera filter

camera密码错误_camera filter01flicker(banding)现象出现flicker(banding)问题时,从视频上看会发现有规律的明暗相间的条纹,这种现象也叫做牛顿环。如下图所示。02产生flicker(ban…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

01

 

flicker(banding)现象

出现flicker(banding)问题时,从视频上看会发现有规律的明暗相间的条纹,这种现象也叫做牛顿环。如下图所示。

camera密码错误_camera filter

02

产生flicker(banding)问题的原因

Sensor在日光灯作为光源下获取图像数据时会产生flicker,其根本原因是照在不同pixel上光能量不同产生的,所接受的光能量的不同也就是图像的亮度的不同。

电源的频率有两种标准:50Hz(大陆)和60Hz(台湾、日本)的正弦波形,当然能量是没有方向性的,因此对应的能量是一个频率为100Hz和120Hz的波形,如下图所示:

camera密码错误_camera filter

由于能量在时间方向上的波形,照在sensor上就使每一个pixel产生在时间方向上的相应波形,由于CMOS sensor的曝光方式是一行一行的方式进行的,任何一个pixel的曝光时间是一样的,也就是同一行上的每个pixel的曝光开始点和曝光的时间都是一模一样的,所以同一行的所有点所接受到的能量是一样的,而在不同行之间虽然曝光时间都是一样的,但是曝光的开始点是不同的,所以不同行之间所接受到的能量是不一定相同的。由此产生sensor出来的图像可能在图像高度方向上会有相应的波形,如下图:

camera密码错误_camera filter

为了使不同行之间所接受的能量相同,就必须找一个特定的条件,使得每一行即使曝光开始点不同,但是所接受的光能量是相同的,这样就避开了flicker,这个特定的条件就是曝光时间必须是光能量频率Hz的整数倍时间。

计算原理为:

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

sensor曝光一帧所用的时间 T_frame = 1/FPS;

sensor曝光一行所用的时间 T_row = T_frame/Line_max  (Line_max = Exp_max);

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

T_row * Step = n * T

故:Step = (n * T)/T_row = n*(FPS *Exp_max) /100; (n取正整数)

这个是计算Banding Flicker的依据,具体计算方法如下:

50Hz

Banding Value = Total lines * fps / 100

60Hz

Banding Value = Total lines * fps / 120

03

如何规避flicker(banding)问题 — sensor的修改

相信在很多地方都可以了解到,只要曝光时间是光能量周期(100Hz)的整数倍,即可规避工频干扰导致的闪烁问题。

但是当曝光时间低于光能量周期(10ms)时,有应该如何规避这个问题呢?

假设帧率为10fps,那么设置一帧的时间间隔刚好为100ms,那么,每帧开始曝光开始时间都会是一致的,在相同的曝光时间,得到的光能量也就一致了。(由于有些提示是100ms的帧间隔,但是由于误差问题,不是准确的100ms,误差累计导致闪烁)。

通过设置帧率,使得每一帧之间的间隔为10ms的整数倍,每帧对应的每一行曝光得到的光能量一样(从能量波形来看,要使得每一行曝光所对应的能量一样,只需要确保对应的每一行时间内对能量波形积分,所得到的面积一样即可满足),从视频上来看,当曝光时间低于光能量周期(10ms)时,明暗相间的条纹位置固定不动,视频上看来不会有明显的频闪现象。

以50Hz为例说明,实现这个有两种办法:
  1、设置曝光控制,强制为10ms整数倍变化,但是这样会浪费一部分曝光时间,导致曝光无法用满,在室内自然就会损失性能。

  2、修改桢率,使每桢图像分到的时间是10ms的整数倍,则可以用满每桢曝光时间在,室内效果更好。修改桢率可以插入Dummy Line或者Dummy Pixel。这需要一点点计算,具体计算需要看sensor输出Timing。
  例如把桢率设置为7.14fps,则每桢曝光时间是140ms。如果是15fps,则每桢曝光时间是66.66ms,如果强制曝光为10ms整数倍,最大即60ms,则有6.66ms无法参与曝光,损失性能。
  具体调整桢率方法得和sensor的FAE沟通,每个sensor都可能不一样,不能一概而论。调整桢率还有个原则要注意,预览一般不能低于 10fps,再低就很卡,常用14.28fps和12.5fps;抓拍不能低于5fps,否则用手就很难拍出清晰的照片,常用7.14fps。桢率是一个权 衡折中的选择

       高了曝光时间不够,暗光效果太差,低了没法拍照,容易虚。

04

如何规避flicker(banding)问题 — app 的修改

banding现象,也叫做牛顿环,那防止这种现象,也就叫做防牛顿环,在Android 里面叫做anti banding。

针对banding问题,google也为我们提供了对应的接口,CONTROL_AE_ANTIBANDING_MODE, 这个参数,应用上一般要求设置为AUTO。

camera密码错误_camera filter

05

如何规避flicker(banding)问题 — hal 的修改

android/hardware/qcom/camera/QCamera2/HAL3/QCamera3HWI.cpp

从下面代码可以看到,property属性persist.vendor.camea.set.afd 控制的就是anti banding的值,如果上层设置下来是AUTO模式,那么代码里面默认值是5(AUTO_60HZ),实际上在我们国内,一般的灯光闪烁频率是50hz,所以如果是国内的产品,这个默认值我们需要修改为4(AUTO_50HZ)。

camera密码错误_camera filter

camera密码错误_camera filter

推荐阅读:

Android Camera 测光梳理

Android Camera2 对焦梳理

哪些坑爹的Android CTS测试

高通Camera数字成像系统简介

一篇文章带你了解Android 最新Camera框架

这可能是介绍Android UvcCamera最详细的文章了

参考资料:

1. [关于cmos工频干扰导致的闪烁问题]

    https://blog.csdn.net/weixin_41944449/article/details/94296676

2. [camera工频干扰问题]

    https://blog.csdn.net/jzwjzw19900922/article/details/108508416

3.[Camera Sensor 的工频闪烁]

    https://blog.csdn.net/lz0499

camera密码错误_camera filter

欢迎关注我的个人博客:http://www.xiaochibiji.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182269.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JMockit Mock测试入门详解

    JMockit Mock测试入门详解JMockit Mock测试入门详解,简单介绍了JMockit的使用方法

  • PyQuery 详解「建议收藏」

    PyQuery 详解「建议收藏」PyQuery库是一个非常强大又灵活的网页解析库,如果你有前端开发经验,那么你应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery是Python仿照jQuery的严格实现,语法与jQuery几乎完全相同。安装跟安装其他库一样:>>>pip3installpyquery安装了之后,在程序里面就可以引用了,引用方法跟其他…

  • Slurm基本用法(入门必看)

    本文描述Linux集群的基本Slurm用法。1.一个简单的Slurm脚本$catslurm-job.sh#!/usr/bin/envbash#SBATCH-oslurm.sh.out#SBATCH-pdefqecho”Inthedirectory:`pwd`”echo”Astheuser:`whoami`”echo”writethis…

  • 绘制UML各种图详解「建议收藏」

    绘制UML各种图详解「建议收藏」来源:http://blog.csdn.net/shift_wwx/article/details/79205187一、前言在软件开发过程中会经常整理文档,不是所有的信息都可以通过文字来表达,而换成图之后会更加的直观、有效,其中频繁使用的就是UML图。结合自己实践总结一下,希望对大家都能有所帮助。本文中的UML图都是用visio绘制,sourcecode展示是Ja…

  • Collection家族成员

    Collection家族成员

  • 网管工具软件_netscan

    网管工具软件_netscan转发:http://baike.baidu.com/view/1358799.htmCacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。Cacti是通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号