自动曝光算法(第一讲)

序言

失业在家无事,想到以后换方向不做自动曝光了,但是自动曝光的工作经验也不能浪费了,准备写一个自动曝光的教学,留给想做自动曝光的小伙伴参考。笔者当时开发自动曝光没有按摄影的av+tv=ev=bv+sv公式弄,而是按正确的增益=目标亮度/当前亮度*当前增益的公式去开发。

介绍

自动曝光算法的目的:已知当前raw图亮度、当前曝光时间、当前增益和目标亮度,当环境光发生变化的时候,是通过控制增益、曝光时间和光圈使raw图的亮度,保持在目标亮度附近。

下面开始对上面的话进行解释:

**raw图:**r gr gb b格式的图,借鉴rgb图,raw图在数据上可以看成一个mxnx4的图片

**raw图的亮度:**将全图的r gr gb b的像素值分别累加后除以每个通道像素点的个数求平均后按yuv计算公式算。

r_avg=r_sum/r_num

gr_avg=gr_sum/gr_num

gb_avg=gb_sum/gb_num

b_avg=b_sum/b_num

y=(0.299 * r_avg+ 0.2935 * (gr_avg+ gb_avg) + 0.114 * b_avg)

**曝光时间和增益:**曝光时间和增益可以看成一个乘法系数,该乘法系数不可以为0,因为硬件存在最小曝光时间(1行)和最小增益(1x),这个系数是作用在整个raw图上的,如果该系数发生变化,raw图的每个值发生同样倍数的变化。

举个例子说明曝光时间和增益变动的影响

假设当前亮度下获取到一张raw图,该图的每个点的像素如下,已知当前的曝光时间和增益分别是10ms和1.5x,下面我们要给sensor下发一个新的曝光参数,新的曝光参数为曝光时间10ms和增益3x。对比前后2组曝光参数,可以发现,增益从1.5x变成了3x,扩大了2倍。因此如果当前raw图的像素值没有饱和,每个点的像素也扩大了2倍。

10ms 1.5x

10ms 3x(如果是20ms 1.5x 每个像素也是变成2倍)

**目标亮度:**预设一个值或者一组值,raw图的亮度要在这个值附近,一般是±5%范围内。

当环境光发生变化的时候,是通过控制增益、曝光时间和光圈使raw图的亮度,保持在目标亮度附近。

假设当前环境光亮度为c,曝光时间和增益提供的系数为w,当前的raw图的亮度为cur_y,目标亮度为tar_y。

假如tar_y/cur_y在0.95到1.05范围内,则认为当前曝光没问题。

假如tar_y/cur_y不在0.95到1.05范围内,且tar_y/cur_y=w2;则需要将曝光时间和增益提供的系数为w变成w*w2,当曝光值(曝光时间、增益和光圈(虽然我们这里没用到光圈)的积叫做曝光值)从w变成w*w2,画面亮度也要*w2,cur_y->cur_y*w2。tar_y/(cur_y*w2)=w2/w2=1,1在0.95到1.05范围内,亮度达到预期。

仿真代码

待续......

相关推荐
AndrewHZ4 天前
【ISP算法精粹】RAW域两帧输入去噪算法介绍
图像处理·算法·计算机视觉·isp·图像去噪·图像信号处理·raw域
赖small强8 天前
【音视频开发】Linux 平台图像处理与视频录制全流程指南 (Ingenic T41)
linux·图像处理·音视频·isp·视频录制
赖small强9 天前
【音视频开发】图像处理单元 (IPU) 深度技术解析指南
图像处理·音视频·isp·ipu
赖small强12 天前
【音视频开发】ISP流水线核心模块深度解析
音视频·isp·白平衡·亮度·luminance·gamma 校正·降噪处理
赖small强13 天前
【音视频开发】CMOS Sensor图像采集原理及Linux主控ISP处理流程
linux·音视频·cmos·isp·v4l2
Jie_jiejiayou1 个月前
STM32F10xxx启动模式配置与ISP一键下载
stm32·isp·烧录模式
AIminminHu2 个月前
系列文章<一>(从LED显示问题到非LED领域影像画质优化:揭秘跨领域的核心技术):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
图像处理·led·isp·isp pipeline·ai hdr·成像系统
岁月蹉跎的一杯酒2 个月前
ISP图像调试中的亮度模块解析:从传感器到显示的实战经验
isp
AIminminHu2 个月前
成像系统(十四-2:《手机影像系统揭秘(二):ISP后端处理 - 画质增强与风格化》):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
isp·画质调优·去坏点
大熊背3 个月前
ISP对噪声的影响
计算机视觉·isp·raw噪声