首页 > 编程知识 正文

ipcamera怎么变回camera,bitbanding

时间:2023-05-05 07:02:36 阅读:39002 作者:4139

01 flicker (绑定)现象

出现闪烁(banding )问题时,在视频中可以看到规则的明暗条纹。 这种现象也被称为壮实的夜晚之轮。 如下图所示。

02f licker (绑定)问题的原因

传感器在以荧光灯为光源获取图像数据时会产生flicker,其根本原因是照射到不同pixel的光能的不同,接收的光能的不同也是图像亮度的不同。

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

由于能量在时间方向上的波形,当照射到传感器时,各像素会产生时间方向上的对应波形。 因为CMOS传感器的曝光方法是一条线一条线地进行,所以所有像素的曝光时间都相同。 也就是说,同一条线上的各pixel的曝光开始点和曝光时间相同。 因此,同一行的所有点接受的能量相同,但不同行之间曝光时间相同,但由于曝光的开始点不同,所以不同行之间接受的能量不一定相同。 以此方式生成的sensor图像可以具有对应于图像高度方向的波形,如下图:所示

要使不同行之间接受的能量相同,就必须找到特定的条件,使得即使曝光开始点不同,各行接受的光能也相同。 因此,避免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 (绑定)问题--- -修改传感器

在很多地方应该可以知道,曝光时间是光能周期(100Hz )的整数倍的话,就可以避免工频干扰引起的闪烁问题。

但是,如果曝光时间低于光能周期(10ms ),该如何避免这个问题呢?

假设帧率为10fps,一个帧的时间间隔正好为100ms,则各帧的曝光开始时间相互一致,并且在相同曝光时间获得的光能也相互一致。 (虽然也有显示100ms帧间隔的提示,但由于误差问题,误差累计会产生闪烁,而不是准确的100ms。

通过将帧速率设定为各帧之间的间隔为10ms的整数倍,在与各帧对应的各行的曝光中获得的光能相同。 (从能量波形来看,要使各行曝光中对应的能量相同,只要在对应的各行时间内积分能量波形,得到的面积就相同。 )从影像来看,曝光时间短于光的能量周期(10ms )时,明暗条纹的位置固定

以50Hz为例说明,实现这一点有两种方法。

1、设置曝光控制,强制变化10ms的整数倍,这样会浪费部分曝光时间,曝光不足,在室内自然失去性能。

2、修改帧速率,使每帧图像分配的时间为10ms的整数倍,可以使每帧的曝光时间充满,提高室内效果。 要修改帧速率,请插入Dummy Line或Dummy Pixel。 这需要一点计算,具体计算需要看传感器输出Timing。

例如,如果帧率为7.14fps,则每一帧的曝光时间为140ms。 如果为15fps,则每帧的曝光时间为66.66ms,如果强制曝光为10ms的整数倍,最大为60ms,则6.66ms与曝光无关,失去性能。

具体的帧率调整方法需要与sensor的FAE进行通信,每个sensor可能不同,不能一概而论。 调整帧率还有一个原则,需要注意。 预览一般不能低于10fps。 再低需要刷卡,常用14.28fps和12.5fps; 快照不在5fps以上的话,很难用手拍出漂亮的照片。 7.14经常使用调频脉冲。 帧率是平衡折中的选择

太高曝光时间不够,暗光效果差,低拍不到照片,容易变虚。

04如何避免flicker (绑定)问题----修改APP

邦定现象也被称为壮实

的黑夜环,那防止这种现象,也就叫做防魁梧的黑夜环,在Android 里面叫做anti banding。

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

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)。

推荐阅读:

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

点个在看你最好看

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。