自动曝光算法(第一讲)

序言

失业在家无事,想到以后换方向不做自动曝光了,但是自动曝光的工作经验也不能浪费了,准备写一个自动曝光的教学,留给想做自动曝光的小伙伴参考。笔者当时开发自动曝光没有按摄影的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范围内,亮度达到预期。

仿真代码

待续......

相关推荐
xiao--xin4 天前
计算机网络笔记(二)——1.2互联网概述
笔记·计算机网络·rfc·isp·ixp
blanklog8 天前
【ISP】AF自动对焦
相机·isp
blanklog8 天前
[ISP] AE 自动曝光
数码相机·isp
林伟_fpga9 天前
演示基于FPGA的视频图像去雾处理效果
图像处理·fpga开发·视频·isp
沐风_ZTL21 天前
在RK3568上C++编程,使用ISP进行图像处理
c++·图像处理·mpp·rk3568·isp·v4l2·rga
岁月蹉跎的一杯酒25 天前
J6 X8B/X3C切换HDR各帧图像
isp
️Carrie️1 个月前
2.1.3 相机图像信号处理的基本流程
信号处理·isp·自动白平衡·坏点校正·黑电平校正·镜头阴影校正·颜色校正矩阵
DogDaoDao2 个月前
H266/VVC 帧内预测中 ISP 技术
视频编解码·isp·h266·vvc·vtm·帧内预测·vvenc
OkeyProxy2 个月前
解決當前IP地址僅適用於本地網路
proxy模式·ip地址·isp·代理ip·海外ip代理
杨德杰3 个月前
ISP算法之坏点校正DPC(二):Verilog硬件实现与仿真
图像处理·isp·isp pipline·dpc·坏点校正