{"id":15563,"url":"https://patchwork.libcamera.org/api/1.1/covers/15563/?format=json","web_url":"https://patchwork.libcamera.org/cover/15563/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20220328092433.69856-1-jeanmichel.hautbois@ideasonboard.com>","date":"2022-03-28T09:24:28","name":"[libcamera-devel,v4,0/5] IPA RkISP1 awb and misc improvements","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/1.1/people/75/?format=json","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/15563/mbox/","series":[{"id":3005,"url":"https://patchwork.libcamera.org/api/1.1/series/3005/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3005","date":"2022-03-28T09:24:28","name":"IPA RkISP1 awb and misc improvements","version":4,"mbox":"https://patchwork.libcamera.org/series/3005/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/15563/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 16E0BC3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 28 Mar 2022 09:24:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 27DA96559A;\n\tMon, 28 Mar 2022 11:24:43 +0200 (CEST)","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 8EDEF604BF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 28 Mar 2022 11:24:41 +0200 (CEST)","from tatooine.ideasonboard.com (unknown\n\t[IPv6:2a01:e0a:169:7140:4f49:c672:4655:7dbb])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 36D5E9BC;\n\tMon, 28 Mar 2022 11:24:41 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1648459483;\n\tbh=hytdgAxGi65jV6H4WXuvywTWH/TOUdKcb7p8p98skyE=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=F0dAG4kHxf58oKNbOephpSWNq1xUYLk4ROS4bKY1o6QQ1atK4/9oOhQKTTOCuDRQy\n\tSRlVIf9w5l63PJ9aZ0iONYl7Go+atVC5KaOI/LtOTwPyc1F4abyAqe38nArhsqJDiH\n\tj7w65/B5tCbpQEtpIEKBsTh/W5bVyMEqw0KgpMXl949ATAcrlzuGnyBbWIPXF5PMru\n\t9r3Rj84s3VEP+Fs32HLPza7mImE41MLWFZOpNCJYNKcIzXzZ5PJXjQg+hvxYi07qVk\n\tC9RrNReTq6ifRDxHiewZCXhLSjeYxR/ZoWg3bVV0J6AFuVrKnHDe7WF7Uwdh+bTbLk\n\tMFNOpwhKlaTIQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1648459481;\n\tbh=hytdgAxGi65jV6H4WXuvywTWH/TOUdKcb7p8p98skyE=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=atA90Pd2OxHfvXLFJdK58tJ+3R9DyL9H4gXTOON0oHREb/JxOY/hF+WL9ty8nG+5J\n\ttPSzHmv4LpHFWcWonLpE4q/M7Qe+D2/PeU0Qz97tDCZ+SPLByWwM+3kiHslRLZabWz\n\tiYfL6R7wZotYewYs2jCsXhXCzSYh2+hjo+Dhu7wE="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"atA90Pd2\"; dkim-atps=neutral","To":"libcamera-devel@lists.libcamera.org","Date":"Mon, 28 Mar 2022 11:24:28 +0200","Message-Id":"<20220328092433.69856-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 v4 0/5] IPA RkISP1 awb and misc\n\timprovements","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":"Jean-Michel Hautbois via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hello,\n\nThis series introduces several algorithms or tuning parameters for the\nRkISP1 IPA.\n\nThe first algorithm is the black level correction. The output is washed\nout if no black correction is applied. It uses the tuning values from\nthe imx219 data file in RPi.\n\nPatch 3/5 introduced in v3 makes the Histogram class able to use const\nuint32_t arrays.\n\nPatch 4/5 introduces the histogram IQ mean estimation as for the IPU3\nand uses the maximum of the relative luminance gain and the iqMean gain\nto determine the shutter speed and analogue gain to apply.\n\nNow, patch 5/5 can estimate the AWB gains to apply on the red and blue\nchannels. The RkISP1 could theoretically give us the red, green and blue\nmean values for the current frame, but the kernel seems to lack support\nfor this. Use the YCrCb estimation instead, and convert the values to\nRGB before estimating the gains. We don't have a grid of average values,\nonly a global mean for each channel.\n\nI have removed two algorithms from this series: sensor degamma and\ncrosstalk matrix. Those need a bit more work (sdg curve may be the wrong\none according to the previous review, and the crosstalk matrix is not a\ntuned one).\n\nI have made some captures (qcam seems to invert width and height when\nsaving the image though):\n\n[1]: agc only (current master): https://snipboard.io/dFO23J.jpg\n[2]: [1] with histogram and black level: https://snipboard.io/fd9zC2.jpg\n[3]: [2] with awb: https://snipboard.io/Sp9Ei6.jpg\n\nThis is the state with this v2 series applied on top of master.\n\nAnd for the record, I picked the previous sdg and ctk algorithms to\ncapture with those:\n[4]: [3] with sensor degamma: https://snipboard.io/5QO46g.jpg\n[5]: [4] with crosstalk matrix: https://snipboard.io/tDOV7l.jpg\n\nJean-Michel Hautbois (5):\n  ipa: rkisp1: Use frame counter for the request queued\n  ipa: rkisp1: Introduce Black Level Correction\n  ipa: libipa: Histogram: Constify the constructor span\n  ipa: rkisp1: agc: Add a histogram-based gain\n  ipa: rkisp1: Introduce AWB\n\n src/ipa/libipa/histogram.cpp          |   2 +-\n src/ipa/libipa/histogram.h            |   2 +-\n src/ipa/rkisp1/algorithms/agc.cpp     |  91 +++++++++++--\n src/ipa/rkisp1/algorithms/agc.h       |   6 +-\n src/ipa/rkisp1/algorithms/awb.cpp     | 178 ++++++++++++++++++++++++++\n src/ipa/rkisp1/algorithms/awb.h       |  33 +++++\n src/ipa/rkisp1/algorithms/blc.cpp     |  57 +++++++++\n src/ipa/rkisp1/algorithms/blc.h       |  30 +++++\n src/ipa/rkisp1/algorithms/meson.build |   2 +\n src/ipa/rkisp1/ipa_context.cpp        |  42 +++++-\n src/ipa/rkisp1/ipa_context.h          |  21 ++-\n src/ipa/rkisp1/rkisp1.cpp             |   7 +\n 12 files changed, 452 insertions(+), 19 deletions(-)\n create mode 100644 src/ipa/rkisp1/algorithms/awb.cpp\n create mode 100644 src/ipa/rkisp1/algorithms/awb.h\n create mode 100644 src/ipa/rkisp1/algorithms/blc.cpp\n create mode 100644 src/ipa/rkisp1/algorithms/blc.h"}