2

The Photoshop relative colormetric conversion seems to be inconsistent.

I'm converting from Adobe RGB to sRGB. Settings are as follows:

enter image description here

I open the same file twice and run the same conversion. The results are different. Not enough to be noticeable to the naked eye, but enough to have different pixel values.

Summary: I open the same file twice, convert it with the same settings, and get two different outputs. The image is an uncompressed 8-bpp TIFF, 640x1024 pixels.

EDIT: It seems to occasionally give the same results twice, but never twice in a row.

EDIT: Disabled dithering in the settings dialog as per Mr. Wizard's suggestion, and now the results are the same every time. Dithering isn't algorithmic? (It's random?)

1
  • 1
    Also a note on using dithering: if your output intent is JPEG or other similar lossy format, the benefits of dithering might get lost in the compression—with a small probability it might even produce unwanted results. Nov 27, 2011 at 13:44

2 Answers 2

2

Dither adds noise to smooth color gradients. From Wikipedia with added emphasises:

Dither is an intentionally applied form of noise used to randomize quantization error, preventing large-scale patterns such as color banding in images.

Therefore, using dither with conversion will—by definition—produce "random" results. The algorithm Photoshop uses is apparently both

  • random enough that different dithers will be applied to the very same image;
  • optimised enough so that it is highly likely that a dither will be used multiple times when converting the very same image over and over again.

If you want numerically identical conversion, turn it off, at the expense of some image quality.

6
  • @Unsigned, try it and see for yourself. If you turn off Dither the results will be pixel identical. If it is on, they are not. Therefore, we can deduce that the dither noise is random, with a different seed.
    – Mr.Wizard
    Oct 19, 2011 at 15:39
  • @Unsigned there are different types of dither; Photoshop itself provides Diffusion, Pattern, and Noise for conversion to Indexed Color. Using a random distribution is probably a good choice, but arguably they could use the same seed every time. Perhaps they changed to a different library for random number generation between CS4 and CS5.
    – Mr.Wizard
    Oct 19, 2011 at 16:12
  • 1
    @Unsigned, it is noise-based, but beyond that I don't know, and I know of no way to change it. For most images it should not make a big difference; I suggest you just turn it off if the effect bothers you.
    – Mr.Wizard
    Oct 19, 2011 at 16:39
  • @Unsigned: (1) thanks for the accept. (2) I don't believe the entire CMYK color space fits inside RGB, unless perhaps ProPhoto RGB; I am fairly certain common CMYK spaces do not fit in AdobeRGB. (3) Dither isn't there for gamut (AFAIK), it's there for precision; as long as your target is an 8-bit space dither is useful. It would be far less useful converting 16-bit to 16-bit, and it is unnecessary when working with floats or 32-bit data.
    – Mr.Wizard
    Nov 28, 2011 at 20:29
  • @Unsigned You should look at 3D color space graphs to get a better idea of how these relate. I don't have the VRML plugin installed right now so I cannot view those, but my memory is that it's not a simple "one inside the other" but rather CMYK hits certain colors that sRGB misses, and vice versa. (continued...)
    – Mr.Wizard
    Nov 30, 2011 at 17:41
0

Taking a wild guess, I suspect you're running into invisible-to-the-eye jpeg compression artifacts. Even in blocks of apparently solid color you'll find inconsistencies, especially if the blocks (and your image) are not exact multiples of 8x8 pixels (jpeg's building block). This is especially true where you have sharp, high contrast edges. I suspect the problem independent of the conversion.

Point sample, as opposed to 3x3 or 5x5, can also give you inconsistent results, especially in photographic images, especially near high-contrast boundaries, and definitely if there is any noise in the image.

Try this experiment: set up a document with several blocks of solid color against a white background. Eyedropper around in the color blocks, especially away from the center, and note the readings. Now save the document as a jpeg, close and reopen. Repeat the eyedropper test.

Repeat the experiment, but this time use a document that's exactly 256 pixels square, and make the blocks of color exactly 80 pixels square, aligned on 8-pixel boundaries. See if you don't get a different result.

Mike Ninness gave an eye-opening (to me, anyway) session on image optimization at MAX last week, and the wild variation produced by jpeg compression was one of the major points. The "rule of 8" section starts at about 14m 40s.

[UPDATE AFTER Q CLARIFIED] Increase your sample size in the eyedropper to a large enough value to smooth out the noise in the dithering. Dithering is necessary when changing profiles to maintain the visual relationships between different colors without banding (this is also why "Absolute Colorimetric" has to be avoided in normal use), but is (by definition) random. If you eyedropper too small a sample you'll get variations anywhere there's a color shift that can't be exactly replicated in the target profile.

2
  • That's not relevant. What is relevant is whether it's a jpeg, and whether the sampling is being done from precisely (to the pixel) the same spot. If the first is true and the second is not, then you can get different values just by moving the eyedropper to a different spot in a solid block of color, whether you change profiles or not. Do actually try the experiment, won't you? Oct 19, 2011 at 16:06
  • Update the question with all the info so the exact situation is clear -- file type, image or graphic, that kind of thing. Then we can test more appropriately and answer. I don't see this behavior when working with the solid color blocks I used to test. Oct 19, 2011 at 21:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.