From: Pekka Paalanen <ppaalanen@gmail.com>
To: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Cc: Vitaly Prosyak <vitaly.prosyak@amd.com>,
dri-devel@lists.freedesktop.org,
Sebastian Wick <sebastian@sebastianwick.net>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Sam Ravnborg <sam@ravnborg.org>
Subject: Re: per-plane LUTs and CSCs?
Date: Thu, 10 Sep 2020 13:28:03 +0300 [thread overview]
Message-ID: <20200910132803.14dc028d@eldfell> (raw)
In-Reply-To: <20200910093009.qkb5yvpyf46uj6mp@fsr-ub1864-141>
[-- Attachment #1.1: Type: text/plain, Size: 2441 bytes --]
On Thu, 10 Sep 2020 12:30:09 +0300
Laurentiu Palcu <laurentiu.palcu@oss.nxp.com> wrote:
> Hi Pekka,
>
> On Thu, Sep 10, 2020 at 11:50:26AM +0300, Pekka Paalanen wrote:
> > On Thu, 10 Sep 2020 09:52:26 +0200
> > Daniel Vetter <daniel@ffwll.ch> wrote:
> >
> > > On Thu, Sep 10, 2020 at 10:25:43AM +0300, Pekka Paalanen wrote:
> > > > On Wed, 9 Sep 2020 13:57:28 +0300
> > > > Laurentiu Palcu <laurentiu.palcu@oss.nxp.com> wrote:
> > > >
> > > > > Hi all,
> > > > >
> > > > > I was wondering whether you could give me an advise on how to proceed further
> > > > > with the following issue as I'm preparing to upstream the next set of patches
> > > > > for the iMX8MQ display controller(DCSS). The display controller has 3 planes,
> > > > > each with 2 CSCs and one degamma LUT. The CSCs are in front and after the LUT
> > > > > respectively. Then the output from those 3 pipes is blended together and then
> > > > > gamma correction is applied using a linear-to-nonlinear LUT and another CSC, if
> > > > > needed.
> >
> > Hi,
> >
> > hmm, so FB -> CSC -> LUT -> CSC -> blending?
> >
> > Is it then
> > blending -> LUT -> CSC -> encoder
> > or
> > blending -> CSC -> LUT -> encoder?
>
> The DCSS pipeline topology is this:
>
> FB1->CSC_A->LUT->CSC_B-\
> FB2->CSC_A->LUT->CSC_B-|-blender->LUT->CSC_O->encoder
> FB3->CSC_A->LUT->CSC_B-/
>
> Basically, CSC_A is used to convert to a common colorspace if needed
> (YUV->RGB) as well as to perform pixel range conversions: limited->full.
> CSC_B is for gamut conversions(like 709->2020). The CSC_O is used to
> convert to the colorspace used by the output (like RGB->YUV).
I didn't realize that it would be correct to do RGB-YUV conversion in
non-linear space, but yeah, that's what most software do too I guess.
> >
> > Are all these LUTs per-channel 1D LUTs or something else?
>
> LUTs are 3D, per pixel component.
Sorry, which one?
An example of a 3D LUT is 32x32x32 entries with each entry being a
triplet, while a 1D LUT could be 1024 entries with each entry being a
scalar. 1D LUTs are used per-channel so you need three of them, 3D LUTs
you need just one for the color value triplet mapping.
A 3D LUT can express much more than a 4x4 CTM. A 1D LUT cannot do the
channel mixing that a CTM can.
So if you truly have 3D LUTs everywhere, I wonder why the CSC matrix
blocks exist...
Thanks,
pq
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2020-09-10 10:28 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-09 10:57 per-plane LUTs and CSCs? Laurentiu Palcu
2020-09-10 7:25 ` Pekka Paalanen
2020-09-10 7:52 ` Daniel Vetter
2020-09-10 8:50 ` Pekka Paalanen
2020-09-10 9:30 ` Laurentiu Palcu
2020-09-10 10:28 ` Pekka Paalanen [this message]
2020-09-10 10:39 ` Laurentiu Palcu
2020-09-10 10:56 ` Laurent Pinchart
2020-09-10 17:09 ` Vitaly Prosyak
2020-09-10 17:51 ` Laurent Pinchart
2020-09-10 18:07 ` Vitaly Prosyak
2020-09-10 19:39 ` Vitaly Prosyak
2020-09-11 12:57 ` Pekka Paalanen
2020-09-10 10:53 ` Laurent Pinchart
2020-09-10 7:50 ` Simon Ser
2020-09-10 8:18 ` Daniel Vetter
2020-09-10 8:29 ` Simon Ser
2020-09-14 6:13 ` Alex Deucher
2020-09-14 13:32 ` Ville Syrjälä
2020-09-14 14:38 ` Alex Deucher
2020-09-14 15:07 ` Ville Syrjälä
2020-09-10 11:38 ` Ville Syrjälä
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=20200910132803.14dc028d@eldfell \
--to=ppaalanen@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=laurentiu.palcu@oss.nxp.com \
--cc=sam@ravnborg.org \
--cc=sebastian@sebastianwick.net \
--cc=vitaly.prosyak@amd.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.