Cover photo
François Simond (supercurio)
Works at SpectraStudy
Lives in Chambéry, Savoy, France
4,804 followers|7,159,759 views


I feel like I've been more productive the last two weeks than I've been for more than two years.
Working crazy hours again at night/day and whatever. It's silly, but it brings results.
Also, it prevents me to think too much about.. stuff.

A few weeks ago I asked if you would buy a solution to calibrate colors of the display on your Android smartphone or tablet using a colorimeter.

A solution requiring root, owning a colorimeter or spectrophotometer and supporting only the Nexus 5 and Nexus 7 2013; two devices that are not manufactured anymore.

Your polls votes gave valuable insight. If most of you will pass because they won't gain access to a sensor or simply are not interested, 12% would buy right away and 14% would if their device was supported.

So I decided to find how to offer that.
My approach is to learn how to leverage the GPU in order to implement the color color correction there instead of relying on Qualcomm's mobile display controller dedicated hardware.
So far I've been limited to a 1D RGB LUT. Making the best of it still by generating 3x256 points correction, but even when sending 12-bit data to the hardware the output was only on 8-bit.
On both the Nexus 5 and Nexus 7 2013, correcting the white point and response curves at the expense of banding is still a worthy trade-off.

Except you probably know that I'm not exactly into quality trade-offs 😉
So I went back to research and here's what I'm working on:

- 3D LUT support to correct everything. Not just the RGB curves. It means every color depending on every other color.
It means that regardless of how crazy is the factory calibration out of the box, the color saturation boosted, how large or small is the panel color gamut.. No problem. It can be corrected to be accurate to any standards, and even emulate the ones the hardware is not capable of.
Colors that the hardware is physically unable to produce are still inaccessible of course, but every other is now spot-on.

- 1D RGB LUT still, even in conjunction with the 3D LUT, in 3x256 points precision or more, because..

- No more limited to 8-bit per channel!
16-bit floating point precision per channel for each correction LUT on most devices
On limited hardware, still 10-bit per channel!
All calculations ran at 16-bit floating point or 24-bit floating point precision per channel internally.

And now you might say. Impossible! panels, display controllers and bus only have 8-bit per channel.
And that's right:
The same is true for professional and reference monitors sporting a 14-bit 3D LUT color correction engine and connecting to your professional computer graphic card in 10-bit per channel.
Every monitor out here that I've heard of emulates this additional color precision. Except they're very far from the pixel density of today's mobile devices 😊
And the preliminary results I obtained on that aspect blew my mind, including on the Nexus 9 (288 ppi) and Nexus 10 (300 ppi).

Today I don't have the Android driver yet: I prototyped all that in an Android application applying the same GPU processing.
I know how to build it.

I also don't have yet the complete math and algorithm to build the 3D correction LUT needed (just an awfully slow broken one) so I use a gamut adaptation matrix instead.
It needs more work but I know I'll get it right.

A single but substantial limitation is the inability to correct protected hardware surfaces. An app like +Netflix​​ uses that with DRMs on devices receiving the 1080p stream, which is unfortunate as it's one of the kind of content that would benefit the most from color calibration.
- if you watched their Daredevil TV show recently, which is graded to a very dark look with a lot of details in shadows you might see what I mean.
For now, I could revert on 8-bit 1D LUT on the chips having one in the display controller processor like I'm doing since I own a Nexus 7 2013.

The whole project is pretty much insane but will push display and color quality on Android platform in a new Era.
And this is not even the end game. I know that using those techs I can implement full color management on Android platform.
Also, when you open the door to GPU processing, possibilities become essentially infinite in terms of creativity and coolness that go beyond color calibration 😎

I also have a pretty cool job opportunity at the same time as I'm on the roll on this: not sure what to do.
Steve Kondik's profile photoFrançois Simond (supercurio)'s profile photoVitaliy Tverdokhleb's profile photoBoris B.'s profile photo
+Steve Kondik you know the goal of this project is to get as good or better image and color quality than the best reference monitors on mobile.
The hardware capabilities are available since a couple years sometimes surpassing desktop equivalents, but there has been little to no effort to go in this direction.
I expect the highest quality processing settings to have an effect on power, typically depending on usage.
Although I expected worse as I started hacking on the Nexus 10 and its GPU memory bandwidth gets maxed out quickly, dropping frames everywhere.

But the goal is more ambitious and after raising the bar, demonstrating what is possible to do, how to measure and appreciate it via education, silicon and/or panel vendors will have an incentive to provide the same quality in hardware.
And I'll have proposals for a new color management standard in association with players of the industry. 
Add a comment...
Only a rumor at that point, but let's think about that.
2 years of OS updates, and 3 years of security fix.

Vulnerable to exploits after 3 years, on a device purchased 669€ - Nexus 6 64GB?

Meanwhile, Ubuntu LTS OS updates guarantee security fixes for 5 years.
And that's not just for the OS core : it's for every single program package in the distribution.
Oh and Ubuntu is free of charge as well.

Can't Google do better than that, for the price paid: back porting vulnerability fixes via small OTAs should be possible with the adequate organization.

You might ask: Nexus are for Geeks, who would use a Nexus for that long, running Google firmware?
Answer: my mom.
She bought a Galaxy Nexus following my recommendation a while ago, still uses it and likes it very much.
And it's stuck on 4.3 since a while.
I made her switch to Chrome to avoid vulnerabilities in the default browser; she couldn't have guessed by herself.

To me, 3 years before the end of security fixes is the definition of planned obsolescence and blatant lack of effort from a company as resourceful as Google.
And it's not just a rumor, but what they're already doing. 
Robert Amos IV's profile photoRafal Blaszkiewicz's profile photoSimon Lennon's profile photoCory Adama's profile photo
+Daniel Foerster​ this year Snapdragon 810 devices are already slower than the previous generations, like during gaming.
When the evolution gets limited to Quad HD resolution displays and shinier form factor, it shows we definitely reached the "good enough" mark already.
IMO the threshold is already here; have been for a couple years at least, and it's time to adjust our thinking to the new conditions already out here. 
Add a comment...
If my favorite music from #Eurovision2015 was from #LAT Latvia,, the song I liked the most was from Sweden, who won.

Definitely a catchy tune but not only: the lyrics, while simple are subtle enough to be interpreted at several levels.
What I hear there is a positive, humanist philosophy.
And so many keywords, that could be seen as contradictory, all depending on the context you give them.

A few examples:
- "live your life like there is no tomorrow"
- "we're dancing with the demons in our minds"
- "It's life's creation"
- a reference to "he" that's sometimes undefined and leaves the choice to you

Oh and you can't forget it starts with: "Don't tell the gods I left a mess"
And yes, plural.

Funny thing is that someone else could have a widely different interpretation, so good job, writers of this song 😉
It's clever, I quite like it!

Alex Papas's profile photoJonas Davidsson's profile photogeorge oloo's profile photo
He wrote it himself. Its about him having a rough childhood being bullied at. But great tune anyhow. +François Simond​​
Add a comment...
So really great study on the many factory reset failure to make data inaccessible.
I particularly appreciate the recommendations for improvement for AOSP.

Given what has been observed, making data sanitization effective a requirement in CTS tests: good idea!
It should be the last test to run tho 😀, and would require additional software likely running in a insecure recovery.

The fact that many 2+ years old device do not issue discard or that discard doesn't do anything during factory reset might be a consequence of the flaw some Samsung eMMC firmware had, if you remember the story.
Back then, the AOSP based recoveries were requesting a secure erase, which was leading to the buggy flash storage self destructing. Samsung recovery was not requesting a secure erase to avoid the issue probably following a recommendation.
Maybe this recommendation carried on for a while, leading to many vendors making insecure factory reset. 

Either way, there's a lot to learn in this document. Good job. 
Add a comment...
You wouldn't dream of such a perfect implementation of a feature.
Except that what's presented here is one or the nastiest bug in existence!

Via Hacker News:
Please see the “condensed time line” section (the next one) for a time line of how the Xerox saga unfolded. It for example depicts that I did not push the thing to the public right away, but gave Xerox a lot of time before I did so. Personally, I think this is important.
Mike Trieu (MegasChara)'s profile photoDor Kleiman (configurator)'s profile photoPaul Atwal's profile photoYann Brelière's profile photo
Wasn't this in Mission Impossible? 
Add a comment...
I have done something wrong with my life...

Something that makes me not worthy of +YouTube​ 60p on mobile!
On any device.
Not yet, I guess.

