Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,742,143 Members 52,173 Now Online
XDA Developers Android and Mobile Development Forum

[MOD] Nexus S screen color. explanation of the 2.3.3 colors, calibration tools!

Tip us?
 
supercurio
Old
(Last edited by supercurio; 2nd March 2011 at 02:33 AM.)
#1  
supercurio's Avatar
Senior Recognized Developer - OP
Thanks Meter 5070
Posts: 3,529
Join Date: May 2010
Location: Chambéry

 
DONATE TO ME
Default [MOD] Nexus S screen color. explanation of the 2.3.3 colors, calibration tools!

Hey

I see there is desire for insights and understanding by reading press articles about 2.3.3 color change.

First, a statement:
What I know:

- What I will explain here
- 2.3.3 change looks bad on my device : Colors are washed out, the response is very far from a 2.2 gamma / sRGB calibrated screen should look like.

What I don't know:

- If the result is bad on every screen. Probably not.
It's known Samsung manufactured at least 2 different Super AMOLED screen revisions, and it's possible that 2.3.3 looks perfect on some screens.

Links:
Issue 15039: Android 2.3.3 screen yellowish


What changed:

In 2.3.3, the screen (framebuffer) driver has been updated.
This screen driver consist of several files, including code that calculate gamma adjustment points and brightness levels dynamically based on a reference gamma table.

Change in 2.3.3 can be categorized in 3 types:

Code and gamma points calculations

1/ A new feature introduced is the ability of the driver to read informations from the screen hardware.
So far, there was no detection at all, just configuration sent.

Now the driver has the ability to ask to the screen: "what are your factory calibration levels for Red, Green and Blue"

2/ Another change is in the driver initialization sequence, supposed to setup the internal screen control hardware calculations for gamma 2.2 instead of something else (not specified)
It has the effect of brightening shadows.


Color temperature change

The updated driver has the ability to use multipliers to adjust the screen temperature on the linear scale.
In theory, it should allow to change red/green/blue levels without altering the color rendition accuracy, despite the complex calculations needed to generate color profiles at each brightness levels.

Today, those Red Green Blue multipliers are fixed in stone, but I'll publish shortly a kernel version + an app so you can control them manually.
It will needed to be treated with care because of potential overheat or fast burn-in side-effects at too high brightness levels.


Different Gamma table (aka Super AMOLED color profile)

Colors calibration for Super AMOLED design has almost no common points with current methods applicable to LCD only.
Calibrating a AMOLED screen requires to setup 255 different hardware correction profiles, one per brightness level.
Instead of that, math calculations, based on a reference gamma table are used to setup responses applied by the screen hardware, that control each single led accordingly.

On a LCD screen it's much simpler as the LCD panel response is always the same: One profile is virtually enough as brightness changes correspond to adjustments of the backlight power.
This is why LCD-type adjustment calibration or color change tools (like the one in CyanogenMod) cannot be used to calibrate Super AMOLED screen.

The gamma table has been vastly updated. It also brighten the shadows compared to previous profiles.
However, Google's previous Gamma table exhibited a purple deviation in dark grays, especially at low brightness settings. This new gamma table fixes the issue.


Source files:
- main driver - calculations
- hardware gamma adjustment points placement
- gamma table (and in the same file: screen initializations sequence)

Commits - source changes:
1/ ARM: herring: panel: Adjust pentile gamma table
2/ s3cfb_tl2796: Add support for reading mtp gamma register offsets
3/ s3cfb_tl2796: Add debug function to read current gamma correction registers
4/ ARM: herring: panel: Add support for reading mtp data
5/ ARM: herring: panel: Update gamma table
6/ ARM: herring: panel: Correct color temperature.


Conclusions

The new driver is properly (I would say: smartly!) written. It implement features exactly how it should be done.
Also, it should work well on each screen revision as it adapt to them.

However, something went wrong in the process.
Calibrating a screen cannot be done

Also, this is a Super AMOLED. Contrast Ratio of it is almost infinite.
Trying to apply exactly color profiles designed for lesser screens, with lower contrasts and gamut cannot work, by design.

However it doesn't mean a Super AMOLED screen is condemned to exhibit washed out or absurd over-saturated colors.
In a similar way, calibrating plasma TVs is not easy but can lead to excellent results.


Kernel for color developers, allowing hardware calibration

In this post
and this one
Yes, a third one too
Yet again another one


write in progress... comments welcome already
The Following 8 Users Say Thank You to supercurio For This Useful Post: [ Click to Expand ]
 
terryhau
Old
(Last edited by terryhau; 28th February 2011 at 12:34 AM.)
#2  
Senior Member
Thanks Meter 156
Posts: 262
Join Date: Feb 2010
just a bit of extra info
http://www.engadget.com/2011/02/27/n...ature-we-go-e/

Poll shows
2607 like the new colors.
727 do not like the new colors.
Check out my apps on Google Play
 
