Pages: 1 [2]   Go Down

Author Topic: How to determine ICC profile gamut volume  (Read 27329 times)

MarkM

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 428
    • Alaska Photographer Mark Meyer
Re: How to determine ICC profile gamut volume
« Reply #20 on: August 09, 2015, 01:23:24 pm »

We have differing dE formulas and there are reasons we'd use one over the other (dE 2000 is said to be 'more accurate' (better) with smaller dE values being calculated).

I don't understand why the calculation of dE should matter when calculating the volume of the color space solid in LAB space. Don't all the applications report numbers in cubic LAB units (not cubic dE)? This volume might mean different things with different dE values, but the actual volume of the space shouldn't be ambiguous beyond rounding errors, should it? Certainly not to by 20% and especially for simple matrix-based profiles.

Here's a method I played around with a couple years ago when I had a similar question to the OP.

http://www.photo-mark.com/notes/calculating-color-space-volumes/

I think the theory is sound, but I'm a hobbyist programmer so there's no guarantee my implementation is without flaw. My results match Bruce Lindbloom's reported volumes quite closely, which gave me some confidence.

My personal take is it's not so much the final 'volume' # but where and how the volume is distributed ala 2 & 3D space rendering.

This exact observation along with an alternative solution was proposed in a paper last October by Kiran Deshpande, Phil Green, and Michael R Pointer. They came up with a "Gamut Comparison Index" which takes volume and the percentage of each gamut contained within the other and boils it down to a single metric. They hope this is a more useful value to help understand how well and efficiently a target gamut and an encoding gamut match.

Sadly, the paper is behind a paywall, but you can read the abstract here, which is enough to understand the essence of what they are proposing:
http://onlinelibrary.wiley.com/doi/10.1002/col.21930/abstract
Logged

digitaldog

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 20893
  • Andrew Rodney
    • http://www.digitaldog.net/
Re: How to determine ICC profile gamut volume
« Reply #21 on: August 09, 2015, 01:50:04 pm »

I don't understand why the calculation of dE should matter when calculating the volume of the color space solid in LAB space. Don't all the applications report numbers in cubic LAB units (not cubic dE)?
I have no idea Mark. I was responding to Bart who stated:
Quote
Correct is a big word, as they are all approximations based on some assumptions (e.g. which delta E method is used, or how is rounding done, and at which precision is the calculation done, to name a few).
All I know two applications report differing gamut volumes from the same profile.
Logged
http://www.digitaldog.net/
Author "Color Management for Photographers".

bjanes

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 3387
Re: How to determine ICC profile gamut volume
« Reply #22 on: August 09, 2015, 03:05:30 pm »

I don't understand why the calculation of dE should matter when calculating the volume of the color space solid in LAB space. Don't all the applications report numbers in cubic LAB units (not cubic dE)? This volume might mean different things with different dE values, but the actual volume of the space shouldn't be ambiguous beyond rounding errors, should it? Certainly not to by 20% and especially for simple matrix-based profiles.

Cubic LAB units would not be useful, since that would not take into account just notable differences between colors. A difference of one LAB unit may not be visually perceptible. See this Wikipedia article and take a look at the MacAdam ellipses which enclose colors that are not visually different and therefore are not discrete colors. Bruce Lindbloom uses ΔE3 in his color space tabulation.

Bill
Logged

MarkM

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 428
    • Alaska Photographer Mark Meyer
Re: How to determine ICC profile gamut volume
« Reply #23 on: August 09, 2015, 03:26:24 pm »

Cubic LAB units would not be useful, since that would not take into account just notable differences between colors. A difference of one LAB unit may not be visually perceptible. See this Wikipedia article and take a look at the MacAdam ellipses which enclose colors that are not visually different and therefore are not discrete colors. Bruce Lindbloom uses ΔE3 in his color space tabulation.

Bill

Hi Bill,

I understand that a distance of a single unit in LAB space is not necessarily a just-noticeable difference, but I don't think anyone reporting gamut volumes is saying they are a precise count of discernible, discreet colors. Rather they are saying it's simply the volume of the solid that we see graphed in LAB space. They often (like Bruce Lindbloom) report the unit as ΔE3, but I've always assumed (maybe incorrectly) that they were reporting this because most people are okay with the small inaccuracy of conflating ΔE and LAB values. That's what appears to be going on the in the quote Andrew provided from CHROMIX.

If we wanted to report volumes in a way that was a more precise calculation of discernible colors we would need to report volumes of a 3D object in a space other than CIELAB. But I've never seen anyone suggest they are doing this (or that it would be worth the effort). Lindbloom gives a couple details of his method here. Using the technique he suggests — tessellating the hull of the gamut surface — will result in cubic LAB units because the surface he is tessellating is calculated in LAB space.
Logged

