From patchwork Wed May 29 19:37:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 20136 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 09301BDE6B for ; Wed, 29 May 2024 19:37:25 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E4269634BB; Wed, 29 May 2024 21:37:23 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="NissWJ3Q"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 241EE634B0 for ; Wed, 29 May 2024 21:37:22 +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 4F0EC149B; Wed, 29 May 2024 21:37:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1717011438; bh=RA668X4MYzz44iWVYHVYL+8m6uf5pFLg8URVR4Fldvw=; h=From:To:Cc:Subject:Date:From; b=NissWJ3Qly6paOgoPbL5e9lDDuyQoiK65ec+06/9PcKZXNq5H1EcnHCsgqgPVZLWk dsBksGXANXxqHwXHTY0IdK4nWo8rjH0ZNnFUUCSHvt7tId1poK4TAFXBnedIKAmbUQ g0kAo/0ZAAdLtHXoVmckqXjei4ZGc/D6d+mpcJZI= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH v5 0/3] ipa: rkisp1: Add crosstalk algorithm Date: Thu, 30 May 2024 04:37:05 +0900 Message-Id: <20240529193708.846687-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" The last patch in this series depends on "ipa: rkisp1: Add a helper to convert floating-point to fixed-point". This patch series adds the crosstalk / color correction algorithm to the rkisp1 IPA. Interpolating matrices is likely to be a common functionaily, as lens shading correction also does it, and other IPAs will will want to do both color correction and lens shading correction. Because of this, the crosstalk is implemented using a generic matrix interpolator, which is added to libipa, in addition to a Matrix class. v3 mainly adds ccm offsets, and some fixes some initialization and asserts. v4 cleans up / optimizes the Matrix class and supports the reorganized tuning file layout for color correction matrices. v5 mainly adds documentation, as well as a simple cache to the matrix interpolator. Paul Elder (3): ipa: libipa: Add Matrix class ipa: libipa: Add MatrixInterpolator class ipa: rkisp1: algorithms: Add crosstalk algorithm src/ipa/libipa/matrix.cpp | 98 +++++++++++++++ src/ipa/libipa/matrix.h | 161 +++++++++++++++++++++++++ src/ipa/libipa/matrix_interpolator.cpp | 97 +++++++++++++++ src/ipa/libipa/matrix_interpolator.h | 127 +++++++++++++++++++ src/ipa/libipa/meson.build | 4 + src/ipa/rkisp1/algorithms/ccm.cpp | 109 +++++++++++++++++ src/ipa/rkisp1/algorithms/ccm.h | 44 +++++++ src/ipa/rkisp1/algorithms/meson.build | 1 + 8 files changed, 641 insertions(+) create mode 100644 src/ipa/libipa/matrix.cpp create mode 100644 src/ipa/libipa/matrix.h create mode 100644 src/ipa/libipa/matrix_interpolator.cpp create mode 100644 src/ipa/libipa/matrix_interpolator.h create mode 100644 src/ipa/rkisp1/algorithms/ccm.cpp create mode 100644 src/ipa/rkisp1/algorithms/ccm.h