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

Paul Elder paul.elder at ideasonboard.com
Thu Nov 10 08:21:31 CET 2022


On Wed, Nov 09, 2022 at 12:44:01PM +0000, Naushir Patuck wrote:
> 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?

Yeah it does. I made sure to confirm that. Of course, it's only for ALSC
so far.

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

(Hehe, *corner cases*... because LSC :D)

I only tested a couple images and took the output of ctt, and then
compared it to the output of this script. That's it.

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

Ah :D

I guess comparing the results with the previous version of the script
isn't great...


Paul

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


More information about the libcamera-devel mailing list