From patchwork Fri Jun 7 07:57:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 20223 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 B8DBDBD87C for ; Fri, 7 Jun 2024 07:57:33 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id DD92A65458; Fri, 7 Jun 2024 09:57:32 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gXSTLiyX"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 9B624633DD for ; Fri, 7 Jun 2024 09:57:30 +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 DA1B0C67; Fri, 7 Jun 2024 09:57:19 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1717747040; bh=vUmr7wlcDUjkXsyRZvR6ZXPXtkZFOflApbaqa4lYleU=; h=From:To:Cc:Subject:Date:From; b=gXSTLiyXJjpmJ48EZs4B3ilmjOQp1/YA/HfW5Jci4uZLx8o5GJOSS2TX2CAvJ6qRA LEkZ1T/TOV3TFXcPbIJ2CGEihq7DkIukSm0DnoAtg+5Gvs/BxFtHGsw9V3a607llLJ 3oUbLwwBiRW0bjoyP9YeOSlnFM3i19UxPHxjgo1Q= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH v5 0/4] ipa: Move Pwl from Raspberry Pi to libipa Date: Fri, 7 Jun 2024 16:57:10 +0900 Message-Id: <20240607075714.2648851-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. v5 mainly replaces the public API PointF with an libipa-internal Vector class, which is then typedefed to PointF to be used in Pwl. Documentation is also improved/fixed. Paul Elder (4): ipa: libipa: Add Vector 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 src/ipa/libipa/meson.build | 2 + src/ipa/libipa/pwl.cpp | 490 +++++++++++++++++++++ src/ipa/libipa/pwl.h | 102 +++++ src/ipa/libipa/vector.cpp | 162 +++++++ src/ipa/libipa/vector.h | 206 +++++++++ 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 | 76 ++-- 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 +- 27 files changed, 1064 insertions(+), 490 deletions(-) create mode 100644 src/ipa/libipa/pwl.cpp create mode 100644 src/ipa/libipa/pwl.h create mode 100644 src/ipa/libipa/vector.cpp create mode 100644 src/ipa/libipa/vector.h delete mode 100644 src/ipa/rpi/controller/pwl.cpp delete mode 100644 src/ipa/rpi/controller/pwl.h