I'll come back with a revenge 😉
Michael Panzer's profile photoFrançois Simond (supercurio)'s profile photoEdward Thompson's profile photoRaymond Wong's profile photo
Google roll outs are random. You've done nothing wrong, just not lucky enough to be on the first batch. On the bright side, you will certainly get it eventually. Even if your don't want it. So just sit back relax and enjoy YouTube whatever fps it is. 😊
Add a comment...
Have him in circles
4,804 people
Salim Uzzaman's profile photo
Georg Brunmayr (Sledge)'s profile photo
Gladys Pearson's profile photo
Sven Glaser's profile photo
Shivakumar Vibhute's profile photo
Wilson Zhang's profile photo
Vina Pr's profile photo
Cam Wilkinson's profile photo
matteo guardati's profile photo
Great study from +Gary Sims​ on +Android Authority​! 
We have had multi-core processors in our PCs for over a decade, and today they are considered the norm. At first it was dual-core, then quad-core, and today companies like Intel and AMD offer high end desktop processors with 6 or even 8 cores. Smartphone processors have a similar history. Dual-core energy efficient processors from ARM arrived about 5 years ago, and since then we have seen the release of ARM based 4, 6 and 8 core processors. Howev...
Damian Mee's profile photoJán Valkovič's profile photoDhaiwat Patel's profile photoJames Abtahi's profile photo
+Michael Panzer​​​​ exactly. And just how much of Android's current system level improvements have hinged completely on things like renderscript being able to throw a specific workload across multiple cores where it previously could not.

Huge improvements have come due to that but it also shows how much work there is left to do to truly utilize the designs to their fullest and we're still (as many OS's are) in the baby step phase of that 
Add a comment...
I know very little about New Zealand but this video makes me want to learn more and go there someday 😊
spacecanard clavain's profile photo
Add a comment...
#LAT Latvia #eurovision2015  is the first music I would add to my library to listen to so far ^_^
Everything else was a variable an in between pop/soup, that was different! 
Cláudio Narciso's profile photoAlex Richards's profile photoFrançois Simond (supercurio)'s profile photoAlex Papas's profile photo
I voted for Latvia.
Add a comment...
I've been curious to watch the #eurovision  this year, relying on +France 2 the main public TV channel here.
Unfortunately they air it with comments which is fine, but on an audio stream that sounds like it's sampled at 16kHz or something.

As a backup I switched to the livestream on
Interestingly, it requires to install a custom and proprietary network streaming platform (Octoshape) that appears to use p2p technology as it's using half of my upload bandwidth while watching.

The video quality is not good (1.2 Mbit/s), break down pretty bad due to the amount of detail on the scenes, but sound is fine at least. Alright!

Let me know if there's a better stream somewhere :)

Edit: +YouTube pardi! - 720p H.264 (still breaks down but not as bad)
Watch the Grand Final of the 2015 Eurovision Song Contest live from Vienna Other viewing options: International Sign Language (YouTube) - On mobile (YouTube)
Amon RA's profile photoFrançois Simond (supercurio)'s profile photoAndrew beaney's profile photoIdo Kahana's profile photo
In Israel it was broadcasted on a non-commercial channel that is payed from taxes, so only promos no commercials.
Quality was great, FHD and sound was great.
It seems our broadcast was a.. well.. "Golden Boy" ;)
Add a comment...
Good idea to study that.

I'd say it's time to add an option to securely wipe storage to the factory reset feature.
Yes, it would take a few minutes to write 6GB or more full of pseudo random data before trimming it and creating a empty filesystem.

But if it wouldn't be perfect, that would be already better than what they found.

And for the encryption master key: that's a design issue still now if I remember correctly. 
An estimated 630 million phones fail to purge contacts, e-mails, images, and more.
Eric Liou's profile photoFrançois Simond (supercurio)'s profile photoBrian Z's profile photoAaron Huffman (Phonesmarts)'s profile photo
Brian Z
As of May. I'll just copy and paste from a AC write up.

The monthly report, which shows how many active Android devices are running on each version of the software, shows that Lollipophas grown significantly to 9.7 percent of installs, up from 5.4 percent last month. KitKatdropped subtly to 39.8 percent from 41.4 percent, while Jelly Bean moved to 39.2 percent from 40.7.

Psssht. Anything running jellybean isn't important! 
Add a comment...
+Matthew Inman+BAHFest​ performance Jibbers Crabst was anything but a freakish accident!
This comedy routine made me laugh like Louis CK would.. accelerated 😅
Add a comment...
Have him in circles
4,804 people
Salim Uzzaman's profile photo
Georg Brunmayr (Sledge)'s profile photo
Gladys Pearson's profile photo
Sven Glaser's profile photo
Shivakumar Vibhute's profile photo
Wilson Zhang's profile photo
Vina Pr's profile photo
Cam Wilkinson's profile photo
matteo guardati's profile photo
Occupation founder
Analyst, developer, mobile / display / camera engineer
  • SpectraStudy
    Analyst, writer, software engineer, 2015 - present
  • Project Voodoo
    Android applications and drivers developper, 2010 - present
  • Cyanogen Inc.
    Software Engineer, 2014 - 2014
    Color, sensor, optics profiling of Cyanogen Camera RAW DNG capture on the OnePlus One smartphone
Basic Information
January 28, 1982
Other names
Mobile display and camera calibration
Bragging rights
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Chambéry, Savoy, France