[libcamera-devel] [PATCH v2 09/11] utils: tuning: Add alsc-only libtuning raspberrypi tuning script

Naushir Patuck naush at raspberrypi.com
Wed Nov 9 13:44:01 CET 2022


Hi Laurent,


On Wed, 9 Nov 2022 at 11:21, Laurent Pinchart <
laurent.pinchart at ideasonboard.com> wrote:

> Hello,
>
> On Wed, Nov 09, 2022 at 09:39:12AM +0000, Naushir Patuck via
> libcamera-devel wrote:
> > Hi Paul,
> >
> > I've not had a chance to fully look through this work yet, so apologies.
> > However, I do have a question - does this script produce identical
> results
> > when compared with the existing RPi script for a given set of inputs?
>
> Paul told me he compared both, and the results were identical. Not all
> corner cases may have been tested though. This leads me to another
> question: how do you test ctt to avoid regressions, do you have a test
> suite ?
>

Great, that's what I was expecting.

As for our testing, we don't currently have a test suite for the tuning
tool.
Something to put on the list...

Regards,
Naush



>
> > On Sat, 22 Oct 2022 at 07:23, Paul Elder via libcamera-devel wrote:
> >
> > > Add a tuning script for raspberrypi for alsc only, that uses libtuning.
> > > Since there will also be a tuning script for raspberrypi that has more
> > > modules, put the libtuning alsc module definition in a separate file so
> > > that it can be reused later.
> > >
> > > Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>
> > > ---
> > > Changes in v2:
> > > - fix python errors
> > > - fix style
> > > - add SPDX and copyright
> > > - s/average_functions/average/
> > > - update script to work with new raspberrypi alsc module
> > > ---
> > >  utils/tuning/raspberrypi/__init__.py  |  0
> > >  utils/tuning/raspberrypi/alsc.py      | 17 +++++++++++++++++
> > >  utils/tuning/raspberrypi_alsc_only.py | 22 ++++++++++++++++++++++
> > >  3 files changed, 39 insertions(+)
> > >  create mode 100644 utils/tuning/raspberrypi/__init__.py
> > >  create mode 100644 utils/tuning/raspberrypi/alsc.py
> > >  create mode 100755 utils/tuning/raspberrypi_alsc_only.py
> > >
> > > diff --git a/utils/tuning/raspberrypi/__init__.py
> > > b/utils/tuning/raspberrypi/__init__.py
> > > new file mode 100644
> > > index 00000000..e69de29b
> > > diff --git a/utils/tuning/raspberrypi/alsc.py
> > > b/utils/tuning/raspberrypi/alsc.py
> > > new file mode 100644
> > > index 00000000..71ab3995
> > > --- /dev/null
> > > +++ b/utils/tuning/raspberrypi/alsc.py
> > > @@ -0,0 +1,17 @@
> > > +# SPDX-License-Identifier: GPL-2.0-or-later
> > > +#
> > > +# Copyright (C) 2022, Paul Elder <paul.elder at ideasonboard.com>
> > > +
> > > +import libtuning as lt
> > > +from libtuning.modules.alsc import ALSCRaspberryPi
> > > +
> > > +ALSC = \
> > > +    ALSCRaspberryPi(do_color=lt.Param('do_alsc_colour',
> lt.Param.Mode.Optional, True),
> > > +                    luminance_strength=lt.Param('luminance_strength',
> lt.Param.Mode.Optional, 0.5),
> > > +                    debug=[lt.Debug.Plot],
> > > +                    sector_shape=(16, 12),
> > > +
> sector_x_gradient=lt.gradient.Linear(lt.Remainder.DistributeFront),
> > > +
> sector_y_gradient=lt.gradient.Linear(lt.Remainder.DistributeFront),
> > > +                    sector_average_function=lt.average.Mean(),
> > > +                    smoothing_function=lt.smoothing.MedianBlur(3),
> > > +                    )
> > > diff --git a/utils/tuning/raspberrypi_alsc_only.py
> > > b/utils/tuning/raspberrypi_alsc_only.py
> > > new file mode 100755
> > > index 00000000..3cd7b074
> > > --- /dev/null
> > > +++ b/utils/tuning/raspberrypi_alsc_only.py
> > > @@ -0,0 +1,22 @@
> > > +#!/usr/bin/env python3
> > > +# SPDX-License-Identifier: GPL-2.0-or-later
> > > +#
> > > +# Copyright (C) 2022, Paul Elder <paul.elder at ideasonboard.com>
> > > +#
> > > +# raspberrypi_alsc_only.py - Tuning script for raspberrypi, ALSC only
> > > +
> > > +import sys
> > > +
> > > +import libtuning as lt
> > > +from libtuning.parsers import RaspberryPiParser
> > > +from libtuning.generators import RaspberryPiOutput
> > > +
> > > +from raspberrypi.alsc import ALSC
> > > +
> > > +tuner = lt.Camera('Raspberry Pi (ALSC only)')
> > > +tuner.add(ALSC)
> > > +tuner.setInputType(RaspberryPiParser)
> > > +tuner.setOutputType(RaspberryPiOutput)
> > > +tuner.setOutputOrder([ALSC])
> > > +
> > > +tuner.run(sys.argv)
>
> --
> Regards,
>
> Laurent Pinchart
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20221109/8252123a/attachment.htm>


More information about the libcamera-devel mailing list