[{"id":37075,"web_url":"https://patchwork.libcamera.org/comment/37075/","msgid":"<176416062682.2903327.2968464468598365003@localhost>","date":"2025-11-26T12:37:06","subject":"Re: [PATCH v3] Documentation: Add ISP feature support matrix","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Hi Jai,\n\nQuoting Jai Luthra (2025-11-26 12:41:41)\n> Add a new living document presenting a matrix of image processing\n> feature support across all currently supported platforms in libcamera.\n> \n> This will hopefuly help in answering questions like is HDR supported\n> with Software ISP or is Auto Focus supported on Raspberry Pi?\n> \n> This matrix will be regularly updated as new features and platforms are\n> added.\n> \n> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>\n> ---\n> Changes since v2:\n> - Add Kieran's Ack\n> - Fix stray \"=\"\n> - Split RkISP1 into i.MX8MP and RK3399/3288 as they support slightly different\n> features\n> - Modify the platform names in the table, and add a note just below the table,\n> also dropping the platform notes section later.\n> - Link to v2: https://patchwork.libcamera.org/patch/25156/\n> ---\n>  Documentation/index.rst              |   1 +\n>  Documentation/isp-feature-matrix.rst | 103 +++++++++++++++++++++++++++\n>  Documentation/meson.build            |   1 +\n>  3 files changed, 105 insertions(+)\n>  create mode 100644 Documentation/isp-feature-matrix.rst\n> \n> diff --git a/Documentation/index.rst b/Documentation/index.rst\n> index febd4e13..a74b8668 100644\n> --- a/Documentation/index.rst\n> +++ b/Documentation/index.rst\n> @@ -9,6 +9,7 @@\n>     Introduction <self>\n>     Feature Requirements <feature_requirements>\n>     Runtime configuration <runtime_configuration>\n> +   ISP feature support matrix <isp-feature-matrix>\n>     Application Writer's Guide <guides/application-developer>\n>     Python Bindings <python-bindings>\n>     Public API <public-api/index>\n> diff --git a/Documentation/isp-feature-matrix.rst b/Documentation/isp-feature-matrix.rst\n> new file mode 100644\n> index 00000000..76eb9dbc\n> --- /dev/null\n> +++ b/Documentation/isp-feature-matrix.rst\n> @@ -0,0 +1,103 @@\n> +.. SPDX-License-Identifier: CC-BY-SA-4.0\n> +\n> +libcamera ISP Feature Support Matrix\n> +====================================\n> +\n> +The following table shows the current status of ISP feature support across\n> +different platforms in libcamera.\n> +\n> +.. table:: ISP Feature Support by Platform\n> +\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Feature                                     | i.MX8MP   | RK3399, RK3288 | Raspberry Pi 4     | Raspberry Pi 5 | Intel 6th/7th Gen (IPU3) | Renesas V2H/V2N* | Software ISP (CPU)** |\n> +   +=============================================+===========+================+====================+================+==========================+==================+======================+\n> +   | Auto Gain Control Stats (AGC)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Auto Focus (AF)                             | 🛠️ (CDAF) | 🛠️ (CDAF)      | ✅ (CDAF/PDAF)     | ✅ (CDAF/PDAF) | ✅ (CDAF)                | 🚫               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | HDR Stitching                               | ✅        | 🚫             | ✅ (Software only) | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Companding                                  | ✅        | ✅             | 🚫                 | ✅             | ❓                       | ❓               | ❓                   |\n\nCompanding is not supported in the Rkxxxx due to missing hardware.\n\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Black Level Subtraction (BLS)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Lens Shading Correction (LSC)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Auto Whitebalance (AWB)                     | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Defective Pixel Correction (DPC)            | ✅        | ✅             | ✅                 | ✅             | 🚫                       | ✅               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | 2D Noise Filtering                          | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Local Tone Mapping                          | 🛠️        | 🛠️             | 🚫                 | ✅             | 🚫                       | 🚫               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Demosaicing                                 | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Chromatic Aberration Correction (CAC)       | 🛠️        | 🛠️             | 🚫                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Sharpening                                  | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Chroma Noise Reduction                      | 🚫        | 🚫             | ✅                 | ✅             | ❓                       | ❓               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | 3D Noise Filtering                          | 🚫        | 🚫             | 🚫                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Color Correction Matrix (CCM)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Global Tone Mapping                         | 🛠️        | 🛠️             | ✅                 | ✅             | ✅                       | 🛠️               | ❓                   |\n\nThis works on i.MX8MP. I don't know if/how well that works on RK3399 due\nto missing compand. So I'd only mark it green for the imx8mp. \n\nDo we really have WDR support on Mali and IPU3?\n\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Gamma Correction                            | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Color Space Conversion                      | ✅        | ✅             | ✅                 | ✅             | ❓                       | ❓               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Image Stabilization                         | 🛠️        | 🛠️             | ❓                 | ❓             | ❓                       | ❓               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Scaling                                     | ✅        | ✅             | ✅                 | ✅             | ❓                       | ✅               | ✅                   |\n\nShould we name that Downscaling?\n\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Multi-context                               | 🚫        | 🚫             | 🛠️                 | 🛠️             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +\n\nI realized the order is a bit arbitrary, on the other hand it is\ndifficult to order that in a sensible waay.\n\nAs you already mentioned, we can add on top.\n\nSo with the compand and Global Tone Mapping fixed:\nReviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> \n\nCheers,\nStefan\n\n> +\n> +.. note::\n> +\n> +    **\\*** Based on the ARM's Mali C55 ISP, therefore easily extendable to\n> +    other SoCs that integrate that ISP\n> +\n> +    **\\*\\*** CPU-based image processing, therefore easily extendable to any\n> +    platform. Currently the following are supported:\n> +\n> +    * Intel 11th-14th Gen (IPU6)\n> +    * Intel 15th Gen (IPU7)\n> +    * Texas Instruments J7x/AM6x\n> +    * Qualcomm Snapdragon (CamSS)\n> +\n> +Status Definitions\n> +------------------\n> +\n> +✅ **Supported**\n> +    Feature is fully implemented and working in libcamera.\n> +\n> +🛠️ **Needs Development**\n> +    Feature is planned or being developed and may have partial or no\n> +    functionality.\n> +\n> +🚫 **No Hardware**\n> +    The underlying hardware does not support this feature.\n> +\n> +❓ **Unknown**\n> +    Support status is unclear or has not been determined yet.\n> +\n> +Contributing\n> +------------\n> +\n> +This feature matrix is maintained by the libcamera community and is updated as\n> +new features are implemented or new platforms are supported.\n> +\n> +**Updating the Matrix**\n> +    When adding support for a new ISP feature or platform (SoC), please update\n> +    this matrix as part of the same patch or series. Ensure that the feature\n> +    support status for all relevant platforms reflects the changes introduced.\n> +\n> +**Reporting Updates**\n> +    If you notice any inaccuracies or outdated information in this matrix,\n> +    please open an issue or submit a patch. Refer to the contributing\n> +    guidelines in the :doc:`contributing` guide.\n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index fe53ebcf..a84304dd 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -164,6 +164,7 @@ if sphinx.found()\n>          'index.rst',\n>          'internal-api/index.rst',\n>          'introduction.rst',\n> +        'isp-feature-matrix.rst',\n>          'lens_driver_requirements.rst',\n>          'libcamera_architecture.rst',\n>          'mali-c55.dot',\n> --\n> 2.51.1\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 A244FC3260\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 26 Nov 2025 12:37:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 91FC060A9E;\n\tWed, 26 Nov 2025 13:37:11 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A14C4606D5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 26 Nov 2025 13:37:10 +0100 (CET)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:fc3c:db18:cfbc:492e])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id B7C536DC;\n\tWed, 26 Nov 2025 13:35:00 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"t0u9CdZP\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1764160500;\n\tbh=dhJJPbBa+C20TqwN/adlGTHJL3drwT/UTmTb7Ni67hk=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=t0u9CdZP0MGuz5EArCtMpMt9AAxy8DWHoz8BQJ+NKWNJYp9z5fdGKlabrVvOTVB4Z\n\tPD2aPH+eFiuO+6Hlxw8HLYc7QXoK1QRD4Z5bgP6Yanvx/xJ0IrBCp1FlvZXm1b01RS\n\takep5mOy3PcwhISYRtayVoJm6kquKB2F2VGDkjuI=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20251126114142.2149751-1-jai.luthra@ideasonboard.com>","References":"<20251126114142.2149751-1-jai.luthra@ideasonboard.com>","Subject":"Re: [PATCH v3] Documentation: Add ISP feature support matrix","From":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"Jai Luthra <jai.luthra@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","To":"Jai Luthra <jai.luthra@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Wed, 26 Nov 2025 13:37:06 +0100","Message-ID":"<176416062682.2903327.2968464468598365003@localhost>","User-Agent":"alot/0.12.dev8+g2c003385c862.d20250602","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":37079,"web_url":"https://patchwork.libcamera.org/comment/37079/","msgid":"<acbcdc66-6d9a-49af-8ca6-3fdf47b651fd@ideasonboard.com>","date":"2025-11-26T15:33:57","subject":"Re: [PATCH v3] Documentation: Add ISP feature support matrix","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"Hi Jai, thanks for this patch\n\nOn 26/11/2025 11:41, Jai Luthra wrote:\n> Add a new living document presenting a matrix of image processing\n> feature support across all currently supported platforms in libcamera.\n> \n> This will hopefuly help in answering questions like is HDR supported\n> with Software ISP or is Auto Focus supported on Raspberry Pi?\n> \n> This matrix will be regularly updated as new features and platforms are\n> added.\n> \n> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>\n> ---\n> Changes since v2:\n> - Add Kieran's Ack\n> - Fix stray \"=\"\n> - Split RkISP1 into i.MX8MP and RK3399/3288 as they support slightly different\n> features\n> - Modify the platform names in the table, and add a note just below the table,\n> also dropping the platform notes section later.\n> - Link to v2: https://patchwork.libcamera.org/patch/25156/\n> ---\n>   Documentation/index.rst              |   1 +\n>   Documentation/isp-feature-matrix.rst | 103 +++++++++++++++++++++++++++\n>   Documentation/meson.build            |   1 +\n>   3 files changed, 105 insertions(+)\n>   create mode 100644 Documentation/isp-feature-matrix.rst\n> \n> diff --git a/Documentation/index.rst b/Documentation/index.rst\n> index febd4e13..a74b8668 100644\n> --- a/Documentation/index.rst\n> +++ b/Documentation/index.rst\n> @@ -9,6 +9,7 @@\n>      Introduction <self>\n>      Feature Requirements <feature_requirements>\n>      Runtime configuration <runtime_configuration>\n> +   ISP feature support matrix <isp-feature-matrix>\n>      Application Writer's Guide <guides/application-developer>\n>      Python Bindings <python-bindings>\n>      Public API <public-api/index>\n> diff --git a/Documentation/isp-feature-matrix.rst b/Documentation/isp-feature-matrix.rst\n> new file mode 100644\n> index 00000000..76eb9dbc\n> --- /dev/null\n> +++ b/Documentation/isp-feature-matrix.rst\n> @@ -0,0 +1,103 @@\n> +.. SPDX-License-Identifier: CC-BY-SA-4.0\n> +\n> +libcamera ISP Feature Support Matrix\n> +====================================\n> +\n> +The following table shows the current status of ISP feature support across\n> +different platforms in libcamera.printf(\"%s: %s() : %lu\\n\", __FILE__, __func__, __LINE__);\n> +\n> +.. table:: ISP Feature Support by Platform\n> +\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Feature                                     | i.MX8MP   | RK3399, RK3288 | Raspberry Pi 4     | Raspberry Pi 5 | Intel 6th/7th Gen (IPU3) | Renesas V2H/V2N* | Software ISP (CPU)** |\n> +   +=============================================+===========+================+====================+================+==========================+==================+======================+\n> +   | Auto Gain Control Stats (AGC)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Auto Focus (AF)                             | 🛠️ (CDAF) | 🛠️ (CDAF)      | ✅ (CDAF/PDAF)     | ✅ (CDAF/PDAF) | ✅ (CDAF)                | 🚫               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n\nThe C55 ISP in the V2H / V2N generates statistics designed for auto-focus algorithms to consume, \nthough we haven't implemented that in libcamera...I would mark that as \"Needs Development\"\n\n> +   | HDR Stitching                               | ✅        | 🚫             | ✅ (Software only) | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Companding                                  | ✅        | ✅             | 🚫                 | ✅             | ❓                       | ❓               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n\nLikewise there's a companding / decompanding block that we just don't drive yet, but I think that \nprobably should be \"Needs Development\" too.\n\n\n> +   | Black Level Subtraction (BLS)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Lens Shading Correction (LSC)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Auto Whitebalance (AWB)                     | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Defective Pixel Correction (DPC)            | ✅        | ✅             | ✅                 | ✅             | 🚫                       | ✅               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | 2D Noise Filtering                          | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Local Tone Mapping                          | 🛠️        | 🛠️             | 🚫                 | ✅             | 🚫                       | 🚫               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n\nAnd same for Local Tone Mapping\n\n> +   | Demosaicing                                 | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Chromatic Aberration Correction (CAC)       | 🛠️        | 🛠️             | 🚫                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Sharpening                                  | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Chroma Noise Reduction                      | 🚫        | 🚫             | ✅                 | ✅             | ❓                       | ❓               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | 3D Noise Filtering                          | 🚫        | 🚫             | 🚫                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Color Correction Matrix (CCM)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Global Tone Mapping                         | 🛠️        | 🛠️             | ✅                 | ✅             | ✅                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Gamma Correction                            | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Color Space Conversion                      | ✅        | ✅             | ✅                 | ✅             | ❓                       | ❓               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n\nWhat's needed here? Just RGB -> YUV? If so, that's implemented.\n\nThanks\nDan\n\n> +   | Image Stabilization                         | 🛠️        | 🛠️             | ❓                 | ❓             | ❓                       | ❓               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Scaling                                     | ✅        | ✅             | ✅                 | ✅             | ❓                       | ✅               | ✅                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +   | Multi-context                               | 🚫        | 🚫             | 🛠️                 | 🛠️             | ❓                       | 🛠️               | ❓                   |\n> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> +\n> +\n> +.. note::\n> +\n> +    **\\*** Based on the ARM's Mali C55 ISP, therefore easily extendable to\n> +    other SoCs that integrate that ISP\n> +\n> +    **\\*\\*** CPU-based image processing, therefore easily extendable to any\n> +    platform. Currently the following are supported:\n> +\n> +    * Intel 11th-14th Gen (IPU6)\n> +    * Intel 15th Gen (IPU7)\n> +    * Texas Instruments J7x/AM6x\n> +    * Qualcomm Snapdragon (CamSS)\n> +\n> +Status Definitions\n> +------------------\n> +\n> +✅ **Supported**\n> +    Feature is fully implemented and working in libcamera.\n> +\n> +🛠️ **Needs Development**\n> +    Feature is planned or being developed and may have partial or no\n> +    functionality.\n> +\n> +🚫 **No Hardware**\n> +    The underlying hardware does not support this feature.\n> +\n> +❓ **Unknown**\n> +    Support status is unclear or has not been determined yet.\n> +\n> +Contributing\n> +------------\n> +\n> +This feature matrix is maintained by the libcamera community and is updated as\n> +new features are implemented or new platforms are supported.\n> +\n> +**Updating the Matrix**\n> +    When adding support for a new ISP feature or platform (SoC), please update\n> +    this matrix as part of the same patch or series. Ensure that the feature\n> +    support status for all relevant platforms reflects the changes introduced.\n> +\n> +**Reporting Updates**\n> +    If you notice any inaccuracies or outdated information in this matrix,\n> +    please open an issue or submit a patch. Refer to the contributing\n> +    guidelines in the :doc:`contributing` guide.\n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index fe53ebcf..a84304dd 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -164,6 +164,7 @@ if sphinx.found()\n>           'index.rst',\n>           'internal-api/index.rst',\n>           'introduction.rst',\n> +        'isp-feature-matrix.rst',\n>           'lens_driver_requirements.rst',\n>           'libcamera_architecture.rst',\n>           'mali-c55.dot',\n> --\n> 2.51.1\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 5CB15C0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 26 Nov 2025 15:34:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3146E60A9E;\n\tWed, 26 Nov 2025 16:34:02 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1B483606D5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 26 Nov 2025 16:34:01 +0100 (CET)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A699F10D4;\n\tWed, 26 Nov 2025 16:31:50 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"t8einS7o\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1764171110;\n\tbh=1+twUPhFgorT+gjXomCS/xaK6HKGXWIkPwrcpsVO5wI=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=t8einS7oylKEuPazopYaZmPNdYH4KQVkoxV4TEVN5GUeJ1up/jqyZEYeBgNIoVSAG\n\tPRtswScj4RpBRlI46ixzH3MUQnboiT/eh+S8OAYIBFUiAP8+cwgpDMMUxCQQOwzU/t\n\tVOt0QI557e4JrqVxBbpoIYLPRsP9miDmHdZuWk0E=","Message-ID":"<acbcdc66-6d9a-49af-8ca6-3fdf47b651fd@ideasonboard.com>","Date":"Wed, 26 Nov 2025 15:33:57 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3] Documentation: Add ISP feature support matrix","To":"Jai Luthra <jai.luthra@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20251126114142.2149751-1-jai.luthra@ideasonboard.com>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","In-Reply-To":"<20251126114142.2149751-1-jai.luthra@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":37155,"web_url":"https://patchwork.libcamera.org/comment/37155/","msgid":"<176466402493.1636185.9427679895128070559@freya>","date":"2025-12-02T08:27:04","subject":"Re: [PATCH v3] Documentation: Add ISP feature support matrix","submitter":{"id":223,"url":"https://patchwork.libcamera.org/api/people/223/","name":"Jai Luthra","email":"jai.luthra@ideasonboard.com"},"content":"Hi Stefan,\n\nQuoting Stefan Klug (2025-11-26 18:07:06)\n> Hi Jai,\n> \n> Quoting Jai Luthra (2025-11-26 12:41:41)\n> > Add a new living document presenting a matrix of image processing\n> > feature support across all currently supported platforms in libcamera.\n> > \n> > This will hopefuly help in answering questions like is HDR supported\n> > with Software ISP or is Auto Focus supported on Raspberry Pi?\n> > \n> > This matrix will be regularly updated as new features and platforms are\n> > added.\n> > \n> > Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>\n> > ---\n> > Changes since v2:\n> > - Add Kieran's Ack\n> > - Fix stray \"=\"\n> > - Split RkISP1 into i.MX8MP and RK3399/3288 as they support slightly different\n> > features\n> > - Modify the platform names in the table, and add a note just below the table,\n> > also dropping the platform notes section later.\n> > - Link to v2: https://patchwork.libcamera.org/patch/25156/\n> > ---\n> >  Documentation/index.rst              |   1 +\n> >  Documentation/isp-feature-matrix.rst | 103 +++++++++++++++++++++++++++\n> >  Documentation/meson.build            |   1 +\n> >  3 files changed, 105 insertions(+)\n> >  create mode 100644 Documentation/isp-feature-matrix.rst\n> > \n> > diff --git a/Documentation/index.rst b/Documentation/index.rst\n> > index febd4e13..a74b8668 100644\n> > --- a/Documentation/index.rst\n> > +++ b/Documentation/index.rst\n> > @@ -9,6 +9,7 @@\n> >     Introduction <self>\n> >     Feature Requirements <feature_requirements>\n> >     Runtime configuration <runtime_configuration>\n> > +   ISP feature support matrix <isp-feature-matrix>\n> >     Application Writer's Guide <guides/application-developer>\n> >     Python Bindings <python-bindings>\n> >     Public API <public-api/index>\n> > diff --git a/Documentation/isp-feature-matrix.rst b/Documentation/isp-feature-matrix.rst\n> > new file mode 100644\n> > index 00000000..76eb9dbc\n> > --- /dev/null\n> > +++ b/Documentation/isp-feature-matrix.rst\n> > @@ -0,0 +1,103 @@\n> > +.. SPDX-License-Identifier: CC-BY-SA-4.0\n> > +\n> > +libcamera ISP Feature Support Matrix\n> > +====================================\n> > +\n> > +The following table shows the current status of ISP feature support across\n> > +different platforms in libcamera.\n> > +\n> > +.. table:: ISP Feature Support by Platform\n> > +\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Feature                                     | i.MX8MP   | RK3399, RK3288 | Raspberry Pi 4     | Raspberry Pi 5 | Intel 6th/7th Gen (IPU3) | Renesas V2H/V2N* | Software ISP (CPU)** |\n> > +   +=============================================+===========+================+====================+================+==========================+==================+======================+\n> > +   | Auto Gain Control Stats (AGC)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Auto Focus (AF)                             | 🛠️ (CDAF) | 🛠️ (CDAF)      | ✅ (CDAF/PDAF)     | ✅ (CDAF/PDAF) | ✅ (CDAF)                | 🚫               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | HDR Stitching                               | ✅        | 🚫             | ✅ (Software only) | ✅             | ❓                       | 🛠️               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Companding                                  | ✅        | ✅             | 🚫                 | ✅             | ❓                       | ❓               | ❓                   |\n> \n> Companding is not supported in the Rkxxxx due to missing hardware.\n> \n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Black Level Subtraction (BLS)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Lens Shading Correction (LSC)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Auto Whitebalance (AWB)                     | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Defective Pixel Correction (DPC)            | ✅        | ✅             | ✅                 | ✅             | 🚫                       | ✅               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | 2D Noise Filtering                          | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Local Tone Mapping                          | 🛠️        | 🛠️             | 🚫                 | ✅             | 🚫                       | 🚫               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Demosaicing                                 | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Chromatic Aberration Correction (CAC)       | 🛠️        | 🛠️             | 🚫                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Sharpening                                  | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Chroma Noise Reduction                      | 🚫        | 🚫             | ✅                 | ✅             | ❓                       | ❓               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | 3D Noise Filtering                          | 🚫        | 🚫             | 🚫                 | ✅             | ❓                       | 🛠️               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Color Correction Matrix (CCM)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Global Tone Mapping                         | 🛠️        | 🛠️             | ✅                 | ✅             | ✅                       | 🛠️               | ❓                   |\n> \n> This works on i.MX8MP. I don't know if/how well that works on RK3399 due\n> to missing compand. So I'd only mark it green for the imx8mp. \n> \n> Do we really have WDR support on Mali and IPU3?\n> \n\nMali C55 is listed as Needs Development, maybe Dan can confirm if the\nhardware really supports it or not?\n\nFor IPU3, while populating this table IIRC I glanced at the src/ipa/ipu3\ndirectory and saw tone_mapping.cpp\n\nBut looking at it again, I see it is used to do gamma correction for a\n(currently) hardcoded gamma value of 1.1. I don't know if it would be\npossible to use the same LUT hardware block to also support WDR.\n\nSo for IPU3 I will mark Global Tone Mapping as \"❓\" in next revision, and\nGamma Correction below as \"🛠️\", unless someone knows better of course.\n\n\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Gamma Correction                            | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ✅                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Color Space Conversion                      | ✅        | ✅             | ✅                 | ✅             | ❓                       | ❓               | ✅                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Image Stabilization                         | 🛠️        | 🛠️             | ❓                 | ❓             | ❓                       | ❓               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Scaling                                     | ✅        | ✅             | ✅                 | ✅             | ❓                       | ✅               | ✅                   |\n> \n> Should we name that Downscaling?\n\nWill do.\n\n> \n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +   | Multi-context                               | 🚫        | 🚫             | 🛠️                 | 🛠️             | ❓                       | 🛠️               | ❓                   |\n> > +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n> > +\n> \n> I realized the order is a bit arbitrary, on the other hand it is\n> difficult to order that in a sensible waay.\n> \n> As you already mentioned, we can add on top.\n> \n> So with the compand and Global Tone Mapping fixed:\n> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> \n\nThanks for the review,\n       Jai\n> \n> Cheers,\n> Stefan\n\n[snip]","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 8BF4DC3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  2 Dec 2025 08:27:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BFCB460C71;\n\tTue,  2 Dec 2025 09:27:12 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0DC91609E0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Dec 2025 09:27:11 +0100 (CET)","from mail.ideasonboard.com (unknown\n\t[IPv6:2401:4900:1c30:14e0:17fd:e3c6:810:1656])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9B320B5;\n\tTue,  2 Dec 2025 09:24:56 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"uTGV1Vq0\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1764663897;\n\tbh=gWE7OKlh+1BNpEqxn4dFrTR4fDgvvlW6aNIV6I14Epo=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=uTGV1Vq0iC8t0Sdsgc8mOPg0IilJgfy0kIuYVJsRiAD3uHaibHW4cPmJ+GzFO6NMG\n\t8mwgiDBEzKUSzlev3hes7dDEETEDnom01vT/+2ppvb3H69v6RFJvr0t6fOraRinHg7\n\tk/5jFrNDfnTJ/gr4hmHxt4gvYhi61Cw6LMmJosLk=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<176416062682.2903327.2968464468598365003@localhost>","References":"<20251126114142.2149751-1-jai.luthra@ideasonboard.com>\n\t<176416062682.2903327.2968464468598365003@localhost>","Subject":"Re: [PATCH v3] Documentation: Add ISP feature support matrix","From":"Jai Luthra <jai.luthra@ideasonboard.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tDan Scally <dan.scally@ideasonboard.com>","Date":"Tue, 02 Dec 2025 13:57:04 +0530","Message-ID":"<176466402493.1636185.9427679895128070559@freya>","User-Agent":"alot/0.12.dev62+gb9d6144a6","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":37157,"web_url":"https://patchwork.libcamera.org/comment/37157/","msgid":"<af306e0e-9d02-46ce-80ec-6ccda3b3bf04@ideasonboard.com>","date":"2025-12-02T09:29:20","subject":"Re: [PATCH v3] Documentation: Add ISP feature support matrix","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"Hi Jai, Stefan\n\nOn 02/12/2025 08:27, Jai Luthra wrote:\n> Hi Stefan,\n> \n> Quoting Stefan Klug (2025-11-26 18:07:06)\n>> Hi Jai,\n>>\n>> Quoting Jai Luthra (2025-11-26 12:41:41)\n>>> Add a new living document presenting a matrix of image processing\n>>> feature support across all currently supported platforms in libcamera.\n>>>\n>>> This will hopefuly help in answering questions like is HDR supported\n>>> with Software ISP or is Auto Focus supported on Raspberry Pi?\n>>>\n>>> This matrix will be regularly updated as new features and platforms are\n>>> added.\n>>>\n>>> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>> Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>\n>>> ---\n>>> Changes since v2:\n>>> - Add Kieran's Ack\n>>> - Fix stray \"=\"\n>>> - Split RkISP1 into i.MX8MP and RK3399/3288 as they support slightly different\n>>> features\n>>> - Modify the platform names in the table, and add a note just below the table,\n>>> also dropping the platform notes section later.\n>>> - Link to v2: https://patchwork.libcamera.org/patch/25156/\n>>> ---\n>>>   Documentation/index.rst              |   1 +\n>>>   Documentation/isp-feature-matrix.rst | 103 +++++++++++++++++++++++++++\n>>>   Documentation/meson.build            |   1 +\n>>>   3 files changed, 105 insertions(+)\n>>>   create mode 100644 Documentation/isp-feature-matrix.rst\n>>>\n>>> diff --git a/Documentation/index.rst b/Documentation/index.rst\n>>> index febd4e13..a74b8668 100644\n>>> --- a/Documentation/index.rst\n>>> +++ b/Documentation/index.rst\n>>> @@ -9,6 +9,7 @@\n>>>      Introduction <self>\n>>>      Feature Requirements <feature_requirements>\n>>>      Runtime configuration <runtime_configuration>\n>>> +   ISP feature support matrix <isp-feature-matrix>\n>>>      Application Writer's Guide <guides/application-developer>\n>>>      Python Bindings <python-bindings>\n>>>      Public API <public-api/index>\n>>> diff --git a/Documentation/isp-feature-matrix.rst b/Documentation/isp-feature-matrix.rst\n>>> new file mode 100644\n>>> index 00000000..76eb9dbc\n>>> --- /dev/null\n>>> +++ b/Documentation/isp-feature-matrix.rst\n>>> @@ -0,0 +1,103 @@\n>>> +.. SPDX-License-Identifier: CC-BY-SA-4.0\n>>> +\n>>> +libcamera ISP Feature Support Matrix\n>>> +====================================\n>>> +\n>>> +The following table shows the current status of ISP feature support across\n>>> +different platforms in libcamera.\n>>> +\n>>> +.. table:: ISP Feature Support by Platform\n>>> +\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Feature                                     | i.MX8MP   | RK3399, RK3288 | Raspberry Pi 4     | Raspberry Pi 5 | Intel 6th/7th Gen (IPU3) | Renesas V2H/V2N* | Software ISP (CPU)** |\n>>> +   +=============================================+===========+================+====================+================+==========================+==================+======================+\n>>> +   | Auto Gain Control Stats (AGC)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Auto Focus (AF)                             | 🛠️ (CDAF) | 🛠️ (CDAF)      | ✅ (CDAF/PDAF)     | ✅ (CDAF/PDAF) | ✅ (CDAF)                | 🚫               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | HDR Stitching                               | ✅        | 🚫             | ✅ (Software only) | ✅             | ❓                       | 🛠️               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Companding                                  | ✅        | ✅             | 🚫                 | ✅             | ❓                       | ❓               | ❓                   |\n>>\n>> Companding is not supported in the Rkxxxx due to missing hardware.\n>>\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Black Level Subtraction (BLS)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Lens Shading Correction (LSC)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Auto Whitebalance (AWB)                     | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Defective Pixel Correction (DPC)            | ✅        | ✅             | ✅                 | ✅             | 🚫                       | ✅               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | 2D Noise Filtering                          | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Local Tone Mapping                          | 🛠️        | 🛠️             | 🚫                 | ✅             | 🚫                       | 🚫               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Demosaicing                                 | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Chromatic Aberration Correction (CAC)       | 🛠️        | 🛠️             | 🚫                 | ✅             | ❓                       | 🛠️               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Sharpening                                  | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Chroma Noise Reduction                      | 🚫        | 🚫             | ✅                 | ✅             | ❓                       | ❓               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | 3D Noise Filtering                          | 🚫        | 🚫             | 🚫                 | ✅             | ❓                       | 🛠️               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Color Correction Matrix (CCM)               | ✅        | ✅             | ✅                 | ✅             | ✅                       | ✅               | ✅                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Global Tone Mapping                         | 🛠️        | 🛠️             | ✅                 | ✅             | ✅                       | 🛠️               | ❓                   |\n>>\n>> This works on i.MX8MP. I don't know if/how well that works on RK3399 due\n>> to missing compand. So I'd only mark it green for the imx8mp.\n>>\n>> Do we really have WDR support on Mali and IPU3?\n>>\n> \n> Mali C55 is listed as Needs Development, maybe Dan can confirm if the\n> hardware really supports it or not?\n\nThe documentation certainly says that it supports it.\n\nThanks\nDan\n\n> \n> For IPU3, while populating this table IIRC I glanced at the src/ipa/ipu3\n> directory and saw tone_mapping.cpp\n> \n> But looking at it again, I see it is used to do gamma correction for a\n> (currently) hardcoded gamma value of 1.1. I don't know if it would be\n> possible to use the same LUT hardware block to also support WDR.\n> \n> So for IPU3 I will mark Global Tone Mapping as \"❓\" in next revision, and\n> Gamma Correction below as \"🛠️\", unless someone knows better of course.\n> \n> \n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Gamma Correction                            | ✅        | ✅             | ✅                 | ✅             | ❓                       | 🛠️               | ✅                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Color Space Conversion                      | ✅        | ✅             | ✅                 | ✅             | ❓                       | ❓               | ✅                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Image Stabilization                         | 🛠️        | 🛠️             | ❓                 | ❓             | ❓                       | ❓               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Scaling                                     | ✅        | ✅             | ✅                 | ✅             | ❓                       | ✅               | ✅                   |\n>>\n>> Should we name that Downscaling?\n> \n> Will do.\n> \n>>\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +   | Multi-context                               | 🚫        | 🚫             | 🛠️                 | 🛠️             | ❓                       | 🛠️               | ❓                   |\n>>> +   +---------------------------------------------+-----------+----------------+--------------------+----------------+--------------------------+------------------+----------------------+\n>>> +\n>>\n>> I realized the order is a bit arbitrary, on the other hand it is\n>> difficult to order that in a sensible waay.\n>>\n>> As you already mentioned, we can add on top.\n>>\n>> So with the compand and Global Tone Mapping fixed:\n>> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> \n> Thanks for the review,\n>         Jai\n>>\n>> Cheers,\n>> Stefan\n> \n> [snip]\nThank","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 8A3E4C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  2 Dec 2025 09:29:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8467860C75;\n\tTue,  2 Dec 2025 10:29:26 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B9545609E0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Dec 2025 10:29:24 +0100 (CET)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B21BCA06;\n\tTue,  2 Dec 2025 10:27:10 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"WYcilvzV\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1764667630;\n\tbh=cNfCikSzV5s/FfuPk/lp7J90PrzU3Wt6UvyGeojYza0=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=WYcilvzVA00SP/MK62yKGD5k70LIOcdMMwBtg7Sh4CNyyRv2Y8Xo/PT4V/dcwfDJ5\n\tjL4yRxaGX3zgOmdEqLQtlJs9QjFVeU/0dERn1awBKjCgf+TVGwDpAlCQ5rETO+dYWW\n\t0XELv+ywy6buwfUWj6E/GLqS3f8OyMziy44WLGm4=","Message-ID":"<af306e0e-9d02-46ce-80ec-6ccda3b3bf04@ideasonboard.com>","Date":"Tue, 2 Dec 2025 09:29:20 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3] Documentation: Add ISP feature support matrix","To":"Jai Luthra <jai.luthra@ideasonboard.com>,\n\tStefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20251126114142.2149751-1-jai.luthra@ideasonboard.com>\n\t<176416062682.2903327.2968464468598365003@localhost>\n\t<176466402493.1636185.9427679895128070559@freya>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","In-Reply-To":"<176466402493.1636185.9427679895128070559@freya>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]