[libcamera-devel] [PATCH v3 3/5] ipa: ipu3: Use a local parameter object and prepare for 3A algorithms
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Mar 30 05:32:44 CEST 2021
Hi Jean-Michel,
Thank you for the patch.
On Mon, Mar 29, 2021 at 09:18:24PM +0200, Jean-Michel Hautbois wrote:
> The IPA will locally modify the parameters before they are passed down
> to the imgU. Use a local parameter object to give a reference to those
s/imgU/ImgU/
> algorithms.
>
> AGC algorithm calculates a brightness level at min and max
"The AGC algoritm will calculate ..." as there's no AGC yet in this
commit.
> exposure/gains.
"exposure and gain"
If you want to start a new paragraph, you need to insert a blank line.
Otherwise (and I think that's the right option in this case), you
shouldn't break in the middle of a line.
> Starting at the minimum value for both of them shortens the time to
> converge (as the first frames will already have the correct level).
>
> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
> ---
> src/ipa/ipu3/ipu3.cpp | 11 +++++++++--
> src/ipa/ipu3/meson.build | 6 +++++-
> 2 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
> index 34a907f2..07dbc24a 100644
> --- a/src/ipa/ipu3/ipu3.cpp
> +++ b/src/ipa/ipu3/ipu3.cpp
> @@ -61,6 +61,9 @@ private:
> uint32_t gain_;
> uint32_t minGain_;
> uint32_t maxGain_;
> +
> + /* Local parameter storage */
> + ipu3_uapi_params params_;
As this isn't used in this patch, you can move it to 4/5. Don't forget
to update the subject line to remove the first part.
> };
>
> int IPAIPU3::start()
> @@ -92,11 +95,15 @@ void IPAIPU3::configure(const std::map<uint32_t, ControlInfoMap> &entityControls
>
> minExposure_ = std::max(itExp->second.min().get<int32_t>(), 1);
> maxExposure_ = itExp->second.max().get<int32_t>();
> - exposure_ = maxExposure_;
> + exposure_ = minExposure_;
>
> minGain_ = std::max(itGain->second.min().get<int32_t>(), 1);
> maxGain_ = itGain->second.max().get<int32_t>();
> - gain_ = maxGain_;
> + gain_ = minGain_;
> +
> + params_ = {};
> +
> + setControls(0);
> }
>
> void IPAIPU3::mapBuffers(const std::vector<IPABuffer> &buffers)
> diff --git a/src/ipa/ipu3/meson.build b/src/ipa/ipu3/meson.build
> index a241f617..52d98c8e 100644
> --- a/src/ipa/ipu3/meson.build
> +++ b/src/ipa/ipu3/meson.build
> @@ -2,8 +2,12 @@
>
> ipa_name = 'ipa_ipu3'
>
> +ipu3_ipa_sources = files([
> + 'ipu3.cpp',
4 spaces.
> +])
> +
> mod = shared_module(ipa_name,
> - ['ipu3.cpp', libcamera_generated_ipa_headers],
> + [ipu3_ipa_sources, libcamera_generated_ipa_headers],
> name_prefix : '',
> include_directories : [ipa_includes, libipa_includes],
> dependencies : libcamera_dep,
Changes in this file aren'trelated to the commit message though. You can
move them to 4/5.
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list