Summary
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**
- 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.
- 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.
- Then the images were saved and all pixels were examined and
compared to the originals.
Results
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.
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.