|
libcamera v0.7.2+1-aebe4861-nvm
Supporting cameras in Linux since 2019
|
Binned mean luminance based AGC algorithm. More...
Classes | |
| class | Limits |
| Set of limits for the algorithm. More... | |
| struct | Params |
| Collection of parameters for the algorithm. More... | |
| struct | Result |
| Collection of results of the algorithm. More... | |
Public Member Functions | |
| void | setLimits (const Limits &limits) |
| Set the limits for the algorithm. | |
| Result | calculateNewEv (const Params ¶ms) |
| Calculate a new set of AGC parameters. | |
Binned mean luminance based AGC algorithm.
This is a best-effort, low-complexity auto exposure/gain algorithm based on the 2007 paper "Automatic camera exposure control" (https://www.araa.asn.au/acra/acra2007/papers/paper84final.pdf)
Due to its simplicity, it is a better fit than AgcMeanLuminance when operating a sensor without a known gain model.
The algorithm operates by inspecting the luminance histogram of a frame, and then splitting it into a fixed number of bins. Then an average is calculated (MSV ~ mean sample value), which is compared to the target MSV. If the current MSV is too low, first the exposure time, then the analogue gain is raised. If it is too high, first the analogue gain, then the exposure time is reduced.