From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Bryan O'Donoghue <bod@kernel.org>
Cc: Loic Poulain <loic.poulain@oss.qualcomm.com>,
vladimir.zapolskiy@linaro.org, kieran.bingham@ideasonboard.com,
robh@kernel.org, krzk+dt@kernel.org, andersson@kernel.org,
konradybcio@kernel.org, linux-media@vger.kernel.org,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, johannes.goede@oss.qualcomm.com,
mchehab@kernel.org
Subject: Re: [RFC PATCH 0/3] media: qcom: camss: CAMSS Offline Processing Engine support
Date: Sun, 5 Apr 2026 23:47:22 +0300 [thread overview]
Message-ID: <20260405204722.GF1213462@killaraus.ideasonboard.com> (raw)
In-Reply-To: <d5bb1f75-f55f-43e6-8160-bacc4088b0a2@kernel.org>
On Sun, Apr 05, 2026 at 08:55:00PM +0100, Bryan O'Donoghue wrote:
> On 05/04/2026 20:48, Laurent Pinchart wrote:
> > I don't necessarily agree with that. There are pros and cons for using
> > HFI on platforms that have an ICP. If correctly written, a firmware can
> > improve the throughput in multi-camera use cases by reprogramming the
> > time-multiplexed OPE faster. On the other hand, in use cases that don't
> > require pushing the platform to its limits, dealing with a closed-source
> > firmware often causes lots of issues.
> >
> > We should aim at supporting both direct ISP access and HFI with the same
> > userspace API, even on a single platform. Which option to start with is
> > an open question that we should discuss.
>
> I think - for IPE and BPS ICP/HFI is the way to go.
>
> However thinking about it - inline pixel processing IPP inside of the
> IFE is superior to BPS/IPE for virtually every scenario i.e. why deliver
> a frame to user-space and then submit it directly to BPS via CDM or via
> a firmware interface HFI, if you can do the same processing in the IFE -
> which on the majority of qcom platforms, you can.
As always, it depends. Offline processing consumes more memory bandwidth
and introduces latency, *but* if the statistics are computed by the IFE,
then the OPE can process frames using statistics coming from the same
frame instead of previous frames. It can improve the reactivity of the
algorithms.
Some processing is also badly suited for inline pipelines. In
particular, DOL HDR stitching in an inline pipeline requires a large
amoung of line buffers, so many ISP vendors implement it in offline ISPs
only. Temporal denoising can also be more tricky in an inline ISP.
Processing is sometimes split between the inline and offline parts, with
inline processing in Bayer domain, covering processing algorithms that
don't benefit much from using stats from the same frame, and offline
processing taking over for the rest.
> Agatti is an outlier in that sense.
>
> So actually I've shifted my focus on Hamoa to IFE/IPP.
I'd love to get stats out of the IFE :-)
> You still BTW do want HFI for BPS/IPE - but to get 3a going on the vast
> majority of qcom platforms - you want the PIX/IPP path in the IFE.
>
> OTOH if you want to do offline bayer processing - taking say a saved
> file from the filesystem - then BPS/IPE is the way to do it and IMO HFI
> is the way to do that.
>
> But ICP/BPS/IPE is a nice to have.
We need a glossary :-)
> I realise that's a word-soup of TLAs but yeah, TL;DR IFE/IPP is the way
> to go on !Agatti and once we get a nice 3a loop going there a fun
> side-project would be offline bayer processing via HFI.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2026-04-05 20:47 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <xy6TKmdveRx4cMshSHEUGZ7s3lbsurWcsc2vq05A7_N4bCialR7EelZitouugtZDkpFCAghjqY4NDdSQEIPprw==@protonmail.internalid>
2026-03-23 12:58 ` [RFC PATCH 0/3] media: qcom: camss: CAMSS Offline Processing Engine support Loic Poulain
2026-03-23 12:58 ` [RFC PATCH 1/3] dt-bindings: media: qcom: Add CAMSS Offline Processing Engine (OPE) Loic Poulain
2026-03-23 13:03 ` Krzysztof Kozlowski
2026-03-23 16:03 ` Loic Poulain
2026-03-23 16:10 ` Krzysztof Kozlowski
2026-03-23 13:03 ` Bryan O'Donoghue
2026-03-23 12:58 ` [RFC PATCH 2/3] media: qcom: camss: Add CAMSS Offline Processing Engine driver Loic Poulain
2026-03-23 13:43 ` Bryan O'Donoghue
2026-03-23 15:31 ` Loic Poulain
2026-03-24 11:00 ` Bryan O'Donoghue
2026-03-24 15:57 ` Loic Poulain
2026-03-24 21:27 ` Dmitry Baryshkov
2026-03-26 12:06 ` johannes.goede
2026-03-30 11:37 ` Dmitry Baryshkov
2026-03-30 13:46 ` johannes.goede
2026-03-30 14:11 ` Bryan O'Donoghue
2026-03-30 14:27 ` johannes.goede
2026-03-30 14:32 ` Bryan O'Donoghue
2026-03-30 18:59 ` Dmitry Baryshkov
2026-03-30 19:07 ` Loic Poulain
2026-04-05 20:23 ` Laurent Pinchart
2026-03-30 18:55 ` Dmitry Baryshkov
2026-03-30 22:51 ` Bryan O'Donoghue
2026-03-31 8:11 ` Konrad Dybcio
2026-04-05 20:14 ` Laurent Pinchart
2026-03-25 9:30 ` Konrad Dybcio
2026-04-05 20:11 ` Laurent Pinchart
2026-04-05 20:15 ` Bryan O'Donoghue
2026-04-05 20:24 ` Laurent Pinchart
2026-04-05 20:28 ` Bryan O'Donoghue
2026-03-23 12:58 ` [RFC PATCH 3/3] arm64: dts: qcom: qcm2290: Add CAMSS OPE node Loic Poulain
2026-03-23 13:03 ` Bryan O'Donoghue
2026-03-23 13:24 ` Konrad Dybcio
2026-03-23 13:33 ` Bryan O'Donoghue
2026-03-23 16:15 ` Krzysztof Kozlowski
2026-03-24 10:30 ` Bryan O'Donoghue
2026-03-23 16:31 ` Loic Poulain
2026-03-24 10:43 ` Konrad Dybcio
2026-03-24 12:54 ` [RFC PATCH 0/3] media: qcom: camss: CAMSS Offline Processing Engine support Bryan O'Donoghue
2026-03-24 16:16 ` Loic Poulain
2026-04-05 19:48 ` Laurent Pinchart
2026-04-05 19:55 ` Bryan O'Donoghue
2026-04-05 20:47 ` Laurent Pinchart [this message]
2026-04-05 21:29 ` Bryan O'Donoghue
2026-04-05 23:02 ` Bryan O'Donoghue
2026-04-06 13:22 ` Loic Poulain
2026-04-05 19:57 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260405204722.GF1213462@killaraus.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=andersson@kernel.org \
--cc=bod@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=johannes.goede@oss.qualcomm.com \
--cc=kieran.bingham@ideasonboard.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=loic.poulain@oss.qualcomm.com \
--cc=mchehab@kernel.org \
--cc=robh@kernel.org \
--cc=vladimir.zapolskiy@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox