Hi
"4:x:y" refers to chroma subsampling, details here:
https://en.wikipedia.org/wiki/Chroma_subsampling. With "YUV 4:4:4" each
pixel has 1 Luma information and 1 Chroma information: 1 Y + 1 Cb + 1 Cr
= 24 bits per pixel.
In top of that, each of the three components (Y, Cb, Cr) can be stored
in a single memory plane (packed format), just like usual RGB formats
are. Or components can be stored in 2 (Y + Cb-Cr) or 3 (Y + Cb + Cr)
memory planes.
The combination of the chroma subsampling and the number of planes,
defines a pixel format. The problem is that each sub-system (DRM, V4L2,
GStreamer, ...) uses its own constants with unfortunately unconsistent
names across them.
Let's consider the YUV 4:4:4 with three planes format:
DRM =DRM_FORMAT_YUV444
V4L2 = V4L2_PIX_FMT_YUV444M
GStreamer = GST_VIDEO_FORMAT_Y444
As you can see, although all of them specify the same pixel format, the
names are quite different.
And regarding V4L2_PIX_FMT_YUV444 (not ending with "M"), it defines
another format with the following specifications:
- YUV packed
- 4:4:4 chroma sampling
- Alpha (when supported by driver)
- 4 (not 8) bits per component
Very different from the "standard" YUV 4:4:4 pixel format.
I agree that its name is confusing, but since it is part of the API, we
shall consider that it won't be updated.
From what I have seen, DRM (maybe because it is a relatively recent
'framework') has a clear definition of the pixel formats.
Fabien
On 10/27/2016 08:16 AM, Guennadi Liakhovetski wrote:
> Hi,
>
> Looks like the Linux definition of the (packed) YUV444 format contradicts
> wikipedia. According to
> https://linuxtv.org/downloads/v4l-dvb-apis-new/uapi/v4l/pixfmt-packed-yuv.html
> The Linux V4L2_PIX_FMT_YUV444 format takes 16 bits per pixel, whereas the
> wikipedia
> https://en.wikipedia.org/wiki/YUV#Converting_between_Y.E2.80.B2UV_and_RGB
> says it's 24 bits per pixel. I understand that the wikipedia doesn't have
> an absolute authority, but I also saw other sources using the same
> definition. So, looks like some confusion is possible.
>
> Thanks
> Guennadi
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html