All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philipp Zabel <p.zabel@pengutronix.de>
To: Steve Longerbeam <slongerbeam@gmail.com>, linux-media@vger.kernel.org
Cc: Tim Harvey <tharvey@gateworks.com>,
	"open list:DRM DRIVERS FOR FREESCALE IMX" 
	<dri-devel@lists.freedesktop.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 1/4] gpu: ipu-v3: ipu-ic: Rename yuv2rgb encoding matrices
Date: Tue, 12 Feb 2019 11:17:46 +0100	[thread overview]
Message-ID: <1549966666.4800.3.camel@pengutronix.de> (raw)
In-Reply-To: <0f987e19-e6e9-a56e-00ec-61e7e300a92e@gmail.com>

Hi Steve,

On Mon, 2019-02-11 at 10:24 -0800, Steve Longerbeam wrote:
[...]
> Looking more closely at these coefficients now, I see you are right, 
> they are the BT.601 YUV full-range coefficients (Y range 0 to 1, U and V 
> range -0.5 to 0.5). Well, not even that -- the coefficients are not 
> being scaled to the limited ranges, but the 0.5 offset (128) _is_ being 
> added to U/V, but no offset for Y. So it is even more messed up.
>
> Your corrected coefficients and offsets look correct to me: Y 
> coefficients scaled to (235 - 16) / 255 and U/V coefficients scaled to 
> (240 - 16)  / 255, and add the offsets for both Y and U/V.
> 
> But what about this "SAT_MODE" field in the IC task parameter memory? 

That just controls the saturation. The result after the matrix
multiplication is either saturated to [0..255] or to [16..235]/[16..240]
when converting from the internal representation to the 8 bit output.

> According to the manual the hardware will automatically convert the 
> written coefficients to the correct limited ranges.

Where did you get that from? "The final calculation result is limited
according to the SAT_MODE parameter and rounded to 8 bits." I see no
mention of coefficients being modified.

> I see there is a "sat" field defined in the struct but is not being
> set in the tables.
> 
> So what should we do, define the full range coefficients, and make use 
> of SAT_MODE h/w feature, or scale/offset the coefficients ourselves and 
> not use SAT_MODE? I'm inclined to do the former.

SAT_MODE should be set for conversions to YUV limited range so that the
coefficients can be rounded to the closest value. Otherwise we'd have to
round towards zero, possibly with a larger error, to make sure the
results are inside the valid ranges.

regards
Philipp

  reply	other threads:[~2019-02-12 10:17 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-09  1:47 [PATCH v4 0/4] media: imx: Add support for BT.709 encoding Steve Longerbeam
2019-02-09  1:47 ` [PATCH v4 1/4] gpu: ipu-v3: ipu-ic: Rename yuv2rgb encoding matrices Steve Longerbeam
2019-02-09  1:47   ` Steve Longerbeam
2019-02-11  9:58   ` Philipp Zabel
2019-02-11  9:58     ` Philipp Zabel
2019-02-11 18:24     ` Steve Longerbeam
2019-02-11 18:24       ` Steve Longerbeam
2019-02-12 10:17       ` Philipp Zabel [this message]
2019-02-12 10:17         ` Philipp Zabel
2019-02-12 17:42         ` Steve Longerbeam
2019-02-12 17:42           ` Steve Longerbeam
2019-02-13 10:35           ` Philipp Zabel
2019-02-13 10:35             ` Philipp Zabel
2019-02-14 18:54             ` Steve Longerbeam
2019-02-14 18:54               ` Steve Longerbeam
2019-02-11 23:33     ` Steve Longerbeam
2019-02-11 23:33       ` Steve Longerbeam
2019-02-09  1:47 ` [PATCH v4 2/4] gpu: ipu-v3: ipu-ic: Simplify selection of encoding matrix Steve Longerbeam
2019-02-09  1:47   ` Steve Longerbeam
2019-02-11 10:00   ` Philipp Zabel
2019-02-11 10:00     ` Philipp Zabel
2019-02-09  1:47 ` [PATCH v4 3/4] gpu: ipu-v3: ipu-ic: Add support for BT.709 encoding Steve Longerbeam
2019-02-09  1:47   ` Steve Longerbeam
2019-02-09  1:47   ` Steve Longerbeam
2019-02-11 10:12   ` Philipp Zabel
2019-02-11 10:12     ` Philipp Zabel
2019-02-11 10:12     ` Philipp Zabel
2019-02-12  1:20     ` Steve Longerbeam
2019-02-12  1:20       ` Steve Longerbeam
2019-02-12  1:20       ` Steve Longerbeam
2019-02-12 11:34       ` Philipp Zabel
2019-02-12 11:34         ` Philipp Zabel
2019-02-12 11:34         ` Philipp Zabel
2019-02-12 17:50         ` Steve Longerbeam
2019-02-12 17:50           ` Steve Longerbeam
2019-02-12 17:50           ` Steve Longerbeam
2019-02-09  1:47 ` [PATCH v4 4/4] media: imx: Allow BT.709 encoding for IC routes Steve Longerbeam

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=1549966666.4800.3.camel@pengutronix.de \
    --to=p.zabel@pengutronix.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=slongerbeam@gmail.com \
    --cc=tharvey@gateworks.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.