summaryrefslogtreecommitdiff
path: root/data/frames/gen-lut.py
diff options
context:
space:
mode:
Diffstat (limited to 'data/frames/gen-lut.py')
-rwxr-xr-xdata/frames/gen-lut.py58
1 files changed, 36 insertions, 22 deletions
diff --git a/data/frames/gen-lut.py b/data/frames/gen-lut.py
index c3591f9..bd371a4 100755
--- a/data/frames/gen-lut.py
+++ b/data/frames/gen-lut.py
@@ -2,37 +2,38 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# SPDX-FileCopyrightText: 2016 Renesas Electronics Corporation
+import argparse
import math
import sys
-clu_configs = (
- ('zero', {
+clu_configs = {
+ 'zero': {
'scale': 0.0,
'a': 0.0,
'freq': 1.0,
'weights': (1.0, 1.0, 1.0)
- } ),
- ('identity', {
+ },
+ 'identity': {
'scale': 1.0,
'a': 0.0,
'freq': 1.0,
'weights': (1.0, 1.0, 1.0)
- } ),
+ },
# Keep the three weights different to generate an anisothropic
# look up table.
- ('wave', {
+ 'wave': {
'scale': 1.0,
'a': 0.1,
'freq': 3.0,
'weights': (1.0, 2.0, 3.0)
- } ),
-)
+ },
+}
-lut_configs = (
- ('zero', 0.0, 1.0, 1.0, 1.0),
- ('identity', 1.0, 1.0, 1.0, 1.0),
- ('gamma', 1.0, 0.5, 1.0, 2.0),
-)
+lut_configs = {
+ 'zero': (0.0, 1.0, 1.0, 1.0),
+ 'identity': (1.0, 1.0, 1.0, 1.0),
+ 'gamma': (1.0, 0.5, 1.0, 2.0),
+}
def clu_value(x, y, z, scale, a, freq, weights):
x = x / 16.
@@ -54,9 +55,9 @@ def generate_clu(config):
for z in range(17):
for y in range(17):
for x in range(17):
- clu.extend(clu_value(x, y, z, **config[1]))
+ clu.extend(clu_value(x, y, z, **config))
- open('clu-%s.bin' % config[0], 'wb').write(clu)
+ return clu
def gamma(vin, gamma, scale):
@@ -65,18 +66,31 @@ def gamma(vin, gamma, scale):
def generate_lut(config):
lut = bytearray()
for i in range(256):
- lut.extend([gamma(i, g, config[1]) for g in config[2:]])
+ lut.extend([gamma(i, g, config[0]) for g in config[1:]])
lut.append(0)
- open('lut-%s.bin' % config[0], 'wb').write(lut)
+ return lut
def main(argv):
- for config in clu_configs:
- generate_clu(config)
-
- for config in lut_configs:
- generate_lut(config)
+ # Parse command line arguments
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--output', '-o', metavar='file', type=str,
+ help='Output file name. Defaults to standard output if not specified.')
+ parser.add_argument('--type', '-t', dest='table_type', type=str, required=True,
+ choices=['clu', 'lut'], help='Select the look up table type.')
+ parser.add_argument('table', type=str,
+ help='Table contents')
+ args = parser.parse_args(argv[1:])
+
+ out = open(args.output, 'wb')
+
+ if args.table_type == 'clu':
+ table = generate_clu(clu_configs[args.table])
+ else:
+ table = generate_lut(lut_configs[args.table])
+
+ out.write(table)
return 0