From patchwork Wed Jan 20 08:34:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 10904 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 CE8B4C0F2A for ; Wed, 20 Jan 2021 08:34:57 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 032366817C; Wed, 20 Jan 2021 09:34:57 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="U0q4qvi+"; dkim-atps=neutral Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 5F6F660312 for ; Wed, 20 Jan 2021 09:34:55 +0100 (CET) Received: by mail-wm1-x331.google.com with SMTP id e15so2051390wme.0 for ; Wed, 20 Jan 2021 00:34:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=VFwI16Y6q+u23/4dIj9XSysSx1QroTlcYMh4t7V4aco=; b=U0q4qvi+N/vshv9Uf94AcnyVZ+Q83tCh0Zn/gB+PPquZaNc4DGFBl9iPymoBZKZmLn kbt67DYoqE+XD5DtrskgYBHUz5r7pUG3XKxi6LtFVqK+LglC6UywdH5iGFADLh0rjlgP TCEj1jBYuVC5GVh/JoKz2qwixDg2Z9qTqplVlhJXCdFvcEXKWz2N7KFD5CH6CAEQfhjv ztNvVIwE5SAqAw0G2Yv1mWbKFrxxc5efTN5aOr/iOw6EhLN4yX7uDD5RyDE4Bj/IFbVh rCDZ04Spr0GBVIeTCesvlzsqxe2tlw8gCQA5c35ng6lY23D6+rvrcUGvVLDKvFKnUTjJ HglA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=VFwI16Y6q+u23/4dIj9XSysSx1QroTlcYMh4t7V4aco=; b=QcfIO7q9IF1O+WutAcz9HkijkEjEz7w2957fY+o2Ws2gS+2I+3n5QBwt7xKrLjiQ/w 4FTxnggl1U2Br3ro5HtOvGdeQXX7nG18ZR4xVL+4A2fuonKkqBDNNWwP53E2Hql+bNY0 hq6sZYpCU97+aXU8jE4krvUP3K1oFJRaSfhUrB6aFJ0IrLb7FKJYPMm2jzh0mUuVUXtQ vtceS3pcbM9WYmwoIJCWlYP1udWxS1sDttu/Owf6Y3CPd0ZIz2I8pFayFIkCr2t8EA2o 5P9dFKeasM5uMtkXa4bz5yN6FzOJdNjMky4jDnekO8qdpwwsH667UobAflQpFFCGHGFh Zh3g== X-Gm-Message-State: AOAM532oEEehiu0JXa0jv+PPsAQqvX6pIhRqPehRAwQSMTL6sbiL3Zz9 /BvsydJVs4RTAJ/0Lg/HN6tvxN1yEMl2LA== X-Google-Smtp-Source: ABdhPJxIIApHFQSGFtXtjqp9CmoSoRizMchqzqbtb/pIxkH6KoMqv4QkmHZp2DCNo4Fchcu75d4f3w== X-Received: by 2002:a1c:9d08:: with SMTP id g8mr3182331wme.112.1611131694287; Wed, 20 Jan 2021 00:34:54 -0800 (PST) Received: from naushir-VirtualBox.patuck.local ([88.97.76.4]) by smtp.gmail.com with ESMTPSA id 33sm2809284wrn.35.2021.01.20.00.34.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Jan 2021 00:34:53 -0800 (PST) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Date: Wed, 20 Jan 2021 08:34:44 +0000 Message-Id: <20210120083449.642418-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 0/5] Raspberry Pi: Colour denoise 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" Hi, This patch set adds support for fast and high quality colour denoise processing to the Raspberry Pi pipeline. As mentioned in the relevant commit message texts, there are accompanying firmware and kernel changes that must be build into the image for colour denoise to work. Patches 1/5 and 2/5 start by reworking stream configuration handling. This is because we need a 1/4 resolution analysis image to be available for our "fast" colour denoise implementation. Additionally, this will only work on YUV420 format images for now. Thanks, Naush Naushir Patuck (5): pipeline: raspberrypi: Refactor stream configuration routine pipeline: raspberrypi: Set the ISP Output1 to 1/4 resolution if unused uapi: raspberrypi: Update the bcm2835-isp header definition ipa: raspberrypi: Add a DenoiseAlgorithm class to the Controller ipa: raspberrypi: Handle control::NoiseReductionMode in the controller include/linux/bcm2835-isp.h | 32 ++++++- .../controller/denoise_algorithm.hpp | 23 +++++ src/ipa/raspberrypi/controller/rpi/sdn.cpp | 11 ++- src/ipa/raspberrypi/controller/rpi/sdn.hpp | 5 +- src/ipa/raspberrypi/controller/sdn_status.h | 1 + src/ipa/raspberrypi/raspberrypi.cpp | 47 ++++++++- .../pipeline/raspberrypi/raspberrypi.cpp | 95 +++++++++++-------- 7 files changed, 167 insertions(+), 47 deletions(-) create mode 100644 src/ipa/raspberrypi/controller/denoise_algorithm.hpp