From: Paul Kocialkowski <paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
To: Hans Verkuil <hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>,
linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b@public.gmane.org
Cc: Mauro Carvalho Chehab
<mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Maxime Ripard
<maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>,
Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
Greg Kroah-Hartman
<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
Thomas Petazzoni
<thomas.petazzoni-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
Hugues Fruchet <hugues.fruchet-qxv4g6HH51o@public.gmane.org>,
Randy Li <ayaka-xPW3/0Ywev/iB9QmIjCX8w@public.gmane.org>,
Ezequiel Garcia
<ezequiel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>,
Tomasz Figa <tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
Alexandre Courbot
<acourbot-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
Laurent Pinchart
<laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>,
Sakari Ailus
<sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Subject: Re: [PATCH v6 2/8] media: v4l: Add definition for Allwinner's MB32-tiled NV12 format
Date: Tue, 07 Aug 2018 18:40:15 +0200 [thread overview]
Message-ID: <2f2f5721ab5b07e36ec920b9d9c7fa0839b99a95.camel@bootlin.com> (raw)
In-Reply-To: <4628cfe1-e42f-67ad-20b3-078c6a96d6ed-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 4981 bytes --]
Hi,
On Sat, 2018-08-04 at 13:42 +0200, Hans Verkuil wrote:
> On 07/25/2018 12:02 PM, Paul Kocialkowski wrote:
> > This introduces support for Allwinner's MB32-tiled NV12 format, where
> > each plane is divided into macroblocks of 32x32 pixels. Hence, the size
> > of each plane has to be aligned to 32 bytes. The pixels inside each
> > macroblock are coded as they would be if the macroblock was a single
> > plane, line after line.
> >
> > The MB32-tiled NV12 format is used by the video engine on Allwinner
> > platforms: it is the default format for decoded frames (and the only one
> > available in the oldest supported platforms).
> >
> > Signed-off-by: Paul Kocialkowski <paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
> > ---
> > Documentation/media/uapi/v4l/pixfmt-reserved.rst | 15 ++++++++++++++-
> > drivers/media/v4l2-core/v4l2-ioctl.c | 1 +
> > include/uapi/linux/videodev2.h | 1 +
> > 3 files changed, 16 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/media/uapi/v4l/pixfmt-reserved.rst b/Documentation/media/uapi/v4l/pixfmt-reserved.rst
> > index 38af1472a4b4..9a68b6a787bf 100644
> > --- a/Documentation/media/uapi/v4l/pixfmt-reserved.rst
> > +++ b/Documentation/media/uapi/v4l/pixfmt-reserved.rst
> > @@ -243,7 +243,20 @@ please make a proposal on the linux-media mailing list.
> > It is an opaque intermediate format and the MDP hardware must be
> > used to convert ``V4L2_PIX_FMT_MT21C`` to ``V4L2_PIX_FMT_NV12M``,
> > ``V4L2_PIX_FMT_YUV420M`` or ``V4L2_PIX_FMT_YVU420``.
> > -
> > + * .. _V4L2-PIX-FMT-MB32-NV12:
> > +
> > + - ``V4L2_PIX_FMT_MB32_NV12``
> > + - 'MN12'
> > + - Two-planar NV12-based format used by the Allwinner video engine
> > + hardware, with 32x32 tiles for the luminance plane and 32x64 tiles
> > + for the chrominance plane. Each tile is a linear pixel data
> > + representation within its own bounds. Each tile follows the previous
> > + one linearly (as in, from left to right, top to bottom).
>
> as in, -> as in:
Thanks!
> > +
> > + The frame dimensions are aligned to match an integer number of
> > + tiles, resulting in 32-aligned resolutions for the luminance plane
> > + and 16-aligned resolutions for the chrominance plane (with 2x2
> > + subsampling).
> >
> > .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
> >
> > diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
> > index 68e914b83a03..7e1c200de10d 100644
> > --- a/drivers/media/v4l2-core/v4l2-ioctl.c
> > +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
> > @@ -1331,6 +1331,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
> > case V4L2_PIX_FMT_SE401: descr = "GSPCA SE401"; break;
> > case V4L2_PIX_FMT_S5C_UYVY_JPG: descr = "S5C73MX interleaved UYVY/JPEG"; break;
> > case V4L2_PIX_FMT_MT21C: descr = "Mediatek Compressed Format"; break;
> > + case V4L2_PIX_FMT_MB32_NV12: descr = "Allwinner tiled NV12 format"; break;
>
> "Allwinner Tiled NV12 Format"
>
> If it is Allwinner specific, then that should be in the PIX_FMT name as well:
> something like V4L2_PIX_FMT_ALLWINNER_MB32_NV12 or perhaps SUNXI_MB32_NV12.
>
> On the other hand, you could also see this as a variant of e.g. V4L2_PIX_FMT_NV12MT
> or V4L2_PIX_FMT_NV12MT_16X16. In that case it is not necessarily Allwinner specific
> since other devices might choose this format. You can go either way, as long
> as it is consistent.
I think it is fair to say that the format is Allwinner-specific and
unlikely to be found elsewhere. It is not actually very well described
by "MB32" since the chroma tiles have a different pixel size than the
luma tiles (16x64).
It would probably be clearer to just call the format:
V4L2_PIX_FMT_SUNXI_TILED_NV12
Cheers,
Paul
> > default:
> > WARN(1, "Unknown pixelformat 0x%08x\n", fmt->pixelformat);
> > if (fmt->description[0])
> > diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> > index d171361ed9b3..453d27142e31 100644
> > --- a/include/uapi/linux/videodev2.h
> > +++ b/include/uapi/linux/videodev2.h
> > @@ -670,6 +670,7 @@ struct v4l2_pix_format {
> > #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */
> > #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */
> > #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
> > +#define V4L2_PIX_FMT_MB32_NV12 v4l2_fourcc('M', 'N', '1', '2') /* Allwinner tiled NV12 format */
> >
> > /* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */
> > #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */
> >
>
> Regards,
>
> Hans
--
Paul Kocialkowski, Bootlin (formerly Free Electrons)
Embedded Linux and kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2018-08-07 16:40 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-25 10:02 [PATCH v6 0/8] Cedrus driver for the Allwinner Video Engine, using media requests Paul Kocialkowski
[not found] ` <20180725100256.22833-1-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-07-25 10:02 ` [PATCH v6 1/8] media: v4l: Add definitions for MPEG2 slice format and metadata Paul Kocialkowski
[not found] ` <20180725100256.22833-2-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-08-04 11:35 ` Hans Verkuil
[not found] ` <cf07a5d1-9179-44af-de11-61f02bbcf904-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2018-08-08 11:57 ` Paul Kocialkowski
2018-08-04 13:30 ` Hans Verkuil
[not found] ` <57d8c895-ad9f-5105-e923-9666fdf909d9-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2018-08-08 12:05 ` Paul Kocialkowski
2018-07-25 10:02 ` [PATCH v6 2/8] media: v4l: Add definition for Allwinner's MB32-tiled NV12 format Paul Kocialkowski
[not found] ` <20180725100256.22833-3-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-08-04 11:42 ` Hans Verkuil
[not found] ` <4628cfe1-e42f-67ad-20b3-078c6a96d6ed-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2018-08-07 16:40 ` Paul Kocialkowski [this message]
2018-07-25 10:02 ` [PATCH v6 3/8] dt-bindings: media: Document bindings for the Cedrus VPU driver Paul Kocialkowski
2018-07-25 10:02 ` [PATCH v6 4/8] media: platform: Add Cedrus VPU decoder driver Paul Kocialkowski
2018-07-27 14:03 ` [linux-sunxi] " Jernej Škrabec
2018-07-27 14:58 ` Jernej Škrabec
2018-08-07 12:31 ` Paul Kocialkowski
2018-08-07 15:05 ` [linux-sunxi] " Jernej Škrabec
2018-08-07 15:10 ` Tomasz Figa
2018-08-07 12:16 ` Paul Kocialkowski
2018-07-29 7:58 ` [linux-sunxi] " Jernej Škrabec
2018-08-07 12:07 ` Paul Kocialkowski
2018-08-03 20:49 ` Ezequiel Garcia
2018-08-06 14:21 ` Paul Kocialkowski
[not found] ` <130e4f08534d0dfbd26f97f9b95d533ce86ceada.camel-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-08-08 9:28 ` Paul Kocialkowski
[not found] ` <20180725100256.22833-5-paul.kocialkowski-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
2018-08-04 12:18 ` Hans Verkuil
[not found] ` <b45a8a89-1313-7a08-206d-b93017724754-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2018-08-06 13:50 ` Paul Kocialkowski
2018-08-06 14:10 ` Tomasz Figa
[not found] ` <CAAFQd5DgFDFupACthsz1iLpAeYRtUtEfzQC1E5XZQ6gPZAYi1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-07 7:19 ` Paul Kocialkowski
2018-08-08 3:16 ` Tomasz Figa
2018-07-25 10:02 ` [PATCH v6 5/8] ARM: dts: sun5i: Add Video Engine and reserved memory nodes Paul Kocialkowski
2018-07-25 10:02 ` [PATCH v6 7/8] ARM: dts: sun8i-a33: " Paul Kocialkowski
2018-07-25 10:02 ` [PATCH v6 8/8] ARM: dts: sun8i-h3: " Paul Kocialkowski
2018-08-04 12:43 ` [PATCH v6 0/8] Cedrus driver for the Allwinner Video Engine, using media requests Hans Verkuil
[not found] ` <4e8a0286-7e49-5622-1895-ac3268224152-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2018-08-06 9:22 ` Paul Kocialkowski
2018-07-25 10:02 ` [PATCH v6 6/8] ARM: dts: sun7i-a20: Add Video Engine and reserved memory nodes Paul Kocialkowski
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=2f2f5721ab5b07e36ec920b9d9c7fa0839b99a95.camel@bootlin.com \
--to=paul.kocialkowski-ldxbnhwyfcjbdgjk7y7tuq@public.gmane.org \
--cc=acourbot-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=ayaka-xPW3/0Ywev/iB9QmIjCX8w@public.gmane.org \
--cc=devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=ezequiel-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=hugues.fruchet-qxv4g6HH51o@public.gmane.org \
--cc=hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org \
--cc=laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org \
--cc=mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=thomas.petazzoni-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org \
--cc=wens-jdAy2FN1RRM@public.gmane.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;
as well as URLs for NNTP newsgroup(s).