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

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Oct 25 23:26:07 CEST 2021


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>

> ---
> 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