From patchwork Tue Aug 9 14:46:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 17042 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 03C1CC3272 for ; Tue, 9 Aug 2022 14:46:32 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 59B0C63326; Tue, 9 Aug 2022 16:46:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1660056391; bh=NX9U6ZaCSy/+5c2mytwdO6uUvVZeKOeIRO13YVvQ35Y=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=RazjyDpKOpt6yyr1rbMdSVzAB/CLfX+7D+Ry5K4sJk4SAXjPHRf4/LQmGCpuLfLmL GXHS1HQXWev83whyw3lZ8V9KbUCyOCV+mnSO0YSnBuTfP6/tx/GklFrPW2GygNacE0 fV8/pEBrg/Xj9jZzVpbRTSiYow1x0rajHxHLeeM3SiAB/anB/NjvS2v3f8pJ31YrNo 5HNRwBC/5oeYXdopz9hQCEeGjgJhPz2oaqwOjsax0pkT4KtFJzpJzdZHI5V88mIjQP KVWntQwANCn5f999ZPJLBCvGxUfZ5Z6rz62rK+fyz9T5YNe/Dx6QGIwNkW81KUZ6Km y6GeSUZjv+Rjg== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C443861FAA for ; Tue, 9 Aug 2022 16:46:29 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="kH2rCnNw"; dkim-atps=neutral Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 31370481 for ; Tue, 9 Aug 2022 16:46:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1660056389; bh=NX9U6ZaCSy/+5c2mytwdO6uUvVZeKOeIRO13YVvQ35Y=; h=From:To:Subject:Date:From; b=kH2rCnNwJ7Z3t73gaBIBEbXD/0VLkLDBm69Kbm4CjadHTUOldKDJBh7e041d53ssa kK199VowSA6i8E7aScYNiEPeSQI0zILD2fFR/5SMvmYmJ7/yCgGBAEvSDTjhb+I0ZY E4lHQy5GEHiFFlAxajb5BPNdOKWezwj3ndlGvc7U= To: libcamera-devel@lists.libcamera.org Date: Tue, 9 Aug 2022 17:46:13 +0300 Message-Id: <20220809144617.27983-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 0/4] Add tuning data file support to the IPU3 IPA modul 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: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hello, This patch series adds support for tuning data files to the IPU3 IPA module. It mimicks the RkISP1 implementation that was merged recently, and brings dynamic instantiation of algorithms from the tuning file. The series leaves a few questions unanswered, in particular how to handle the IPU3 IPA module based on the closed-source Intel 3A binaries. I don't think this is a blocker, the pipeline handler will pass a tuning file name to the IPA module, which that particular module will ignore. I haven't really thought about how to handle the fact that different IPA modules may require different tuning files, maybe this should be handled in the broader context of how to select one IPA module among multiple options. On a related note, this version has dropped support for overridding the tuning file name through an environment variable, as IPU3-based platforms typically have multiple cameras, so this wasn't a good fit. A better way to pick tuning data files will be designed and implemented on top. The patches haven't been tested yet. Kieran, would you be able to run CTS on a Soraka device with this series applied ? Laurent Pinchart (4): pipeline: ipu3: Support IPA tuning file ipa: ipu3: Add an uncalibrated.yaml tuning data file ipa: ipu3: Register algorithms ipa: ipu3: Add YAML tuning file support src/ipa/ipu3/algorithms/af.cpp | 2 + src/ipa/ipu3/algorithms/agc.cpp | 2 + src/ipa/ipu3/algorithms/awb.cpp | 2 + src/ipa/ipu3/algorithms/blc.cpp | 2 + src/ipa/ipu3/algorithms/tone_mapping.cpp | 2 + src/ipa/ipu3/data/meson.build | 8 +++ src/ipa/ipu3/data/uncalibrated.yaml | 11 ++++ src/ipa/ipu3/ipu3.cpp | 70 ++++++++++++++++++------ src/ipa/ipu3/meson.build | 1 + src/libcamera/pipeline/ipu3/ipu3.cpp | 12 +++- 10 files changed, 92 insertions(+), 20 deletions(-) create mode 100644 src/ipa/ipu3/data/meson.build create mode 100644 src/ipa/ipu3/data/uncalibrated.yaml base-commit: 768f1138e9111975959057a621a99518ab78981f