supercurio
Old
(Last edited by supercurio; 27th February 2011 at 01:01 PM.)
#3  
supercurio's Avatar
Senior Recognized Developer - OP
Thanks Meter 5070
Posts: 3,529
Join Date: May 2010
Location: Chambéry

 
DONATE TO ME
Quote:
Originally Posted by terryhau View Post
just a bit of extra info
http://www.engadget.com/2011/02/27/n...ature-we-go-e/

Poll shows
529 like the new colors.
157 do not like the new colors.
Yes but I think the poll accuracy is affected by the article's photo,
The camera white balance used favor 2.3.3 color rendition.
On the color accuracy topic, the photo is not representative of what you see on the actual screen.

It allows however to calculate differently:

581 (14.9%) "looking good"

170 + 82 + 142 = 394 not happy with the update. "No, my screen looks terrible." + "No, mine's plagued with other bugs here." + "No, everything's gone wrong!"
The Following User Says Thank You to supercurio For This Useful Post: [ Click to Expand ]
 
terryhau
Old
#4  
Senior Member
Thanks Meter 156
Posts: 262
Join Date: Feb 2010
The poll asks people how they think it looks on their device, not in the picture.
But i agree, polls are inaccurate.

I haven't actually seen the 2.3.3 color profile on my own device because none of the custom kernels here use it. And i don't want to use a stock kernel (cm7 user).

When you update your kernel, will it use the new profile by default?
Check out my apps on Google Play
 
supercurio
Old
(Last edited by supercurio; 27th February 2011 at 12:57 PM.)
#5  
supercurio's Avatar
Senior Recognized Developer - OP
Thanks Meter 5070
Posts: 3,529
Join Date: May 2010
Location: Chambéry

 
DONATE TO ME
Quote:
Originally Posted by terryhau View Post
The poll asks people how they think it looks on their device, not in the picture.
But i agree, polls are inaccurate.

I haven't actually seen the 2.3.3 color profile on my own device because none of the custom kernels here use it. And i don't want to use a stock kernel (cm7 user).

When you update your kernel, will it use the new profile by default?
Yeah, this poll cannot be accurate as the poll answers are for different questions, mixing color changes and general update modifications.
This poll is invalid by design ^^
You cannot add apples and oranges.

Until we manage to get nice colors from the new driver & gamma table, I'll publish mine with the old solution + the Voodoo color profile applied from the app.

But in this thread yes I'll publish a special kernel running the new code. But with the ability to customize it.

The goal is to let people try adjustments and share them
The Following User Says Thank You to supercurio For This Useful Post: [ Click to Expand ]
 
mhaedo
Old
#6  
mhaedo's Avatar
Senior Member
Thanks Meter 87
Posts: 139
Join Date: Apr 2009
Location: Philadelphia
When the 2.3.3 update was released a few days ago, my immediate reaction was positive. I noticed how dramatically better the greys looked. Colors looked more accurate. I viewed the change as positive. I was quite vocal about how this was a fix, not a problem.

http://forum.xda-developers.com/show...73&postcount=7
http://forum.xda-developers.com/show...3&postcount=56
http://forum.xda-developers.com/show...3&postcount=49
http://forum.xda-developers.com/show...4&postcount=41
http://forum.xda-developers.com/show...4&postcount=30
http://forum.xda-developers.com/show...&postcount=448
http://forum.xda-developers.com/show...&postcount=446

Unfortuntately, after nearly three full days of use I must take back every single one of the above posts. My screen looks terrible. The colors ARE more accurate. The greys ARE much better. However, overall my screen looks like it has jaundice. Everything listed in post #49 referenced above (ie. the dialer) does look dramatically better. However, my whites are terrible. They are not "yellow" per se, but they look like they have a slight yellow tinge like a subtle parchament effect. And honestly, I think since I knew this was an intended fix I convinced myself to like it. I figured the yellow was just my imagination because it was overly blue before, and yellow is the opposite of blue. If I look at my Facebook widget, GMail app, or Market app objectively three days later I can honestly say the yellow is real, and it is quite gross. When compared directly to my girlfriend's myTouch 4G the change is even more apparent. It's not that her whites are overly blue...mine really do have a subtle yellow tinge. And although stock and voodoo are both a bit oversaturated, the new 2.3.3 cover profile does appear undersaturated or "washed out."

Last night I reverted to voodoo color and WOW, it was a breath of fresh air. The colors are not as accurate. However, I don't care. The jaundice is gone, and my screen is vibrant again. If I must accept a tradeoff, I'll take the vibrant oversaturated colors over the sickly jaundice update colors. And this is coming from someone who initially viewed the change as overwhelmingly positive. I suppose subtle differences in sAMOLED manufacturing and each person's own perception of color make each person's preference different. Some people's screens may not have the yellow mine does. However after almost three days of trying to like the new profile, and then a VERY throrough comparison of stock 2.3.2, voodoo, and 2.3.3 ...I'll stick with voodoo. I just can't take the LED jaundice.