WayneLarmon

  • Full Member
  • ***
  • Offline Offline
  • Posts: 162
Re: How to determine ICC profile gamut volume
« Reply #24 on: August 09, 2015, 05:59:45 pm »

Quote
The Argyll Color management System allows to do that with these command line utilities that also produce a VRML file that can be viewed an appropriate browser plugin:
iccgamut      Create a gamut file or VRML file of the color gamut of an ICC profile.
tiffgamut      Create a gamut file or VRML file of the color gamut of a TIFF or JPEG image.
viewgam      Convert one or more gamuts into a VRML 3D visualization file. Compute an intersection.

I've used these a lot.  And the latest versions no longer require a plugin to display 3D files (on most modern browsers) because they use x3dom (Javascript and HTML5) instead of VRML.  

They report gamut size in "cubic colorspace units."   This is handy if you are, for example, examining variants of the same profile.   I'm learning ArgyllCMS and was experimenting with preconditioning.  Here is the 2D version of a profile done without preconditioning overlaid with one done with preconditioning.



This is a static 2D version and I had to do a screen shot and upload the screenshot to SmugMug.  Bleh.  Much better to look at the real 3D version (no plugin required--just click to see the 3D version.)    

I made this for my own use and the labels are cryptic.  The one that has "NoPC" is the one without preconditioning.  The one that has "PC" has had preconditioning.  Scroll down past the 3D graph to see data from the profiles (including cubic colorspace units.)

Here is one that compares sRGB and Adobe RGB (1996)



Here is the real 3D version.

FWIW, here are more 3D plots of profiles that I am currently looking at.  Again, the labels might be cryptic.  Most of them are from me making various profiles for my HP 7640 using either Argyll or ColorMunki Display.  The other profiles are mostly stock profiles I collected from various places.

I really, really like iccgamut and viewgam (and the rest of ArgyllCMS.)   3D plots make comparing profiles be a lot easier.

Wayne
« Last Edit: August 09, 2015, 06:07:31 pm by WayneLarmon »
Logged

alain

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 465
Re: How to determine ICC profile gamut volume
« Reply #25 on: August 09, 2015, 06:36:03 pm »

I've used these a lot.  And the latest versions no longer require a plugin to display 3D files (on most modern browsers) because they use x3dom (Javascript and HTML5) instead of VRML.  

They report gamut size in "cubic colorspace units."   This is handy if you are, for example, examining variants of the same profile.   I'm learning ArgyllCMS and was experimenting with preconditioning.  Here is the 2D version of a profile done without preconditioning overlaid with one done with preconditioning.

I really, really like iccgamut and viewgam (and the rest of ArgyllCMS.)   3D plots make comparing profiles be a lot easier.

Wayne

Is it easy to do? I have no problems with the command line.
Logged

WayneLarmon

  • Full Member
  • ***
  • Offline Offline
  • Posts: 162
Re: How to determine ICC profile gamut volume
« Reply #26 on: August 09, 2015, 06:54:24 pm »

Quote
Is it easy to do? I have no problems with the command line.

The page I linked that has a bunch of 3D plots to was generated with a Perl script that I wrote that reads config files that describe the profiles and then runs the appropriate Argyll programs to generate the xd3dom files.  I haven't published this script anywhere because I wrote it for my own use.

But I did write a page that documents how to use iccgamut and viewgam to combine multiple 3D plots in the same graph.  This uses simple Windows .bat files.  It shouldn't be too difficult to adapt it to Linux or Mac, but I haven't tested this because I only use Argyll on Windows.

Wayne


 
Logged

Scott Hein

  • Newbie
  • *
  • Offline Offline
  • Posts: 33
    • Hein Natural History Photography
Re: How to determine ICC profile gamut volume
« Reply #27 on: August 09, 2015, 08:56:08 pm »

But I did write a page that documents how to use iccgamut and viewgam to combine multiple 3D plots in the same graph.  This uses simple Windows .bat files.  It shouldn't be too difficult to adapt it to Linux or Mac, but I haven't tested this because I only use Argyll on Windows.

Wayne,

Thanks for that writing that page - coincidentally I found it earlier this weekend when I was trying to find a way to generate 3D gamut plots of the custom profiles I have been creating for a new printer.  Since I already had Argyll installed, it was simple using your instructions.  I am on a Mac, so I couldn't use the .BAT file directly, but it was easy enough to copy and past the commands into a terminal window.

-Scott
Logged

GWGill

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 609
  • Author of ArgyllCMS & ArgyllPRO ColorMeter
    • ArgyllCMS
Re: How to determine ICC profile gamut volume
« Reply #28 on: August 10, 2015, 03:27:23 am »

I don't understand why the calculation of dE should matter when calculating the volume of the color space solid in LAB space.
It comes down to the algorithm used. One way for instance, would be to march through the L*a*b* space at unit intervals, and decide whether each point is in or out of gamut by doing a B2A then A2B table round trip, using a delta E threshold to decide.

