Show a cover letter.

GET /api/1.1/covers/14469/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 14469,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/14469/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/14469/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20211108131350.130665-1-jeanmichel.hautbois@ideasonboard.com>",
    "date": "2021-11-08T13:13:28",
    "name": "[libcamera-devel,00/22] IPA: IPU3: Introduce per-frame controls",
    "submitter": {
        "id": 75,
        "url": "https://patchwork.libcamera.org/api/1.1/people/75/?format=api",
        "name": "Jean-Michel Hautbois",
        "email": "jeanmichel.hautbois@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/14469/mbox/",
    "series": [
        {
            "id": 2696,
            "url": "https://patchwork.libcamera.org/api/1.1/series/2696/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2696",
            "date": "2021-11-08T13:13:28",
            "name": "IPA: IPU3: Introduce per-frame controls",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/2696/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/14469/comments/",
    "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 3E5D3BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Nov 2021 13:14:02 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D27136034D;\n\tMon,  8 Nov 2021 14:14:01 +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 8F7736032C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Nov 2021 14:13:59 +0100 (CET)",
            "from tatooine.ideasonboard.com (unknown\n\t[IPv6:2a01:e0a:169:7140:c2bb:76d0:68d7:a9a5])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 33427110E;\n\tMon,  8 Nov 2021 14:13:59 +0100 (CET)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"NMK4dmRp\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1636377239;\n\tbh=4mz/djZr3QNMMAhU39cE2IIcw0f0kRPijy68FcPO/zY=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=NMK4dmRpdrYbh9ZKWMpu8mTpoac5p599KpWyTO7U1j9s4IM07eLVG/PxbW6XvsW/8\n\twS8nsEX+8oojfRmN10lmoitZc+1FeCl9tgCm/vL84dM0NYR7M05F/mSzt7L3m/zZ3C\n\tuE2yjYKEQoqtr+a3m2NNw2lrGadfgjoUfmaoYcHM=",
        "From": "Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Mon,  8 Nov 2021 14:13:28 +0100",
        "Message-Id": "<20211108131350.130665-1-jeanmichel.hautbois@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.32.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH 00/22] IPA: IPU3: Introduce per-frame\n\tcontrols",
        "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>"
    },
    "content": "Hello,\n\nThis patch series is not only introducing per-frame controls, it also\nimproves the AGC in some difficult cases (saturated scenes, backlight,\netc.) thanks to the possibility to use the effective exposure and gains\nvalues for a given frame.\n\nThe first two patches 1/22 and 2/22 are Han-Lin Chan series, splitted to\nkeep only the sensor controls part. I have modified the first patch to\nremove the lens controls references, and another series containing only\nthe lens controls should be sent separately as it requires a bit more\nreview. Han-Lin, I hope you are ok with this plan :-) ?\n\nNext, from patches 3/22 to 9/22 we use those sensor controls as input\nwhen a EventStatReady event is received, by updating the frameContext\nvalues. With those values, we can be better at estimating the exposure\nvalue, and we introduce a brightness measure to have a better behaviour\nin saturated cases.\n\nPatches 10/22 to 18/22 are the per-frame control usage. Instead of using\nthe current input frame value, we populate a frameContext queue which is\nintroduced in patch 14/22 giving the ability to know the values in a\nrequest lifetime. In order to not break the previous usage of\nEventStatReady to pass the sensor controls, we keep those in the\npipeline handler.\n\nPatches 19/22 to 22/22 are here to improve the per-frame control updates\nby the IPA, introducing the colour temperature control, and updating the\nExposureTime and AnalogueGain controls.\n\nHan-Lin Chen (2):\n  ipa: ipu3: Extend ipu3 ipa interface for sensor controls\n  ipu3: ipa: Report effective sensor controls with statistics to IPA\n\nJean-Michel Hautbois (20):\n  ipa: ipu3: Use sensor controls to update frameContext\n  ipa: ipu3: agc: Limit the number of saturated cells\n  ipa: ipu3: agc: Compute the gain for each frame\n  ipa: ipu3: agc: Refactor ev gain calculation and testing\n  ipa: ipu3: agc: Improve gain calculation\n  ipa: ipu3: agc: Update previous exposure value\n  ipa: ipu3: agc: Use exposure in time for storage\n  ipu3: Move delayedControls reset after IPA is started\n  ipu3: Populate the EventProcessCall with the sensor controls\n  ipa: ipu3: Introduce a frame index for the IPAFrameContext\n  ipa: ipu3: Do not access IPAFrameContext in configure\n  ipa: ipu3: Introduce a queue of IPAFrameContext\n  ipa: ipu3: Mark the beginning and and of a frame\n  ipa: ipu3: Introduce sensor controls\n  ipa: ipu3: Use a IPAFrameContext pointer from the per-frame queue\n  ipa: ipu3: Move the sensor update controls\n  ipa: ipu3: awb: Add support for color temperature\n  ipa: ipu3: Send color temperature in the metadata\n  ipa: ipu3: Move ExposureTime to IPA\n  ipa: ipu3: Pass the AnalogueGain control\n\n include/libcamera/ipa/ipu3.mojom         |   2 +\n src/ipa/ipu3/algorithms/agc.cpp          | 161 +++++++++++++++--------\n src/ipa/ipu3/algorithms/agc.h            |  10 +-\n src/ipa/ipu3/algorithms/awb.cpp          |  15 ++-\n src/ipa/ipu3/algorithms/tone_mapping.cpp |  13 +-\n src/ipa/ipu3/ipa_context.cpp             |   8 ++\n src/ipa/ipu3/ipa_context.h               |   6 +-\n src/ipa/ipu3/ipu3.cpp                    | 101 ++++++++++++--\n src/libcamera/pipeline/ipu3/frames.h     |   3 +\n src/libcamera/pipeline/ipu3/ipu3.cpp     |  14 +-\n 10 files changed, 247 insertions(+), 86 deletions(-)"
}