Show a cover letter.

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

{
    "id": 18924,
    "url": "https://patchwork.libcamera.org/api/covers/18924/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/18924/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/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": "<20230806180136.304156-1-andrey.konovalov@linaro.org>",
    "date": "2023-08-06T18:01:34",
    "name": "[libcamera-devel,RFC,0/2] libcamera: converter: introduce software converter for debayering and AWB",
    "submitter": {
        "id": 25,
        "url": "https://patchwork.libcamera.org/api/people/25/?format=api",
        "name": "Andrey Konovalov",
        "email": "andrey.konovalov@linaro.org"
    },
    "mbox": "https://patchwork.libcamera.org/cover/18924/mbox/",
    "series": [
        {
            "id": 4001,
            "url": "https://patchwork.libcamera.org/api/series/4001/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4001",
            "date": "2023-08-06T18:01:34",
            "name": "libcamera: converter: introduce software converter for debayering and AWB",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/4001/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/18924/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 A0510BDCBF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun,  6 Aug 2023 18:02:00 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C5FA2627E6;\n\tSun,  6 Aug 2023 20:01:59 +0200 (CEST)",
            "from mail-lj1-x233.google.com (mail-lj1-x233.google.com\n\t[IPv6:2a00:1450:4864:20::233])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1C2D0627E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  6 Aug 2023 20:01:58 +0200 (CEST)",
            "by mail-lj1-x233.google.com with SMTP id\n\t38308e7fff4ca-2b9fa64db41so58958901fa.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 06 Aug 2023 11:01:58 -0700 (PDT)",
            "from Lat-5310.. ([87.116.165.37]) by smtp.gmail.com with ESMTPSA id\n\tj15-20020a170906430f00b0099b76c3041csm4197396ejm.7.2023.08.06.11.01.56\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSun, 06 Aug 2023 11:01:56 -0700 (PDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1691344919;\n\tbh=bXhdGAzK5/u0CPijq690ikFSLXps+DtU9PV6eLGaICQ=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:Cc:From;\n\tb=Pkcbmly4ejBZC+VrGEZEiUcaa52YcSlqmnWl1ljCWMYP6VSLq4q4+FlkCEK/7FiG+\n\talg4uec3REJSdw+cQXRw+bnZpeyH+F/ESnq+jwnTeu6n8nCZ1KLps18A+rzurD2ry7\n\tdXnM3eVngyp1I0FFwEKut5aBbYSJRmHFPW/TJdZfsbNaNuafjt/3JBxLimGY5vi5Cb\n\tt5zvH0lq+4n4kiMZdvxdDixY+wceEQ1/aajk2miegtobjDZGpxDCrnqNm+VkO7o+K1\n\tpmyK5F8moxJw+50OfR7amvQaqecyrOxEWPm7hpRX1Rk5Th1LNwM/zXhHU/M2D5epTU\n\tHGEgFxGr46Rrw==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1691344917; x=1691949717;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=QFQaIPxsNHI8LxtDb9sN70kRx69T/QGqvHCcG/5ZTmI=;\n\tb=TOzhPymIHT59Xs0MuOg3B+qye2V7Fl8vnrBputvKX+fSO1grK6LdhvtHqotuWBZg2h\n\t/7/9g+9uMaw5zfzVGr9ZxUT/nDwBZmUoM+8KZs5VaXwlXrlw6rmzqh9NxbptEQaiMCNF\n\tRlrbydAdeppOJMMPHqEtP/hP9X1pB54bNhjALBUnzED+Av5Nr0JbVXyP9X0UEyIJhnab\n\tK5Gs2tQwKP4HeZ2gMzZVP8uCenzFDb5H8E7pZhHjnlh0CDuDDqBIE+nTn89vRsRISvcT\n\t9eQ1lQVXEe1Id9bOs5DtQOLNh7c4F1cq7kdBl2Ct0BnTUcnWs758X3shl9z4fOoEjctU\n\twC8A=="
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=linaro.org\n\theader.i=@linaro.org header.b=\"TOzhPymI\"; \n\tdkim-atps=neutral",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20221208; t=1691344917; x=1691949717;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=QFQaIPxsNHI8LxtDb9sN70kRx69T/QGqvHCcG/5ZTmI=;\n\tb=RG65E/EDTUhBsePFbYlpshkvBCfAuTfeo/2YwIkM99VBw5ObHyKab4WBt+V9VxBYHd\n\tv2tdJveCvsJzEUHg+UfUCbvO5NG/Sq1IHFPO4oPu9g2Gesl5Q8sjwDpW2oOxvlNdTjcP\n\tzvUrEqD2zFUna4gsOioGJ41agBnI0KsS+tuHROIpVw+KpwuJHxWxiJ1wN0gKyT51fbHm\n\tYQuve/G0ZzbZuzyhr2c4fWOORyeIpVTt/ybP+uTxb3SrwLyPejV5XTZYanP9xBUBCjG2\n\tPXO8j6XCMxLloN8iywnVc4A2oAW2BEHDPGLC1VJIGuTX2xbVQYfscOg0IyltPBTM00OP\n\tPgOw==",
        "X-Gm-Message-State": "AOJu0YzYFdcjNICiEok19FvaLEEptlyr4/FyyER/e/6z1QELCrrdxwQJ\n\tgcBT6pkiVz+fVyXa0a0Abxxk3iV0mVlutm9+0GY=",
        "X-Google-Smtp-Source": "AGHT+IGQ11OuU3FD0S3I2D8QaE2N+Oynk2XsVT+Lf0UWt7Mc5o1f3YW0u286iCfOTDO08G9RhDW5rg==",
        "X-Received": "by 2002:a2e:8517:0:b0:2b8:3ff3:cd93 with SMTP id\n\tj23-20020a2e8517000000b002b83ff3cd93mr4810314lji.7.1691344917105; \n\tSun, 06 Aug 2023 11:01:57 -0700 (PDT)",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Sun,  6 Aug 2023 21:01:34 +0300",
        "Message-Id": "<20230806180136.304156-1-andrey.konovalov@linaro.org>",
        "X-Mailer": "git-send-email 2.34.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [RFC PATCH 0/2] libcamera: converter: introduce\n\tsoftware converter for debayering and AWB",
        "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>",
        "From": "Andrey Konovalov via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>",
        "Reply-To": "Andrey Konovalov <andrey.konovalov@linaro.org>",
        "Cc": "bryan.odonoghue@linaro.org, srinivas.kandagatla@linaro.org",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Here is a draft implementation of Bayer demosaicing which follows the\nConverter interface and runs on CPU.\n\nIt also includes a naive version of Grey World AWB. Just for demo purposes\n(to make the final image looking a bit nicer). Otherwise, Converter isn't\nthe right place for AWB - only the statistics should be gathered here,\nand the rest belongs to an IPA module.\n\nCurrently this software converter supports single output only, but adding\nthe second stream for statistics is under consideration.\n\nAs libcamera::Converter currently assumes a media device underneath the\nconvertor, I wasn't able to avoid hacking the simple pipeline handler to make\nit work with the software converter. For the same reason ConverterFactory\nis not used for now.\n\nOnly RAW10P format from the sensor is currently supported, but adding more\nBayer formats wouldn't be a problem. Out of 10 bits, only 8 most significant\nones are used to lessen the load on CPU. Simple bilinear interpolation is\nused for the same reason.\n\nAWB simplifications:\n- a naive implementation of \"Grey World\" algorithm: all pixels are used (no\n  brightest and darkest pixels excluded from the calculations)\n- to lessen the load on CPU, works on raw Bayer data and takes red values from\n  red pixels, blue values from blue, and green values from green pixels only. \n- to lessen the load on CPU, the red/green/blue gains calculated from the\n  current frame data are applied to the next frame. These gains are purely\n  in software (no V4L2 controls are set).\n\nNo performance analysis or tuning have been done yet. On RB5 board this\nsoftware convertor gives:\n  ~ 5 fps at 3278x2462 (camera sensor runs at 15 fps)\n  ~ 18..19 fps at 1918x1078 (out of 30 fps)\n  ~ 18..19 fps at 1638x1230 (out of 30 fps)\n  ~ 30 fps at 638x478 (out of 30 fps)\n(The resolutions above are the output ones; demosaic filter drops 1 pixel\nfrom each side of the frame, so that 3280x2464 from the camera sensor becomes\n3278x2462 etc)\n\nAndrey Konovalov (2):\n  libcamera: converter: add software converter\n  [DNI] libcamera: pipeline: simple: a hack to use sotware converter\n    with qcom-camss\n\n .../internal/converter/converter_softw.h      |  90 ++++\n src/libcamera/converter/converter_softw.cpp   | 430 ++++++++++++++++++\n src/libcamera/converter/meson.build           |   3 +-\n src/libcamera/pipeline/simple/simple.cpp      |  22 +-\n 4 files changed, 542 insertions(+), 3 deletions(-)\n create mode 100644 include/libcamera/internal/converter/converter_softw.h\n create mode 100644 src/libcamera/converter/converter_softw.cpp"
}