Yesterday I reported on the color errors generated when 8, 15, and 16 bit-per-color-plane images were converted from sRGB to Sdobe (1998) RGB and back many times, with color conversion calculations performed in double precision floating point, and quantizing to the original precision after every conversion. We found that 8 bit precision produced worst case errors after a number of iterations which were well over one CIELab DeltaE. We also found that even 100 iterations at the two higher precisions produces worst case errors that were well under one DeltaE.
With an 8-bit image, we can test the conversion accuracy for all possible sRGB colors. This is the target image that I used:
I am indebted to Bruce Lindbloom for generating it.
After 100 8-bit round trips, the error image, normalized so that the worst-case error, a little over 8 DeltaE, is fullscale, and with a 2.2 gamma applied:
Let’s give the image a two-stop exposure boost, so that all differences about a little over 2 DeltaE are pure white:
Some of the patterns are due to downresing the 4096×4096 image to fit a web browser.
Let’s look at the upper left corner of the image:
and the lower right corner:
We can see why color profile conversions with 8-bit representation have a bad name. The errors show discontinuous jumps that can wreck havoc on smooth gradients.