summaryrefslogtreecommitdiff
path: root/utils/tuning/rkisp1.py
blob: d0ce15d5ed7a544839de0cf67d72f0c070ee321e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-2.0-or-later
#
# Copyright (C) 2022, Paul Elder <paul.elder@ideasonboard.com>
#
# 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
from libtuning.modules.agc import AGCRkISP1

tuner = lt.Tuner('RkISP1')
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(AGCRkISP1(debug=[lt.Debug.Plot]))
tuner.set_input_parser(YamlParser())
tuner.set_output_formatter(YamlOutput())
tuner.set_output_order([AGCRkISP1, LSCRkISP1])

if __name__ == '__main__':
    sys.exit(tuner.run(sys.argv))