[PATCH v1 1/2] utils: tuning: rkisp1: Clean up tuner construction
Paul Elder
paul.elder at ideasonboard.com
Wed Aug 14 09:54:43 CEST 2024
On Mon, Aug 05, 2024 at 09:06:32AM +0200, Stefan Klug wrote:
> The instances of the static modules need to be passed to
Strictly speaking the matching is done via the class variable 'type', so
you only need the pass the class. StaticModule is special in that the
class variable 'type' is dependent on the instance...
> tuner.set_output_order() instead of the class. This is the reason for
> the intermediate variables. To keep the code tidy, apply the same
> pattern to the other modules.
But still this makes it cleaner so
>
> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
> utils/tuning/rkisp1.py | 47 +++++++++++++++++++++---------------------
> 1 file changed, 24 insertions(+), 23 deletions(-)
>
> diff --git a/utils/tuning/rkisp1.py b/utils/tuning/rkisp1.py
> index 0d279a39ab1b..5d7a69fc4a13 100755
> --- a/utils/tuning/rkisp1.py
> +++ b/utils/tuning/rkisp1.py
> @@ -19,44 +19,45 @@ from libtuning.modules.static import StaticModule
>
> coloredlogs.install(level=logging.INFO, fmt='%(name)s %(levelname)s %(message)s')
>
> +agc = AGCRkISP1(debug=[lt.Debug.Plot])
> awb = StaticModule('Awb')
> blc = StaticModule('BlackLevelCorrection')
> +ccm = CCMRkISP1(debug=[lt.Debug.Plot])
> color_processing = StaticModule('ColorProcessing')
> filter = StaticModule('Filter')
> gamma_out = StaticModule('GammaOutCorrection', {'gamma': 2.2})
> +lsc = LSCRkISP1(debug=[lt.Debug.Plot],
> + # This is for the actual LSC tuning, and is part of the base LSC
> + # module. rkisp1's table sector sizes (16x16 programmed as mirrored
> + # 8x8) are separate, and is hardcoded in its specific LSC 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 = lt.Tuner('RkISP1')
> -tuner.add(AGCRkISP1(debug=[lt.Debug.Plot]))
> +tuner.add(agc)
> tuner.add(awb)
> tuner.add(blc)
> -tuner.add(CCMRkISP1(debug=[lt.Debug.Plot]))
> +tuner.add(ccm)
> tuner.add(color_processing)
> tuner.add(filter)
> tuner.add(gamma_out)
> -tuner.add(LSCRkISP1(
> - debug=[lt.Debug.Plot],
> - # This is for the actual LSC tuning, and is part of the base LSC
> - # module. rkisp1's table sector sizes (16x16 programmed as mirrored
> - # 8x8) are separate, and is hardcoded in its specific LSC 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.add(lsc)
>
> tuner.set_input_parser(YamlParser())
> tuner.set_output_formatter(YamlOutput())
> -tuner.set_output_order([AGCRkISP1, awb, blc, CCMRkISP1, color_processing,
> - filter, gamma_out, LSCRkISP1])
> +tuner.set_output_order([agc, awb, blc, ccm, color_processing,
> + filter, gamma_out, lsc])
>
> if __name__ == '__main__':
> sys.exit(tuner.run(sys.argv))
> --
> 2.43.0
>
More information about the libcamera-devel
mailing list