libcamera v0.7.2+1-aebe4861-nvm
Supporting cameras in Linux since 2019
Loading...
Searching...
No Matches
agc_msv.h
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/*
3 * Copyright (C) 2024, Red Hat Inc.
4 *
5 * Luminance mean sample value based AGC algorithm
6 */
7
8#pragma once
9
10#include <array>
11#include <stdint.h>
12
13namespace libcamera {
14
15namespace ipa {
16
17class Histogram;
18
19class AgcMSV
20{
21public:
22 struct Limits {
23 std::array<uint32_t, 2> exposure;
24 std::array<double, 2> gain;
26 double gain1;
27 };
28
29 struct Params {
31 uint32_t exposure;
32 double gain;
33 };
34
35 struct Result {
36 uint32_t exposure;
38 };
39
40 void setLimits(const Limits &limits);
41 [[nodiscard]] Result calculateNewEv(const Params &params);
42
43private:
44 AgcMSV::Result updateExposure(uint32_t exposure, double again, float exposureMSV);
45
46 Limits limits_ = {};
47};
48
49} /* namespace ipa */
50
51} /* namespace libcamera */
Binned mean luminance based AGC algorithm.
Definition agc_msv.h:20
Result calculateNewEv(const Params &params)
Calculate a new set of AGC parameters.
Definition agc_msv.cpp:172
void setLimits(const Limits &limits)
Set the limits for the algorithm.
Definition agc_msv.cpp:164
The base class for creating histograms.
Definition histogram.h:23
Top-level libcamera namespace.
Definition backtrace.h:17
Set of limits for the algorithm.
Definition agc_msv.h:22
std::array< double, 2 > gain
Minimum and maximum allowed gain.
Definition agc_msv.h:24
std::array< uint32_t, 2 > exposure
Minimum and maximum allowed exposure (in lines)
Definition agc_msv.h:23
double gainMinStep
Minimum allowed gain adjustment.
Definition agc_msv.h:25
double gain1
The gain value assumed to result in a gain of 1.0.
Definition agc_msv.h:26
Collection of parameters for the algorithm.
Definition agc_msv.h:29
const Histogram & yHist
Luminance histogram of the frame.
Definition agc_msv.h:30
uint32_t exposure
Effective exposure of the frame (in lines)
Definition agc_msv.h:31
double gain
Effective gain of the frame.
Definition agc_msv.h:32
Collection of results of the algorithm.
Definition agc_msv.h:35
double analogueGain
The applicable analogue gain.
Definition agc_msv.h:37
uint32_t exposure
The applicable exposure (in lines)
Definition agc_msv.h:36