Gamutvision™ is a powerful utility for exploring color management. With it you can
- Examine color space and device gamuts (ranges of reproducible colors).
- Study gamut mappings and rendering intents (image transformations between color spaces or devices with different color gamuts and algorithms for handling colors where input colors are near or outside the output gamut). The definitions of the four rendering intents can be quite vague— especially perceptual rendering intent, which is often recommended for photographers— and may not correspond to actual performance.
- Evaluate ICC profile quality.
- Estimate printer and paper quality by examining ICC profiles— which you can download from the Internet.
- Preview how much an image or simulated X-Rite™ ColorChecker® will change when sent to a printer.
|Gamutvision 1.5 will be available in the Imatest 23.1 Pilot program in October 2022. It will be incorporated as a module in Imatest (Studio and Master), and may be released as a standalong program if there is sufficient customer interest.|
Gamutvision uses ICCTrans, the Matlab interface to the LittleCMS color management system. The ICCTrans source code is on Github. The ICCTrans manual may have disappeared from the Internet, so we’ve put it on the Gamutvision website. Many thanks to Ignacio Ruiz de Conejo and Marti Maria (of Hewlett-Packard Spain) for their outstanding work.
Gamutvision analyzes one of several built-in test patterns, external image files, or a simulated GretagMacbeth™ ColorChecker®. The test image is displayed on the upper-right of the Gamutvision window. The two bulit-in color test patterns vary HSL Hue H and either Lightness L or Saturation S, keeping the third parameter (S or L) fixed. HSL values include (HSL) in their designation, e.g., L(HSL), to distinguish them from CIELAB L*.
|Left: Fixed S(HSL) pattern (normally S(HSL) = 1) with all HSL Hues and Lightnesses. Represents the gamut boundary when Saturation S(HSL) = 1 (its maximum value). S(HSL) can be reduced (< 1) to visualize profile behavior for unsaturated colors.||Middle: Fixed L(HSL) pattern (normally L(HSL) = 0.5) with all HSL Hues and Saturations. Colors reach maximum saturation at Lightness L(HSL) = 0.5. Lightness can be selected, 0.05 ≤ L(HSL) ≤ 0.95.||Right: Grayscale pattern. 0 ≤ L(HSL) ≤ 1.|
For example, to compare the effects of two working color spaces with a single printer/profile combination, you would enter the two working color space profiles into input Profiles 1 and 3 and the same printer profile into output Profiles 2 and 4. You could then view profiles 1 and 2 or 3 and 4 (showing the effects of the gamut mapping), or you could use a Display box (A or B, shown below) to compare the output gamuts in profiles 2 and 4. The gamuts for Epson R2400 Premium Luster prints made from Adobe RGB (1998) (wireframe) and sRGB (solid) working color spaces are shown on the right, using the 3D L*a*b* display set to X-rite “premium” profiles, released around October 2005; different from earlier profiles supplied with the R2400).. (Displays on this page use Epson-supplied
Gamutvision is opened by double-clicking the Gamutvision icon on
- the Desktop,
- the Windows Start menu ( > All Programs > Imatest > Gamutvision ),
- or the Gamutvision directory (usually C:\Program files\Gamutvision in English language installations).
When you open Gamutvision the following window (shown reduced) appears. The first time you run Gamutvision, Browse… appears in all four profile windows (bottom left). Settings are saved in succeeding runs.
*sRGB (IEC6 1996-2.1 sRGB)
*Lab (D50-based Lab)
*LabD65 (D65-based Lab)
*XYZ (XYZ (D50))
*Gray22 (D50 gamma=2.2 grayscale)
Profile and output from box 2 (for Profile 3 only)
Recent ICC profile
- Click on on the right the Profile 2 popup menu, located at the lower left of the Gamutvision window, just below . The same options appear as for the Profile 1 popup menu. Select a profile.
- To change the rendering intent, click on the rendering intent menu, between the Profile 1 and Profile 2 popup menus, to the right of
. You can choose among
- the four classic rendering intents: Perceptual, Colorimetric (relative), Saturation, or Absolute (colorimetric),
- None, in which case no gamut mapping takes place, and the full gamut of the output profile is displayed,
- Round trip (Perceptual or Colorimetric), useful for evaluating printer profile quality. Described here, and
- the four classic rendering intents, soft-proofed (previewed on the monitor). Soft-proofed gamuts are restricted by the monitor profile’s gamut. The monitor profile, which defaults to sRGB, can be selected by clicking Settings…, Monitor profile. These intents enable soft-proofed monitor gamuts to be compared with final output.
- Select the desired view in the main display selector. 3D L*a*b* (wire input, solid output), shown below, is a good view to start with. You can freely switch between views at any time.
- Now, click on to see the results of the gamut mapping from input profile 1 to output profile 2.
- You may repeat steps 1 through 5 for Profiles 3 and 4. You can chain profiles by selecting Profile 2 (output) as the input for Profile 3. Displays A and B allow input and output profiles to be compared side-by-side.
The full Gamutvision window is shown reduced below. Explanatory tooltips appear when the cursor is moved over buttons or controls.
|The large image on the upper left contains the primary gamut display. The 3D L*a*b* plot of the input gamut (wire frame) and mapped output gamut (solid) is shown. You can change the angle of view by clicking your left mouse button anywhere on the image, then moving it. You can also zoom in and out and select among several other options. The gamut volume, which is the single number that best characterizes color response, is shown on the lower right of the gamut display. Several additional views, listed in the table below , can be selected from the display selector box on the right that contains 3D La*b* (wire input, solid output).||The image on the right contains the test pattern or image. Depending on the settings (, …, ), the input or output image may be displayed in its original form or mapped to the monitor color space (typically similar to sRGB). Settings are described in the table below. Output mapped to display profile is the default.|
|The area below the left image is used to select the two input and two output profiles as well as the rendering intents (or none) used to transform the input to the output images.||The lower right of the Gamutvision window is the plot control area, described below. Saturation = 1 displays the gamut boundary. Lower values display the gamut interior.|
Test pattern (input or output)
This image, located on the upper right of the Gamutvision window, is controlled by selecting one of the four buttons ( ) just below the image. The pattern depends on the display, and may be affected by the , , , Saturation (or Lightness) slider.
|Input image (original) with no mapping.|
|Input image mapped to the monitor color space (which defaults to sRGB, but can be set to any monitor profile).|
|Output image (original) with no mapping.This image may look strange for printer profiles because it contains the bits sent to the printer, which can have a highly nonlinear relationship to the printed image.|
|Output image mapped to the monitor color space (the default).|
This table contains a brief summary of displays. Detailed descriptions can be found in Using Gamutvision Part 2: Displays.
|3D L*a*b* (wire input, solid output) (S ≤ 1)
A 3D plot in L*a*b* space showing the input gamut as a wire frame and the output gamut as a solid. May be zoomed or rotated (manually or automatically). Vectors and gamut volumes can be displayed. Lighting can be turned on to highlight the gamut surface. S has a default value of 1, but can be set to any value between 0 and 1.
|2D a*b* Gamut (S = 1)
2D Gamut map on the a*b* plane. Shows the input and output gamut for the S=1 (maximum saturation) pattern for L = [0.1, 0.3, 0.5, 0.7, 0.9].
|3D L*a*b* Reversed (wire output) (S ≤ 1)|
|2D a*b* Saturation (L(HSL) constant)
Shows the input and output gamut response for saturation levels S = [0, 0.2, 0.4, 0.6, 0.8, 1] for fixed values of L(HSL). L has a default value of 0.5 (where colors are the most saturated), but can be set to any value between 0.05 and 0.95. This is an excellent representation of a printer’s color response.
|2D a*b* Color difference (L(HSL) constant)
Shows the perceptual difference between the input and output gamuts at saturation levels S = [0, 0.2, 0.4, 0.6, 0.8, 1] using fixed values of L(HSL) between 0.05 and 0.95 (default = 0.5). Metrics include ΔE*ab, ΔC*ab, ΔE*94, ΔC*94, ΔE*CMC, ΔC*CMC, ΔL*, ΔChroma, ΔHue angle, and Δ|Hue distance|.
|3D/2D HL Color difference (S ≤ 1)
Detailed 3D or 2D plots of the perceptual differences between the input and output gamut boundaries (saturation S = 1), with the option of reducing S to display the interior of the gamut volume. Metrics include ΔE*ab, ΔC*ab, ΔE*94, ΔC*94, ΔE*CMC, ΔC*CMC, ΔL*, ΔChroma, ΔHue angle, and Δ|Hue distance|. Input and output Lightness (L*) and Chroma (c*) can also be displayed.
|xy Chromaticity (L(HSL)=0.5)
CIE 1931 xy Chromaticity pattern. L(HSL)=0.5 pattern. Shown with gamuts for S = [0, 0.2, 0.4, 0.6, 0.8, 1]. Familiar but not perceptually uniform: greens are greatly exaggerated.
|u’v’ Chromaticity (L(HSL)=0.5)
CIE 1976 y=u’v’ Chromaticity pattern. L(HSL)=0.5 pattern. More perceptually uniform than the CIE 1931 xy diagram, but still not perfect.
|Black & White density response
Grayscale density response, typically Density (-log10(reflectance)) vs. log10 pixel level. The digital counterpart of traditional density curves. Uses the Grayscale pattern. The output L*, c* vs. input L* plot displays deviation from neutrality. The best display for observing the effects of Black point compensation.
|Read image for analysis (external image file)
2D pseudocolor image of the perceptual differences between input and output colors— typically between an image and printed output. Same metrics as the color difference plots. Uses the contents of an image file (not a built-in pattern). Can also produce a 3D L*a*b* vector plot of color changes.
Analyzes a simulated ColorChecker using the same options as Read image for analysis, i.e., 2D pseudocolor analysis or 3D L*a*b* vector analysis.
|Profile Info Text from the header, including profile type, profile connection space, etc.|
(Right) An early colourization fiasco, doomed when the colourists failed to agree on the rendering intent for mapping [255, 255, 255] to [255, 0, 0]. They never even got to the colorimetric meaning of these numbers,
From our colour space-case file.
The menu bar at the top of the Gamutvision window contains three pulldown menus labeled .
- Save screen Saves a snapshot of the Gamutvision screen as a PNG image file. It also allows you to immediately view the snapshot so it can be used a reference for comparing with other results.
File name and Directory at the top of the window set the location of the file to save.
When you check the Open window in an image viewer… box, the current screen will be opened either the system default viewer (if the box under Image viewer is blank) or a viewer/editor of your choice (if the box contains the path name to the viewer/editor). I recommend using Irfanview, which is fast, compact, free, and supports an amazing number of image file formats. Its normal location in English language installations is C:\Program Files\IrfanView\i_view32.exe.
- Close Closes Gamutvision. Same effect as pressing or clicking on the upper right.
- ICC Profile folder Select the folder where ICC profiles are kept. Defaults to the Windows XP profile folder, C:\WINDOWS\system32\spool\drivers\color.
- Monitor profile Select the monitor profile and rendering intent. Defaults to *sRGB (the built-in sRGB profile) and (Relative) Colorimetric intent.
- 3D Plot Select options for the 3D L*a*b* plot. Same as pressing in the 3D L*a*b* plot Display options.
- Small fonts/Normal fonts/Large fonts Select font size. May help appearance for very large screen resolutions or when DPI is set to Large size in the Main tab of the Advanced Display Settings. Change the font size if it appears too large or small relative to the other features.
- Reset screen sets the screen to its original position and size.
- Save settings Save the contents of gamutvision.ini, which contains all current Gamutvision settings, in a named file.
- Retrieve settings Retrieve the Gamutvision settings contained in a named file.
- View settings View the contents of gamutvision.ini in the Notepad viewer.
- Default settings Restore the default settings by erasing gamutvision.ini. You can send us the contents of imatest.ini for help with troubleshooting.
- Save 3D view Save the current 3D view (angle and zoom) in a named (.ini) file. Does not work for 2D views.
- Retrieve 3D view Retrieve a 3D view, previously saved, from a named (.ini) file. Does not work for 2D views.
- Online Help Open online instructions in a web browser
- Register Register Gamutvision.
- About Version and registration information.
These pages, which illustrate a few of Gamutvision’s many uses, make excellent tutorial material. They will help you to get the most out of Gamutvision.
Identifying defective profiles — Use Gamutvision to find defective profiles. The example is a popular profile with a glaring defect for the excellent Epson R2400 printer. Gamutvision points the way to a simple solution.
Evaluating printer profiles with Round trip — Gamutvision’s Round trip rendering intent allows you to evaluate a printer profile’s reversibility (i.e., self-consistency). It doesn’t tell the whole story, but it’s a quick and easy way to find problem profiles.
Profile mystery: The case of the smudged pines — Gamutvision sheds light on a profile defect that smudges a print of pine trees.
Black Point Compensation — Gamutvision shows the meaning of the mysterious checkbox, which affects printed media with relative colorimetric rendering intent.
Camera and scanner profiles — Gamutvision shows you their color gamuts and what happens when you convert to standard color spaces.
Printer gamuts: total and real — There is a difference between a printer’s theoretical (i.e., maximum) color gamut and the real color gamut achieved when working with standard color spaces. This page shows you ways of displaying this difference.
View scaling. The scaling or appearance of the view may occasionally be incorrect, especially after unusual views or zooms have been applied. The view can be restored by pressing a combination of the, , and buttons.
Embedded ICC profiles. Gamutvision cannot read ICC color profiles embedded in image files. This only affects the Image color difference function. You must enter the appropriate ICC profile.
Device-link profiles. Gamutvision does not currently support device-link profiles. We hope to add that capability in the future. If you try to read a device-link profile, you may get an error that terminates Gamutvision, and this error may repeat when you try to reopen it. If this happens, either (A) delete gamutvision.ini, which is located in the Gamutvision installation folder (C:\Program files\Gamutvision in English language installations), or (B) edit gamutvision.ini (a simple ASCII text file), and remove the line with the offending file. There is no need to replace it.
OpenGL. The 3D L*a*b* display uses the OpenGL renderer. This may cause instability on some computers. More information can be found here. If you are having problems that may be caused by OpenGL, you should download and install the latest driver for your graphics adaptor: details here. Gamutvision uses software OpenGL, as described here. We had serious problems prior to implementing this patch. With Gamutvision 1.1.5 you can turn off OpenGL using the button, but this removes the wireframe display, reducing the value of the 3D L*a*b* plots. This option is primarily for diagnosing mysterious Gamutvision crashed. We recommend following the advice in the Mathworks page for getting OpenGL to work correctly.
Printing. The Gamutvision window cannot be printed directly due to compiler limitations. You must print it from an image editor after either (a) saving it and opening it in the editor or (b) copying it to the clipboard using Alt-PrintScreen, then pasting it into the image editor. Irfanview is a nice free image viewer that does the job well.
If you encounter problems with loading or running Imatest, go to the Troubleshooting page.