Thanks for your hard work supercurio. I'm really looking forward to the calibration tools.
Galaxy Nexus - Nexus 7
(Previously G2x, Nexus S, EVO, Nexus One, Cliq, and G1)
 
supercurio
Old
(Last edited by supercurio; 27th February 2011 at 02:58 PM.)
#7  
supercurio's Avatar
Senior Recognized Developer - OP
Thanks Meter 5070
Posts: 3,529
Join Date: May 2010
Location: Chambéry

 
DONATE TO ME
You know @mhaedo, if it a screen looks terrible (in some situations) it's always because the color rendition is not accurate.
Despite each screen physical/technical limitations.

People will tell you "it's washed out because it's calibrated" => wrong.

There is nothing more beautiful − objectively − than a accurately color calibrated screen.
I mean, with a calibrated screen you just forget it because everything is how it should be.

Because it becomes neutral, you don't see the screen anymore, only the images displayed on it.

Thanks for your report!
The Following User Says Thank You to supercurio For This Useful Post: [ Click to Expand ]
 
mhaedo
Old
#8  
mhaedo's Avatar
Senior Member
Thanks Meter 87
Posts: 139
Join Date: Apr 2009
Location: Philadelphia
Quote:
Originally Posted by supercurio View Post
You know @mhaedo, if it something looks terrible it's because the colors are not accurate.

People will tell you "it's washed out because it's calibrated" => wrong.

There is nothing more beautiful − objectively − than a accurately color calibrated screen.
I mean, with a calibrated screen you just forget it because everything is how it should be.

Because it becomes neutral, you don't see the screen anymore, only the images displayed on it.

Thanks for your report!
Well greys are definitely more accurate and look great. However I suppose you are right. As a whole, it is not accurate. I just purchased your voodoo donate market app to support the development. Thanks again.

Sent from my Nexus S using Tapatalk
Galaxy Nexus - Nexus 7
(Previously G2x, Nexus S, EVO, Nexus One, Cliq, and G1)
The Following User Says Thank You to mhaedo For This Useful Post: [ Click to Expand ]
 
kenvan19
Old
#9  
kenvan19's Avatar
Senior Member
Thanks Meter 543
Posts: 3,546
Join Date: Dec 2010
Location: Phoenix

 
DONATE TO ME
Quote:
Originally Posted by supercurio View Post
You know @mhaedo, if it a screen looks terrible (in some situations) it's always because the color rendition is not accurate.
Despite each screen physical/technical limitations.

People will tell you "it's washed out because it's calibrated" => wrong.

There is nothing more beautiful − objectively − than a accurately color calibrated screen.
I mean, with a calibrated screen you just forget it because everything is how it should be.

Because it becomes neutral, you don't see the screen anymore, only the images displayed on it.

Thanks for your report!
I tend to disagree that people forget about a color calibrated screen. Actually, I know it to be completely false. Most best buy locations have a color calibrated TV display where they have two TVs side by side; one calibrated and one not. If you ask people which TV looks better 99 out of 100 people will tell you the overly blue saturated TV is clearly more bright and has deeper blacks. Those people are wrong. That is exactly what is going on here and its exactly why Samsung and others do this to displays. I'm all for giving people the choice when it comes to their screens but I'm also for not letting people perpetuate a falsehood; I've looked closely at my screen and my wife's, looked at every "horriblely" yellow tinted screen people have posted pictures of and I stand by my statement that there us nothing wrong. People are just used to horribly tuned screens.

Sent from my Nexus S using XDA Premium App
~Phone History~
HTC MyTouch 3G (Sold)>Samsung Epic 4G (Traded)>HTC Evo 4G (Sold)>Samsung Nexus S (Sold)>T-Mobile Samsung Galaxy S 2 (AKA Hercules)


This message brought to you through the wonders of the web and Google via Android (Samsung Hercules), ChromeOS (Google Cr-48), or Chrome (Apple Macbook Pro)!

 
supercurio
Old
(Last edited by supercurio; 27th February 2011 at 02:09 PM.)
#10  
supercurio's Avatar
Senior Recognized Developer - OP
Thanks Meter 5070
Posts: 3,529
Join Date: May 2010
Location: Chambéry

 
DONATE TO ME
There is calibration and calibration.
Often, the name calibration is used for reddish screen tones and dull colors.

It should only describe a rendering scientifically accurate that fit the intended target color space.
Most times: sRGB color space.

However, I fully agree on the temperature. 6500K, which is the natural sRGB white point is fine compared to natural colors in exterior, but it's rarely the best choice for screens except for people working on imaging only.
I don't think either it's the absolute best choice for a mobile display.

- Cooler (more blue) temperature look better inside especially: more.. white
- We are used to blueish screens. As a consequence 65000 looks strange to most of us.

The Following User Says Thank You to supercurio For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes