[libcamera-devel] [PATCH v3 10/19] ipa: ipu3: tonemapping: Add the documentation for ToneMapping

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Oct 25 23:34:05 CEST 2021


Quoting Laurent Pinchart (2021-10-25 22:26:07)
> Hi Jean-Michel,
> 
> Thank you for the patch.
> 
> On Fri, Oct 22, 2021 at 05:12:09PM +0200, Jean-Michel Hautbois wrote:
> > The Tone mapping algorithm is currently undocumented.
> 
> s/Tone/tone/
> 
> > Provide an introduction and overview to the implementation as the class
> > definition and document how the algorithm operates in the process and
> > prepare methods.
> > 
> > Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
> > Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> > ---
> > v3:
> > - rename gamma control as tone mapping
> > ---
> >  src/ipa/ipu3/algorithms/tone_mapping.cpp | 30 +++++++++++++++++++++++-
> >  1 file changed, 29 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/ipa/ipu3/algorithms/tone_mapping.cpp b/src/ipa/ipu3/algorithms/tone_mapping.cpp
> > index 8fa8c7e9..832e5670 100644
> > --- a/src/ipa/ipu3/algorithms/tone_mapping.cpp
> > +++ b/src/ipa/ipu3/algorithms/tone_mapping.cpp
> > @@ -10,10 +10,22 @@
> >  #include <cmath>
> >  #include <string.h>
> >  
> > +/**
> > + * \file tone_mapping.h
> > + */
> > +
> >  namespace libcamera {
> >  
> >  namespace ipa::ipu3::algorithms {
> >  
> > +/**
> > + * \class ToneMapping
> > + * \brief A class to handle tone mapping based on gamma
> > + *
> > + * This algorithm improves the image dynamic using a look-up table which is
> > + * generated based on a gamma parameter.
> > + */
> > +
> >  ToneMapping::ToneMapping()
> >       : gamma_(1.0)
> >  {
> > @@ -35,6 +47,14 @@ int ToneMapping::configure(IPAContext &context,
> >       return 0;
> >  }
> >  
> > +/**
> > + * \brief Fill in the parameter structure, and enable gamma control
> > + * \param context The shared IPA context
> > + * \param params The IPU3 parameters
> > + *
> > + * Populate the IPU3 parameter structure with our tone mapping look up table and
> > + * enable the gamma control module in the processing blocks.
> > + */
> >  void ToneMapping::prepare([[maybe_unused]] IPAContext &context,
> >                         ipu3_uapi_params *params)
> >  {
> > @@ -49,7 +69,15 @@ void ToneMapping::prepare([[maybe_unused]] IPAContext &context,
> >       params->acc_param.gamma.gc_ctrl.enable = 1;
> >  }
> >  
> > -void ToneMapping::process([[maybe_unused]] IPAContext &context,
> > +/**
> > + * \brief Calculate the tone mapping look up table
> > + * \param context The shared IPA context
> > + * \param stats The IPU3 statistics and ISP results
> > + *
> > + * The tone mapping look up table is generated as an inverse power curve from
> > + * our gamma setting.
> > + */
> > +void ToneMapping::process(IPAContext &context,
> >                         [[maybe_unused]] const ipu3_uapi_stats_3a *stats)
> >  {
> >       /*
> 
> -- 
> Regards,
> 
> Laurent Pinchart


More information about the libcamera-devel mailing list