[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <255f22b1ddea5fa81104865769eec0fcb5617b36.camel@collabora.com>
Date: Tue, 10 Sep 2019 11:18:34 +0100
From: Ezequiel Garcia <ezequiel@...labora.com>
To: Jonas Karlman <jonas@...boo.se>
Cc: Mauro Carvalho Chehab <mchehab@...nel.org>,
Hans Verkuil <hverkuil@...all.nl>,
Boris Brezillon <boris.brezillon@...labora.com>,
Philipp Zabel <p.zabel@...gutronix.de>,
Paul Kocialkowski <paul.kocialkowski@...tlin.com>,
"linux-media@...r.kernel.org" <linux-media@...r.kernel.org>,
"linux-rockchip@...ts.infradead.org"
<linux-rockchip@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 03/12] media: hantro: Fix H264 motion vector buffer
offset
Hi Jonas,
Thanks for fixing this, I'm happy we are reducing the amount
of black magic here.
On Sun, 2019-09-01 at 12:45 +0000, Jonas Karlman wrote:
> A decoded 8-bit 4:2:0 frame need memory for up to 448 macroblocks
> and is laid out in memory as follow:
>
> +-------------------+
> > Y-plane 256 MBs |
> +-------------------+
> > UV-plane 128 MBs |
> +-------------------+
> > MV buffer 64 MBs |
> +-------------------+
>
> The motion vector buffer offset is currently correct for 4:2:0 because
> the extra space for motion vectors is overallocated with an extra 64 MBs.
>
> Wrong offset for both destination and motion vector buffer are used
> for the bottom field of field encoded content, wrong offset is
> also used for 4:0:0 (monochrome) content.
>
> Fix this by always setting the motion vector address to the expected
> 384 MBs offset for 4:2:0 and 256 MBs offset for 4:0:0 content.
>
> Also use correct destination and motion vector buffer offset
> for the bottom field of field encoded content.
>
> While at it also extend the check for 4:0:0 (monochrome) to include an
> additional check for High Profile (100).
>
As with the scaling list, I believe it would make a lot of sense
to document this in the driver itself.
Thanks,
Ezequiel
Powered by blists - more mailing lists