[libcamera-devel] [PATCH v5 7/8] utils: raspberrypi: ctt: Output version 2.0 format tuning files

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Jul 15 01:54:52 CEST 2022


Hi Naush,

Thank you for the patch.

On Thu, Jul 14, 2022 at 04:24:08PM +0100, Naushir Patuck via libcamera-devel wrote:
> Use the tuning file conversion script to output the new tuning file format from
> the CTT.
> 
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
>  utils/raspberrypi/ctt/ctt.py | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/utils/raspberrypi/ctt/ctt.py b/utils/raspberrypi/ctt/ctt.py
> index 15064634c67f..0d91ada15afa 100755
> --- a/utils/raspberrypi/ctt/ctt.py
> +++ b/utils/raspberrypi/ctt/ctt.py
> @@ -15,7 +15,7 @@ from ctt_alsc import *
>  from ctt_lux import *
>  from ctt_noise import *
>  from ctt_geq import *
> -from ctt_pretty_print_json import *

ctt_pretty_print_json.py isn't used anymore, should it be dropped ?

> +from convert_tuning import convert_v2
>  import random
>  import json
>  import re
> @@ -511,13 +511,12 @@ class Camera:
>      """
>      def write_json(self):
>          """
> -        Write json dictionary to file
> +        Write json dictionary to file using our version 2 format
>          """
> -        jstring = json.dumps(self.json, sort_keys=False)
> -        """
> -        make it pretty :)
> -        """
> -        pretty_print_json(jstring, self.jf)
> +        out_json = convert_v2(self.json)

That's cheating :-) I'm OK with it for now, Would it be difficult to
output the v2 format natively though ? It seems that something along the
lines of the following code should do:

        out_json = {
	    "version": "2.0",
	    "algorithms": [{name: data} for name, data in self.json.items()],
	}

and then you could import the Encoder class from convert_tuning instead
of the convert_v2 function, and do

        with open(self.jf, 'w') as f:
            f.write(json.dumps(out_json, cls=Encoder, indent=4, sort_keys=False))

Possibly even better, the Encoder class could be moved from
convert_tuning.py to ctt_pretty_print_json and replace the existing
hand-written JSONPrettyPrinter.

> +
> +        with open(self.jf, 'w') as f:
> +            f.write(out_json)
>  
>      """
>      add a new section to the log file

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list