| 16bit Colorspace Efficiency | page 1 2 3
|
|---|
|
|---|
One Thousand USA
| | Posts 832 25 Dec 2010 00:19
| I think this question is right up Thomas Richter's alley, but of course anyone can answer. Since the eye is more sensitive to brightness than color, having a colorspace that separates out brightness from color is more efficient than RGB. If you were to make the most efficient 16bit direct color mode, what colorspace (YUV, LAB, etc) would you choose and what would the bit allocation be for each channel (e.g. Y8U4V4)? Thanks!
| |
Marcel Verdaasdonk Netherlands
| | Posts 3976 25 Dec 2010 00:27
| Hue Saturation Lightness/Value wasn't that in the original idea before Amiga went for RGB? Personally i would go for LAB value's because LED's get binned using a LAB specific coordinate system.(LCD screens, and such)
| |
Thomas Richter Germany
| | (MX-Board Owner) Posts 1425 25 Dec 2010 13:12
| One Thousand wrote:
| I think this question is right up Thomas Richter's alley, but of course anyone can answer. Since the eye is more sensitive to brightness than color, having a colorspace that separates out brightness from color is more efficient than RGB. If you were to make the most efficient 16bit direct color mode, what colorspace (YUV, LAB, etc) would you choose and what would the bit allocation be for each channel (e.g. Y8U4V4)?
|
A rather typical configuration, and a very practical one for video playback would be YUV422, that is, 8Bit Y, 8Bit Y, 8 Bit U, 8 Bit V, i.e. 32 bit data describe two luma samples, and one chroma sample (U and V) of twice the horizontal extend. It is a format often deployed for video codes, and addresses the lower frequency sensitivity of the human eye for chroma.Greetings, Thomas
| |
One Thousand USA
| | Posts 832 25 Dec 2010 15:28
| Thanks. What would you have for a regular screen (not specifically for video, but for a typical desktop) that is 16bits?
| |
Gunnar von Boehn Germany
| | (Moderator) Posts 5775 25 Dec 2010 15:58
| Thomas Richter wrote:
| A rather typical configuration, and a very practical one for video playback would be YUV422
|
An elegant fit would be using a 3 plane screen of bytes for this. 1. Plane U 2. Plane Y 3. Plane V If Plane 1 and 3 are lowres a plane 2 Hires then it would match this format.
| |
Marcel Verdaasdonk Netherlands
| | Posts 3976 25 Dec 2010 19:03
| One Thousand wrote:
| Thanks. What would you have for a regular screen (not specifically for video, but for a typical desktop) that is 16bits?
|
For a desktop RGB would work, for some applications however i would rather use a different angle. Like i said for a game HSV would suit good.(especially 2d work) For video Thomas is right about it being native to the files @Gunnar could it be that simple and work? It has to be looked at more as what are you gonna do then this is it One thousand. For each application has it's own best fitting colour scheme and it can prolly be set in the file header or something like that.
| |
One Thousand USA
| | Posts 832 25 Dec 2010 19:32
| I think my starting post states it well. My question is about something more efficient than RGB in 16bits. So RGB is automatically out. It seems to me that you can get perceptively near 24bit RGB quality at 16bits with a better colorspace. You can certainly get better than 15/16bit RGB with another colorspace. Thomas gave a suggestion for video playback. I am also interested in a general desktop usage or other ideas. Both colorspace and bit allocation is a part of the question. Thanks.
| |
Wojtek P Poland
| | Posts 1597 25 Dec 2010 20:54
| One Thousand wrote:
| I think this question is right up Thomas Richter's alley, but of course anyone can answer. Since the eye is more sensitive to brightness than color, having a colorspace that separates out brightness from color is more efficient than RGB. If you were to make the most efficient 16bit direct color mode, what colorspace (YUV, LAB, etc) would you choose and what would the bit allocation be for each channel (e.g. Y8U4V4)?
|
I would recommend YCbCr (YUV) color space coded that way:1st word - 8bit Y, 8bit Cb 2nd word - 8bit Y, 8bit Cr OR: 1st word - only Y for 2 pixels 2nd word - Cb and Cr same for 2 pixels. second idea would be more efficient to operate with software i think.
| |
Wojtek P Poland
| | Posts 1597 25 Dec 2010 20:56
| Gunnar von Boehn wrote:
|
Thomas Richter wrote:
| A rather typical configuration, and a very practical one for video playback would be YUV422 |
An elegant fit would be using a 3 plane screen of bytes for this. 1. Plane U 2. Plane Y 3. Plane V
|
Can natami operate 3 planes with different resolution?it would be GREAT to have 3 8-bit planes, but luminance with full resolution and chrominance with halfxhalf resolution (or halfxfull meyby). GREAT way to optimize memory bandwidth and amount of calculations. even greater to play movies, YUV=>RGB and desubsampling done by hardware easy way.
| |
Megol .
| | Posts 678 26 Dec 2010 15:06
| One Thousand wrote:
| I think my starting post states it well. My question is about something more efficient than RGB in 16bits. So RGB is automatically out. It seems to me that you can get perceptively near 24bit RGB quality at 16bits with a better colorspace. You can certainly get better than 15/16bit RGB with another colorspace. Thomas gave a suggestion for video playback. I am also interested in a general desktop usage or other ideas. Both colorspace and bit allocation is a part of the question. Thanks.
|
7 bit Y, 5 bit U, 5 bit V perhaps? It would be nice if we could get a new 8 bit mode that let us use HAM as originally intended :) Not that that kind of compressing is really needed in a Natami.
| |
Wojtek P Poland
| | Posts 1597 26 Dec 2010 20:33
| One Thousand wrote:
| Both colorspace and bit allocation is a part of the question. Thanks.
|
3 8-bit planes, one luminance, 2 chrominance+ability to set up half or halfxhalf resolution for chrominance planes.useful not only for video i think.
| |
Marcel Verdaasdonk Netherlands
| | Posts 3976 26 Dec 2010 23:15
| Nice thoughts and all but i wanna know how you are gonna do your translation so you can blast it out of the output and onto the monitor. ;) If you still plan on using a VGA monitor, your stuck with RGB since that is the bus and protocol.(analog) DVI works a little more, interesting. EXTERNAL LINK Anyhow honestly No matter what we'll do with the file of the image or a video file. We have to send it to the display at some point. If it is for a program for movie editing i can understand why people would prefer to stick with the file native format. and to remain a little more on topic R5,G6,B5 since our eyes are more sensitive to green. No offense intended to anyone guys, but the Amiga engineers must have worked thinking from how their output devices worked if you look at the standards.
| |
Samuel D Crow USA
| | (Natami Team) Posts 1295 26 Dec 2010 23:22
| Marcel, I know you are no artist. Artists have tried for a decade or so to take advantage of the extra bit of green in R5G6B5 resolutions. There is absolutely no benefit to having an extra bit of green over having a mask bit like the Irrlicht graphics engine uses (R5G5B5A1).
| |
Marcel Verdaasdonk Netherlands
| | Posts 3976 27 Dec 2010 01:34
| Samuel D Crow wrote:
| Marcel, I know you are no artist. Artists have tried for a decade or so to take advantage of the extra bit of green in R5G6B5 resolutions. There is absolutely no benefit to having an extra bit of green over having a mask bit like the Irrlicht graphics engine uses (R5G5B5A1).
|
Hence the need to be able to place the graphic palette use in the file header. And i know your right Samuel about the need for alpha blend. It's just a case of Mr. Z uses application Y using file type X. It's not one to rule them all, we need to be able to use them all. let the user decide what he needs to get the job done. Let a designer or the graphic artist decide what would give the best effect for their work. What we should be asking our self is the 16bit colour space enough for what i need it to do with it? In somecases it will fit the bill fine, in others it won't. Just give the User the tools to work. (silly mode) R8,A8 bit-plane 1 G8,A8 bit-plane 2 B8,A8 bit-plane 3 This could be handy if the editor needs to only check only colour(colour filter) (/silly mode)
| |
Thomas Richter Germany
| | (MX-Board Owner) Posts 1425 27 Dec 2010 02:33
| Marcel Verdaasdonk wrote:
| Nice thoughts and all but i wanna know how you are gonna do your translation so you can blast it out of the output and onto the monitor. ;) If you still plan on using a VGA monitor, your stuck with RGB since that is the bus and protocol.(analog) DVI works a little more, interesting. EXTERNAL LINK Anyhow honestly No matter what we'll do with the file of the image or a video file. We have to send it to the display at some point. If it is for a program for movie editing i can understand why people would prefer to stick with the file native format.
|
The solution is as simple as this: Run the YUV to RGB conversion in hardware - where's the problem? It would avoid some of the complexity for video playback already.Greetings, Thomas
| |
Wojtek P Poland
| | Posts 1597 27 Dec 2010 10:55
| Thomas Richter wrote:
| | The solution is as simple as this: Run the YUV to RGB conversion in hardware - where's the problem? It would avoid some of the complexity for video playback already. Greetings, Thomas
|
Isn't that what we are talking about - supporting YUV by natami?
| |
Marcel Verdaasdonk Netherlands
| | Posts 3976 27 Dec 2010 11:18
| Wojtek P wrote:
|
Thomas Richter wrote:
| The solution is as simple as this: Run the YUV to RGB conversion in hardware - where's the problem? It would avoid some of the complexity for video playback already. Greetings, Thomas |
Isn't that what we are talking about - supporting YUV by natami?
|
Wojtek i'd advice looking at the thread name. YUV is only a small portion of it.
| |
Fantoma Australia
| | Posts 7 27 Dec 2010 12:31
| Back to the original question of a colourspace for a *16bit* desktop/workbench display; I can see why you would want it, reduced memory bandwidth over a 24/32 bit display with a decent amount of colours. YUV spread over two or more pixels is a good compromise for moving images but not really suitable for desktop/GUI usage in my opinion. Look at the 'bleeding' on anything with a GUI in HAM mode as examples. The idea is with 16bits to get the best spread of human perceivable colours possible and that was the reason why LAB was defined so i'd look at that first. Elsewhere there was talk of YCoCg also for textures but maybe it is relevant here as well?
| |
Marcel Verdaasdonk Netherlands
| | Posts 3976 27 Dec 2010 12:57
| i've been thinking,(brace yourself)what if we went for HSV? H8,S3,V5 (anyone got a better proposal?) I suppose looking at lab this would require a extra register to set white.(you have a curve for platinum heated through a variation of temperatures)Any advice on where to place the 0 degrees on Hue?
| |
One Thousand USA
| | Posts 832 27 Dec 2010 15:39
| Thanks, Fantoma. You said it well. Again, RGB is off-topic. It was disallowed in the beginning because it is inefficent. No more RGB, thanks. And it is to be 16bit too. I think I like something like LAB. The Atari Jaguar had a CRY (cyan, red, lightness) which was nice. They claim that the eye is least able to distinguish shades of green. Although I think having a push-pull between red-green and blue-yellow (like LAB) is better than their choice of red-cyan and blue-yellow, because R-G and B-Y seem to be visual opposites. I think 8 on brightness would be best leaving 4-4 on the color, because the eye is most sensitive to brightness over color. (So H8 would be out, because that is putting the most bits on color where the eye is weak, not brightness where it is strong.) Of course, even YUV @ 655 would be much better than any RGB in 16bit.
| |
|