From patchwork Wed Jul 13 09:21:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 16610 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 1339FBD1F1 for ; Wed, 13 Jul 2022 09:22:18 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 2C30F63316; Wed, 13 Jul 2022 11:22:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1657704137; bh=wNnWGUrjsxPjb/BgePziZnUlbiNuzqXy86OYNptbzrQ=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=P/JF83bNr/Cl9ynB7l3zlcI6FCykre+uxH7mTlTHL/x162jxhD1OUpeBekKURWQGT voB2Aab1D6gqRypEWXt0SJ0V4aR3bYz4MJ7IxjsshvxsANP1cxkJIdXMnwYJYqwA5j bNC0qSxsF2kUgDmuk8hTX1j0GCYVwAPD3xwY0W9iB0X9ROuo5PbUZw5tu47NmjEU6G QZp9ly9J296NSXJ7hqTkVHjWhMKvGvv/93b7kGJdiVPTjT38uXet3l/hN0U1aHMZ5K Pzj82mvGw9RiX2rl9/5Qtgo2bZKqAcGO9gF5QB5F36/OpgUW+lCJEAFSzU1P0OIEd8 ZiiXeTl9Houng== Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 063846330A for ; Wed, 13 Jul 2022 11:22:15 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="trF6g1lH"; dkim-atps=neutral Received: by mail-wr1-x431.google.com with SMTP id o4so14631692wrh.3 for ; Wed, 13 Jul 2022 02:22:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=NUhC0b9EERDljBfjbgd5nwglkIjp3fmt1xA0wrFZ0oU=; b=trF6g1lHLKo1OFOOvfsbdNVMrvuwo4/l6wRWph4I3McduTzyafmZB87HafA0lCTuSk TG3gcnD4h+EF7ypUOxzDgZ+gFKc7MyPXx/F/ko7zf9Dk6o6BxKTdgMVh9dgG8b9ab7gY akSzctdCOXaJD4Dxq6K/SMHe6IZGHbiOPoLxdd0L2mQTxgNJFCMH7K8wbz1VSDQ26Xkl Oa5bD00Lo5bPU5xnTGlec/8SiSQ6v+W9TKeLCABd6t3RE+VYKXwdWA+SUWqNLeuynR0p J+pjyt72cqjJMtuEAjmSKDyuRcRMrJi12i/ESL9FGyGJ9hZTs/u0UWpd6ExTQDOhqSwx y/CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=NUhC0b9EERDljBfjbgd5nwglkIjp3fmt1xA0wrFZ0oU=; b=BZtKtL/RSUTchHMTLHBW1n7QfGhgh7Y7aBOcOkR1RrLvjJGmgfbVX9rfhQigCavqVW OAppuL4AQjjB/vUNZA/EFiF9+gr28NTsT6Qx2AbQ0/6wvZWiIXwADMJWyR396JTZ0QoH 1JM3AeyK0qoKTbxEkb4S5AH47nwfNDZROY+sL0HxmQi6vT6ufTgM7DCqWi5ATgn9lflg 9pkC2vzk69gVKPEHa/5gp/rxGrNdqjtIcGUf+cKuys+W6BQyp+li97OxPuuMBUWKhoNx mt/rgcqZy6W2tdn0RD80ndQvWkBp/997iINM+ksce2QO4xtUfhYT/reI33g/2b5g/64E saeg== X-Gm-Message-State: AJIora+Vr0CRN084beLEXz2E9Ajojw84Uilec1F1IdALShV75daulPNe b/ioLnisAocJKm1nUkxD0m1+mm21q4G6kg== X-Google-Smtp-Source: AGRyM1tj0pza3KV68VPAuVD0rrl4jXIgMyI+7QE10dM5JCKxsx/Wj3Un62SkAtdzTrJ6Ez4LyECb/w== X-Received: by 2002:a05:6000:1545:b0:21d:8f3e:a0bd with SMTP id 5-20020a056000154500b0021d8f3ea0bdmr2295601wry.697.1657704134228; Wed, 13 Jul 2022 02:22:14 -0700 (PDT) Received: from naush-laptop.localdomain ([93.93.133.154]) by smtp.gmail.com with ESMTPSA id bd20-20020a05600c1f1400b0039747cf8354sm1514778wmb.39.2022.07.13.02.22.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Jul 2022 02:22:13 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Wed, 13 Jul 2022 10:21:51 +0100 Message-Id: <20220713092159.9014-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v4 0/8] Replace boost JSON parser with libyaml in Raspberry Pi IPA X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Naushir Patuck via libcamera-devel From: Naushir Patuck Reply-To: Naushir Patuck Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hi, This is a continuation of the series started by Laurent on replacing the boost JSON parser with libyaml. I've removed the RFC tag from this series, and tagged Laurent's patches 1/8 - 3/8. I have a few minor comments on 4/8 that I will reply to separately. This version adds the following patches for the Raspberry Pi IPA and CTT: 5/8 - Add support for new format of the tuning file that explicitly sets algorithm ordering. 6/8 - Add a python script that converts our existing JSON format to the new one. 7/8 - Updates the CTT to output the new format tuning files. 8/8 - Updates our existing tuning files to the new format with the script. Regards, Naush Laurent Pinchart (4): test: yaml-parser: Test dictionary items ordering libcamera: yaml_parser: Preserve order of items in dictionary ipa: raspberrypi: Replace tabs with spaces in tuning data files ipa: raspberrypi: Use YamlParser to replace dependency on boost Naushir Patuck (4): ipa: raspberrypi: Introduce version 2.0 format for the camera tuning file utils: raspberrypi: Add tuning file conversion script utils: raspberrypi: ctt: Output version 2.0 format tuning files ipa: raspberrypi: Convert existing cameara tuning files to version 2.0 README.rst | 6 - include/libcamera/internal/yaml_parser.h | 37 +- src/ipa/raspberrypi/controller/algorithm.cpp | 2 +- src/ipa/raspberrypi/controller/algorithm.hpp | 6 +- src/ipa/raspberrypi/controller/controller.cpp | 59 +- src/ipa/raspberrypi/controller/controller.hpp | 4 +- src/ipa/raspberrypi/controller/pwl.cpp | 12 +- src/ipa/raspberrypi/controller/pwl.hpp | 5 +- src/ipa/raspberrypi/controller/rpi/agc.cpp | 94 +- src/ipa/raspberrypi/controller/rpi/agc.hpp | 10 +- src/ipa/raspberrypi/controller/rpi/alsc.cpp | 94 +- src/ipa/raspberrypi/controller/rpi/alsc.hpp | 2 +- src/ipa/raspberrypi/controller/rpi/awb.cpp | 89 +- src/ipa/raspberrypi/controller/rpi/awb.hpp | 8 +- .../controller/rpi/black_level.cpp | 12 +- .../controller/rpi/black_level.hpp | 2 +- src/ipa/raspberrypi/controller/rpi/ccm.cpp | 28 +- src/ipa/raspberrypi/controller/rpi/ccm.hpp | 4 +- .../raspberrypi/controller/rpi/contrast.cpp | 18 +- .../raspberrypi/controller/rpi/contrast.hpp | 2 +- src/ipa/raspberrypi/controller/rpi/dpc.cpp | 4 +- src/ipa/raspberrypi/controller/rpi/dpc.hpp | 2 +- src/ipa/raspberrypi/controller/rpi/geq.cpp | 10 +- src/ipa/raspberrypi/controller/rpi/geq.hpp | 2 +- src/ipa/raspberrypi/controller/rpi/lux.cpp | 12 +- src/ipa/raspberrypi/controller/rpi/lux.hpp | 2 +- src/ipa/raspberrypi/controller/rpi/noise.cpp | 6 +- src/ipa/raspberrypi/controller/rpi/noise.hpp | 2 +- src/ipa/raspberrypi/controller/rpi/sdn.cpp | 6 +- src/ipa/raspberrypi/controller/rpi/sdn.hpp | 2 +- .../raspberrypi/controller/rpi/sharpen.cpp | 8 +- .../raspberrypi/controller/rpi/sharpen.hpp | 2 +- src/ipa/raspberrypi/data/imx219.json | 760 ++++++++-------- src/ipa/raspberrypi/data/imx219_noir.json | 647 +++++++------- src/ipa/raspberrypi/data/imx290.json | 300 +++---- src/ipa/raspberrypi/data/imx296.json | 338 ++++---- src/ipa/raspberrypi/data/imx378.json | 617 ++++++------- src/ipa/raspberrypi/data/imx477.json | 808 +++++++++--------- src/ipa/raspberrypi/data/imx477_noir.json | 688 ++++++++------- src/ipa/raspberrypi/data/imx519.json | 617 ++++++------- src/ipa/raspberrypi/data/ov5647.json | 758 ++++++++-------- src/ipa/raspberrypi/data/ov5647_noir.json | 645 +++++++------- src/ipa/raspberrypi/data/ov9281.json | 160 ++-- src/ipa/raspberrypi/data/se327m12.json | 622 +++++++------- src/ipa/raspberrypi/data/uncalibrated.json | 137 ++- src/ipa/raspberrypi/meson.build | 1 - src/ipa/raspberrypi/raspberrypi.cpp | 1 + src/libcamera/yaml_parser.cpp | 35 +- test/yaml-parser.cpp | 17 +- utils/raspberrypi/ctt/convert_tuning.py | 94 ++ utils/raspberrypi/ctt/ctt.py | 13 +- 51 files changed, 4066 insertions(+), 3744 deletions(-) create mode 100755 utils/raspberrypi/ctt/convert_tuning.py