前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Camera 之水波纹和banding现象[通俗易懂]

Camera 之水波纹和banding现象[通俗易懂]

作者头像
全栈程序员站长
发布2022-11-04 09:59:54
2K0
发布2022-11-04 09:59:54
举报
文章被收录于专栏:全栈程序员必看

预览画面中出现了一条明一条暗相间隔的竖条纹,这种现象叫做“水波纹”,并对原因进行了讲解,现记录如下。

其实这些“水波纹”产生是因为手机的快门频率与灯光的频率不匹配导致的。

首先,我们都知道手机拍照的时候都是有一定曝光时间的,例如假设手机的快门频率为50Hz,则其拍照时的曝光时间就是20ms。同理,屏幕或者日光灯不是一直在发光的,而是更隔一段时间就会刷新一次,我们生活中的日光灯为 50Hz,国外的是 60Hz。例如那个 50Hz,就代表每秒刷新50次,因为刷新的频率太快,人类肉眼是完全察觉不出灯光是一闪一闪的。而手机拍摄屏幕的时候,多数也会有比较快的快门速度。当快门速度比刷新频率快的时候,就能捕捉到我们肉眼看不到的屏幕刷新过程,这就会产生“水波纹”。

具体表现为,手机在记录一张照片时,不是一下子就记录了一张照片,而是从上往下,一行一行的进行曝光来记录信息。而我们的灯光是正弦电波,假设我们的灯光频率是50Hz,则其正弦周期就是20ms,这时假设我们的手机快门频率为80Hz,曝光周期就是12.5ms。

这时假设记录第一行的时候对应的日光灯的周期内是[0,12.5]ms,记录第二行对应的日光灯的周期内是[1,13.5]ms,因为日光灯为正弦电波,在记录每行的曝光量就是在对应的周期内正弦的积分(也就是这段时间内的进入传感器的电子总量),显然第一行与第二行获得的曝光量是不同的,也就造成了记录的照片一行明一行暗。

可为什么我们看到的照片是竖条纹的一明一暗呢,这是我们传感器获得的图像在手机界面上进行显示的时候进行了旋转,所以我们看到的图片是竖条纹的一明一暗。

banding的产生

模拟视频的输出制式我们统一的用PAL和NTSC来表示,pal制代表cvbs和HD的720p25/50 1080P的25/50,NTSC包括 cvbs的59.94fps输出和720P30/60 1080p30/60.banding只会在按照一定频率亮度交替变化的场景内产生。在我国交流电的频率在50HZ,我们拿1080P25的制式来举例,50HZ的交流电如果用能量曲线来表示的话就是一个100HZ的|sinx|。每个周期的时间是1/100=10ms,我们视频输出的每帧的时间为40ms,在曝光时间的算法上每一帧的最大曝光时间是~=40ms的,我们按照40ms计算的话,当达到最大的曝光时间时每一帧接收的光的能量的积分值是相同的(因为是灯光的周期的整数倍)。当小于最大的曝光时间的时候每一帧曝光接收的光能积分值不同,这就是导致产生banding的原因。

banding的消除

我们可以注意到,每一帧的曝光时间最大值是|sinx|的4倍,我们知道当能量曲线得积分值相同时banding就不会产生,这几个是我们消除banding的关键。即10ms 20ms 30ms ,那么我们思考如何才能在保证画面在消除banding的同时也能不影响曝光的准确性呢,我们用到的一种方法叫增益内插,例如当曝光在30ms和40ms之间的时候我们先把曝光的时间设在30ms上,算出实际需要的曝光时间和30ms的delta值,然后去乘以一个相应的增益。这样就做到了消除banding 的目的。

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182308.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • banding的产生
  • banding的消除
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档