[PATCH v6 1/9] libcamera: controls: Update the ColourTemperature control to be writable

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Dec 20 10:34:10 CET 2024


Hi Stefan,

Thank you for the patch.

On Thu, Dec 19, 2024 at 06:57:18PM +0100, Stefan Klug wrote:
> For manual control it is helpful to be able to specify a fixed colour
> temperature. It also provides an easy way to apply the temperature
> specific CCMs and colour gains that are contained in the tuning files.
> 
> Document this and update the control dependencies.
> 
> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
> Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
> Changes in v6:
> - Clarify interdependencies between ColourTemperature, ColourGains and
>   ColourCorrectionMatrix
> 
> Changes in v5:
> - Improve documentation
> ---
>  src/libcamera/control_ids_core.yaml | 38 +++++++++++++++++++++++++++--
>  1 file changed, 36 insertions(+), 2 deletions(-)
> 
> diff --git a/src/libcamera/control_ids_core.yaml b/src/libcamera/control_ids_core.yaml
> index 073e0611d47c..1dfaee0c6327 100644
> --- a/src/libcamera/control_ids_core.yaml
> +++ b/src/libcamera/control_ids_core.yaml
> @@ -298,7 +298,19 @@ controls:
>        description: |
>          Enable or disable the AWB.
>  
> +        When AWB is enabled, the algorithm estimates the colour temperature of
> +        the scene and computes colour gains and the colour correction matrix
> +        automatically. The computed colour temperature, gains and correction
> +        matrix are reported in metadata. The corresponding controls are ignored
> +        if set in a request.
> +
> +        When AWB is disabled, the colour temperature, gains and correction
> +        matrix are not updated automatically and can be set manually in
> +        requests.
> +
> +        \sa ColourCorrectionMatrix
>          \sa ColourGains
> +        \sa ColourTemperature
>  
>    # AwbMode needs further attention:
>    # - Auto-generate max enum value.
> @@ -357,17 +369,34 @@ controls:
>          order.
>  
>          ColourGains can only be applied in a Request when the AWB is disabled.
> +        If ColourGains is set in a request but ColourTemperature is not, the
> +        implementation shall calculate and set the ColourTemperature based on
> +        the ColourGains.
>  
>          \sa AwbEnable
> +        \sa ColourTemperature
>        size: [2]
>  
>    - ColourTemperature:
>        type: int32_t
>        direction: out
>        description: |
> -        Report the estimate of the colour temperature for the frame, in kelvin.
> +        ColourTemperature of the frame, in kelvin.
> +
> +        ColourTemperature can only be applied in a Request when the AWB is
> +        disabled.
>  
> -        The ColourTemperature control can only be returned in metadata.
> +        If ColourTemperature is set in a request but ColourGains is not, the
> +        implementation shall calculate and set the ColourGains based on the
> +        given ColourTemperature. If ColourTemperature is set (either directly,
> +        or indirectly by setting ColourGains) but ColourCorrectionMatrix is not,
> +        the ColourCorrectionMatrix is updated based on the ColourTemperature.
> +
> +        The ColourTemperature used to process the frame is reported in metadata.
> +
> +        \sa AwbEnable
> +        \sa ColourCorrectionMatrix
> +        \sa ColourGains
>  
>    - Saturation:
>        type: float
> @@ -429,6 +458,11 @@ controls:
>          stored in conventional reading order in an array of 9 floating point
>          values.
>  
> +        ColourCorrectionMatrix can only be applied in a Request when the AWB is 
> +        disabled.
> +
> +        \sa AwbEnable
> +        \sa ColourTemperature
>        size: [3,3]
>  
>    - ScalerCrop:

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list