[PATCH v4 1/6] media: v4l2: Add NV15 and NV20 pixel formats
Nicolas Dufresne
nicolas.dufresne at collabora.com
Tue Apr 8 14:08:13 PDT 2025
Le samedi 29 mars 2025 à 00:09 +0100, Diederik de Haas a écrit :
> Hi Detlev,
>
> On Tue Mar 25, 2025 at 10:22 PM CET, Detlev Casanova wrote:
> > From: Jonas Karlman <jonas at kwiboo.se>
> >
> > Add NV15 and NV20 pixel formats used by the Rockchip Video Decoder for
> > 10-bit buffers.
> >
> > NV15 and NV20 is 10-bit 4:2:0/4:2:2 semi-planar YUV formats similar to
> > NV12 and NV16, using 10-bit components with no padding between each
> > component. Instead, a group of 4 luminance/chrominance samples are
> > stored over 5 bytes in little endian order:
> >
> > YYYY = UVUV = 4 * 10 bits = 40 bits = 5 bytes
> >
> > The '15' and '20' suffix refers to the optimum effective bits per pixel
> > which is achieved when the total number of luminance samples is a
> > multiple of 8 for NV15 and 4 for NV20.
> >
> > Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> > Tested-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> > Tested-by: Christopher Obbard <chris.obbard at collabora.com>
> > ---
> > .../media/v4l/pixfmt-yuv-planar.rst | 128 ++++++++++++++++++
> > drivers/media/v4l2-core/v4l2-common.c | 2 +
> > drivers/media/v4l2-core/v4l2-ioctl.c | 2 +
> > include/uapi/linux/videodev2.h | 2 +
> > 4 files changed, 134 insertions(+)
> >
> > diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst
> > index b788f69338554..22cad8c9726bf 100644
> > --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst
> > +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst
> > @@ -79,6 +79,13 @@ All components are stored with the same number of bits per component.
> > - Cr, Cb
> > - Yes
> > - Linear
> > + * - V4L2_PIX_FMT_NV15
> > + - 'NV15'
> > + - 10
> > + - 4:2:0
> > + - Cb, Cr
> > + - Yes
> > + - Linear
>
> In your cover letter you mentioned:
> Imported improvements from [1]
> [1]: https://lore.kernel.org/linux-media/20250225-rkvdec_h264_high10_and_422_support-v7-2-7992a68a4910@collabora.com/
>
> The changelog of "media: rkvdec: Add H.264 High 10 and 4:2:2 profile
> support" v7 had this:
> - Move V4L2_PIX_FMT_NV15/V4L2_PIX_FMT_NV20 documentation as suggested
>
> Following a comment on v6 of that series.
>
> But it seems these blocks are now placed at the location as it was in
> the v6 series, thus NOT importing its improvements?
The other series have been partially accepted into media-commiters next
branch, including this patch. Meaning you can simply remove that patch
in your next submission.
regards,
Nicolas
>
> > * - V4L2_PIX_FMT_NV12M
> > - 'NM12'
> > - 8
> > @@ -172,6 +179,13 @@ All components are stored with the same number of bits per component.
> > - Cr, Cb
> > - Yes
> > - Linear
> > + * - V4L2_PIX_FMT_NV20
> > + - 'NV20'
> > + - 10
> > + - 4:2:2
> > + - Cb, Cr
> > + - Yes
> > + - Linear
> > * - V4L2_PIX_FMT_NV16M
> > - 'NM16'
> > - 8
>
> The same thing seemed to have happened here?
>
> Cheers,
> Diederik
>
> > @@ -302,6 +316,57 @@ of the luma plane.
> > - Cr\ :sub:`11`
> >
> >
> > +.. _V4L2-PIX-FMT-NV15:
> > +
> > +NV15
> > +----
> > +
> > +Semi-planar 10-bit YUV 4:2:0 format similar to NV12, using 10-bit components
> > +with no padding between each component. A group of 4 components are stored over
> > +5 bytes in little endian order.
> > +
> > +.. flat-table:: Sample 4x4 NV15 Image (1 byte per cell)
> > + :header-rows: 0
> > + :stub-columns: 0
--
Nicolas Dufresne
Principal Engineer at Collabora
More information about the linux-arm-kernel
mailing list