{"id":24616,"url":"https://patchwork.libcamera.org/api/covers/24616/?format=json","web_url":"https://patchwork.libcamera.org/cover/24616/","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":"<20251014075252.2876485-1-stefan.klug@ideasonboard.com>","date":"2025-10-14T07:52:22","name":"[v1,00/12] 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/24616/mbox/","series":[{"id":5498,"url":"https://patchwork.libcamera.org/api/series/5498/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5498","date":"2025-10-14T07:52:22","name":"Add resampling support for polynomial LSC data","version":1,"mbox":"https://patchwork.libcamera.org/series/5498/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/24616/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 42151BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 14 Oct 2025 07:53:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 80CF06052F;\n\tTue, 14 Oct 2025 09:52:59 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0ACC160316\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 14 Oct 2025 09:52:58 +0200 (CEST)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:61fb:8e55:ff1e:be62])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 77591741;\n\tTue, 14 Oct 2025 09:51:19 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"HnMAtWVg\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1760428279;\n\tbh=yPZh8JMdADJLjhM3ciXxlXLrLg5LLcVLIGt4nfHqyVk=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=HnMAtWVgTbw++rr2bwwt9fUl55xD+OmoTlEgA6WT15ogDaNBj7j122uUup279BIOx\n\tyG1klWIei1bq/JteGwGRgEbZzDqOurMxOmJ+5DHrYlnoW+jmOFI34tb83NPOsbaDLb\n\tS7AsiJPx5NjhO/R1/F4AXjHzvGCdd6RFgQvEM9+o=","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","Subject":"[PATCH v1 00/12] Add resampling support for polynomial LSC data","Date":"Tue, 14 Oct 2025 09:52:22 +0200","Message-ID":"<20251014075252.2876485-1-stefan.klug@ideasonboard.com>","X-Mailer":"git-send-email 2.48.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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 polynomial lens shading tables was implement up to the\nsame feature level of grid based lens shading tables. However resampling\nthe LSC table for a given analog crop rectangle was never implemented.\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 implement the actual resampling.\n\nPatches 11-12 implement a LensShadingEnable control that is necessary to\nassess the effect of LSC in practice. Patch 11 resurrects an old patch\nfrom Jacopo [2]. These last two patches could be stripped off the series\nif 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\nStefan Klug (12):\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: 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\n    time\n  libcamera: control_ids: Introduce LensShadingEnable\n  ipa: rkisp1: Add LensShadingEnable control\n\n src/android/camera_capabilities.cpp  |   4 +-\n src/ipa/rkisp1/algorithms/dpf.cpp    |   2 +-\n src/ipa/rkisp1/algorithms/lsc.cpp    | 454 ++++++++++++++++-----------\n src/ipa/rkisp1/algorithms/lsc.h      |  21 +-\n src/ipa/rkisp1/ipa_context.h         |  12 +-\n src/libcamera/control_ids_core.yaml  |   9 +\n src/libcamera/control_ids_draft.yaml |  14 -\n 7 files changed, 315 insertions(+), 201 deletions(-)"}