summaryrefslogtreecommitdiff
path: root/src/ipa/rkisp1/algorithms/agc.h
diff options
context:
space:
mode:
authorJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2022-02-24 12:33:46 +0100
committerJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2022-03-28 12:31:37 +0200
commit8917c9e7ba642285ae33a7b9cee9cb4a22c76482 (patch)
tree6273e4804b8e75c7885f9c9857e8668c788b6beb /src/ipa/rkisp1/algorithms/agc.h
parent88c69f88089ba7f9ec8c25aa9f084e1143ad9f29 (diff)
ipa: rkisp1: agc: Add a histogram-based gain
As for the IPU3, we can estimate the histogram of the luminance. The RkISP1 can estimate multiple ones, the R, G and B ones, the Y only one and a combination of RGB. The one we are interested by in AGC is the Y histogram. Use the hardware revision to determine the number of bins of the produced histogram. Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Tested-by: Peter Griffin <peter.griffin@linaro.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa/rkisp1/algorithms/agc.h')
-rw-r--r--src/ipa/rkisp1/algorithms/agc.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ipa/rkisp1/algorithms/agc.h b/src/ipa/rkisp1/algorithms/agc.h
index 942c9d7a..ce1adf27 100644
--- a/src/ipa/rkisp1/algorithms/agc.h
+++ b/src/ipa/rkisp1/algorithms/agc.h
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
- * Copyright (C) 2021, Ideas On Board
+ * Copyright (C) 2021-2022, Ideas On Board
*
* agc.h - RkISP1 AGC/AEC mean-based control algorithm
*/
@@ -32,13 +32,15 @@ public:
void process(IPAContext &context, const rkisp1_stat_buffer *stats) override;
private:
- void computeExposure(IPAContext &Context, double yGain);
+ void computeExposure(IPAContext &Context, double yGain, double iqMeanGain);
utils::Duration filterExposure(utils::Duration exposureValue);
double estimateLuminance(const rkisp1_cif_isp_ae_stat *ae, double gain);
+ double measureBrightness(const rkisp1_cif_isp_hist_stat *hist) const;
uint64_t frameCount_;
uint32_t numCells_;
+ uint32_t numHistBins_;
utils::Duration filteredExposure_;
};