[libcamera-devel] [PATCH v3 12/12] utils: tuning: Add tuning script for rkisp1
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Wed Nov 23 01:35:55 CET 2022
Hi Paul,
Thank you for the patch.
On Fri, Nov 11, 2022 at 02:31:54AM +0900, Paul Elder via libcamera-devel wrote:
> Add a tuning script for rkisp1 that uses libtuning. So far it only
> supports LSC.
>
> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
>
> ---
> Changes in v3:
> - cosmetic changes / fix style
> - add __main__ guard
> - rename ALSC to LSC
>
> Changes in v2:
> - add SPDX and copyright
> - s/average_functions/average/
> - update the script to work with the new rkisp1 alsc module
>
> v1:
> This won't run as we're missing the necessary parser and generator for
> yaml, parabolic gradient support, and multiple green support in the LSC
> module, hence the DNI. As soon as those are added though, this *should*
> work.
> ---
> utils/tuning/rkisp1.py | 43 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 43 insertions(+)
> create mode 100755 utils/tuning/rkisp1.py
>
> diff --git a/utils/tuning/rkisp1.py b/utils/tuning/rkisp1.py
> new file mode 100755
> index 00000000..a8cb0c39
> --- /dev/null
> +++ b/utils/tuning/rkisp1.py
> @@ -0,0 +1,43 @@
> +#!/usr/bin/env python3
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +#
> +# Copyright (C) 2022, Paul Elder <paul.elder at ideasonboard.com>
> +#
> +# rkisp1.py - Tuning script for rkisp1
> +
> +import sys
> +
> +import libtuning as lt
> +from libtuning.parsers import YamlParser
> +from libtuning.generators import YamlOutput
> +from libtuning.modules.lsc import LSCRkISP1
> +
> +tuner = lt.Tuner('RkISP1')
> +tuner.add(LSCRkISP1(
> + # This can support other debug options (I can't think of any right
> + # now, but for future-proofing).
> + debug=[lt.Debug.Plot],
> +
> + # This is for the actual LSC tuning, and is part of the base ALSC
s/ALSC/LSC/. Same below.
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> + # module. rkisp1's table sector sizes (16x16 programmed as mirrored
> + # 8x8) are separate, and is hardcoded in its specific ALSC tuning
> + # module.
> + sector_shape=(17, 17),
> +
> + sector_x_gradient=lt.gradient.Linear(lt.Remainder.DistributeFront),
> + sector_y_gradient=lt.gradient.Linear(lt.Remainder.DistributeFront),
> +
> + # This is the function that will be used to average the pixels in
> + # each sector. This can also be a custom function.
> + sector_average_function=lt.average.Mean(),
> +
> + # This is the function that will be used to smooth the color ratio
> + # values. This can also be a custom function.
> + smoothing_function=lt.smoothing.MedianBlur(3),
> + ))
> +tuner.set_input_parser(YamlParser())
> +tuner.set_output_formatter(YamlOutput())
> +tuner.set_output_order([LSCRkISP1])
> +
> +if __name__ == '__main__':
> + sys.exit(tuner.run(sys.argv))
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list