From patchwork Wed Jan 28 16:00:21 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stefan Klug X-Patchwork-Id: 26015 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 1911EC3200 for ; Wed, 28 Jan 2026 16:00:39 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id C3AC461FD6; Wed, 28 Jan 2026 17:00:38 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="GkNDmIgI"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3F47861FC6 for ; Wed, 28 Jan 2026 17:00:37 +0100 (CET) Received: from ideasonboard.com (unknown [IPv6:2a00:6020:448c:6c00:1a60:e70f:ec38:13a9]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 2E8471F37; Wed, 28 Jan 2026 17:00:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1769616000; bh=hboeKABJ5NBuGXmWn+zavo+DJ3v78x5TaMIKUG30Afw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=GkNDmIgIwSoxsfg34BpdUN7WddpgIWN4sH2afbx2/+XMVsRDs0f6jjv5Lo7bq7b3k ivu28nb4EnM5GnSatr3TzrVLIlLCN+UnpC4Uc11G111GPKPNXONe9nZkh/wxailAPY Vrw+mHuj2JAjKN2lu873qDDMXjXW+I4K5tLC6AKI= From: Stefan Klug Date: Wed, 28 Jan 2026 17:00:21 +0100 Subject: [PATCH v6 04/15] ipa: rkisp1: lsc: Rename res to positions MIME-Version: 1.0 Message-Id: <20260128-sklug-lsc-resampling-v2-dev-v6-4-af7d95f03d22@ideasonboard.com> References: <20260128-sklug-lsc-resampling-v2-dev-v6-0-af7d95f03d22@ideasonboard.com> In-Reply-To: <20260128-sklug-lsc-resampling-v2-dev-v6-0-af7d95f03d22@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Stefan Klug , =?utf-8?q?Barnab=C3=A1s_P?= =?utf-8?b?xZFjemU=?= , Rui Wang , Laurent Pinchart X-Mailer: b4 0.14.2 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Rename the res variable to positions which better describes the intent. This was commented in review after being merged. While at it, improve the documentation a bit. Signed-off-by: Stefan Klug Reviewed-by: Barnabás Pőcze Reviewed-by: Rui Wang Reviewed-by: Laurent Pinchart --- Changes in v6: - Improved comment - Collected tag Changes in v2: - Collected tags --- src/ipa/rkisp1/algorithms/lsc.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp index c581e6441853d18618284b51bfa25c25e1fc8083..60eb5f5c74ee4a2d38c92dd111bac1c3f71f6420 100644 --- a/src/ipa/rkisp1/algorithms/lsc.cpp +++ b/src/ipa/rkisp1/algorithms/lsc.cpp @@ -132,9 +132,11 @@ public: private: /* - * The lsc grid has custom spacing defined on half the range (see - * parseSizes() for details). For easier handling this function converts - * the spaces vector to positions and mirrors them. E.g.: + * The rkisp1 LSC grid spacing is defined by the cell sizes on the + * top-left quadrant of the grid. This is then mirrored in hardware to + * the other quadrants. See parseSizes() for further details. For easier + * handling, this function converts the cell sizes of half the grid to a + * list of position of the whole grid (on one axis). Example: * * input: | 0.2 | 0.3 | * output: 0.0 0.2 0.5 0.8 1.0 @@ -142,17 +144,17 @@ private: std::vector sizesListToPositions(const std::vector &sizes) { const int half = sizes.size(); - std::vector res(half * 2 + 1); + std::vector positions(half * 2 + 1); double x = 0.0; - res[half] = 0.5; + positions[half] = 0.5; for (int i = 1; i <= half; i++) { x += sizes[half - i]; - res[half - i] = 0.5 - x; - res[half + i] = 0.5 + x; + positions[half - i] = 0.5 - x; + positions[half + i] = 0.5 + x; } - return res; + return positions; } std::vector samplePolynomial(const LscPolynomial &poly)