Adobe ACE v Microsoft ICM: Bakeoff

Adobe's Windows Photoshop offers two conversion engines for converting colors. These are used when converting between different RGB colorspaces as well as doing conversion required for displaying using the monitor's ICC profile.

Are there significant differences between these? Does one do a more accurate job than the other and, if so, are the differences visually significant?

One specific measure of accuracy is self consistency. For instance if one has an image in sRGB and converts it to ProPhoto RGB then back to sRGB again the results should be quite close since sRGB's gamut is smaller in every dimension than ProPhoto.

So, if we consider a set of all possible, 8 bits per channel, sRGB colors and convert them to ProPhoto RGB then back to sRGB what is the maximum error produced by the Microsoft ICM Engine v. the Adobe ACE Engine?

If there are errors, how large are they and are they visible?



Adobe ACE wins hands down. It produced no differences when converting all 16M (256^3) RGB colors from sRGB to ProPhoto RGB and back to sRGB when working with 16 bit tiffs and rounding to 8 bits per channel.

Microsoft, however, converted sRGB(0,54,0) to (32, 54, 14). Out of 16+ million colors this was the worst. And very visible. The Delta E between these two sRGB triplets is 12!

** Methods**

  1. A tiff image in 16 bits was created containing all, 8 bits per channel, RGB color, each in a pixel. This is a 4k by 4k image.
  2. The image was duplicated and one was converted using Microsoft ICM. The other with Adobe ACE. This was done in Photoshop using Edit->Convert To Profile and selecting the color conversion engine under test. Images were converted from sRGB to ProPhoto RGB then back to sRGB.
  3. Then the images were saved and all pixels were examined and compared to the originals.


Adobe's ACE produced identical values in all 16M pixels.

Microsoft's ICM produced significant errors mostly associated with the green channel. The largest visual error occurred with the color sRGB(0,54,0). After the roundtrip it turned into sRGB(32,54,14) which visually, differ visually by a delta E of 12. A delta E of 1 is considered the threshold of visual color difference so this is pretty far off.

Conversions used Relative Colorimetric for all conversions.

With the assistance of @Tetsujin, I have been able to compare conversions of Photoshop on Apple iOS as well as Windows for 8 bit tif images. The following is a cumulative deltaE error chart for each of the two CME's in Photoshop platforms.

Cumulative delta E Performance of iOS and Windows CMEs in Photoshop

To interpret the chart, look at the CME under use. For instance the Microsoft ICM, which is particularly bad, has 87% of the 16M colors undergo less than 2.0 delta E errors hence 13% exceed delta E of 2.0. And just over 4% exceed 5 delta E.

Update I have analyzed 16 bit tif conversions. All Apple CMEs and Windows Adobe ACE retained color integrity to better than delta E of 0.02. However, the Microsoft ICM CME was just as bad as the earlier results. Likely it uses fixed point arithmetic with a limited bit range. Possibly because it was developed back in the day when CPUs had poor performance at higher precision fixed or floating point.

Basically, just avoid using the Microsoft ICM CME in Windows. Fortunately, it's not the default.

  • It might be interesting to get Apple CMM measurements to go alongside these. I you could post your original somewhere, I could do the test conversions if you could measure the results [I've no clue how to do that;) tbh, I've always just used Adobe ACE because it's the default. – Tetsujin Apr 5 at 6:36
  • @Tetsujin I just used Matlab to create a 4096x4096 tiff image with all possible RGB values. Then did the conversions in Photoshop and compared the result for the largest error. Very easy in Matlab and probably in Python as well. BruceLindbloom's site has an image with all possible RGB values as well. If you try that one and post a link to the converted image I'll take a look. – doug Apr 5 at 20:37
  • Conversions done as per your method, using image source from Bruce Lindbloom. Shared on DropBox - dropbox.com/sh/316ctx3a6xlrl77/AABQ6F2itP5CMaUH5bGj-LoOa?dl=0 - Hope I got it right ;) I can't tell the difference visually, but I guess that would be expected. – Tetsujin Apr 6 at 8:51
  • @Tetsujin Both Apple and Adobe's CMM produced similar results. The maximum deltaE error was 2.5 for both and looks like just the effect of using 8 bit RGB which results in rounding errors. The maximum deltaE error occurred for Apple CMM RGB(10,31,40) > RGB(13,29,40) while Adobe ACE's max was RGB(18,26,28) > RGB(20,24,28). I get different results with 8 bit images on Windows Adobe ACE so it looks like the math differs a bit. Wouldn't surprise me as there is a lot of handwritten, low level code and the hardware historically differed too. – doug Apr 6 at 20:28
  • 1
    @Tetsujin Thanks. I incorporated the results. Turned out the 8 bit stuff was useful in demonstrating the effects of using 8 bit images when converting. Not as bad as I expected. – doug Apr 7 at 19:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.