I started implementing an Android system driver using the GPU for color correction and calibration

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

Source post on Google+

Published by

François Simond

Mobile engineer & analyst specialized in, display, camera color calibration, audio tuning

4 thoughts on “I started implementing an Android system driver using the GPU for color correction and calibration”

Leave a Reply to Doug Lynch Cancel reply