Re: YUV444 contradicting wikipedia

2016-11-02 Thread Fabien DESSENNE
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


YUV444 contradicting wikipedia

2016-10-27 Thread Guennadi Liakhovetski
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