| Message ID | 20260128-sklug-lsc-resampling-v2-dev-v6-0-af7d95f03d22@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 5764FC3200 for <parsemail@patchwork.libcamera.org>; Wed, 28 Jan 2026 16:00:29 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5679861FD0; Wed, 28 Jan 2026 17:00:28 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="NAbaYPuN"; 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 A8F0C61FC4 for <libcamera-devel@lists.libcamera.org>; Wed, 28 Jan 2026 17:00:26 +0100 (CET) Received: from ideasonboard.com (unknown [IPv6:2a00:6020:448c:6c00:1a60:e70f:ec38:13a9]) by perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 54351C6F; Wed, 28 Jan 2026 16:59:49 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1769615989; bh=uVNszBQvQQjYPmQlbOqM9tqNLzZKZeabx6pCruSBisc=; h=From:Subject:Date:To:Cc:From; b=NAbaYPuN5EYIu8KGLDmOQNV0a4ZsxMEb4sCRxT0Xv4eWIwsWnhD8+o/SFxFi7ZjEC GWgLb+uBdbt/5ejBpAg14tTh8ISp+BSiR9IJHexcVQDBpwrs6ssSpKznG3DBsYyIl8 39N0cCuhZhCO8gWs3x9WlautoRt5p12L/cX2t944= From: Stefan Klug <stefan.klug@ideasonboard.com> Subject: [PATCH v6 00/15] Add resampling support for polynomial LSC data Date: Wed, 28 Jan 2026 17:00:17 +0100 Message-Id: <20260128-sklug-lsc-resampling-v2-dev-v6-0-af7d95f03d22@ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAJEyemkC/5XPwW6DMAwG4Fepcl6qxIQEetp7TD1AbGg0SlCyR Z0q3n2hUiUOBakn6/fh++07ixQcRXY63Fmg5KLzYw7648DspRl74g5zZiBACykMj9/Db8+HaHm g2FynwY09T8CREkdjSiVaaTQSy8IUqHO3h/51zvni4o8Pf4+yBMv26Va7bh6Ck66ArGrrqi4+H VIT/dj6JuDR+itb+FSsSKn2ySKTlbAIqlOIWm6QakWC2CdVJkFJmY8kjRo3yPINslwe70pL1rR Q190Lcp7nfxKXb6zGAQAA 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>, Kieran Bingham <kieran.bingham@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 v6: - A few stylistic fixes from review (see individual patches) - Collected tags - Link to v5: https://patchwork.libcamera.org/project/libcamera/list/?series=5722 Changes in v5: - Split patch 14 into two again to have a separate patch for the control id changes. - Link to v4: https://patchwork.libcamera.org/project/libcamera/list/?series=5720 Changes in v4: - Dropped removal of controls::draft::LensShadingMapMode and squashed patches 14 and 15 - Minor fixes from review (see local changelogs) - Link to v3: https://patchwork.libcamera.org/project/libcamera/list/?series=5707 Changes in v3: - Added LensShadingCorrectionEnable to metadata - Improved colour temperature quantization code - Tiny fixes (see local changelogs) - Link to v2: https://patchwork.libcamera.org/project/libcamera/list/?series=5697 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/ipa/libipa/interpolator.cpp | 25 +- src/ipa/libipa/interpolator.h | 14 +- src/ipa/rkisp1/algorithms/dpf.cpp | 2 +- src/ipa/rkisp1/algorithms/lsc.cpp | 506 +++++++++++++++++++++++------------- src/ipa/rkisp1/algorithms/lsc.h | 24 +- src/ipa/rkisp1/ipa_context.h | 13 +- src/libcamera/control_ids_core.yaml | 9 +- test/ipa/libipa/interpolator.cpp | 7 - 8 files changed, 359 insertions(+), 241 deletions(-) --- base-commit: 60f150bf870cebeca64c180e2b475b4617febd8a change-id: 20260107-sklug-lsc-resampling-v2-dev-d77540b176de Best regards,