[libcamera-devel] [PATCH v4 10/14] ipa: ipu3: awb: Add support for color temperature

Paul Elder paul.elder at ideasonboard.com
Sat Nov 13 00:19:43 CET 2021


Hi Jean-Michel,

On Thu, Nov 11, 2021 at 03:09:24PM +0100, Jean-Michel Hautbois wrote:
> The AWB estimates the color temperature, but it is not used at all. It
> can be useful for debug purpose at least, but also for lux estimation
> later, to be able to know the temperature estimated for a given frame.
> 
> Add a new member to the IPAFrameContext::awb for this purpose, and
> update the value in AWB.
> 
> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>

> ---
>  src/ipa/ipu3/algorithms/awb.cpp | 1 +
>  src/ipa/ipu3/ipa_context.cpp    | 3 +++
>  src/ipa/ipu3/ipa_context.h      | 2 ++
>  3 files changed, 6 insertions(+)
> 
> diff --git a/src/ipa/ipu3/algorithms/awb.cpp b/src/ipa/ipu3/algorithms/awb.cpp
> index a4114659..c7bcb20e 100644
> --- a/src/ipa/ipu3/algorithms/awb.cpp
> +++ b/src/ipa/ipu3/algorithms/awb.cpp
> @@ -385,6 +385,7 @@ void Awb::process(IPAContext &context, const ipu3_uapi_stats_3a *stats)
>  	context.frameContext.awb.gains.blue = asyncResults_.blueGain;
>  	context.frameContext.awb.gains.green = asyncResults_.greenGain;
>  	context.frameContext.awb.gains.red = asyncResults_.redGain;
> +	context.frameContext.awb.temperatureK = asyncResults_.temperatureK;
>  }
>  
>  constexpr uint16_t Awb::threshold(float value)
> diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp
> index a7ff957d..99caf9ad 100644
> --- a/src/ipa/ipu3/ipa_context.cpp
> +++ b/src/ipa/ipu3/ipa_context.cpp
> @@ -117,6 +117,9 @@ namespace libcamera::ipa::ipu3 {
>   *
>   * \var IPAFrameContext::awb.gains.blue
>   * \brief White balance gain for B channel
> + *
> + * \var IPAFrameContext::awb.temperatureK
> + * \brief Estimated color temperature
>   */
>  
>  /**
> diff --git a/src/ipa/ipu3/ipa_context.h b/src/ipa/ipu3/ipa_context.h
> index a5a19800..fd97e240 100644
> --- a/src/ipa/ipu3/ipa_context.h
> +++ b/src/ipa/ipu3/ipa_context.h
> @@ -45,6 +45,8 @@ struct IPAFrameContext {
>  			double green;
>  			double blue;
>  		} gains;
> +
> +		double temperatureK;
>  	} awb;
>  
>  	struct {
> -- 
> 2.32.0
> 


More information about the libcamera-devel mailing list