diff options
author | Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> | 2022-02-24 12:33:46 +0100 |
---|---|---|
committer | Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> | 2022-03-28 12:31:37 +0200 |
commit | 8917c9e7ba642285ae33a7b9cee9cb4a22c76482 (patch) | |
tree | 6273e4804b8e75c7885f9c9857e8668c788b6beb /src/ipa/rkisp1/algorithms/agc.h | |
parent | 88c69f88089ba7f9ec8c25aa9f084e1143ad9f29 (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.h | 6 |
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_; }; |