{"id":26011,"url":"https://patchwork.libcamera.org/api/covers/26011/?format=json","web_url":"https://patchwork.libcamera.org/cover/26011/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260128-sklug-lsc-resampling-v2-dev-v6-0-af7d95f03d22@ideasonboard.com>","date":"2026-01-28T16:00:17","name":"[v6,00/15] Add resampling support for polynomial LSC data","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/?format=json","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/26011/mbox/","series":[{"id":5751,"url":"https://patchwork.libcamera.org/api/series/5751/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5751","date":"2026-01-28T16:00:17","name":"Add resampling support for polynomial LSC data","version":6,"mbox":"https://patchwork.libcamera.org/series/5751/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/26011/comments/","headers":{"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\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 5764FC3200\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 28 Jan 2026 16:00:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5679861FD0;\n\tWed, 28 Jan 2026 17:00:28 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A8F0C61FC4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 28 Jan 2026 17:00:26 +0100 (CET)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:1a60:e70f:ec38:13a9])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 54351C6F;\n\tWed, 28 Jan 2026 16:59:49 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"NAbaYPuN\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1769615989;\n\tbh=uVNszBQvQQjYPmQlbOqM9tqNLzZKZeabx6pCruSBisc=;\n\th=From:Subject:Date:To:Cc:From;\n\tb=NAbaYPuN5EYIu8KGLDmOQNV0a4ZsxMEb4sCRxT0Xv4eWIwsWnhD8+o/SFxFi7ZjEC\n\tGWgLb+uBdbt/5ejBpAg14tTh8ISp+BSiR9IJHexcVQDBpwrs6ssSpKznG3DBsYyIl8\n\t39N0cCuhZhCO8gWs3x9WlautoRt5p12L/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\n\tZ0q3n2hUiUOBakn6/fh++07ixQcRXY63Fmg5KLzYw7648DspRl74g5zZiBACykMj9/Db8+HaHm\n\tg2FynwY09T8CREkdjSiVaaTQSy8IUqHO3h/51zvni4o8Pf4+yBMv26Va7bh6Ck66ArGrrqi4+H\n\tVIT/dj6JuDR+itb+FSsSKn2ySKTlbAIqlOIWm6QakWC2CdVJkFJmY8kjRo3yPINslwe70pL1rR\n\tQ190Lcp7nfxKXb6zGAQAA","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?=\n\t=?utf-8?b?xZFjemU=?= <barnabas.pocze@ideasonboard.com>,\n\tRui Wang <rui.wang@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, Kieran Bingham\n\t<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>,\n\t<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>,\n\t<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>"},"content":"In [1] support for polynomial lens shading tables was implement up to\nthe same feature level of grid based lens shading tables. However\nresampling the LSC table for a given analog crop rectangle was never\nimplemented.\n\nThis series partially fixes that by implementing resampling for\npolynomial LSC data. Resampling for tabular LSC data is left open for\nimplementation if need arises.\n\nPatches 1-7 apply some code cleanup that got mentioned on the last\nseries after it was merged.\n\nPatches 8-10 apply further cleanup and are new in v2 of the series.\n\nPatches 11-13 implement the actual resampling.\n\nPatches 14-15 implement a LensShadingCorrectionEnable control that is\nnecessary to assess the effect of LSC in practice. Patch 14 resurrects\nan old patch from Jacopo [2]. These last two patches could be stripped\noff the series if needed.\n\nBest regards,\nStefan\n\n[1] https://patchwork.libcamera.org/project/libcamera/list/?series=4609&archive=both&state=*\n[2] https://patchwork.libcamera.org/project/libcamera/list/?series=3795&archive=both&state=*\n\nSigned-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n---\nChanges in v6:\n- A few stylistic fixes from review (see individual patches)\n- Collected tags\n- Link to v5: https://patchwork.libcamera.org/project/libcamera/list/?series=5722\n\nChanges in v5:\n- Split patch 14 into two again to have a separate patch for the\n  control id changes.\n- Link to v4: https://patchwork.libcamera.org/project/libcamera/list/?series=5720\n\nChanges in v4:\n- Dropped removal of controls::draft::LensShadingMapMode and squashed\n  patches 14 and 15\n- Minor fixes from review (see local changelogs)\n- Link to v3: https://patchwork.libcamera.org/project/libcamera/list/?series=5707\n\nChanges in v3:\n- Added LensShadingCorrectionEnable to metadata\n- Improved colour temperature quantization code\n- Tiny fixes (see local changelogs)\n- Link to v2: https://patchwork.libcamera.org/project/libcamera/list/?series=5697\n\nChanges in v2:\n- Collected tags\n- Applied small fixes from review\n- Additional cleanup by patches 8-10 to improve the prepare() function\n- A bit more rework on the resampling patches due to preceding changes\n\n---\nStefan Klug (15):\n      ipa: rkisp1: lsc: Drop unused member variable\n      ipa: rkisp1: lsc: Drop unused function declaration\n      ipa: rkisp1: lsc: Replace assert with ASSERT\n      ipa: rkisp1: lsc: Rename res to positions\n      ipa: rkisp1: lsc: Rename res to ret\n      ipa: rkisp1: lsc: Rename res to samples\n      ipa: rksip1: lsc: Move function definitions out of class\n      ipa: rkisp1: lsc: Move local types into anonymous namespace\n      ipa: rkisp1: lsc: Handle quantization locally\n      ipa: libipa: interpolator: Drop key quantization\n      ipa: rkisp1: lsc: Pass sampling positions into samplePolynomial\n      ipa: rkisp1: lsc: Pass crop rectangle as parameter\n      ipa: rkisp1: lsc: Resample polynomial lens shading tables at configure time\n      libcamera: control_ids: Introduce LensShadingCorrectionEnable\n      ipa: rkisp1: Implement LensShadingCorrectionEnable control\n\n src/ipa/libipa/interpolator.cpp     |  25 +-\n src/ipa/libipa/interpolator.h       |  14 +-\n src/ipa/rkisp1/algorithms/dpf.cpp   |   2 +-\n src/ipa/rkisp1/algorithms/lsc.cpp   | 506 +++++++++++++++++++++++-------------\n src/ipa/rkisp1/algorithms/lsc.h     |  24 +-\n src/ipa/rkisp1/ipa_context.h        |  13 +-\n src/libcamera/control_ids_core.yaml |   9 +-\n test/ipa/libipa/interpolator.cpp    |   7 -\n 8 files changed, 359 insertions(+), 241 deletions(-)\n---\nbase-commit: 60f150bf870cebeca64c180e2b475b4617febd8a\nchange-id: 20260107-sklug-lsc-resampling-v2-dev-d77540b176de\n\nBest regards,"}