An alternative is to generate a bounding volume around the values in the A2B table. This is complicated by the lack of any concrete ink limit information in an ICC profile for CMYK profiles (at best it can be guessed from the contents of the B2A table) and the fact that gamut volumes are often convex.
Logged

WayneLarmon

  • Full Member
  • ***
  • Offline Offline
  • Posts: 162
Re: How to determine ICC profile gamut volume
« Reply #29 on: August 10, 2015, 01:42:52 pm »

Quote
It comes down to the algorithm used.

So what algorithm do you use to calculate "cubic colorspace units"?

Wayne
Logged

GWGill

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 609
  • Author of ArgyllCMS & ArgyllPRO ColorMeter
    • ArgyllCMS
Re: How to determine ICC profile gamut volume
« Reply #30 on: August 10, 2015, 06:28:43 pm »

So what algorithm do you use to calculate "cubic colorspace units"?

First step is creating a gamut surface.  The gamut surface is computed using a variation of
Jan Morovic's Segment Maximum approach. Points are generated from the contents of the
A2B table, with either explicit or guessed ink limits. The segments are filtered with an adaptive
depth structure, so that approximately the same detail is kept on the gamut surface. Multiple
direction vectors at each point are retained. The resultant points are used to create the overal
convex hull, but in an adaptive, non-linearly scaled radial space, that allows for a level of
convexity in the PCS result.

Since the resulting surface is a closed set of polygons, a standard volume computation
can be used, in this case the formula from "Area of planar polygons and volume of polyhedra"
by Ronald N. Goldman, from  Graphics Gems II, pp 170.

The major sources of inaccuracy are: 1) The surface not following the gamuts actual convexity
2) The surface showing convexity where it doesn't exist, 3) Not following surface detail due to
insufficient sampling density (this can be selected with a parameter), 4) Inaccurate ink limit
boundary due to the use of an ink limit that is not a simple sum of inks.
Logged

joofa

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 544
Re: How to determine ICC profile gamut volume
« Reply #31 on: August 10, 2015, 10:07:06 pm »

The graphs presented here seem to suggest orthogonality between LAB channels. I don't understand what criterion was used to establish that fact?
Logged
Joofa
http://www.djjoofa.com
Download Photoshop and After Effects plugins

Iliah

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 770
Re: How to determine ICC profile gamut volume
« Reply #32 on: August 11, 2015, 01:36:11 pm »

The graphs presented here seem to suggest orthogonality between LAB channels. I don't understand what criterion was used to establish that fact?

Convenience of presentation ;)
If gamut volume is calculated by counting, and not by computing the volume of the resulting figure in 3 orthogonal axes, should not affect the results. 
Logged

alain

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 465
Re: How to determine ICC profile gamut volume
« Reply #33 on: August 11, 2015, 03:20:35 pm »

The page I linked that has a bunch of 3D plots to was generated with a Perl script that I wrote that reads config files that describe the profiles and then runs the appropriate Argyll programs to generate the xd3dom files.  I haven't published this script anywhere because I wrote it for my own use.

But I did write a page that documents how to use iccgamut and viewgam to combine multiple 3D plots in the same graph.  This uses simple Windows .bat files.  It shouldn't be too difficult to adapt it to Linux or Mac, but I haven't tested this because I only use Argyll on Windows.

Wayne


 

Thanks.
Logged

joofa

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 544
Re: How to determine ICC profile gamut volume
« Reply #34 on: August 11, 2015, 04:25:05 pm »

Convenience of presentation ;)
If gamut volume is calculated by counting, and not by computing the volume of the resulting figure in 3 orthogonal axes, should not affect the results.  

Thanks for the reply. Will the procedure to calculate gamut vol as pointed out by GwGill be affected by the non-orthogonality of the axes? Perhaps, the relative comparison between different color gamuts may not be affected as one which is supposed to have higher volume would still have a higher number. But, the absolute number may be affected? Right?
Logged
Joofa
http://www.djjoofa.com
Download Photoshop and After Effects plugins

xpatUSA

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 390
    • Blog
Re: How to determine ICC profile gamut volume
« Reply #35 on: August 11, 2015, 05:16:27 pm »

All that sounds as if it provides at least a common reference from which to make some comparisons.

I have ColorThink 2.3, which doesn't seem able to calculate a gamut volume. ColorThink Pro is a pretty expensive upgrade.


A bit late to the party but I also have V 2.3. You could show two different profiles in the 3D L*a*b* view, in two different colors and switch them back and forth or show them less opaque in different colors. I assume you're not looking for absolutely perfect registration?

rgds,

Ted
Logged
best regards,

Ted
Pages: 1 [2]   Go Up