Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I spend a lot of time looking at raw-video in YCbCr-format. Started thinking about what is really shown on the display and how the pixels end up there.

No display can handle YCbCr-data so I guess everything gets converted to RGB somewhere. YCbCr->RGB is however tricky business, see e.g. http://www.fourcc.org/fccyvrgb.php

If I do the YCbCr- to RGB-conversion, am I guaranteed that the pixel-values I have are the ones being displayed?

Short of getting a hardware-calibrated Eizo-display like the ones shown here:

http://www.eizo.com/global/products/coloredge/

enter image description here

is there a way to have as much control as possible over the "pipeline" to the display (i.e. my pixels do not get converted on the way) I'm thinking perhaps nvidia/gpu/opengl and moving everything as close to the HW as possible; then for my graphic-card at least I know what I'm looking at.

Is there a RGB-format that is native for graphics card and that doesn't require any further conversion? YCbCr is 8bpp and I'm thinking 32-bit RGB 4:4:4.

I'm mainly on an linux-system if that makes a difference. Currently I'm using http://www.libsdl.org/ There's also http://directfb.org/ but I haven't explored that path yet.

Or, perhaps all this is just stupid and paranoid :-)

share|improve this question

closed as not a real question by Fredrik Pihl, slhck May 26 '13 at 13:40

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Please do not vandalize your own posts. I closed the question for now—that should be fine. I'm not inclined to delete it though, as someone actually took the time to answer your questions and received votes as well. –  slhck May 26 '13 at 13:41
add comment

1 Answer 1

up vote 3 down vote accepted

That's a lot of questions, I'll try to answer at least some of them.

No display can handle YCbCr-data so I guess everything gets converted to RGB somewhere.

All displays use RGB. On LCDs each pixel consists of three subpixels in three basic colors. So you're right, everything must be converted to RGB to be displayed.

If I do the YCbCr- to RGB-conversion, am I guaranteed that the pixel-values I have are the ones being displayed?

It depends what you mean. You are guaranteed that exact results of the conversion are displayed. So it depends on the results of conversion and those depend on the gamma you're using.

is there a way to have as much control as possible over the "pipeline" to the display (i.e. my pixels do not get converted on the way) I'm thinking perhaps nvidia/gpu/opengl and moving everything as close to the HW as possible; then for my graphic-card at least I know what I'm looking at.

Once the image is converted to RGB, it's not modified anymore (unless you use f.lux or similar software). It doesn't really matter if it's closer to hardware or not, it's just a bunch of pixels and nothing will modify them after conversion to RGB (unless you ask something to, like with the mentioned f.lux, color correction software or video editing programs that can apply color filters).

YCbCr is 8bpp and I'm thinking 32-bit RGB 4:4:4.

I think you're mixing few things up or I don't get what you mean. First, 32-bit RGB can't be 4:4:4, because you can't equally split 32 bits to 3 color channels. (10 bits for R, 11 bits for G, 11 bits for B?) 32-bit RGB actually consists of three 8-bit color channels and one 8-bit transparency channel. Videos don't have transparency, so they work with 24-bit RGB. (8 bits for each channel)

I don't know how YCbCr is saved in digital format, but I'm sure it's not 8-bit, at least assuming we're talking about total size of a pixel. (if you mean 8-bit color channels, then it's exactly as much as in RGB) 8-bit pixels could hold up to 256 colors. 24-bit RGB is over 16 million colors.

Is there a RGB-format that is native for graphics card and that doesn't require any further conversion?

So you want raw, uncompressed RGB pixels? Well, there are such picture and video formats, but uncompressed videos take up really A LOT of space. Let's do a quick calculation for a 24-bit 24fps 1080p video:

3B * 1920px * 1080px * 24fps = 149299200B

So every second of raw uncompressed 1080p video weights over 140 MB. It means you could have up to 5 and a half minute of video on an industry-standard Blu-Ray disc. Not really a good deal I think ;)

share|improve this answer
add comment

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