From patchwork Thu Mar 10 20:51:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Dufresne via libcamera-devel X-Patchwork-Id: 15438 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 39980BF415 for ; Thu, 10 Mar 2022 20:51:41 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 66DA4632E4; Thu, 10 Mar 2022 21:51:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1646945500; bh=O9Fo1moYxvN3U9qXgVDcOF3wX2Btn43mENOIz7fpVCo=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=z0O8eCW0fCgU12mbYKhb3l7+Bslh6N8mp7WX/G/s3a/agw0DSpFF8MljdOmuhHnVh rwXN4vd6kv0K+re7eqruP91fFAY3Px0HHUC0A7yGNVo+Y+VsAbYOcqJC7fABR7QptF QCRJnpKTqaDoIGCnuMqpRdW39Qk9P+Ct/wW52BqdQwHd4B8Pdc4NG5YC510rVDFVhp brEcAqqYnC0A/EwSwi2juI2NZgQ2Hi3hynu2BKfRIGNEbGuXyzRcc+ZEttFHJw7etH SIHq1AUrjXWDfTOfzjBnmEqMQDNx5vjLFQD9IFBGCGN4EMPpQ82KgyVo7caRYa2HH0 BYyM59b/Ml+DA== 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 5B328601F5 for ; Thu, 10 Mar 2022 21:51:38 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Axz9wBx3"; dkim-atps=neutral Received: from perceval.ideasonboard.com (unknown [103.251.226.203]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 41D5E491; Thu, 10 Mar 2022 21:51:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1646945498; bh=O9Fo1moYxvN3U9qXgVDcOF3wX2Btn43mENOIz7fpVCo=; h=From:To:Cc:Subject:Date:From; b=Axz9wBx35sz5PmvryyaIkhhjlV8V5jV4VMIHWw6cNcw3uTJeRp/i5hQEqPwZYxgPq PLaxBkjrPorj2g++i0+mloZc2eLKjmz/Clc0JzGwV3/ocGPDPrIqnHWhL2JLH9jKuc Bqc1HLwLFNMBwo9G+uXHkLiBPFuEZqAlvXQWeAHo= To: libcamera-devel@lists.libcamera.org Date: Fri, 11 Mar 2022 02:21:27 +0530 Message-Id: <20220310205130.336361-1-umang.jain@ideasonboard.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 0/3] ipa: ipu3: IPAFrameContext Queue 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: , X-Patchwork-Original-From: Umang Jain via libcamera-devel From: Nicolas Dufresne via libcamera-devel Reply-To: Umang Jain Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Incoming controls from libcamera::Request can be conceptually split into two buckets: - First being applied on sensor (apply X on sensor) - Second meant for IPA and controlling algorithms' processing (fix exposure / gain etc.) The series is aimed to address the second part. Currently we don't process any controls on the IPA side but we will need to in near-future. This series adds a context queue which can preserve controls for corresponding frame of incoming requests. (series has been validated with CTS, no regressions observed) Jean-Michel Hautbois (1): ipa: ipu3: Mark the beginning and end of a frame Umang Jain (2): libipa: algorithm: Pass frame number to prepare() and process() ipa: ipu3: Add a IPAFrameContext queue src/ipa/ipu3/algorithms/agc.cpp | 19 +++---- src/ipa/ipu3/algorithms/agc.h | 6 +-- src/ipa/ipu3/algorithms/awb.cpp | 21 ++++---- src/ipa/ipu3/algorithms/awb.h | 4 +- src/ipa/ipu3/algorithms/blc.cpp | 6 ++- src/ipa/ipu3/algorithms/blc.h | 2 +- src/ipa/ipu3/algorithms/tone_mapping.cpp | 19 ++++--- src/ipa/ipu3/algorithms/tone_mapping.h | 4 +- src/ipa/ipu3/ipa_context.cpp | 42 +++++++++++++++ src/ipa/ipu3/ipa_context.h | 12 +++++ src/ipa/ipu3/ipu3.cpp | 65 ++++++++++++++++++++---- src/ipa/libipa/algorithm.cpp | 2 + src/ipa/libipa/algorithm.h | 6 ++- 13 files changed, 161 insertions(+), 47 deletions(-)