{"id":15946,"url":"https://patchwork.libcamera.org/api/1.1/covers/15946/?format=json","web_url":"https://patchwork.libcamera.org/cover/15946/","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":"<20220518131030.421225-1-umang.jain@ideasonboard.com>","date":"2022-05-18T13:10:27","name":"[libcamera-devel,v4,0/3] ","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/1.1/people/86/?format=json","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/15946/mbox/","series":[{"id":3121,"url":"https://patchwork.libcamera.org/api/1.1/series/3121/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3121","date":"2022-05-18T13:10:27","name":"[libcamera-devel,v4,1/3] ipa: ipu3: Rework IPAFrameContext","version":4,"mbox":"https://patchwork.libcamera.org/series/3121/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/15946/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 AC43BC3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 18 May 2022 13:10:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A6A5E6565A;\n\tWed, 18 May 2022 15:10:40 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6655165656\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 18 May 2022 15:10:38 +0200 (CEST)","from perceval.ideasonboard.com (unknown [45.131.31.124])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C3C93E50;\n\tWed, 18 May 2022 15:10:37 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1652879440;\n\tbh=CQYFUjptGZX/C9zWHomovi8jbsjD4Fs4MW+F34wJSrE=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=UxVhgOS2bUv3vZQie6xTW3ndrivKwK4HGdM3iiAILXILQ7q5jdLKm2oYg45NcVVC8\n\to3e9AVjci44L6RaZGMcXTYqZIIQrMtt0Se7r107qPdr8ReTcsiMiJ3BGtCrIsJSNJN\n\tlf6MmQj+X71Vx2Gwl5nPbwL2jqPm/qD9JRaKmax5ZfaqQTZIOUFFmDYNOX6hzuNBN5\n\tECTAsDrREAjODrI8lS0D/7jOM9ywX57qeocNBy4AL86NRGzsXdo/BquZHt6dwF6POj\n\tWBjd691HFB8Ygbv0bXcmYA3cDtH6M1H0ra4TDfluDDkb2iaYkgW+sVEhf88g724Uru\n\tctcG6Pe6i16rg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1652879438;\n\tbh=CQYFUjptGZX/C9zWHomovi8jbsjD4Fs4MW+F34wJSrE=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=SO9lEKA3FcFv9w6Wa+OBtFnxO7BbQYFO5eA3nNOn5fl9pv8Ph8DctZrfbMjeCw/gN\n\thyXxIu70pdRa4uB5EETSxl0CV1suagbw5/Wr1Xweb7AsgkZUyR/JAAZQA351d3s+BO\n\t/TD1jDKMohLvpw2+R54+YHWP3l9YLd4MQBocN+aM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"SO9lEKA3\"; dkim-atps=neutral","To":"libcamera-devel@lists.libcamera.org","Date":"Wed, 18 May 2022 15:10:27 +0200","Message-Id":"<20220518131030.421225-1-umang.jain@ideasonboard.com>","X-Mailer":"git-send-email 2.31.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v4 0/3]","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":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Changes in v4:\n- Largely documentation fixes\n- Introduce a warning log if the frame number doesn't patches frame\n  context extracted from the ring buffer\n- Also CTS-passed.\n\nChanges in v3:\n- IMP: Moving away from queue to a Ring Buffer\n- Patch 1/3 is largely unchanged\n- Patch 2/3 is a advance preparatory patch for 3/3. Since we'll have\n  a ring-buffer i.e. multiple IPAFrameContexts - Algorithm::process()\n  will need to know which IPAFrameContext to use for processing.\n- In 3/3, we now use a Ring buffer instead of a queue for\n  frame-contexts. Also extend the IPAFrameContext structure\n  to contain a ControlList (copying incoming request controls).\n\nChanges in v2:\n- Majorly change the interpretation of Frame context\n  Currently, everything is stored in a single struct i.e.\n  IPAFrameContext. It reflects the current state of the algorithms\n  and also stores values required to prepare frame metadata.\n  Split these two things in separate containters IPAActiveState\n  and IPAFrameContext.\n- The above design helps to rid of prevFrameContext and nextFrameContext\n  concepts as they can get error=prone easily.\n- Have a queue of IPAFrameContexts which is holding members per-frame\n  related /only/. All algorithm current (or active) state values go in\n  IPAActiveState which is independently updated by the algorithms.\n\n\nUmang Jain (3):\n  ipa: ipu3: Rework IPAFrameContext\n  ipa: libipa: Add frame context pointer in process()\n  ipa: ipu3: Put IPAFrameContext(s) in a ring buffer\n\n src/ipa/ipu3/algorithms/af.cpp           |  46 +++++-----\n src/ipa/ipu3/algorithms/af.h             |   3 +-\n src/ipa/ipu3/algorithms/agc.cpp          |  36 ++++----\n src/ipa/ipu3/algorithms/agc.h            |   9 +-\n src/ipa/ipu3/algorithms/algorithm.h      |   4 +-\n src/ipa/ipu3/algorithms/awb.cpp          |  19 ++--\n src/ipa/ipu3/algorithms/awb.h            |   3 +-\n src/ipa/ipu3/algorithms/tone_mapping.cpp |  13 +--\n src/ipa/ipu3/algorithms/tone_mapping.h   |   3 +-\n src/ipa/ipu3/ipa_context.cpp             | 110 ++++++++++++++---------\n src/ipa/ipu3/ipa_context.h               |  28 ++++--\n src/ipa/ipu3/ipu3.cpp                    |  35 +++++---\n src/ipa/libipa/algorithm.cpp             |   1 +\n src/ipa/libipa/algorithm.h               |   4 +-\n src/ipa/rkisp1/algorithms/agc.cpp        |   4 +-\n src/ipa/rkisp1/algorithms/agc.h          |   3 +-\n src/ipa/rkisp1/algorithms/algorithm.h    |   4 +-\n src/ipa/rkisp1/algorithms/awb.cpp        |   4 +-\n src/ipa/rkisp1/algorithms/awb.h          |   3 +-\n src/ipa/rkisp1/rkisp1.cpp                |   2 +-\n 20 files changed, 205 insertions(+), 129 deletions(-)"}