| Message ID | 20260108-sklug-lsc-resampling-v2-dev-v2-0-e682ec4b9893@ideasonboard.com |
|---|---|
| Headers | show
Return-Path: <libcamera-devel-bounces@lists.libcamera.org> 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 CB1D5BE08B for <parsemail@patchwork.libcamera.org>; Thu, 8 Jan 2026 16:06:27 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 190C061FA0; Thu, 8 Jan 2026 17:06:27 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gNGH9M+I"; 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 8C3F7615B2 for <libcamera-devel@lists.libcamera.org>; Thu, 8 Jan 2026 17:06:25 +0100 (CET) Received: from ideasonboard.com (unknown [IPv6:2a00:6020:448c:6c00:90af:8957:b721:10d4]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id D7523192C; Thu, 8 Jan 2026 17:06:02 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1767888362; bh=y9mwLGsvQJ/9a9h2yLm04/CngSsUplnNo+YRim05XaM=; h=From:Subject:Date:To:Cc:From; b=gNGH9M+IHVm+03JzTT4sxHKgku855DB8zg7dypiv9mBYF69ll26vnBX0cD86EjYCk 67wF2kN1f/JlixTxUihCmQKpPNnxYRSlB5hk9laqFAneg4h8eLsAiR8taRXm2jdkCZ oLG9R4r4WkAMIO+IlbzYIj6l3beZ8SwQ4rZ4FNps= From: Stefan Klug <stefan.klug@ideasonboard.com> Subject: [PATCH v2 00/15] Add resampling support for polynomial LSC data Date: Thu, 08 Jan 2026 17:05:43 +0100 Message-Id: <20260108-sklug-lsc-resampling-v2-dev-v2-0-e682ec4b9893@ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIANfVX2kC/x3MQQqAIBAAwK/EnlswqYS+Eh0qN1syC5ckiP6ed JzLPCAUmQS64oFIiYWPkKHLAuZ1DI6QbTZopVtVKYOy+cuhlxkjybifnoPDpNFSQmtMU6upMq0 lyMMZaeH73/vhfT+uSY8dbQAAAA== X-Change-ID: 20260107-sklug-lsc-resampling-v2-dev-d77540b176de To: libcamera-devel@lists.libcamera.org Cc: Stefan Klug <stefan.klug@ideasonboard.com>, =?utf-8?q?Barnab=C3=A1s_P?= =?utf-8?b?xZFjemU=?= <barnabas.pocze@ideasonboard.com>, Rui Wang <rui.wang@ideasonboard.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Jacopo Mondi <jacopo@jmondi.org> X-Mailer: b4 0.14.2 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <libcamera-devel.lists.libcamera.org> List-Unsubscribe: <https://lists.libcamera.org/options/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe> List-Archive: <https://lists.libcamera.org/pipermail/libcamera-devel/> List-Post: <mailto:libcamera-devel@lists.libcamera.org> List-Help: <mailto:libcamera-devel-request@lists.libcamera.org?subject=help> List-Subscribe: <https://lists.libcamera.org/listinfo/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe> Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" <libcamera-devel-bounces@lists.libcamera.org> |
| Series |
|
| Related |
show
|
In [1] support for polynomial lens shading tables was implement up to the same feature level of grid based lens shading tables. However resampling the LSC table for a given analog crop rectangle was never implemented. This series partially fixes that by implementing resampling for polynomial LSC data. Resampling for tabular LSC data is left open for implementation if need arises. Patches 1-7 apply some code cleanup that got mentioned on the last series after it was merged. Patches 8-10 apply further cleanup and are new in v2 of the series. Patches 11-13 implement the actual resampling. Patches 14-15 implement a LensShadingCorrectionEnable control that is necessary to assess the effect of LSC in practice. Patch 14 resurrects an old patch from Jacopo [2]. These last two patches could be stripped off the series if needed. Best regards, Stefan [1] https://patchwork.libcamera.org/project/libcamera/list/?series=4609&archive=both&state=* [2] https://patchwork.libcamera.org/project/libcamera/list/?series=3795&archive=both&state=* Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> --- Changes in v2: - Collected tags - Applied small fixes from review - Additional cleanup by patches 8-10 to improve the prepare() function - A bit more rework on the resampling patches due to preceding changes --- Stefan Klug (15): ipa: rkisp1: lsc: Drop unused member variable ipa: rkisp1: lsc: Drop unused function declaration ipa: rkisp1: lsc: Replace assert with ASSERT ipa: rkisp1: lsc: Rename res to positions ipa: rkisp1: lsc: Rename res to ret ipa: rkisp1: lsc: Rename res to samples ipa: rksip1: lsc: Move function definitions out of class ipa: rkisp1: lsc: Move local types into anonymous namespace ipa: rkisp1: lsc: Handle quantization locally ipa: libipa: interpolator: Drop key quantization ipa: rkisp1: lsc: Pass sampling positions into samplePolynomial ipa: rkisp1: lsc: Pass crop rectangle as parameter ipa: rkisp1: lsc: Resample polynomial lens shading tables at configure time libcamera: control_ids: Introduce LensShadingCorrectionEnable ipa: rkisp1: Implement LensShadingCorrectionEnable control src/android/camera_capabilities.cpp | 11 +- src/ipa/libipa/interpolator.cpp | 25 +- src/ipa/libipa/interpolator.h | 14 +- src/ipa/rkisp1/algorithms/dpf.cpp | 2 +- src/ipa/rkisp1/algorithms/lsc.cpp | 491 ++++++++++++++++++++++------------- src/ipa/rkisp1/algorithms/lsc.h | 20 +- src/ipa/rkisp1/ipa_context.h | 13 +- src/libcamera/control_ids_core.yaml | 9 + src/libcamera/control_ids_draft.yaml | 14 - test/ipa/libipa/interpolator.cpp | 7 - 10 files changed, 346 insertions(+), 260 deletions(-) --- base-commit: c63f2c72cd7b278584dcc70b8294063e89b01ca1 change-id: 20260107-sklug-lsc-resampling-v2-dev-d77540b176de Best regards,