From patchwork Mon Jul 18 08:15:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 16667 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 E7DD6BD1F1 for ; Mon, 18 Jul 2022 08:16:08 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id ABAD363311; Mon, 18 Jul 2022 10:16:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1658132168; bh=mM66GnkIAXry8zrMcGCpQb1wjOIWjP153rG4HqgQKLo=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=DReJy4eM5LM+9xzkjRkwPWE+DQ0hk0VA+CQTNgbaWlwlK+LVU9Bn2Eg3+brgboqIZ Miv0pxqyIgfnoopH99cSadSFVXtNggAPULEBWqp//b8NuLB69yqm/iiIK1lkWP+vuk iM6/0N1S1iTXBtiGA7TrH/GDCipjPfw5MRlNkKLSfRaSIGLOBCu9Sl+wNQmSdfjPKd 93lUDrQg1GN3lO0PpNDWrTXbHxhBDhAIEwrK1GQq4hNAuTHMFcUUBHTcrltIfAr9eL W0qaOuHV1EJ2HxGEJkKSi8Kg7pqldUn3KD5wJS0QShCpb7sK5lnh/AchkS37aJeAeB +7tMN65qDkpfw== Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 09F4C6048A for ; Mon, 18 Jul 2022 10:16:06 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="qUr8tW2B"; dkim-atps=neutral Received: by mail-wr1-x429.google.com with SMTP id z12so15898432wrq.7 for ; Mon, 18 Jul 2022 01:16:06 -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=bRPPlqkr/K2CWW1cwcVAyU6SbumjfGowh+EuXWrdV3c=; b=qUr8tW2BJvDmv9TqyZb0gQ9Q6FUihRP/qi1fHEfZ49pQFWVFn9lHN67ckYLUzRSXJ8 25TNr2rw67In1wcwNRklR+EWFPxrS0pTpUg/ofUOYo0Uf83YFDxHSF5vYI4ECtc1ZOce ElmUFaEuvoCb3uj7qq/o7UdXmLBWp6m0X4Q18x4dP6LhmvzGyspmedPw0u3FKV0CcEWY d3jQ1mutbOfg4kLAmi1AmzYvl97fxZ3XG0KiilIoYzItzzgPtrsopIb9ip4Mft9cgjuH 52tiyfEcZrDAfDmvvBTUqGfm1Q3YtqD0FPATa174+XrsthqjXN01LSXfDHfstFhX0oYM M8ig== 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=bRPPlqkr/K2CWW1cwcVAyU6SbumjfGowh+EuXWrdV3c=; b=pp9cFDett2jLCCl/cmxOgMrTkKl/1/xXheE43taCDFgdEKUifEhQhoF0bt682b5460 KR8/lFk/uf+ephIhJVcxUJwWnJ9X0Q6MCZ015sc4YxRHcXjn0spmDOhrbKLQ4aXaMBC2 Xhx/hpB4hOz/81zkKK+r9d2Fh6r9r0trh6eTwwzb39DsCWqzY6W5ttsyvzUL5Dcfc4XD uX7G5S25ecqZ+NLWNkitWGmTOrTDqmI0Q1XmVR5cnTSMcTzL1+6Og0ZLt8WzxyWYx8pt Pmfb7agRpKYibXkkl+cKYhxTU/MomZPOy29WJgpn/rI60cKohFQ5NCe2sQrLGPs/d3fY Vcjg== X-Gm-Message-State: AJIora8aoQxVZTDmm1BJH3GlcI+eyn61E5G29x+y7lP02yXL2X97LH8A Squwl5ZIhgj7O2rdpwGmvZNshxSxchUoDQ== X-Google-Smtp-Source: AGRyM1uFFvZkHPnbYA6nADbYm+LbQd60V8mtU9R7tj5MCdSnqIuUP0bEP/i7648E6/KRwGkyUfKLow== X-Received: by 2002:a5d:5a82:0:b0:21e:2899:60bd with SMTP id bp2-20020a5d5a82000000b0021e289960bdmr188112wrb.80.1658132165451; Mon, 18 Jul 2022 01:16:05 -0700 (PDT) Received: from naush-laptop.localdomain ([93.93.133.154]) by smtp.gmail.com with ESMTPSA id a15-20020adffb8f000000b0021dbac444a7sm10206795wrr.59.2022.07.18.01.16.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 01:16:04 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Mon, 18 Jul 2022 09:15:54 +0100 Message-Id: <20220718081602.32535-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v6 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, A few changes in version 6 incorporating Laurent's suggestions, particularly: - Added a "target" field in the version 2.0 format to differentiate different possible platforms - Put the JSON parser custom encoder in ctt_pretty_print_json.py file in 6/8 - The convert_tuning.py script in 7/8 now simply imports the Encoder class from ctt_pretty_print_json.py - A few further tweaks to the JSON formatting in 8/8. I've left the "version" field as a double for now. I don't have any strong objections to making that a string if folks think it makes more sense. Thanks, 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: ctt: Output version 2.0 format tuning files utils: raspberrypi: Add tuning file conversion script 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 | 60 +- 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 | 824 ++++++++-------- src/ipa/raspberrypi/data/imx219_noir.json | 686 +++++++------- src/ipa/raspberrypi/data/imx290.json | 326 ++++--- src/ipa/raspberrypi/data/imx296.json | 369 ++++---- src/ipa/raspberrypi/data/imx378.json | 677 ++++++++------ src/ipa/raspberrypi/data/imx477.json | 881 ++++++++++-------- src/ipa/raspberrypi/data/imx477_noir.json | 734 ++++++++------- src/ipa/raspberrypi/data/imx519.json | 677 ++++++++------ src/ipa/raspberrypi/data/ov5647.json | 824 ++++++++-------- src/ipa/raspberrypi/data/ov5647_noir.json | 686 +++++++------- src/ipa/raspberrypi/data/ov9281.json | 195 ++-- src/ipa/raspberrypi/data/se327m12.json | 683 ++++++++------ src/ipa/raspberrypi/data/uncalibrated.json | 180 ++-- 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 | 46 + utils/raspberrypi/ctt/ctt.py | 18 +- .../raspberrypi/ctt/ctt_pretty_print_json.py | 194 ++-- 52 files changed, 4752 insertions(+), 3855 deletions(-) create mode 100755 utils/raspberrypi/ctt/convert_tuning.py mode change 100644 => 100755 utils/raspberrypi/ctt/ctt_pretty_print_json.py