I have for example 4*4 image. I want to extract the Y,U and V components separately. How to do it if the image is YUV 422 ,YUV 420 and YUV444. I am interested in knowing the structure of array how Y,U and V are stored in 422,420 and 444, so that it can be accessed.
This site gives you a pretty good overview over the different YUV formats. There's also a pixel-structure given.
For clarification: These numbers are for determination of color component subsampling. For instance YUV 444 = 4:4:4 subsampling, meaning that every of the three components (Y, U and V) has the same sample rate. Whereas 4:2:2 states that U and V are only sampled with half the rate of Y. Or, in other words, 2 Bytes for Y and for U and V 1 Byte respectively, if the depth is 1 Byte. This implies that Y can have a higher dynamic range.
It is worth noting that JPEG standard defines horizontal and vertical sampling factors for each color component. The human visual system has a 20:1 ratio of the luma sensors (rods) to chroma sensors (cones). For this reason, typically luminosity component is not subsampled, but the JPEG standard does allow such content to be encoded.
it's a pretty old question, however I've just finish some work about decoding YUV and I would like to share some infos. There are 3 main aspects of the YUV schema:
If the source YUV buffer is a packed or planar buffer. Packed means that the YUV bits are grouped togheter, planar means the Y, U and V buffers are separated in 3 differents memory area.
YUV channel size; the single Y,U,V channel could be of 8-bit, 10-bit, 12-bit, etc
the sampling ratio; A:B:C. 4:2:2 means that you horizontally have 1 Y value for each pixels and one only U and V value shared between two neightboard pixels.
I've just worked on YUV 4:2:2 v210 decoding, following this link there is the GLSL source code to decode and the resources I referred to. Any advice is welcome, it's my first decoder.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With