[PATCH v1 1/6] libcamera: controls: Update the ColourTemperature control to be writable

Stefan Klug stefan.klug at ideasonboard.com
Tue Aug 6 08:07:56 CEST 2024


Hi Kieran,

Thanks for the review.

On Mon, Aug 05, 2024 at 02:41:18PM +0100, Kieran Bingham wrote:
> Hi Stefan,
> 
> Thanks for updating this
> 
> Technically, I think this patch might be at v3, given:
> 
>   https://patchwork.libcamera.org/patch/19231/
> [libcamera-devel,v2,1/2] libcamera: controls: Update the ColourTemperature control to be writable
> 

Yes you're right. This commit was the last one I added to the series. So
it felt like a v1 :-)

> But lets continue ;-)
> 
> Quoting Stefan Klug (2024-08-05 13:05:02)
> > For manual control it is helpful to be able to specify a fixed colour
> > temperature. It also provides a easy way to apply the temperature
> 
> s/a/an/
> 
> > 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>
> > ---
> >  src/libcamera/control_ids_core.yaml | 24 ++++++++++++++++++++----
> >  1 file changed, 20 insertions(+), 4 deletions(-)
> > 
> > diff --git a/src/libcamera/control_ids_core.yaml b/src/libcamera/control_ids_core.yaml
> > index 9d413a94e0ee..90a52bccaa98 100644
> > --- a/src/libcamera/control_ids_core.yaml
> > +++ b/src/libcamera/control_ids_core.yaml
> > @@ -252,9 +252,12 @@ controls:
> >    - AwbEnable:
> >        type: bool
> >        description: |
> > -        Enable or disable the AWB.
> > +        Enable or disable the AWB. Disabling AWB stops updates to the
> > +        ColourGains and to the ColourCorrectionMatrix.
> >  
> > +        \sa ColourCorrectionMatrix
> >          \sa ColourGains
> > +        \sa ColourTemperature
> >  
> >    # AwbMode needs further attention:
> >    # - Auto-generate max enum value.
> > @@ -309,13 +312,24 @@ controls:
> >          disabled.
> >  
> >          \sa AwbEnable
> > +        \sa ColourTemperature
> >        size: [2]
> >  
> >    - ColourTemperature:
> >        type: int32_t
> > -      description: Report the current estimate of the colour temperature, in
> > -        kelvin, for this frame. The ColourTemperature control can only be
> > -        returned in metadata.
> > +      description: |
> > +        Report the current estimate of the colour temperature, in kelvin, for
> > +        this frame. An implementation may also allow this control to be set when
> > +        AWB is disabled. In that case ColourGains and the ColourCorrectionMatrix
> > +        get set accordingly. If either ColourGains or ColourCorrectionMatrix are
> > +        specified at the same time, they takes precedence.
> 
> I presume both ColourGains and ColourCorrectionMatrix can operate
> independently of each other though.

Yes they can, but if you set ColorTemperature, both get set.

> 
> > +
> > +        Note that the metadata always contains the measured value, even when the
> > +        value was set manually.
> 
> Will this always be true? Or is it possible to always be true? I see
> that David stated that in the Raspberry Pi implementation
> 
> https://patchwork.libcamera.org/patch/19231/#28242 :
> "
> > The AWB is "disabled" at that point, and
> > you don't get any feedback as to what it thinks the colour temperature
> > really is (as AWB is not doing a search any more). Setting a fixed
> > colour temperature overrides any fixed colour gains, and also vice
> > versa, because they basically do the same thing (i.e. set fixed colour
> > gains).
> "
> 
> Presumably if no colour temperature is measured though - it simply
> doesn't get returned in the metadata ... so perhaps this isn't an issue.
> 
> Instead of 'always' which implies it will be guaranteed to be set .. I
> might reword slightly to:
> 
> "The metadata will only report measured colour temperature values when
> available even if set manually."
> 
> Maybe that's closer to what would be implemented?
> 

Sure. I updated it for v2 (or v4 :-) ).

Cheers,
Stefan

> 
> > +
> > +        \sa AwbEnable
> > +        \sa ColourCorrectionMatrix
> > +        \sa ColourGains
> >  
> >    - Saturation:
> >        type: float
> > @@ -365,6 +379,8 @@ controls:
> >          transformation. The 3x3 matrix is stored in conventional reading
> >          order in an array of 9 floating point values.
> >  
> > +        \sa AwbEnable
> > +        \sa ColourTemperature
> >        size: [3,3]
> >  
> >    - ScalerCrop:
> > -- 
> > 2.43.0
> >


More information about the libcamera-devel mailing list