diff options
Diffstat (limited to 'data/frames/gen-lut.py')
-rwxr-xr-x | data/frames/gen-lut.py | 58 |
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 |