1
\$\begingroup\$

I understand that RGB 888 means 8 bit per color and pixel, which gives us the very well known "16.7 million colors".
I also understand 4:4:4 for luminance/chrominance coding in YCrCb.
What I don't get at the moment is RGB 4:4:4 in the HDMI standard:
See chapter 6.5.1 of http://www.microprocessor.org/HDMISpecification13a.pdf:

enter image description here

I can't help but understanding this as RGB 888: Each Pixel is transmitted on three channels, where each channel (or "component") carries 8 bit of color information.
So, why is it called RGB 4:4:4?
Or is my understanding completely wrong?

\$\endgroup\$
3
\$\begingroup\$

This isn't related to bits but to an area of nx2 pixels on the screen. Please read

https://en.wikipedia.org/wiki/Chroma_subsampling

RGB 4:4:4 means RGB, no chroma subsampling. It's the only mode which makes sense for RGB because RGB hasn't chroma separated from luma.

\$\endgroup\$
  • \$\begingroup\$ So it's indeed RGB 888, but named 4:4:4 to confuse people like me? \$\endgroup\$ – mic Oct 10 '16 at 15:58
  • \$\begingroup\$ As said, this isn't related to bits at all. The drawing in that spec sheet is misleading in the attempt to make things clear. 4:a:b means the sampling box is 4 pixels wide and 2 pixels tall (that's fixed because old hardware could only store the previous line), a means how many color columns the sampling box has and b means how often colors change between first and second line, unrelated to the columns. \$\endgroup\$ – Janka Oct 10 '16 at 16:11
  • \$\begingroup\$ I understand the concept of 4:a:b, and I understand that it makes no sense for RGB values. But what's still not clear to me: In the referred figure, is "R0", "G0" and "B0" the color information for Pixel 0 or not? And is each value 8 bit wide or not? \$\endgroup\$ – mic Oct 10 '16 at 16:28
  • \$\begingroup\$ The drawing is misleading as it doesn't have to do anything with 4:4:4. You could have 16 bits per pixel and it would still be 4:4:4. Because 4:4:4 isn't about bits but about pixels in a sampling box. \$\endgroup\$ – Janka Oct 10 '16 at 16:55
  • \$\begingroup\$ addition: See section 6.2.4 of the HDMI spec. It says HDMI supports 24, 30, 36 and 48 bits. \$\endgroup\$ – Janka Oct 10 '16 at 17:07
0
\$\begingroup\$

RGB color model uses three colors RED GREEN BLUE and their intensities to create all other colors. Therefore, each pixel will have three channels each of which represents the corresponding color intensity. In other words, each pixel will contain its own individual color information (NOTE: this is true for an artificially created images, or images that have been obtained separately as red green and blue components, whereas most of images come from cameras that use color filter array, and demosaicing allows to reconstruct the missing colors - resulting in a pseudo-true rgb components).

I would guess that RGB 888 means that each color channel is 8 bit deep. Some censors have 12bit and other bit depths. So, I think RGB888 in not an HDMI standard but rather states the colorspace and the bitdepth. Some images in Windows have an alpha (transparence channel).

enter image description here

The other way to represent the color is in YUV colorspace - which is luma - the intensity, and the other two represent colors. enter image description here

So, the two above and other standards (HSV, HSL) are used to represent the information about the pixel.

When we are talking about pixel stream, we can send the information about the pixels in many different ways. In some cases, we believe that we can send less information about the pixel and still reproduce a picture so the eye will not see the difference. Therefore, we use chroma subsampling - thus, instead of sending the full information about each pixel, we share that information with the neighboring pixels. I assume from your comments, that you understand how the subsampling takes place. If not, check out this answer.

Thus, the HDMI standard must specify how the color space standard (RGB, YUV...) and the subsampling (4:4:4, 4:2:2...). The YCrCb standard implies the YUV color spalce and CrCb or CbCr information order. The numbers after describe subsampling.

Now, this is how I would interpret the RGB4:4:4. The RGB stands for a 3 channel format (for each color). The 4:4:4 stands for no subsampling - that is each pixel contains its unique (original) information.

\$\endgroup\$
  • \$\begingroup\$ I would also guess, that the RGB4:4:4 is redundant and simply states "the original data content". The RGB4:4:4 interconvertable with YCrCb4:4:4 with "no information loss". Although, we always loose some due to truncation and rounding errors \$\endgroup\$ – Nazar Oct 10 '16 at 19:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.