From patchwork Fri Jun 17 09:23:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Sylvestre X-Patchwork-Id: 16258 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 12BEDC3273 for ; Fri, 17 Jun 2022 09:23:52 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id C6D916563B; Fri, 17 Jun 2022 11:23:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1655457830; bh=DjyNdnTjUnAW1opZVIE82vr1Mv6cwC8MwFO6kdAKzKg=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=WwphsiiyZOljfH2s7VkoBn5n60NQWwm4sE5IocvIpQMwHXmxiK3E6dhE+3om0nKyk z1zf3OjF8qgcS2lg0vBhMCwNDVsZvVJmp6yS9On9oetsg3Awyz7C85af/n1AWswK+g LGXjms2iV4cC9Y6xwtnttNk44dPQVfZ67woLsjg+st2yNwd1eaHLD7oVHqEewF0qPD hLAduombWlBYNkcdbXyamREb007zq7XeAuhAthGrMk85t0tdCjL2EDGq3dFJz2G5qR kOycmWjLJMV9WZ/FKYVsZQ+JSf8cY90RNLHPpQFctY1ZSB7dw8NvnsFgmiouZv/D2g 1zYLcKSGDawJw== Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 25E0D60471 for ; Fri, 17 Jun 2022 11:23:49 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20210112.gappssmtp.com header.i=@baylibre-com.20210112.gappssmtp.com header.b="7vzgEbMA"; dkim-atps=neutral Received: by mail-wr1-x42b.google.com with SMTP id s1so4964723wra.9 for ; Fri, 17 Jun 2022 02:23:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MfOFzFspTP5zz9WTQrdkPOXwqbKdm9Kl7i0KNHA6q+0=; b=7vzgEbMA9aIeBJ2W8WX/4KGUVQFeNl5o6SgYHlzvZIE0+eJUm4vPFsxFyICFBw6yx8 deTt6YOheeLLpi0jdjcFiACm5X+//JDLLDtYn8VWzEaNAWWcS4A1MXtXzQMGxvvRkHZm PJnT3ZaF/7HMivLK6bbgSCU+3hvyJ2ESCPwz46HydpBVkEPWOt2SnQjbC926Bnu6SAdc Z/8a1SpTuhpB4aLQRZY33fGMOCLxDJso+5IV0nYHIWCumaFFi8447lbOUXOwIN5JmrEM n/gJZbX64GKT6JI9A/eelsP2tXKVrTnpmr2oXUcWaEqnHerggeHANvBhqtIp4GEUzFYz NnWg== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=MfOFzFspTP5zz9WTQrdkPOXwqbKdm9Kl7i0KNHA6q+0=; b=xBWFQPIk6mnUr21Umz0LNPk/IAu9Au5DXYv76wkILy1sWxMwA8lNnI56NdDr7QxfE3 hQz8dq8wGDs8314Q4pfFw4LSoqXJYOOjdKT5162jXME5tHuS0eqc8jkujFiwbY0etq2D Dq04ab18ArLJOUdW5yvjIvEiJxstf43tnkOxO3X6I8oZWmgpOBlW42O0ZQw5OayJ61bI lwxOZtnIWkEUylN44FIcbfeaSS6qHheVuyPiWZr+mks3rpnSm0c+oeVEd2wWBcMkfIGm Hj0t6qMUKJPEXeptxJ29H9fstL/qq4RdM5VZJAUrHDjCJMtP+067qKwipSDbMIfDBYAy RvYA== X-Gm-Message-State: AJIora/0Uhl1iRwEWG15l8E7v5Xb/Q/FeEr4Il+N5zLQWDUo2O37k5QM KFZDsmf7OYTsWJZ8PiP04VZDGKKXvuZ7Jg== X-Google-Smtp-Source: AGRyM1snul7ONZLTTguMSftT3GIUlC1AvEkmR18IF8IRO8dCfw5RzCekKEUIJHPPwfr8BGhA7xCsMw== X-Received: by 2002:a5d:6dae:0:b0:218:4a3a:3623 with SMTP id u14-20020a5d6dae000000b002184a3a3623mr8523455wrs.524.1655457828487; Fri, 17 Jun 2022 02:23:48 -0700 (PDT) Received: from BL087.. ([2a01:e34:eea9:e630:4718:73b:d035:3786]) by smtp.gmail.com with ESMTPSA id h81-20020a1c2154000000b0039c41686421sm7962328wmh.17.2022.06.17.02.23.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jun 2022 02:23:48 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Fri, 17 Jun 2022 11:23:11 +0200 Message-Id: <20220617092315.120781-2-fsylvestre@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220617092315.120781-1-fsylvestre@baylibre.com> References: <20220617092315.120781-1-fsylvestre@baylibre.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 1/5] pipeline: rkisp1: Support IPA tuning file 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: Florian Sylvestre via libcamera-devel From: Florian Sylvestre Reply-To: Florian Sylvestre Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Allow the usage of a YAML IPA tuning file that is either defined by the sensor name (sensor_name.yaml) or defined by LIBCAMERA_RKISP1_TUNING_FILE environment variable. Signed-off-by: Florian Sylvestre Reviewed-by: Laurent Pinchart Reviewed-by: Paul Elder --- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index 4b3d2cf7..59ded513 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -322,7 +322,18 @@ int RkISP1CameraData::loadIPA(unsigned int hwRevision) ipa_->paramsBufferReady.connect(this, &RkISP1CameraData::paramFilled); ipa_->metadataReady.connect(this, &RkISP1CameraData::metadataReady); - int ret = ipa_->init(IPASettings{ "", sensor_->model() }, hwRevision); + /* + * The API tuning file is made from the sensor name unless + * the environment variable overrides it. + */ + std::string ipaTunigFile; + char const *configFromEnv = utils::secure_getenv("LIBCAMERA_RKISP1_TUNING_FILE"); + if (!configFromEnv || *configFromEnv == '\0') + ipaTunigFile = ipa_->configurationFile(sensor_->model() + ".yaml"); + else + ipaTunigFile = std::string(configFromEnv); + + int ret = ipa_->init({ ipaTunigFile, sensor_->model() }, hwRevision); if (ret < 0) { LOG(RkISP1, Error) << "IPA initialization failure"; return ret; From patchwork Fri Jun 17 09:23:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Sylvestre X-Patchwork-Id: 16259 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 725B0C3274 for ; Fri, 17 Jun 2022 09:23:54 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id C05C16563E; Fri, 17 Jun 2022 11:23:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1655457832; bh=p4e33/jkM7aiRpDEeh6t1mYzMnKJsgaj6toEOgRI9uM=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=3/ys//NwsvkKuKYp4LxFis+5KXlNBzkLP3sRBA4SD2+6cN/yXWyPBtXG+/7ccC6Mi KTgovzQftG5AFc/z3gsGA8GZxDe/YyBiU7zzRfpDWOlGCObEptsE9kLqa/3rDKlwpF 9wZ7d4ikv55MaqlCOxN1lbWN1BCYQXA2TNbnX+BlzID9witiiBn/7H42e9nrY8W24I HXquh+8iF/0O34vdEp9qMgW2JYZ1cwsQuDRHpElzy/lF9GNz4vGJ7Vxf839AjaRW5d rgUFqIY9sNT42weNqNfT/60dcGz2ng3kKp7N1Wwyc8aOtcjC1no6lDJfDmZmpc4SEg 8q3614hr5R/qA== Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 0740B60471 for ; Fri, 17 Jun 2022 11:23:50 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20210112.gappssmtp.com header.i=@baylibre-com.20210112.gappssmtp.com header.b="7K2ManLD"; dkim-atps=neutral Received: by mail-wm1-x331.google.com with SMTP id s21-20020a1cf215000000b0039ee8149524so568051wmc.5 for ; Fri, 17 Jun 2022 02:23:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TMYZjips5Lixyu5lyPtw51kzFlykmKB07P7srPkyV6c=; b=7K2ManLDvqZ+AVZT67uvi1B2q/rmyt0dRkVD2HPHH0d94YOy9vzdLoT84OdQtJUBwe 7QOleAySGb4ksFxCa3bDXpqEb39q8ogGtsbLMbGU3U4L7BWlWVW5vm1L6o4+cBP5UgCu mv5dBQvvpNFhQbqTd8EEe+jdcwg6F+9C1GZ4vjXTxR71lEyIu5Y6ni6dwYiB+TlYyUMn 5XOZN8NBLe1mWWm8FCKA6AUb7uVVCUqThJrpnUfXEeMfv77n0/7XCHiZ8SORCXEgIQz5 MxQDr0LKyOc5CuYQrZ3mAYg6Wl5xnU+yV1tND8EAERIPvVNRieup4kpXoNHLaQEgdCRu Ol1A== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=TMYZjips5Lixyu5lyPtw51kzFlykmKB07P7srPkyV6c=; b=OHsz8S9oRu6hNYc0L+sL4Gr5aFgCjjNy6IgOdxkfzjbwn+xbfV+xR4XZ4B4V3Ji7gh Je/W2Ehlud52OvWpLk9Huz5e78rAAp6yWxDlCELCfMnekP67wRIfA4xgDX0SDkTI6GGt xMUy5Z9fTPijuaoE5C9chyk3vOIWqXm4ENd1W1bohV9FnPJc8DgbzRVhlFu1yWsgIX7j 2slcr460PA46wKss47khquD4oHzrHIpaG6khqqYPdYL8unj914oPrZU+9kNbgXnQ8gQh 4Nop4LtSDco1oxd39rRS9Cx4RbWtEstraMp2igHmeu0X7m3XpEqJnuBet9hCZ7RanQZm X8Tw== X-Gm-Message-State: AJIora/Y6Y5v69/pd3hot8wyt70I2dPM3DsVFXbMEDmQvfzmGoSGDjPR 9qc2e9SPEQh4eQTDFVWs4yr0mWnd4UVHFQ== X-Google-Smtp-Source: AGRyM1sUqDg8Ptwg8SJH0HLLUWQLrkFvavoFlQsgIcsg+M3Q84LCpxxkIGae4fLUVuuk8Tr663hVlg== X-Received: by 2002:a05:600c:358d:b0:39c:7aea:e20f with SMTP id p13-20020a05600c358d00b0039c7aeae20fmr9171587wmq.64.1655457829351; Fri, 17 Jun 2022 02:23:49 -0700 (PDT) Received: from BL087.. ([2a01:e34:eea9:e630:4718:73b:d035:3786]) by smtp.gmail.com with ESMTPSA id h81-20020a1c2154000000b0039c41686421sm7962328wmh.17.2022.06.17.02.23.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jun 2022 02:23:48 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Fri, 17 Jun 2022 11:23:12 +0200 Message-Id: <20220617092315.120781-3-fsylvestre@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220617092315.120781-1-fsylvestre@baylibre.com> References: <20220617092315.120781-1-fsylvestre@baylibre.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 2/5] ipa: libipa: Add init() function to the Algorithm class 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: Florian Sylvestre via libcamera-devel From: Florian Sylvestre Reply-To: Florian Sylvestre Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add the init() function that will be called during algorithm initialization to provide each algorithm the list of algorithms tuning data. Each algorithm will be responsible to grab their corresponding parameters. Signed-off-by: Florian Sylvestre Reviewed-by: Laurent Pinchart Reviewed-by: Paul Elder --- src/ipa/ipu3/algorithms/algorithm.h | 8 +++++--- src/ipa/libipa/algorithm.cpp | 14 ++++++++++++++ src/ipa/libipa/algorithm.h | 11 +++++++++-- src/ipa/rkisp1/algorithms/algorithm.h | 8 +++++--- 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/ipa/ipu3/algorithms/algorithm.h b/src/ipa/ipu3/algorithms/algorithm.h index 234b2bd7..8b562e5b 100644 --- a/src/ipa/ipu3/algorithms/algorithm.h +++ b/src/ipa/ipu3/algorithms/algorithm.h @@ -15,11 +15,13 @@ namespace libcamera { +class YamlObject; + namespace ipa::ipu3 { -using Algorithm = libcamera::ipa::Algorithm; +using Algorithm = libcamera::ipa::Algorithm; } /* namespace ipa::ipu3 */ diff --git a/src/ipa/libipa/algorithm.cpp b/src/ipa/libipa/algorithm.cpp index cce2ed62..f1b04160 100644 --- a/src/ipa/libipa/algorithm.cpp +++ b/src/ipa/libipa/algorithm.cpp @@ -29,6 +29,20 @@ namespace ipa { * to manage algorithms regardless of their specific type. */ +/** + * \fn Algorithm::init() + * \brief Configure the Algorithm with default parameters + * \param[in] context The shared IPA context + * \param[in] params The initial parameters used to tune algorithms + * + * This function is called once, when the IPA module is initialized, to + * initialize the algorithm. The \a params YamlObject contains IPA module + * parameters, typically tuning data for all algorithms. The Algorithm is + * responsible for reading the parameters relevant to its configuration. + * + * \return 0 if successful, an error code otherwise + */ + /** * \fn Algorithm::configure() * \brief Configure the Algorithm given an IPAConfigInfo diff --git a/src/ipa/libipa/algorithm.h b/src/ipa/libipa/algorithm.h index 032a05b5..2945719e 100644 --- a/src/ipa/libipa/algorithm.h +++ b/src/ipa/libipa/algorithm.h @@ -10,13 +10,20 @@ namespace libcamera { namespace ipa { -template +template + class Algorithm { public: virtual ~Algorithm() {} + virtual int init([[maybe_unused]] Context &context, + [[maybe_unused]] const TuningData ¶ms) + { + return 0; + } + virtual int configure([[maybe_unused]] Context &context, [[maybe_unused]] const Config &configInfo) { diff --git a/src/ipa/rkisp1/algorithms/algorithm.h b/src/ipa/rkisp1/algorithms/algorithm.h index 68e3a44e..e813756d 100644 --- a/src/ipa/rkisp1/algorithms/algorithm.h +++ b/src/ipa/rkisp1/algorithms/algorithm.h @@ -17,11 +17,13 @@ namespace libcamera { +class YamlObject; + namespace ipa::rkisp1 { -using Algorithm = libcamera::ipa::Algorithm; +using Algorithm = libcamera::ipa::Algorithm; } /* namespace ipa::rkisp1 */ From patchwork Fri Jun 17 09:23:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Sylvestre X-Patchwork-Id: 16260 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 233BEC3275 for ; Fri, 17 Jun 2022 09:23:56 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 817796563F; Fri, 17 Jun 2022 11:23:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1655457835; bh=FQFXdW7nDJSKSdWEgiUdNjbWp1y2fsSHP4XjiKtcO6I=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=TUgypEjx4zWgyXKVUK2I8pp05ffPHSo94793izgUOnGUAF0vSSUWWosiBxNNbQOzp ReYxbhaXR69E8QJbmdy9Q2TB2R8NuuJEP5VgxdIlXXQJH94lfH/d5KStwcFNFu222y Fm79lrn6Avvs6JUJK8wdzmQMDZ5eqW4EHtM9ACRrauB2jar58cvQ8hqC0sqFcMtT+2 ZRbEPFY3Bmbvhzb/+qxBp5yMgIz5FaSbhH3kHBgWGtG7LqBdl1JWwMCP53URK4TBn2 b6zB9si1lhTSOk62bsGYEDutP/+USFv/v8WNWO0VfadnmQJP/1luPkTuRkqfAO8NYb rL26bca0diIGw== Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3327065634 for ; Fri, 17 Jun 2022 11:23:51 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20210112.gappssmtp.com header.i=@baylibre-com.20210112.gappssmtp.com header.b="gcYQkw3B"; dkim-atps=neutral Received: by mail-wr1-x42b.google.com with SMTP id i10so1219229wrc.0 for ; Fri, 17 Jun 2022 02:23:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ZaWFERh5kZkXWV7gm5/ucEQrlW7cCM22c2YHwQhMeTE=; b=gcYQkw3BEgJIVfUYK3GjgrBTtaom/QIgTJNL3OCPxG1gXD8Dpt1TrPLIfJ78KQSfzt McRe/cDhxy5Gm2e5q8GLczWTOp+pBJL8jupAjYQnaGAxBcC72YFwtaJdsfriVkOIZWXi 9yGXh3uIen5LtakLpeTV4gTX7euj+osqYI830OpL3ot0ZDF/cBLZxQzuO1M9f5x5nG1/ N9u9RKz5exLo+eN+O+j53BoMkSfkWimauoLEuWwAVpcvJFF0Vb9y3HVDvX+9AH4aZA8E eqfgOnBRVOnS0/Dd3LtiCC1PLR8QZsfE4mLleOWPcBpAQvdFIUgIUFEA34d9Ku4TWBal benw== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=ZaWFERh5kZkXWV7gm5/ucEQrlW7cCM22c2YHwQhMeTE=; b=1RPF+jgDRBw+6heac8U451hLsBEZ8AJ8zx1dbHBTMCl3lnUlrFSszH9V6x3oB3RLzT gsohyvguDIuMVsyoVhBaPlboGYsliTyRKbYSipHricAVN/m2vCi46R7ZorCWCJSX0hxi i8MANe+6PQayg995lHVasyNgCs1Tu+gaLPzc5J4l2W3Ky7dUmMkC7ZLKwEKIYIf4C2e7 e2omuQYqA5IK2L3JgyMgjb8+SxDfZxW9IlAJroV13fR2SvSlAZCZvm4YrlYZoqhYayC1 bkPLk40keRwaInXwO5x6D4HfYEtoddOIy3WIlTSWmrWB5I/cO+TyjXth3J9ZufSrLaNw E7Dw== X-Gm-Message-State: AJIora8GHhifITAiGlWA19G/sU5HRXWqHvWvHo3i2XZnJHx/KKy2xLMS MjqM8BVBIuXpspNv6N6IKjE6/V1I6Kh1Kg== X-Google-Smtp-Source: AGRyM1uO1IAV+PVG3Ywk4fuaIQ+ADrhWnjJFu8KsJGSLx7EggcQpNlsZdCL8hlWvnISWnnyImTfoYg== X-Received: by 2002:adf:e3cf:0:b0:219:e523:905f with SMTP id k15-20020adfe3cf000000b00219e523905fmr8336807wrm.240.1655457830245; Fri, 17 Jun 2022 02:23:50 -0700 (PDT) Received: from BL087.. ([2a01:e34:eea9:e630:4718:73b:d035:3786]) by smtp.gmail.com with ESMTPSA id h81-20020a1c2154000000b0039c41686421sm7962328wmh.17.2022.06.17.02.23.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jun 2022 02:23:49 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Fri, 17 Jun 2022 11:23:13 +0200 Message-Id: <20220617092315.120781-4-fsylvestre@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220617092315.120781-1-fsylvestre@baylibre.com> References: <20220617092315.120781-1-fsylvestre@baylibre.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 3/5] ipa: rkisp1: Add Yaml tuning file support 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: Florian Sylvestre via libcamera-devel From: Florian Sylvestre Reply-To: Florian Sylvestre Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Retrieve root node in Yaml tuning file and provide to each algorithm this YamlObject to allow them to grab their default parameters by calling init() function. Signed-off-by: Florian Sylvestre Reviewed-by: Laurent Pinchart Reviewed-by: Paul Elder --- src/ipa/rkisp1/rkisp1.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp index 61a3bab9..5eb23669 100644 --- a/src/ipa/rkisp1/rkisp1.cpp +++ b/src/ipa/rkisp1/rkisp1.cpp @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -24,6 +25,7 @@ #include #include "libcamera/internal/mapped_framebuffer.h" +#include "libcamera/internal/yaml_parser.h" #include "algorithms/agc.h" #include "algorithms/algorithm.h" @@ -61,6 +63,7 @@ public: private: void setControls(unsigned int frame); void prepareMetadata(unsigned int frame, unsigned int aeState); + int parseConfigurationFile(File &file); std::map buffers_; std::map mappedBuffers_; @@ -126,6 +129,37 @@ int IPARkISP1::init(const IPASettings &settings, unsigned int hwRevision) algorithms_.push_back(std::make_unique()); algorithms_.push_back(std::make_unique()); + /* Load the tuning file for this sensor. */ + File file(settings.configurationFile.c_str()); + if (!file.open(File::OpenModeFlag::ReadOnly)) { + int ret = file.error(); + LOG(IPARkISP1, Error) + << "Failed to open configuration file " + << settings.configurationFile << ": " << strerror(-ret); + return ret; + } + + return parseConfigurationFile(file); +} + +int IPARkISP1::parseConfigurationFile(File &file) +{ + std::unique_ptr root = YamlParser::parse(file); + if (!root) + return -EINVAL; + + const YamlObject &algoObject = (*root)["algorithms"]; + + if (!algoObject["algorithms"].isDictionary()) + return -EINVAL; + + /* Allow each algo to get parameters from configuration file. */ + for (auto const &algo : algorithms_) { + int ret = algo->init(context_, algoObject); + if (ret) + return ret; + } + return 0; } From patchwork Fri Jun 17 09:23:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Sylvestre X-Patchwork-Id: 16261 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 ABF3BC3276 for ; Fri, 17 Jun 2022 09:23:56 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id F408965634; Fri, 17 Jun 2022 11:23:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1655457836; bh=Zm0q2+fDTO3v0d8ntZUHeYYkaOvP3B22s+Yq3cOguZY=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=NOYHtLTrIZq2VwNp6mWLGBEo7BIyFfPajr/9jZNmvY2kWcIg3TnfsRx/Pn9SvSP3g Y5KJqCV0tRHLcwbNEMJ5eWuESMEtm+ce/jSHq5ChAmd+U0N6dWMOXsR+mD0SIHcU62 kRtvlhql8g9Y1J1LcMOZ+NISRDbdQTXM3PTOtSA6DKXtmJWq1kyoQCJAD/jrFwY9sJ Y5nest04KKBd8Q97oiZFXZSqisMlKGBIJnOySEWBOhPa2VBOKnBKs5J/IIYSPIy7ms SJ6Eg9QnIRKLTIRr9RY10noOhhUsfKuOVOtLkWC2eqeOt0x1t9jPGDJ0vec/aB9uox 1FZfJNpiXscFw== Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B2DBE65638 for ; Fri, 17 Jun 2022 11:23:51 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20210112.gappssmtp.com header.i=@baylibre-com.20210112.gappssmtp.com header.b="5SdMRIID"; dkim-atps=neutral Received: by mail-wr1-x42f.google.com with SMTP id e25so1107180wrc.13 for ; Fri, 17 Jun 2022 02:23:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y/IN9VPQLpqaq1dEesAKGCcXOJ2owySiNcWWeYibdCg=; b=5SdMRIID743ZqnxL2uMLzFH2S49bzUN/eci90Oa7bYaq1/lmtokZDPp9LYKqLb2O6W Np/RereGOf2NF/VrMDIMJayJTZF8vYtdrs8XmzqCxHFLAtgidcJSgjBVjzA1YLkw26DL FQFJTIxt349CkM6uRe9t3gneVzNnJAmI+IO7BXuPqV186Nw+DFTA9r+TWHj+XQADLf6V KlPbMCNFpsEmayrp0vmobznKf5FrC6Dq/gXGsQ7tri0766AyF/Qa1hBZ/MuuwbuDNfjt cS9omhOLCq3TqbMJs5ZInRnkw1R2HeLLzrgN20d6vWjmBP1xO69fWkDEDlXx0/Sysktk XGqQ== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=y/IN9VPQLpqaq1dEesAKGCcXOJ2owySiNcWWeYibdCg=; b=G2R3RtL04uBmf1LbfpXoL3zWVrx7TJ4aNaJRc0/Td7sz8nuO6eV2nxjWIPdF4/MYbo AVEjPtNl+l2OE1+PPKhWMsWSXSybn7m194nAXDQ/fZscaBtv3v8++3IiaiiL2+2AiI9y BSMxTs2EQRAxOxsppevSkmkL7LwdfmvPvoR/jgf7bfnx/Wu2S8l4qOekC3hOI+hN64Qn mYX0Kf/HoWPWh/vp/b/WZfv1nIWCyDcDuQTXazzNoHeHPFegVGOxcShPKc37dmeDsZim cE5ch3YA5PqMe9SGkcF1DJPjou4LHS2t8sr0yaIqs/lBTA/xrMdyQP529z9LLllI4YwW w9fw== X-Gm-Message-State: AJIora/NK3Z4Ugn4P5boIEwDIbTqpMNA77VSRDlkVwxSld/ZXhyyJ1SB gK7Yxko93laf/efTRUQPW8VJ1XzTc90WiQ== X-Google-Smtp-Source: AGRyM1ufnC6D4MnH1Mw+ngsARV0yEV/mbquWHRSBM0elqVd59TkPU3pwh3/4osW+A1D+IABPoP9uDA== X-Received: by 2002:a5d:698a:0:b0:21a:3972:7a60 with SMTP id g10-20020a5d698a000000b0021a39727a60mr5260366wru.549.1655457831176; Fri, 17 Jun 2022 02:23:51 -0700 (PDT) Received: from BL087.. ([2a01:e34:eea9:e630:4718:73b:d035:3786]) by smtp.gmail.com with ESMTPSA id h81-20020a1c2154000000b0039c41686421sm7962328wmh.17.2022.06.17.02.23.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jun 2022 02:23:50 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Fri, 17 Jun 2022 11:23:14 +0200 Message-Id: <20220617092315.120781-5-fsylvestre@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220617092315.120781-1-fsylvestre@baylibre.com> References: <20220617092315.120781-1-fsylvestre@baylibre.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 4/5] ipa: rkisp1: Add ov5640 tuning file 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: Florian Sylvestre via libcamera-devel From: Florian Sylvestre Reply-To: Florian Sylvestre Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add the ov5640 tuning file containing default values for 'black level correction' algorithm. Signed-off-by: Florian Sylvestre Reviewed-by: Laurent Pinchart Reviewed-by: Paul Elder --- src/ipa/rkisp1/data/meson.build | 8 ++++++++ src/ipa/rkisp1/data/ov5640.yaml | 10 ++++++++++ src/ipa/rkisp1/meson.build | 1 + 3 files changed, 19 insertions(+) create mode 100644 src/ipa/rkisp1/data/meson.build create mode 100644 src/ipa/rkisp1/data/ov5640.yaml diff --git a/src/ipa/rkisp1/data/meson.build b/src/ipa/rkisp1/data/meson.build new file mode 100644 index 00000000..2656bb2e --- /dev/null +++ b/src/ipa/rkisp1/data/meson.build @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: CC0-1.0 + +conf_files = files([ + 'ov5640.yaml', +]) + +install_data(conf_files, + install_dir : ipa_data_dir / 'rkisp1') diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml new file mode 100644 index 00000000..c4eda49b --- /dev/null +++ b/src/ipa/rkisp1/data/ov5640.yaml @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: CC0-1.0 +--- +version: 1 +algorithms: + - BlackLevelCorrection: + R: 256 + Gr: 256 + Gb: 256 + B: 256 +... diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build index 8c822fbb..ccb84b27 100644 --- a/src/ipa/rkisp1/meson.build +++ b/src/ipa/rkisp1/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: CC0-1.0 subdir('algorithms') +subdir('data') ipa_name = 'ipa_rkisp1' From patchwork Fri Jun 17 09:23:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Sylvestre X-Patchwork-Id: 16262 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 8423EC3277 for ; Fri, 17 Jun 2022 09:23:57 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7F50F65649; Fri, 17 Jun 2022 11:23:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1655457836; bh=TloXXzm5eo2KHa8EodsfPeU+QqYB63AheceWFReMO2g=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=nZlYXwR4tYFH8VcbB+cLcX/q2ITVuSE0yhsQzEJODCntCq5zWLQH0PIkvc23/ktek BGDejN/lo/ZFkl+MXiv91Q8qbooCVTeiP2ArjkbMKCNap/+hWVQNXNZ6f7yzmxYEq+ 2FdS8/e9YpKSD67pajxTqgDDftscvkIR10IGPJlVttz/uWL/yg0THKkLkVelcMLc9s kgg+A0WHKRJeDKx1x3yFgSWvnZGQSbjslQ6sDuFMfdKxXeDEK1qWBExz8BVew9hiVd 5LhL2TQ7aMva+l5eCUn2qpMJQf/Ziu1f8j8kvNETJTuKNJD/r7Y16Ort8xcjacw1RQ eEPJ8B8GNcomQ== Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D34756563F for ; Fri, 17 Jun 2022 11:23:52 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20210112.gappssmtp.com header.i=@baylibre-com.20210112.gappssmtp.com header.b="FchiH7Xp"; dkim-atps=neutral Received: by mail-wm1-x330.google.com with SMTP id c130-20020a1c3588000000b0039c6fd897b4so4037923wma.4 for ; Fri, 17 Jun 2022 02:23:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XeKsV/YuY0fyhoiofGONCkdluUpahL9gkkVSrZ2xqrQ=; b=FchiH7XpKmvEux2rwv8t9105jqb4Yr2mUVclfaPl+wJM/pDA5+b+OKb7U73e23F0rN pXdQU4gt21KwSSXa5q1cn4OKBsodYAl03Zh2AMGW1Wwq07T4ETCVzxi12vjIt+XJGq4x OB0BI8OoCvDoHJ21DREEwetDlZngH+RqDet38NKaD3V0Ry01JbOofrQ+ZLABCUa9SyGH gu2jWW00jpGA+EoNWjWPPqEqeMtZ/t9S1I5yswU7DG6OLMpqJIv+akdU9ckR8IjvK+sF wSQKbPVPmkMUsJldaNgONXQ38qnfH3fZgand0baxkdcDt0umdKVk/DeuNsqL/gHKBwbQ xBmg== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=XeKsV/YuY0fyhoiofGONCkdluUpahL9gkkVSrZ2xqrQ=; b=s19HfovdpPjTQit97zO+gfyWW1QMlXVjJUj7grWIjzSfYE6S/J+nn7mSt8XssznzMV hrT72Bvyfv+8cTTpdZLV2vLFFnEtlVLyrEwHqdSWT/UWvBaN5Eschl8qxahvN47eeJu/ oNZddVdDbTH4TCWE6mPjLQ7cgs3waQyO60RMI8WqH/uybHNNYij5a++fnO4QOgqbACJX xM9bDLfoYihAX4Sia8S62cTJgVs4n+gL04t07I5LD/PJKTrv6YzCCZtZze+zyZNWg3hR F5kAzoScpfWUVxFFQyMc1a03d1fCDoVIaoKqpxX9RcQgSYJ0Jq4gcax6qW9Rg3QC+6DQ TnWQ== X-Gm-Message-State: AOAM532mcHReFfL0xC8tiSAgvKblxDcQtixHQudGSPsaGFZBvgHKYImL G9noQ+8NhEjGvwVC96Q/vqNbGn5eTWN5AA== X-Google-Smtp-Source: ABdhPJxb8NPFwY8qo61pAcoKUQMCJ5nfmxPR5SaAPP/olIa6/zOSyY8JiKqnn2VZFNx2ZlysOkJWww== X-Received: by 2002:a1c:19c3:0:b0:39c:6479:3ca with SMTP id 186-20020a1c19c3000000b0039c647903camr20090483wmz.27.1655457832100; Fri, 17 Jun 2022 02:23:52 -0700 (PDT) Received: from BL087.. ([2a01:e34:eea9:e630:4718:73b:d035:3786]) by smtp.gmail.com with ESMTPSA id h81-20020a1c2154000000b0039c41686421sm7962328wmh.17.2022.06.17.02.23.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jun 2022 02:23:51 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Fri, 17 Jun 2022 11:23:15 +0200 Message-Id: <20220617092315.120781-6-fsylvestre@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220617092315.120781-1-fsylvestre@baylibre.com> References: <20220617092315.120781-1-fsylvestre@baylibre.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 5/5] ipa: rkisp1: add support of Black Level Correction default values 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: Florian Sylvestre via libcamera-devel From: Florian Sylvestre Reply-To: Florian Sylvestre Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Get default values for Black Level Correction algorithm form YAML tuning file. Signed-off-by: Florian Sylvestre Reviewed-by: Laurent Pinchart Reviewed-by: Paul Elder --- src/ipa/rkisp1/algorithms/blc.cpp | 62 +++++++++++++++++++++++++++---- src/ipa/rkisp1/algorithms/blc.h | 10 ++++- 2 files changed, 63 insertions(+), 9 deletions(-) diff --git a/src/ipa/rkisp1/algorithms/blc.cpp b/src/ipa/rkisp1/algorithms/blc.cpp index 0c5948ff..aa4fe8c6 100644 --- a/src/ipa/rkisp1/algorithms/blc.cpp +++ b/src/ipa/rkisp1/algorithms/blc.cpp @@ -7,6 +7,10 @@ #include "blc.h" +#include + +#include "libcamera/internal/yaml_parser.h" + /** * \file blc.h */ @@ -29,6 +33,48 @@ namespace ipa::rkisp1::algorithms { * isn't currently supported. */ +LOG_DEFINE_CATEGORY(RkISP1Blc) + +BlackLevelCorrection::BlackLevelCorrection() + : tuningParameters_(false) +{ +} + +/** + * \copydoc libcamera::ipa::Algorithm::init + */ +int BlackLevelCorrection::init([[maybe_unused]] IPAContext &context, + const YamlObject ¶ms) +{ + /* Parse property "BlackLevelCorrection". */ + if (!params.contains("BlackLevelCorrection")) { + LOG(RkISP1Blc, Debug) << "No tuning parameters found for BlackLevelCorrection"; + return 0; + } + + const YamlObject &blcObject = params["BlackLevelCorrection"]; + + if (!blcObject.isDictionary()) { + LOG(RkISP1Blc, Error) << "'BlackLevelCorrection' in tuning file is not a dictionnary"; + return -EINVAL; + } + + blackLevelRed_ = blcObject["R"].get(256); + blackLevelGreenR_ = blcObject["Gr"].get(256); + blackLevelGreenB_ = blcObject["Gb"].get(256); + blackLevelBlue_ = blcObject["B"].get(256); + + tuningParameters_ = true; + + LOG(RkISP1Blc, Debug) + << " Read black levels red " << blackLevelRed_ + << ", green (red) " << blackLevelGreenR_ + << ", green (blue) " << blackLevelGreenB_ + << ", blue " << blackLevelBlue_; + + return 0; +} + /** * \copydoc libcamera::ipa::Algorithm::prepare */ @@ -37,15 +83,15 @@ void BlackLevelCorrection::prepare(IPAContext &context, { if (context.frameContext.frameCount > 0) return; - /* - * Substract fixed values taken from imx219 tuning file. - * \todo Use a configuration file for it ? - */ + + if (!tuningParameters_) + return; + params->others.bls_config.enable_auto = 0; - params->others.bls_config.fixed_val.r = 256; - params->others.bls_config.fixed_val.gr = 256; - params->others.bls_config.fixed_val.gb = 256; - params->others.bls_config.fixed_val.b = 256; + params->others.bls_config.fixed_val.r = blackLevelRed_; + params->others.bls_config.fixed_val.gr = blackLevelGreenR_; + params->others.bls_config.fixed_val.gb = blackLevelGreenB_; + params->others.bls_config.fixed_val.b = blackLevelBlue_; params->module_en_update |= RKISP1_CIF_ISP_MODULE_BLS; params->module_ens |= RKISP1_CIF_ISP_MODULE_BLS; diff --git a/src/ipa/rkisp1/algorithms/blc.h b/src/ipa/rkisp1/algorithms/blc.h index 69874d8f..c979d327 100644 --- a/src/ipa/rkisp1/algorithms/blc.h +++ b/src/ipa/rkisp1/algorithms/blc.h @@ -20,10 +20,18 @@ namespace ipa::rkisp1::algorithms { class BlackLevelCorrection : public Algorithm { public: - BlackLevelCorrection() = default; + BlackLevelCorrection(); ~BlackLevelCorrection() = default; + int init(IPAContext &context, const YamlObject ¶ms) override; void prepare(IPAContext &context, rkisp1_params_cfg *params) override; + +private: + bool tuningParameters_; + int16_t blackLevelRed_; + int16_t blackLevelGreenR_; + int16_t blackLevelGreenB_; + int16_t blackLevelBlue_; }; } /* namespace ipa::rkisp1::algorithms */