[libcamera-devel,v4,11/12] utils: tuning: Add alsc-only libtuning raspberrypi tuning script
diff mbox series

Message ID 20221124113550.2182342-12-paul.elder@ideasonboard.com
State Accepted
Headers show
Series
  • utils: tuning: Add a new tuning infrastructure
Related show

Commit Message

Paul Elder Nov. 24, 2022, 11:35 a.m. UTC
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@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

---
Changes in v3:
- add __main__ guard
- add file description
- fix style

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      | 19 +++++++++++++++++++
 utils/tuning/raspberrypi_alsc_only.py | 23 +++++++++++++++++++++++
 3 files changed, 42 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

Patch
diff mbox series

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..024eb5a3
--- /dev/null
+++ b/utils/tuning/raspberrypi/alsc.py
@@ -0,0 +1,19 @@ 
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2022, Paul Elder <paul.elder@ideasonboard.com>
+#
+# alsc.py - ALSC module instance for Raspberry Pi tuning scripts
+
+import libtuning as lt
+from libtuning.modules.lsc 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..af04e6a8
--- /dev/null
+++ b/utils/tuning/raspberrypi_alsc_only.py
@@ -0,0 +1,23 @@ 
+#!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2022, Paul Elder <paul.elder@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.Tuner('Raspberry Pi (ALSC only)')
+tuner.add(ALSC)
+tuner.set_input_parser(RaspberryPiParser())
+tuner.set_output_formatter(RaspberryPiOutput())
+tuner.set_output_order([ALSC])
+
+if __name__ == '__main__':
+    sys.exit(tuner.run(sys.argv))