From patchwork Fri May 31 14:42:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 20176 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 5B7A1BDE6B for ; Fri, 31 May 2024 14:43:16 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5AA46634B7; Fri, 31 May 2024 16:43:15 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="mUBiVZjd"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D69F261A46 for ; Fri, 31 May 2024 16:43:12 +0200 (CEST) Received: from neptunite.hamster-moth.ts.net (h175-177-049-156.catv02.itscom.jp [175.177.49.156]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id BA63329F; Fri, 31 May 2024 16:43:06 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1717166587; bh=l9LEmfmzJYpXpkgAQhfGyjj+3YT2ahfjnCNn6VXRdO4=; h=From:To:Cc:Subject:Date:From; b=mUBiVZjdFRHNgktN5WpnBRlcS+opzekEdcm+nI6kRFHi0lQ5EyaCoWyUFj9Fy4TnK Z2yTNJEeYbsyrl0Lx9jPq3eOiio9ykc3KX4uV/UzIGYM1WdgdtS8TBg5s9OAs3GcVP B1QXfkoG+YZwm8jpP75aXKXSNex+mrtPu/gU5aUY= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH v4 0/4] ipa: Move Pwl from Raspberry Pi to libipa Date: Fri, 31 May 2024 23:42:57 +0900 Message-Id: <20240531144301.3950115-1-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 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" This patch series moves the piecewise linear function class from the Rasberry Pi IPA to libipa so that all IPAs can use it. First an addition to the geometry header is needed, to add a floating-point version of the Point class, then the pwl is copied over, and the Raspberry Pi IPA is converted to use the libipa Pwl class. The main changes in v2 are s/FPoint/PointF/g and improving the documentation. v3 has almost no change... v4 adds/fixes documentation. Paul Elder (4): libcamera: geometry: Add floating-point version of Point class ipa: libipa: Copy pwl from rpi ipa: libipa: pwl: Clean up Pwl class to match libcamera ipa: rpi: controller: Use libipa's Pwl class include/libcamera/geometry.h | 65 +++ src/ipa/libipa/meson.build | 2 + src/ipa/libipa/pwl.cpp | 481 +++++++++++++++++++++ src/ipa/libipa/pwl.h | 98 +++++ src/ipa/rpi/controller/cac_status.h | 2 - src/ipa/rpi/controller/contrast_status.h | 4 +- src/ipa/rpi/controller/meson.build | 2 +- src/ipa/rpi/controller/pwl.cpp | 269 ------------ src/ipa/rpi/controller/pwl.h | 127 ------ src/ipa/rpi/controller/rpi/af.cpp | 4 +- src/ipa/rpi/controller/rpi/af.h | 5 +- src/ipa/rpi/controller/rpi/agc_channel.cpp | 8 +- src/ipa/rpi/controller/rpi/agc_channel.h | 7 +- src/ipa/rpi/controller/rpi/awb.cpp | 40 +- src/ipa/rpi/controller/rpi/awb.h | 23 +- src/ipa/rpi/controller/rpi/ccm.cpp | 4 +- src/ipa/rpi/controller/rpi/ccm.h | 5 +- src/ipa/rpi/controller/rpi/contrast.cpp | 14 +- src/ipa/rpi/controller/rpi/contrast.h | 5 +- src/ipa/rpi/controller/rpi/geq.cpp | 5 +- src/ipa/rpi/controller/rpi/geq.h | 4 +- src/ipa/rpi/controller/rpi/hdr.cpp | 8 +- src/ipa/rpi/controller/rpi/hdr.h | 9 +- src/ipa/rpi/controller/rpi/tonemap.cpp | 2 +- src/ipa/rpi/controller/rpi/tonemap.h | 5 +- src/ipa/rpi/controller/tonemap_status.h | 4 +- src/libcamera/geometry.cpp | 123 +++++- test/geometry.cpp | 355 +++++++++++++++ 28 files changed, 1207 insertions(+), 473 deletions(-) create mode 100644 src/ipa/libipa/pwl.cpp create mode 100644 src/ipa/libipa/pwl.h delete mode 100644 src/ipa/rpi/controller/pwl.cpp delete mode 100644 src/ipa/rpi/controller/pwl.h