[{"id":28663,"web_url":"https://patchwork.libcamera.org/comment/28663/","msgid":"<d396bd43-3815-4ccb-8428-74e50311dfe9@redhat.com>","date":"2024-02-14T17:03:45","subject":"Re: [PATCH v3 00/16] libcamera: introduce Software ISP and Software\n\tIPA","submitter":{"id":102,"url":"https://patchwork.libcamera.org/api/people/102/","name":"Hans de Goede","email":"hdegoede@redhat.com"},"content":"Hi All,\n\nOn 2/14/24 18:01, Hans de Goede wrote:\n> Hi All,\n> \n> Here is v3 of the patch-set to add Software ISP support\n> to libcamera / to the simple pipeline-handler.\n\nNote as Kieran pointed out in an offlist email, the new CI has\nalready caught a couple of issues with this v3:\n\nUnit test configuration failed to build:\n - https://gitlab.freedesktop.org/camera/libcamera-softisp/-/jobs/55028866#L357\n\nDebian 10 has an issue with some of the documentation additions:\n - https://gitlab.freedesktop.org/camera/libcamera-softisp/-/jobs/55028856#L439\n\nClang picks up warnings in the debayer_cpu implementation:\n - https://gitlab.freedesktop.org/camera/libcamera-softisp/-/jobs/55028858#L508\n\nClang picks up warnings in the swstats implementation:\n - https://gitlab.freedesktop.org/camera/libcamera-softisp/-/jobs/55028858#L549\n\nI'll start looking into these next week at the earliest, feel\nfree to beat me to it :)\n\nRegards,\n\nHans\n\n\n\n\n\n\n\n\n\n> Changes in v3 vs v2:\n> - The Software ISP now is always build when building the simple pipeline\n>   handler, no more -Dpipelines=simple/simple. Instead whether the SoftISP\n>   is used or not is based on the media-controller driver. For now it is\n>   only enabled for the \"qcom-camss\" driver (Andrey)\n> - SoftISP factory has been removed, there is a just a single SoftwareISP class now\n> - Fix the multi-threading issues (Andrey)\n> - Fully document the SharedMemObject and DmaHeap classes (Andrey)\n> - Drop SwStats base (integrate into SwStatsCpu class)\n> - Move headers for classes only used by the SoftISP into src/libcamera/software_isp\n> - Move SwStats / SwDebayer docs into .cpp and extend it\n> - Rename many foo_bar symbols to fooBar\n> - Add constexpr kFooBar values for varies hardcoded sizes like\n>   the yHistoGram having 16 bins and the gammalookuptable having 1024 entries\n> - Make startFrame() and finishFrame() normal methods instead of\n>   using function pointers for these\n> - Document how/why an array of src pointers is passed to\n>   the debayer functions\n> - 12bpp unpacked raw bayer input support (Kieran)\n> - Add \"Software ISP benchmarking\" doc\n> \n> Changes in v2 vs v1:\n> - Integrated Dennis, Martti and Toon's auto-exposure algorithm\n>   based on the paper which they found which gives us a nice\n>   relatively simple AEC + AGC algorithm\n>   TODO: Add link to paper to source + commit-message\n> - Integrated Dennis' doxygen comments for all new classes, no more warnings!\n> - Move AWB gain calculations to the IPA (Andrey)\n> - Added 8 bpp and 10 bpp unpacked raw bayer input support (Hans)\n> - Use dma-buf for the output FrameBuffer-s (Andrey)\n> - Memcpy data from input FrameBuffers to a heap buffer on a line by line\n>   basis to speedup debayering from uncached mem (Hans)\n> - This addresses all \"open issues\" from the v1 posting\n> \n> Changes in v1 vs RFC-v2:\n> - Add and use SwStats[Cpu] and Debayer[Cpu] classes\n> - Rename linaro soft-IPA and soft-ISP implementations to simple following\n>   the simple pipeline hander\n> - Integrate Pavel's swstats and debayer improvements\n> \n> This has been tested on:\n> - Qualcomm RB5 board with a mezzanine board equipped with RPi camera v2 (Andrey)\n> - Lenovo x13s, sc8280xp (Bryan)\n> - Pinephone (Pavel)\n> - Debix Model A (Milan)\n> - Lenovo Thinkpad Yoga X1 yoga gen7/8, Alder Lake/Raptor Lake IPU6EP +\n>   ov2740 10bpp packed + unpacked (Dennis / Hans)\n> - Dell Latitude 9420, Tiger Lake IPU6 + ov01a1s (RGBI) sensor\n>   (Martti, requires IGIG_GBGR_IGIG_GRGB patches on top)\n> \n> git branch for this v3 patch set:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v06\n> \n> git branch for v2 of the patch set:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v05\n> \n> git branch for v1 of the patch set:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v04\n> \n> Old RFC-v2 cover-letter with small updates:\n> \n> Here is an implementation of Software ISP and Software IPA\n> which provide debayering and implementation of image processing\n> algorithms for systems without a hardware ISP, or in cases when\n> there are no public drivers for the hardware ISP present in the\n> system.\n> \n> The Software IPA has auto exposure/AGC and AWB. For the AGC\n> the analogue gain control of the camera sensor is used (if\n> available).\n> \n> The 6th patch renames some variables in the simple pipeline\n> handler for the Software ISP to use the same buffer handling\n> code as the Converter currently does. This lets one to\n> avoid adding extra code to the pipeline handler, but also\n> makes the Software ISP and the Converter mutually exclusive.\n> \n> The Software ISP / IPA are intended to be used with the simple\n> pipeline handler. The pipeline handler doesn't interact with\n> the Software IPA directly - the Software IPA is hidden behind\n> the Software ISP interface. To use the Software ISP the build\n> must be configured with -Dpipelines=simple -Dipas=simple .\n> \n> This patch set uses SharedMemObject class used by the RPi pipeline\n> handler - the second patch in the series moves the header file\n> to a common directory.\n> \n> This patch set has been tested on Qualcomm RB5 board with\n> a mezzanine board equipped with RPi camera v2 (not the\n> standard RB5 camera mezzanine).\n> \n> git branch for the RFC-v2 patch set:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v03\n> \n> RFC-v1 of the patch set:\n> https://patchwork.libcamera.org/cover/19262/\n> \n> Changes in RFC v2 vs RFC v1:\n> - patches are restructured and reordered\n> - the Software IPA is hidden behind the Software ISP interface. The\n>   pipeline handler doesn't interact with the Software IPA directly\n> - instantiation of the Software ISP / IPA is configurable (at build\n>   time)\n> - comment explaining the implementation limitations is added to\n>   SwIspLinaro::IspWorker::debayerRaw10P()\n> \n> Regards,\n> \n> Hans\n> \n> \n> \n> Andrei Konovalov (1):\n>   libcamera: shared_mem_object: reorganize the code and document the\n>     SharedMemObject class\n> \n> Andrey Konovalov (8):\n>   libcamera: pipeline: simple: fix size adjustment in validate()\n>   libcamera: internal: Move dma_heaps.[h,cpp] to common directories\n>   libcamera: dma_heaps: extend DmaHeap class to support system heap\n>   libcamera: internal: Move SharedMemObject class to a common directory\n>   libcamera: ipa: add Soft IPA\n>   libcamera: introduce SoftwareIsp\n>   libcamera: pipeline: simple: rename converterBuffers_ and related vars\n>   libcamera: pipeline: simple: enable use of Soft ISP and Soft IPA\n> \n> Hans de Goede (7):\n>   libcamera: software_isp: Add SwStatsCpu class\n>   libcamera: software_isp: Add Debayer base class\n>   libcamera: software_isp: Add DebayerCpu class\n>   libcamera: swstats_cpu: Add support for 8, 10 and 12 bpp unpacked\n>     bayer input\n>   libcamera: debayer_cpu: Add support for 8, 10 and 12 bpp unpacked\n>     bayer input\n>   libcamera: debayer_cpu: Add BGR888 output support\n>   libcamera: Add \"Software ISP benchmarking\" documentation\n> \n>  Documentation/Doxyfile.in                     |   1 +\n>  Documentation/index.rst                       |   1 +\n>  Documentation/meson.build                     |   1 +\n>  Documentation/software-isp-benchmarking.rst   |  82 ++\n>  .../libcamera/internal}/dma_heaps.h           |  14 +-\n>  include/libcamera/internal/meson.build        |   3 +\n>  .../libcamera/internal}/shared_mem_object.h   |  94 ++-\n>  .../internal/software_isp/debayer_params.h    |  48 ++\n>  .../internal/software_isp/meson.build         |   7 +\n>  .../internal/software_isp/software_isp.h      |  98 +++\n>  .../internal/software_isp/swisp_stats.h       |  38 +\n>  include/libcamera/ipa/meson.build             |   1 +\n>  include/libcamera/ipa/soft.mojom              |  28 +\n>  meson_options.txt                             |   2 +-\n>  src/ipa/simple/data/meson.build               |   9 +\n>  src/ipa/simple/data/soft.conf                 |   3 +\n>  src/ipa/simple/meson.build                    |  25 +\n>  src/ipa/simple/soft_simple.cpp                | 308 +++++++\n>  src/libcamera/dma_heaps.cpp                   | 164 ++++\n>  src/libcamera/meson.build                     |   3 +\n>  src/libcamera/pipeline/rpi/vc4/dma_heaps.cpp  |  90 --\n>  src/libcamera/pipeline/rpi/vc4/meson.build    |   1 -\n>  src/libcamera/pipeline/rpi/vc4/vc4.cpp        |   5 +-\n>  src/libcamera/pipeline/simple/simple.cpp      | 232 ++++--\n>  src/libcamera/shared_mem_object.cpp           | 191 +++++\n>  src/libcamera/software_isp/debayer.cpp        |  29 +\n>  src/libcamera/software_isp/debayer.h          | 104 +++\n>  src/libcamera/software_isp/debayer_cpu.cpp    | 779 ++++++++++++++++++\n>  src/libcamera/software_isp/debayer_cpu.h      | 157 ++++\n>  src/libcamera/software_isp/meson.build        |   8 +\n>  src/libcamera/software_isp/software_isp.cpp   | 349 ++++++++\n>  src/libcamera/software_isp/swstats_cpu.cpp    | 336 ++++++++\n>  src/libcamera/software_isp/swstats_cpu.h      | 167 ++++\n>  33 files changed, 3186 insertions(+), 192 deletions(-)\n>  create mode 100644 Documentation/software-isp-benchmarking.rst\n>  rename {src/libcamera/pipeline/rpi/vc4 => include/libcamera/internal}/dma_heaps.h (65%)\n>  rename {src/libcamera/pipeline/rpi/common => include/libcamera/internal}/shared_mem_object.h (66%)\n>  create mode 100644 include/libcamera/internal/software_isp/debayer_params.h\n>  create mode 100644 include/libcamera/internal/software_isp/meson.build\n>  create mode 100644 include/libcamera/internal/software_isp/software_isp.h\n>  create mode 100644 include/libcamera/internal/software_isp/swisp_stats.h\n>  create mode 100644 include/libcamera/ipa/soft.mojom\n>  create mode 100644 src/ipa/simple/data/meson.build\n>  create mode 100644 src/ipa/simple/data/soft.conf\n>  create mode 100644 src/ipa/simple/meson.build\n>  create mode 100644 src/ipa/simple/soft_simple.cpp\n>  create mode 100644 src/libcamera/dma_heaps.cpp\n>  delete mode 100644 src/libcamera/pipeline/rpi/vc4/dma_heaps.cpp\n>  create mode 100644 src/libcamera/shared_mem_object.cpp\n>  create mode 100644 src/libcamera/software_isp/debayer.cpp\n>  create mode 100644 src/libcamera/software_isp/debayer.h\n>  create mode 100644 src/libcamera/software_isp/debayer_cpu.cpp\n>  create mode 100644 src/libcamera/software_isp/debayer_cpu.h\n>  create mode 100644 src/libcamera/software_isp/meson.build\n>  create mode 100644 src/libcamera/software_isp/software_isp.cpp\n>  create mode 100644 src/libcamera/software_isp/swstats_cpu.cpp\n>  create mode 100644 src/libcamera/software_isp/swstats_cpu.h\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id E8DF9C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 14 Feb 2024 17:03:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 90CE962807;\n\tWed, 14 Feb 2024 18:03:52 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 940EC61CB2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 14 Feb 2024 18:03:51 +0100 (CET)","from mail-ej1-f72.google.com (mail-ej1-f72.google.com\n\t[209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-217-K3KG7Q2lOuqwJbpR9lQ86Q-1; Wed, 14 Feb 2024 12:03:49 -0500","by mail-ej1-f72.google.com with SMTP id\n\ta640c23a62f3a-a27eddc1c27so133684366b.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 14 Feb 2024 09:03:48 -0800 (PST)","from ?IPV6:2001:1c00:c32:7800:5bfa:a036:83f0:f9ec?\n\t(2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl.\n\t[2001:1c00:c32:7800:5bfa:a036:83f0:f9ec])\n\tby smtp.gmail.com with ESMTPSA id\n\tl25-20020a170906415900b00a3d2157e267sm1328387ejk.11.2024.02.14.09.03.46\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tWed, 14 Feb 2024 09:03:46 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"hLh4XsJJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1707930230;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=chcbCoHYOLI4bkbmSP1v8QGCFgQqVYWrVkE1HFZSRqk=;\n\tb=hLh4XsJJtkwLpMT4vjQPnBhlrPuP7/g9tSX9nh58m+xtoq3byZNTQdeDdhUcVITc6bX0/5\n\tY6uXhMUbNcRqZ+5ge6/h1PVsl4nwFWvrErNZrmC+YZzAPG1T6gH9NUp/ntyVnxRPlx1N3U\n\t42x1BhrncHyzjh2S1pPkEHpSK4PX2ZQ=","X-MC-Unique":"K3KG7Q2lOuqwJbpR9lQ86Q-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1707930227; x=1708535027;\n\th=content-transfer-encoding:in-reply-to:from:references:cc:to\n\t:content-language:subject:user-agent:mime-version:date:message-id\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=chcbCoHYOLI4bkbmSP1v8QGCFgQqVYWrVkE1HFZSRqk=;\n\tb=MlkfGviR3Po4sCRq0uqCIHknzYV3AvyPw0oSzN4S2nA4aDPBPLRdWKaa8Uo4fZCA5u\n\tdA1o83a3YQf17+ttfC50ymQOrELBBUgmIuf1ZO8mpgHmzbZy/QqieXfTegLOz7V58roh\n\tm5V084gEgHoXYqU0AO0EeU3sfn1IsiDFkTxv0eBy6LHZqHyxqBHQ1JJh5QPj72MQMte0\n\tnUpvhvrK5Iz48sJUy+EtsD0iLwjCggNxViTU2x29zg0mfixaKK6GJJ5thxgivLPY/KD8\n\t9FPUDtROly29hz1OLNQg8h1wOCu50wCw7+Wel/zhD2kkUZ7+x04odO6d9ZkfNoYIFqsM\n\tFyXg==","X-Gm-Message-State":"AOJu0Ywo4dPOk+MhaD5aQXoeIAA2YAcc3WVDa3s8YJhttqP7k96X5dD4\n\tbJfDjQHfg/kogzSrPVzWC0i41snQJiv3hsOLey6hRpX4+uwg7xdH//ugcwMBCeQeV38QUxAs9i2\n\t7eEQ2snseN9vQX2P67DVf9Q2ZlrIPszxPTyk0hZuqDiYwErPFZxkGX267jiwLLoQpusWOoqhTFn\n\tl217wNMLhisBuaLSTAsnNHW3mdGvWUzFgup4aJFQggK15XiDGBqr6poVg=","X-Received":["by 2002:a17:906:c407:b0:a3d:3be6:9be4 with SMTP id\n\tu7-20020a170906c40700b00a3d3be69be4mr1527676ejz.25.1707930227589; \n\tWed, 14 Feb 2024 09:03:47 -0800 (PST)","by 2002:a17:906:c407:b0:a3d:3be6:9be4 with SMTP id\n\tu7-20020a170906c40700b00a3d3be69be4mr1527653ejz.25.1707930227160; \n\tWed, 14 Feb 2024 09:03:47 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IEJ7VbZ76S0BU6s4M7H0etsfxuwTa6yn7paQLVCb5DEFwAlFJtRW/svjPvjROgRBS8LFztTsQ==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCW6QC1QZIM6wmOFXvhYGK/oFX4bZKjaImHiVio8Otj56JwdnxX84xQTap7U+PESLelHpMr5VOIlPD9Pk6DqLpYP1/YOdxmV4Kw77J3umDx+Uh74hWfQetvat2fisPRTFG9tAdQcmSC6Gy2gaPj499e0xy+g3uro1RA+euZVvOy8C24=","Message-ID":"<d396bd43-3815-4ccb-8428-74e50311dfe9@redhat.com>","Date":"Wed, 14 Feb 2024 18:03:45 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 00/16] libcamera: introduce Software ISP and Software\n\tIPA","To":"libcamera-devel@lists.libcamera.org","References":"<20240214170122.60754-1-hdegoede@redhat.com>","From":"Hans de Goede <hdegoede@redhat.com>","In-Reply-To":"<20240214170122.60754-1-hdegoede@redhat.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Language":"en-US, nl","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tMaxime Ripard <mripard@redhat.com>, Pavel Machek <pavel@ucw.cz>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28664,"web_url":"https://patchwork.libcamera.org/comment/28664/","msgid":"<850e19ea-1c11-4bd2-8a72-b2ca4f951235@redhat.com>","date":"2024-02-14T17:26:32","subject":"Re: [PATCH v3 00/16] libcamera: introduce Software ISP and Software\n\tIPA","submitter":{"id":102,"url":"https://patchwork.libcamera.org/api/people/102/","name":"Hans de Goede","email":"hdegoede@redhat.com"},"content":"Hi,\n\nOn 2/14/24 18:03, Hans de Goede wrote:\n> Hi All,\n> \n> On 2/14/24 18:01, Hans de Goede wrote:\n>> Hi All,\n>>\n>> Here is v3 of the patch-set to add Software ISP support\n>> to libcamera / to the simple pipeline-handler.\n> \n> Note as Kieran pointed out in an offlist email, the new CI has\n> already caught a couple of issues with this v3:\n> \n> Unit test configuration failed to build:\n>  - https://gitlab.freedesktop.org/camera/libcamera-softisp/-/jobs/55028866#L357\n\nOk, so I took a quick peek at this one and the issue is\nthat the simple pipeline handler will not build unless\n-Dipas=simple is passed when configuring.\n\nThe missing header here is autogenerated.\n\nI see that the ipu3 pipeline handler also unconditionally\nincludes the auto-generated:\n\n#include <libcamera/ipa/ipu3_ipa_interface.h>\n#include <libcamera/ipa/ipu3_ipa_proxy.h>\n\nheaders, so it will show similar erros when using -Dpipelines=ipu3\nwithout -Dipas=ipu3 .\n\nSo I wonder how to fix this. Is there some meson magic\nsomewhere to automatically enable the ipu3 ipa when the\nipu3 pipeline is enabled which we can copy for the simple\npipeline ?\n\nRegards,\n\nHans","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 28A3BC3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 14 Feb 2024 17:26:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 828D961CB2;\n\tWed, 14 Feb 2024 18:26:38 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9E47061CB2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 14 Feb 2024 18:26:37 +0100 (CET)","from mail-ej1-f72.google.com (mail-ej1-f72.google.com\n\t[209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-688-z9Co1FQQNgmOvVNVZ4rWAA-1; Wed, 14 Feb 2024 12:26:35 -0500","by mail-ej1-f72.google.com with SMTP id\n\ta640c23a62f3a-a2cb0d70d6cso361917966b.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 14 Feb 2024 09:26:34 -0800 (PST)","from ?IPV6:2001:1c00:c32:7800:5bfa:a036:83f0:f9ec?\n\t(2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl.\n\t[2001:1c00:c32:7800:5bfa:a036:83f0:f9ec])\n\tby smtp.gmail.com with ESMTPSA id\n\tun1-20020a170907cb8100b00a3cf5b61822sm1995906ejc.82.2024.02.14.09.26.32\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tWed, 14 Feb 2024 09:26:33 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"H0shIR68\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1707931596;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=abLyiW9YlLp5YUhYZqafEz2Av3EAYcu0aLd8fTYTIC0=;\n\tb=H0shIR68tjz284F4phH20fh52rPM6XrdWztAB7/tOVnF/ktNG9NgeMiSPzjCBAM+yxC6wp\n\ts1i5d88YszKUHV9ZG6CHqrZPC7Db8HeecJXVeRcR0vC+ipMGV9yHKYbAxZTKQWCdKSMlml\n\tfCAB5cChHoLxC8R1mf118B+F5HJi4bo=","X-MC-Unique":"z9Co1FQQNgmOvVNVZ4rWAA-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1707931593; x=1708536393;\n\th=content-transfer-encoding:in-reply-to:references:cc:to:from\n\t:content-language:subject:user-agent:mime-version:date:message-id\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=abLyiW9YlLp5YUhYZqafEz2Av3EAYcu0aLd8fTYTIC0=;\n\tb=j0vP01HNl4rfCBmTZ7yxfJcbolWBogtQ9MyJ9FT+UlhR+Sf1XTnvctqgS9SzGyDAJM\n\ttfCeYbT2G26MzGrti43a9MTx7r1vLrPXRPFpQG8G7djz5ORAZIHefq+Nicu75faNcbph\n\t0qN8wYN14Bg1alGBvvTBSs6DZ1SI01SfIuTwbwpaGdd9pNCBSGGtLCKWiAi2v5v33/N7\n\tCV3LMFFKBbF9R6ql4zvro2fJUE0FFdALfvSrz1kz4j1RPMSxZapb6jfiZX0CNGx5p3IE\n\tXLWABkwACIlMO82SpcXodG3S1o4990v6Og9GABZacws0NryNpzAx6M/+BQXytYvz9NiQ\n\twkjg==","X-Gm-Message-State":"AOJu0YyqmRSSVdJcM4bPyq8+hquJA0HHFiiIUwT3Uxqs5fjoPJkLa2Gp\n\tOTq5zR0ofCURL/enVU+IKfth1scV9+OUbTQXldZS3kFtgNPpzZseLyx3o3uX+CojmypFSVv1eTb\n\te+K8di2GWTLplx7SdG1y1jQLuZzBkl7bhDlMPcYlh75fA79DFoFh1EVdWrysOzYLlp7g0aGx9YZ\n\tX3UZ6PIeQI1mDFev6ZudXJcdIzwcu8yT3vAX6NzzuSDXeq+xbCVCYo7ow=","X-Received":["by 2002:a17:906:459:b0:a3c:875b:41bc with SMTP id\n\te25-20020a170906045900b00a3c875b41bcmr2072423eja.57.1707931593840; \n\tWed, 14 Feb 2024 09:26:33 -0800 (PST)","by 2002:a17:906:459:b0:a3c:875b:41bc with SMTP id\n\te25-20020a170906045900b00a3c875b41bcmr2072407eja.57.1707931593538; \n\tWed, 14 Feb 2024 09:26:33 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IE6kMCw7FQc/VZozgBPX1awT+ZUaylhXN7duZajf1lxnjsuHLDJabUtNQuqxwx3QnPInvH4rw==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCUXP8WyMHuEAapyt31JXXGFHuiauxAhdAvtjoRChlacvWo+qQrTMFquNhHm8jaWdIYrfyYV93LYkLX5qJ9AWoHW9SBE33JqapTSTS04cWljR/vnEbtpFURPh0ApzjX8aHorvGiFdhEScD6XG69KzMQqPYYBojoZpUgogP7+OhTzUqc=","Message-ID":"<850e19ea-1c11-4bd2-8a72-b2ca4f951235@redhat.com>","Date":"Wed, 14 Feb 2024 18:26:32 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 00/16] libcamera: introduce Software ISP and Software\n\tIPA","From":"Hans de Goede <hdegoede@redhat.com>","To":"libcamera-devel@lists.libcamera.org","References":"<20240214170122.60754-1-hdegoede@redhat.com>\n\t<d396bd43-3815-4ccb-8428-74e50311dfe9@redhat.com>","In-Reply-To":"<d396bd43-3815-4ccb-8428-74e50311dfe9@redhat.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Language":"en-US, nl","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tMaxime Ripard <mripard@redhat.com>, Pavel Machek <pavel@ucw.cz>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28669,"web_url":"https://patchwork.libcamera.org/comment/28669/","msgid":"<6964e134-f4ad-434a-b003-8fb357946ff0@linaro.org>","date":"2024-02-15T12:14:08","subject":"Re: [PATCH v3 00/16] libcamera: introduce Software ISP and Software\n\tIPA","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 14/02/2024 5:01 p.m., Hans de Goede wrote:\n> Hi All,\n> \n> Here is v3 of the patch-set to add Software ISP support\n> to libcamera / to the simple pipeline-handler.\n> \n> Changes in v3 vs v2:\n> - The Software ISP now is always build when building the simple pipeline\n>    handler, no more -Dpipelines=simple/simple. Instead whether the SoftISP\n>    is used or not is based on the media-controller driver. For now it is\n>    only enabled for the \"qcom-camss\" driver (Andrey)\n> - SoftISP factory has been removed, there is a just a single SoftwareISP class now\n> - Fix the multi-threading issues (Andrey)\n> - Fully document the SharedMemObject and DmaHeap classes (Andrey)\n> - Drop SwStats base (integrate into SwStatsCpu class)\n> - Move headers for classes only used by the SoftISP into src/libcamera/software_isp\n> - Move SwStats / SwDebayer docs into .cpp and extend it\n> - Rename many foo_bar symbols to fooBar\n> - Add constexpr kFooBar values for varies hardcoded sizes like\n>    the yHistoGram having 16 bins and the gammalookuptable having 1024 entries\n> - Make startFrame() and finishFrame() normal methods instead of\n>    using function pointers for these\n> - Document how/why an array of src pointers is passed to\n>    the debayer functions\n> - 12bpp unpacked raw bayer input support (Kieran)\n> - Add \"Software ISP benchmarking\" doc\n\nTested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> # lenovo x13s","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 6187BBDE17\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 15 Feb 2024 12:14:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A9CF061CB0;\n\tThu, 15 Feb 2024 13:14:11 +0100 (CET)","from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com\n\t[IPv6:2a00:1450:4864:20::32a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7065D61CB0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 15 Feb 2024 13:14:09 +0100 (CET)","by mail-wm1-x32a.google.com with SMTP id\n\t5b1f17b1804b1-411fc50e4e9so6101205e9.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 15 Feb 2024 04:14:09 -0800 (PST)","from [192.168.0.246] ([176.61.106.68])\n\tby smtp.gmail.com with ESMTPSA id\n\td3-20020adfe883000000b0033ce40eee9fsm1609781wrm.58.2024.02.15.04.14.08\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tThu, 15 Feb 2024 04:14:08 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"Mt8s77y2\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1707999249; x=1708604049;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:from:references:cc:to\n\t:content-language:subject:user-agent:mime-version:date:message-id\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=k8q35YYsNeOajaWvkpbZH+fHFfl+3F7ht6XRvr/JErM=;\n\tb=Mt8s77y2EivgaU5+ZeyYXj019qpRjsdQgmksGsVtI+oB/Alo49XG8V/zVvWRp6QSjX\n\tgtg9fdNe5lkDGr/sDI74aMI4SIdQx6Y+nOo32vBThK2+swTb594Nx8YfmUzObLu57/DD\n\t3Rt8KRhYQ33zyMi02aYrlxm8b7QMygRHT9/sool50unS79J3N/Qubkdgu9ETEuYs6/QI\n\tFH2ib/y2uO+aAhDgQ0hC6Dx1+0uhqIVgZMJr1ad+SBd1wFctlyAg4cpFDN5u4ta07ajh\n\t0oeIU5I0tfh0qSAmQOM13igYOss2lWisDiKcNpE6F8Z1urJgIufVheJvQ8IYB3FfOXeP\n\tvvhA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1707999249; x=1708604049;\n\th=content-transfer-encoding:in-reply-to:from:references:cc:to\n\t:content-language:subject:user-agent:mime-version:date:message-id\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=k8q35YYsNeOajaWvkpbZH+fHFfl+3F7ht6XRvr/JErM=;\n\tb=Xo8dop0cPlJZMiMvMa2sfN6SFuvS5Ow4jgZN0PU1Ee92UbvuU6t8KELX3FYwRlh+jd\n\tC708aACm/mESQ6Rwf9+FBNMxO3DnO8PIhy57WQ+CVeYRaAkpmlzszxyPMq6TGkakEJ41\n\tqkyL2ciOpmhMF590M7znXDYENXLvc2O1Xnv3wE4zHHs5I2hSecrQYV84whH4OW9NM8cz\n\tz9qAicR3zTTY0vob8alomyCQHi7jQ6nl/tSb7GSjNC8xhiQg3zT9cDX1h2Gc49sJjw70\n\tMVVXcJxXSMZL8DcNN1tPb5SgxHL6Y3tnS8mHxqAexSMSSzvWl43uky/fTiV4A22BqpUA\n\tTnhQ==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCV+9IxucJ2FB/omZ8fuoWSwCIlwTvMlSiAWkl5o1qR4gomcOuH/pbyr2w45FP9ORA/4lHjP3eQwVOlBev6xaOkzBzQZ3GU75zILIK+qbSKXQ1eqzg==","X-Gm-Message-State":"AOJu0Yy9JZ01npgcOGYgCUDLlGtgjdqv6iNwg6if7rogERE6lQqBTNOB\n\tWOKC32BbTcEF0Os6tqxufChz1QFzjmOd2wh9XgRxnxyqTwmsCIn4d3brSnCftss=","X-Google-Smtp-Source":"AGHT+IGUT9DpmYNRocODKEjZgZQS0u6hnnRqEH06oiziRNNAAhw60gjRDWeO/yUjZPBIZcBMkrU3Lg==","X-Received":"by 2002:adf:f642:0:b0:33c:e339:c1d9 with SMTP id\n\tx2-20020adff642000000b0033ce339c1d9mr1078875wrp.40.1707999248925; \n\tThu, 15 Feb 2024 04:14:08 -0800 (PST)","Message-ID":"<6964e134-f4ad-434a-b003-8fb357946ff0@linaro.org>","Date":"Thu, 15 Feb 2024 12:14:08 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 00/16] libcamera: introduce Software ISP and Software\n\tIPA","Content-Language":"en-US","To":"Hans de Goede <hdegoede@redhat.com>, libcamera-devel@lists.libcamera.org","References":"<20240214170122.60754-1-hdegoede@redhat.com>","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","In-Reply-To":"<20240214170122.60754-1-hdegoede@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"Maxime Ripard <mripard@redhat.com>, Pavel Machek <pavel@ucw.cz>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28685,"web_url":"https://patchwork.libcamera.org/comment/28685/","msgid":"<87mss0lhpr.fsf@redhat.com>","date":"2024-02-16T12:24:48","subject":"Re: [PATCH v3 00/16] libcamera: introduce Software ISP and Software\n\tIPA","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hans de Goede <hdegoede@redhat.com> writes:\n\n> Hi All,\n>\n> Here is v3 of the patch-set to add Software ISP support\n> to libcamera / to the simple pipeline-handler.\n\nHi Hans,\n\nthank you, great work by you and others involved.  I have commented on all what\nI thought I had something to say about, tell me in case you need more review on\nsomething from me.\n\nRegards,\nMilan\n\n> Changes in v3 vs v2:\n> - The Software ISP now is always build when building the simple pipeline\n>   handler, no more -Dpipelines=simple/simple. Instead whether the SoftISP\n>   is used or not is based on the media-controller driver. For now it is\n>   only enabled for the \"qcom-camss\" driver (Andrey)\n> - SoftISP factory has been removed, there is a just a single SoftwareISP class now\n> - Fix the multi-threading issues (Andrey)\n> - Fully document the SharedMemObject and DmaHeap classes (Andrey)\n> - Drop SwStats base (integrate into SwStatsCpu class)\n> - Move headers for classes only used by the SoftISP into src/libcamera/software_isp\n> - Move SwStats / SwDebayer docs into .cpp and extend it\n> - Rename many foo_bar symbols to fooBar\n> - Add constexpr kFooBar values for varies hardcoded sizes like\n>   the yHistoGram having 16 bins and the gammalookuptable having 1024 entries\n> - Make startFrame() and finishFrame() normal methods instead of\n>   using function pointers for these\n> - Document how/why an array of src pointers is passed to\n>   the debayer functions\n> - 12bpp unpacked raw bayer input support (Kieran)\n> - Add \"Software ISP benchmarking\" doc\n>\n> Changes in v2 vs v1:\n> - Integrated Dennis, Martti and Toon's auto-exposure algorithm\n>   based on the paper which they found which gives us a nice\n>   relatively simple AEC + AGC algorithm\n>   TODO: Add link to paper to source + commit-message\n> - Integrated Dennis' doxygen comments for all new classes, no more warnings!\n> - Move AWB gain calculations to the IPA (Andrey)\n> - Added 8 bpp and 10 bpp unpacked raw bayer input support (Hans)\n> - Use dma-buf for the output FrameBuffer-s (Andrey)\n> - Memcpy data from input FrameBuffers to a heap buffer on a line by line\n>   basis to speedup debayering from uncached mem (Hans)\n> - This addresses all \"open issues\" from the v1 posting\n>\n> Changes in v1 vs RFC-v2:\n> - Add and use SwStats[Cpu] and Debayer[Cpu] classes\n> - Rename linaro soft-IPA and soft-ISP implementations to simple following\n>   the simple pipeline hander\n> - Integrate Pavel's swstats and debayer improvements\n>\n> This has been tested on:\n> - Qualcomm RB5 board with a mezzanine board equipped with RPi camera v2 (Andrey)\n> - Lenovo x13s, sc8280xp (Bryan)\n> - Pinephone (Pavel)\n> - Debix Model A (Milan)\n> - Lenovo Thinkpad Yoga X1 yoga gen7/8, Alder Lake/Raptor Lake IPU6EP +\n>   ov2740 10bpp packed + unpacked (Dennis / Hans)\n> - Dell Latitude 9420, Tiger Lake IPU6 + ov01a1s (RGBI) sensor\n>   (Martti, requires IGIG_GBGR_IGIG_GRGB patches on top)\n>\n> git branch for this v3 patch set:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v06\n>\n> git branch for v2 of the patch set:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v05\n>\n> git branch for v1 of the patch set:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v04\n>\n> Old RFC-v2 cover-letter with small updates:\n>\n> Here is an implementation of Software ISP and Software IPA\n> which provide debayering and implementation of image processing\n> algorithms for systems without a hardware ISP, or in cases when\n> there are no public drivers for the hardware ISP present in the\n> system.\n>\n> The Software IPA has auto exposure/AGC and AWB. For the AGC\n> the analogue gain control of the camera sensor is used (if\n> available).\n>\n> The 6th patch renames some variables in the simple pipeline\n> handler for the Software ISP to use the same buffer handling\n> code as the Converter currently does. This lets one to\n> avoid adding extra code to the pipeline handler, but also\n> makes the Software ISP and the Converter mutually exclusive.\n>\n> The Software ISP / IPA are intended to be used with the simple\n> pipeline handler. The pipeline handler doesn't interact with\n> the Software IPA directly - the Software IPA is hidden behind\n> the Software ISP interface. To use the Software ISP the build\n> must be configured with -Dpipelines=simple -Dipas=simple .\n>\n> This patch set uses SharedMemObject class used by the RPi pipeline\n> handler - the second patch in the series moves the header file\n> to a common directory.\n>\n> This patch set has been tested on Qualcomm RB5 board with\n> a mezzanine board equipped with RPi camera v2 (not the\n> standard RB5 camera mezzanine).\n>\n> git branch for the RFC-v2 patch set:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v03\n>\n> RFC-v1 of the patch set:\n> https://patchwork.libcamera.org/cover/19262/\n>\n> Changes in RFC v2 vs RFC v1:\n> - patches are restructured and reordered\n> - the Software IPA is hidden behind the Software ISP interface. The\n>   pipeline handler doesn't interact with the Software IPA directly\n> - instantiation of the Software ISP / IPA is configurable (at build\n>   time)\n> - comment explaining the implementation limitations is added to\n>   SwIspLinaro::IspWorker::debayerRaw10P()\n>\n> Regards,\n>\n> Hans\n>\n>\n>\n> Andrei Konovalov (1):\n>   libcamera: shared_mem_object: reorganize the code and document the\n>     SharedMemObject class\n>\n> Andrey Konovalov (8):\n>   libcamera: pipeline: simple: fix size adjustment in validate()\n>   libcamera: internal: Move dma_heaps.[h,cpp] to common directories\n>   libcamera: dma_heaps: extend DmaHeap class to support system heap\n>   libcamera: internal: Move SharedMemObject class to a common directory\n>   libcamera: ipa: add Soft IPA\n>   libcamera: introduce SoftwareIsp\n>   libcamera: pipeline: simple: rename converterBuffers_ and related vars\n>   libcamera: pipeline: simple: enable use of Soft ISP and Soft IPA\n>\n> Hans de Goede (7):\n>   libcamera: software_isp: Add SwStatsCpu class\n>   libcamera: software_isp: Add Debayer base class\n>   libcamera: software_isp: Add DebayerCpu class\n>   libcamera: swstats_cpu: Add support for 8, 10 and 12 bpp unpacked\n>     bayer input\n>   libcamera: debayer_cpu: Add support for 8, 10 and 12 bpp unpacked\n>     bayer input\n>   libcamera: debayer_cpu: Add BGR888 output support\n>   libcamera: Add \"Software ISP benchmarking\" documentation\n>\n>  Documentation/Doxyfile.in                     |   1 +\n>  Documentation/index.rst                       |   1 +\n>  Documentation/meson.build                     |   1 +\n>  Documentation/software-isp-benchmarking.rst   |  82 ++\n>  .../libcamera/internal}/dma_heaps.h           |  14 +-\n>  include/libcamera/internal/meson.build        |   3 +\n>  .../libcamera/internal}/shared_mem_object.h   |  94 ++-\n>  .../internal/software_isp/debayer_params.h    |  48 ++\n>  .../internal/software_isp/meson.build         |   7 +\n>  .../internal/software_isp/software_isp.h      |  98 +++\n>  .../internal/software_isp/swisp_stats.h       |  38 +\n>  include/libcamera/ipa/meson.build             |   1 +\n>  include/libcamera/ipa/soft.mojom              |  28 +\n>  meson_options.txt                             |   2 +-\n>  src/ipa/simple/data/meson.build               |   9 +\n>  src/ipa/simple/data/soft.conf                 |   3 +\n>  src/ipa/simple/meson.build                    |  25 +\n>  src/ipa/simple/soft_simple.cpp                | 308 +++++++\n>  src/libcamera/dma_heaps.cpp                   | 164 ++++\n>  src/libcamera/meson.build                     |   3 +\n>  src/libcamera/pipeline/rpi/vc4/dma_heaps.cpp  |  90 --\n>  src/libcamera/pipeline/rpi/vc4/meson.build    |   1 -\n>  src/libcamera/pipeline/rpi/vc4/vc4.cpp        |   5 +-\n>  src/libcamera/pipeline/simple/simple.cpp      | 232 ++++--\n>  src/libcamera/shared_mem_object.cpp           | 191 +++++\n>  src/libcamera/software_isp/debayer.cpp        |  29 +\n>  src/libcamera/software_isp/debayer.h          | 104 +++\n>  src/libcamera/software_isp/debayer_cpu.cpp    | 779 ++++++++++++++++++\n>  src/libcamera/software_isp/debayer_cpu.h      | 157 ++++\n>  src/libcamera/software_isp/meson.build        |   8 +\n>  src/libcamera/software_isp/software_isp.cpp   | 349 ++++++++\n>  src/libcamera/software_isp/swstats_cpu.cpp    | 336 ++++++++\n>  src/libcamera/software_isp/swstats_cpu.h      | 167 ++++\n>  33 files changed, 3186 insertions(+), 192 deletions(-)\n>  create mode 100644 Documentation/software-isp-benchmarking.rst\n>  rename {src/libcamera/pipeline/rpi/vc4 => include/libcamera/internal}/dma_heaps.h (65%)\n>  rename {src/libcamera/pipeline/rpi/common => include/libcamera/internal}/shared_mem_object.h (66%)\n>  create mode 100644 include/libcamera/internal/software_isp/debayer_params.h\n>  create mode 100644 include/libcamera/internal/software_isp/meson.build\n>  create mode 100644 include/libcamera/internal/software_isp/software_isp.h\n>  create mode 100644 include/libcamera/internal/software_isp/swisp_stats.h\n>  create mode 100644 include/libcamera/ipa/soft.mojom\n>  create mode 100644 src/ipa/simple/data/meson.build\n>  create mode 100644 src/ipa/simple/data/soft.conf\n>  create mode 100644 src/ipa/simple/meson.build\n>  create mode 100644 src/ipa/simple/soft_simple.cpp\n>  create mode 100644 src/libcamera/dma_heaps.cpp\n>  delete mode 100644 src/libcamera/pipeline/rpi/vc4/dma_heaps.cpp\n>  create mode 100644 src/libcamera/shared_mem_object.cpp\n>  create mode 100644 src/libcamera/software_isp/debayer.cpp\n>  create mode 100644 src/libcamera/software_isp/debayer.h\n>  create mode 100644 src/libcamera/software_isp/debayer_cpu.cpp\n>  create mode 100644 src/libcamera/software_isp/debayer_cpu.h\n>  create mode 100644 src/libcamera/software_isp/meson.build\n>  create mode 100644 src/libcamera/software_isp/software_isp.cpp\n>  create mode 100644 src/libcamera/software_isp/swstats_cpu.cpp\n>  create mode 100644 src/libcamera/software_isp/swstats_cpu.h","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id C39EAC3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 16 Feb 2024 12:24:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 19E6E62802;\n\tFri, 16 Feb 2024 13:24:56 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E785762801\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Feb 2024 13:24:53 +0100 (CET)","from mail-lf1-f70.google.com (mail-lf1-f70.google.com\n\t[209.85.167.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-427-0o1RLMtSNGi4rXiPjEQuyA-1; Fri, 16 Feb 2024 07:24:51 -0500","by mail-lf1-f70.google.com with SMTP id\n\t2adb3069b0e04-5114e915d99so1756941e87.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Feb 2024 04:24:50 -0800 (PST)","from nuthatch (ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\tel11-20020a056402360b00b0055fba4996d9sm1440243edb.71.2024.02.16.04.24.48\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 16 Feb 2024 04:24:48 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"DJp/0Kxm\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1708086292;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=648XOH23w56mQHS/KluzhLiiuS5YYy0rvvfDB+Rk0VU=;\n\tb=DJp/0KxmcHZqY9qAkt5oot43OI3vIwTi6FO8s0Xp6gHYPw0FkzflqROV5ISXZaK+sNDK0I\n\tfL9xqDq1dnifvUmYhQyQ45fZj5hYkhp353RglD+fOs1uAKWJAjs2m42tea3F3EtyJO7xEA\n\tfEKWUDdHIUhZFUJ7aEjVxmGWmGJM2XY=","X-MC-Unique":"0o1RLMtSNGi4rXiPjEQuyA-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1708086289; x=1708691089;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=648XOH23w56mQHS/KluzhLiiuS5YYy0rvvfDB+Rk0VU=;\n\tb=Z7LVidNqmkowb3a9FLwGJO1jIjA4vd71+3iiX90oTKzN+Sb+o/PkZnK7HfZTC4sl6T\n\tWlt0XyFD2Ueg51mi5u12VuFZwMPLzTMQYKnC0QY165A54hK0x1ijVYmTmLwv3+ClgSPP\n\tqZKHw4TaFUTEXEuBkI/fpEfVkMct6dndBz9j3tJEizagj525/7F/cIWFOuUUdGYwwYpV\n\tKpVSVY6pLGJc1Sq6ZE1Sj78Z/mK+yrJUGrNu+0HDwQRoio4EIe8fYwkd3LU6uoX/pnaH\n\t6ZYn39Mt/u7KnFuCICEXnQ6rgqUIqGqOk8Zw8lpcV/0T0+ioidYqrYDTJtdSN91yRh0p\n\tav2A==","X-Gm-Message-State":"AOJu0Yy1WaU5E27U35EbfwdCSohHom2wiTcD9ubl7RMZ7VPmFnwPSs9W\n\tqhQ1zuL8JWbQDfQAWEx63YX2d7ZYxRfTUgCNaUwM+hN9Mj9E3ugVwCtnqprF5lHLdMMlwRHaYZZ\n\ttCva2GyhUwtqHvj6K+KhvD1Tvwku8qezqET2s7V+Y+FwrsJYEEQpzTVVrMbEZrUcebWGLt74=","X-Received":["by 2002:a19:ca53:0:b0:512:9a31:775e with SMTP id\n\th19-20020a19ca53000000b005129a31775emr176426lfj.19.1708086289684; \n\tFri, 16 Feb 2024 04:24:49 -0800 (PST)","by 2002:a19:ca53:0:b0:512:9a31:775e with SMTP id\n\th19-20020a19ca53000000b005129a31775emr176408lfj.19.1708086289224; \n\tFri, 16 Feb 2024 04:24:49 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IHQ3smx3KGFCOOXfEjw17lDUgup+DHjHEqGuPT4tTGcL2SEQWNY3hpPhGd1Oorw3RaFLnEqVw==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Hans de Goede <hdegoede@redhat.com>","Subject":"Re: [PATCH v3 00/16] libcamera: introduce Software ISP and Software\n\tIPA","In-Reply-To":"<20240214170122.60754-1-hdegoede@redhat.com> (Hans de Goede's\n\tmessage of \"Wed, 14 Feb 2024 18:01:04 +0100\")","References":"<20240214170122.60754-1-hdegoede@redhat.com>","Date":"Fri, 16 Feb 2024 13:24:48 +0100","Message-ID":"<87mss0lhpr.fsf@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tlibcamera-devel@lists.libcamera.org, Maxime Ripard <mripard@redhat.com>, \n\tPavel Machek <pavel@ucw.cz>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]