I already hit some limitations here and there (being well known by game developers) but am confident in the possibility to find solutions to get satisfying performance and results on all OpenGL ES 3.0 devices and most GL ES 2.0 ones as well.
And here's something to show you!
In my last post, I mentioned how exciting it was to not be limited to 8-bit per channel precision, which is a tough compromise when correcting displays because it means you introduce banding.
Yesterday's post: https://plus.google.com/+supercurioFrancoisSimond/posts/Dv7JzLAP5ev
In these graphs, there's a Nexus 5 running the driver in development which naively divides RGB values per 10 which makes the output much darker.
At 100% brightness: it hits 3 cd/m², for a contrast ratio as low as 10:1.
See for yourself the result of changing colors on 8-bit, vs what can be done by creating those intermediary tones that the display hardware, a 8-bit panel cannot produce.
Image 1 and 3: 8-bit
Image 2 and 4: same 8-bit, same content but but simulating the intermediary colors using GPU post-processing.
I didn't expect such extraordinary results, but it's real 🙂
#supercurioBlog #calibration #display #color #development
In Album Better than 8-bit per channel precision
4 thoughts on “I started implementing an Android system driver using the GPU for color correction and calibration”
Love getting to see and follow the progress you're making so far. Keep it up!
+Doug Lynch hehe I love that I can already measure results and show them to you 🙂
+François Simond I look forward to checking out the results on my Nexus 5 in the future. I'm not a display analyst or anything but I trust your work enough to know that it will be better than stock calibration
I want to see those drivers in my nexus 5 too! 🙂