From patchwork Tue Aug 17 15:41:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siyuan Fan X-Patchwork-Id: 13377 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 33AD0BD87C for ; Tue, 17 Aug 2021 15:42:00 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 79DA76025F; Tue, 17 Aug 2021 17:41:59 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=foxmail.com header.i=@foxmail.com header.b="oB8EqKM1"; dkim-atps=neutral Received: from out203-205-251-53.mail.qq.com (out203-205-251-53.mail.qq.com [203.205.251.53]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 0429B6025C for ; Tue, 17 Aug 2021 17:41:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1629214907; bh=7kt9ldFi4lxxKgzKFBKLhSmzWoXs1m/9w4HO86aAEOM=; h=From:To:Cc:Subject:Date; b=oB8EqKM1YuAT1+nQSnGa21R2YaT0GH06mSXiogKBiddeRzcGv7BgdAI6rgjyUmRw4 2jmJJtDYA/oVqULfaDzZ3nTOZD2aDASMT8hVzAAFr/m1OPcCDHBVWNuYtrMUkg+hQ3 j2so33ccpxK/FFMOJx36nTS76azvpoiv2iq4wgWA= Received: from localhost.localdomain ([123.126.82.10]) by newxmesmtplogicsvrsza5.qq.com (NewEsmtp) with SMTP id A6DAB4BC; Tue, 17 Aug 2021 23:41:45 +0800 X-QQ-mid: xmsmtpt1629214905tjjv3z2rh Message-ID: X-QQ-XMAILINFO: OCg1OZI0Tni/XWsD/cTz9EED1Ah/x0Sa4jYfvkVQr+yJxCmLGDFpek3e1jjMxK gWty6KrVNUQWuMKoJe2vjpgy8myOf6VEsLMdZure4cJn5TkPnONlk31USNKa6ZL6qP1WKnmzoKqQ VaSdIE5KOY8rnhyhT1WG90WLsfbd1y/BraocIuLCCqNpaIpnhibWa4vXEAt4sGRvSSMx1JrPrdGb Y9mEPz8Kp3hCIpIyQifA2K2vfogkk13ou10go82OK3DSrhWTm+dqEnIKN5M+qqH4h31e61wjug0c DX5M3ZnDxhwTAfyZ2+E+PyLXCglWPs83D2lGCixvsTsrlWwQlrfaHyOmztYOeq64oPNcWiIuDTIe yxIg/2ZX+UsGJT4TOAP91JlJF5vTveMaWGa8HPYF57nT0QMdjPYQL6SNUocIEli2jUJGp02hCDiP GzJ7loNxKqMwja1sfmNsqrgAE8PB+BsugjbFnF6AlkgYD49wMIrDSZV8Gm3fxxiCYdv30OcOjbG4 LiqYzgoFJMc0FvTAsB2aH0wPLbzXwLEQYs6+mfTot3xvF/16Ane5iRsgtnXQq15ZsZiiM73mxM/B Xg+N2n7mTz+1fJnKps/8OOw5ZBptvOpGR3jvjtc3XZ6iLfRh0n233iyC1H0rt5uhmIAskQpgGFEm i6401h1tSyGHf4KklvboeUQn6oo6pOKydZl6Cq5xkN3AkdvtNxsKTqNkkEWgx9s+qkUYEdvubXH1 Pl4iRXitpmNdRL6GuTP2pyVfnPs35kvovgIr+hSU3tsjgGpwAZ5d9VqcPQmTYBpRvf7OJ8OwBIZU Pi/+3aFP6ku5wSkzh/Tu/lWMqnGVazQLgJvW1ouEBDtatTMnDs1m3DxtA4B8Z8kPvPcbGF2x1UX3 THJ40h8hyuii3SL+WmC2fd2H/Ro+t3psohc7nySbrpxzBv1RkRwoRwUbtyJT9BSCZTcRzlLPfCsL qnKXxGc5g= From: Siyuan Fan To: libcamera-devel@lists.libcamera.org Date: Tue, 17 Aug 2021 16:41:39 +0100 X-OQ-MSGID: <20210817154139.6617-1-siyuan.fan@foxmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [libcamera-devel] [RFC PATCH v3 0/4] pipeline: isp: The software ISP module 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" From: Fan Siyuan Changes in v3: - Using std::queue replaces std::vector for rawBufferQueue_ and rgbBufferQueue_ in 1/4 - Add validate() in pipeline handler in 1/4, for matching the ISP output format - Add pixelFormatConfiguration() and getOutputPixelFormat() in 2/4 - Drop compress_10bit_to_8bit(), using compressAndTransformFormat() in 2/4 For next version, class ISPCPU will split the parameter computation/calibration and pixel processing. For pre-calibrated parameters, it may be a good choice to match different parameters to different devices. Fan Siyuan (4): pipeline: isp: The software ISP-based pipeline handler libcamera: swisp: The software ISP class libcamera: framebuffer: Add the friend class ISPCPU pipeline: isp: All meson configure files include/libcamera/framebuffer.h | 1 + meson_options.txt | 2 +- src/libcamera/pipeline/isp/isp.cpp | 315 +++++++++++ src/libcamera/pipeline/isp/meson.build | 6 + src/libcamera/swisp/isp.cpp | 726 +++++++++++++++++++++++++ src/libcamera/swisp/isp.h | 125 +++++ 6 files changed, 1174 insertions(+), 1 deletion(-) create mode 100644 src/libcamera/pipeline/isp/isp.cpp create mode 100644 src/libcamera/pipeline/isp/meson.build create mode 100644 src/libcamera/swisp/isp.cpp create mode 100644 src/libcamera/swisp/isp.h