From patchwork Sun Jun 16 17:45:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 20341 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 B382BC3237 for ; Sun, 16 Jun 2024 17:46:04 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id C32126548D; Sun, 16 Jun 2024 19:46:03 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="QFzdj87K"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2928465456 for ; Sun, 16 Jun 2024 19:46:03 +0200 (CEST) Received: from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi [81.175.209.231]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 88DDE2D5 for ; Sun, 16 Jun 2024 19:45:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1718559946; bh=neRR1Kev7pSICTJM/l0VMmD2MYfn8PjXvgWG3BlDdmM=; h=From:To:Subject:Date:From; b=QFzdj87KCvznPNbK4bI9G5m5E+VbVS8ZEZanc1mdkKXyWWGNXJCNIlqhG/xJY4Ls5 AqWxNKhAeeLOFz0PClnB+VkejGm0dCYmBmm2J5ShW8THZyZjyMJv76o9B7vK/a4TXg FAcPiXgJVHahaCxcdZjwzZLUgepeM9wAAOGqzO88= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH v10 0/4] ipa: rkisp1: Add crosstalk algorithm Date: Sun, 16 Jun 2024 20:45:37 +0300 Message-ID: <20240616174541.10708-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.44.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" Hello, I'm posting a new version of Paul's "[PATCH v9 0/3] ipa: rkisp1: Add crosstalk algorithm" and "[PATCH v3] ipa: libipa: vector: Add matrix-vector multiplication" patches with small review comments addressed, to speed up merging. 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. v6 fixes documentation (again). v7 fixes offsets initialization and adds ccm to metadata, as well as copyright and licenses, as these classes weren't actually copied. v8 cleans up a bunch of stuff, including yaml parsing, thus adding a new dependency on the aforementioned series. v9 fixes some compilation errors that fell through the cracks. v10 addresses small review comments Paul Elder (4): ipa: libipa: Add Matrix class ipa: libipa: Add MatrixInterpolator class ipa: rkisp1: algorithms: Add crosstalk algorithm ipa: libipa: vector: Add matrix-vector multiplication src/ipa/libipa/matrix.cpp | 149 ++++++++++++++++++ src/ipa/libipa/matrix.h | 204 +++++++++++++++++++++++++ src/ipa/libipa/matrix_interpolator.cpp | 110 +++++++++++++ src/ipa/libipa/matrix_interpolator.h | 122 +++++++++++++++ src/ipa/libipa/meson.build | 4 + src/ipa/libipa/vector.cpp | 11 ++ src/ipa/libipa/vector.h | 17 +++ src/ipa/rkisp1/algorithms/ccm.cpp | 147 ++++++++++++++++++ src/ipa/rkisp1/algorithms/ccm.h | 49 ++++++ src/ipa/rkisp1/algorithms/meson.build | 1 + src/ipa/rkisp1/ipa_context.h | 5 + 11 files changed, 819 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 base-commit: d978832d9e987b555be7c0ee8eeda37981924515