Advanced LightSpace CMS Operation

LightSpace CMS uses no fixed workflows for any form of calibration, instead providing a selection of powerful tools that can be applied as required.

With this approach a user with knowledge and understanding of the requirements for calibration and colour management can apply the various tools in different ways to generate the best possible end result, to a far better level than systems that use fixed management workflows.

The following outlines some of the possible ways the tools within LightSpace CMS can be applied to generate alternative end results.

Beyond the Basics

Advanced Calibration Techniques

For those that just want to quickly get to the end result, for example a straightforward calibration, LightSpace CMS is exceptionally simple to use. Just profile the display, generate the Calibration LUT, and upload the LUT into the display, LUT box, or software system.

But, for those looking to take things further, be it SDR Calibration, HDR Calibration, Look LUT Manipulation, Calibration Verification and Assessment, etc., LightSpace CMS offers a lot of additional tools and capabilities that can be applied in unique and beneficial ways.

This User Guide will explain some of the possibilities, citing specific examples where needed, from which the user can extrapolate even more possibilities.

LightSpace CMS - True Flexibility

With LightSpace CMS there are no fixed workflows for any form of calibration, and the more adventurous and knowledgeable calibrators will quickly understand the possibilities.

It is such alternative thinking that separates good calibrators from the rest...

There are no fixed workflows with LightSpace CMS - just tools that can be used and combined as needed!

Augment Data

The Augmented data process enables the grey-scale information within a given profile to be 'augmented' with data from a totally different profile, effectively enabling the grey scale calibration to be altered and potentially improved.

Manage Colour Space Library

For example, a relatively small Cube based profile, such as 10^3 could be used for a volumetric profile, and augmented with a 33 step Grey Only Quick (Augment) Profile to enhance the grey scale accuracy. The Augment process uses the LUT generated from the initial profile to pre-process the second 'Augmented' profile, enabling the Augmented Data to correct any inaccuracies in the original profile's grey scale, as well as enabling the use of a higher level of grey scale measurement granularity for enhanced accuracy.

Note: although profiles of any type/size can be used as the Augment Data, a Grey Only Quick Profile, such as the new 'Augment' Quick Profile, is the most obvious to use. Additionally, using too many steps within the Grey Only profile (for example via a CSV file) can cause issues due to display/probe noise and instability. The 33 step Grey Only (Augment) profile provided within LightSpace is the optimum for most Augment needs.

As always, using large profiles, Cube based or Quick Profiles, will greatly increase LUT generation times!

The Augment Data process generates a totally new LUT using a combination of the original profile plus the Augmented data profile - the original LUT is not directly used in the generation of the new LUT (the original LUT is just used to profile through to generate the Augment data).

It is therefore technically impossible for the Augment data to make the result worse. Unless...

If the result appears worse, that means there has been display (or probe) drift between the two profiles.
Or, the application of the initial LUT was faulty - see the Error! Page of the website to see what type of errors are likely, predominantly sue to signal path issues.

The best test for such signal path errors is to compare the results of the Augment Data profiling using the both the 'Active LUT' within LightSpace to profile the original LUT, and the original LUT uploaded into the final LUT location. If the two Augment Data profiles are different there is a signal path issue.

However, if the display or probe are unstable, the two profiles will be 'incompatible', and will potentially generate inaccurate results. Therefore, if a display or probe are unstable, the use of Augmented Data is not recommended.

Augment Process
Convert Colour Space

The process for using the 'Augmented Data process is as follows:

  • Perform an initial Cube based profile of desired size (10^3 for example)
  • Generate a LUT via Convert Colour Space
  • Re-profile through the LUT using a Grey Only profile (the 'Augment' 33 step for example), or any other profile - Quick, or Cube based Characterisation
    (The LUT can be loaded directly into the display/LUT box/Graphics program, or Active LUT within LightSpace can be used)
  • The new profile will be 'saved' within the Manage Colour Space library, as normal
  • Open 'Manage Colour Spaces' and select the initial Cube profile
  • Select the 'Add Aug Data' button, and from the pop-up menu select the second 'Grey Only' profile
  • The original profile will be modified into a new 'Augmented Data' profile, defined by the addition of a '+' to the Profile type
  • Generate a new LUT via Convert Colour Space, with the 'Augmented Data' option ticked
    (The new LUT will include the Augmented Grey Scale)

As always with all LightSpace operations there are no fixed workflow. The above is one example for the use of Augmented Data. Another could be to modify an older LUT with new Grey Scale data, rather than performing a totally new volumetric profile.

Custom Filter

The Custom Filters option enables a user to define what points should be plotted on the CIE diagrams, making it easier to assess the points of interest.

Custom Filter

The Custom Filters are pre-populated from the settings selected within the available standard 'Filters' (Grey Only, Primary Colours, Delta-E, etc. - excluding the Luminance Levels filter).

Note: The 'Custom Filter' button is a toggle button, so will remain active even after the pop-up Custom Filter window is closes with the 'Red X' close button, if the filter settings are not first Reset, and/or the Custom Filter button re-toggled.

Custom Filters

Custom Filters are a very powerful tool to help define the exact points that are displayed on the CIE charts, especially as the manual Filter settings are used to pre-populate the Custom Filters (excluding Luminance as that uses a unique % based limiter not compatible with Custom Filters, although the token L can be used to define absolute Luminance levels).

The various Tokens that can be used are split into Constants and Functions.

R Define the Red component of the points to be displayed (input triplet, range 0.0-1.0)
G Define the Green component of the points to be displayed (input triplet, range 0.0-1.0)
B Define the Blue component of the points to be displayed (input triplet, range 0.0-1.0)
L Define points to be displayed based on Luminance values (absolute nits)
DE2000 Define the Delta-E 2000 range for the points to be displayed
DE1976 Define the Delta-E 1976 range for the points to be displayed
GREY(R,G,B) Define the Grey points to be displayed (input triplet, range 0.0-1.0)
PRI(R,G,B) Define the Primary Colour points to be displayed (input triplet, range 0.0-1.0)
SEC(R,G,B) Define the Secondary Colour points to be displayed (input triplet, range 0.0-1.0)
OTHER(R,G,B) Define points that are not Grey, Primary or Secondary to be displayed (input triplet, range 0.0-1.0)

Constants use operators to define their result ('R > 0.5' to see all points with a R input triplet value greater than 0.5), while the Functions just return a fixed result if active ('GREY(R.G.B)' will show all the Grey Scale points). Combining Constants with Functions enables precise points selection, using the below Operators.

These Tokens can be used with standard programming operators (predominantly Comparison and Logical) to define the selection of points within the CIE diagrams, including the following operators:

Comparison Operators
== Equal to
!= Not equal to
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
Logical Operators
&& Logical AND
|| Logical OR
Other Operators
() Brackets (used to create groups and/or clarify the filter)
, Comma (used to link filter items)

Example Custom Filters

In the above Custom Filter image the pre-populated string is:

GREY(R,G,B) || (DE2000 >= 0.5 && DE2000 < 1.0)

This has been pre-populated by having 'Grey Only' selected, and the 'Delta-E' drop-down set to 0.5-1.0 range, with the dE 2000 radio button on.
In simple terms the string says it will show all points that are Grey Only, as well as all points that are within the Delta-E range 0.5 to 1.0 dE 2000.

The || operator specifies a logical 'OR' operation, while the && operator specifies a logical 'AND' operation, with >= specifying 'Greater than or equal to', and finally < specifying 'Less than'.

With the above information is should be relatively easy to see that changing the || operator to && will change the CIE chart to show just the points that are within the Grey Scale AND have a dE 2000 between 0.5 and 1.0.

GREY(R,G,B) && (DE2000 >= 0.5 && DE2000 < 1.0)

As a further example, using the following filter would show all Grey Scale and Primary Colour points that have values above 0.05, out of the range of 0-1 for the input patch triplet value.

GREY(R,G,B) || PRI(R,G,B), R > 0.05 || G > 0.05 || B > 0.05

And to add Secondaries:

GREY(R,G,B) || PRI(R,G,B) || SEC(R,G,B), R > 0.05 || G > 0.05 || B > 0.05

An alternative would be to use the L (Luminance) token to define points within an absolute Luminance value range.

GREY(R,G,B) || PRI(R,G,B) || SEC(R,G,B), L >= 10

The above will show all Grey Scale and Primary Colour points that have Luminance values greater or equal to 10 nits.

For more information on the various Operators available when defining the filtering see: Custom Filter Operators

LUT Image Manipulation

The LUT Image within LightSpace is a very powerful tool for direct LUT manipulation, using any graphics program to directly alter the LUT characteristics. With this approach you can easily alter any single point from the 35937 LUT points (the LUT Image is based on 33^3 LUT data).

This is possible because the coloured columns either side of the LUT image contain all 35937 colours within the 3D LUT. Therefore changing any of the colours within these columns will directly alter the LUT data.

As an example the following show using Photoshop Curves to manipulate just the shadow detail, leaving black and the data above shadows alone.

LUT Image in Photoshop

Full details on the use of the LUT Image are provided on the LightSpace CMS LUT Image page.

Parametric Gamma

Any colour space held within LightSpace CMS can have Parametric Gamma Controls added to it, enabling non-power law variable gamma profiles to be defined by the user, enabling very complex gamma curves to be defined.

Parametric Gamma

As an example, a user can create a custom colour space using the Rec709 standard, using a standard power law gamma of 2.2, 2.4, etc, as a starting point, and then make parametric gamma adjustments along the gamma curve to compensate for the display's gamma inconsistencies, or define a gamma profile to overcome issues with a viewing environment.

Full details on the use of Parametric Gamma are provided on the Parametric Gamma page.

OLED Displays

OLED displays have very unique colourimetry, with issues associated with metameric failure, which we address on the Perceptual Matching page of the website. But another unique aspect of OLED displays is that they maintain near full saturation (gamut) all the way down to black.

Alternative display technologies, including traditional CRT and LCD displays, as well as projectors, have a de-saturation effect as the luma levels drop below about 20% peak luma, depending on the actual display.

This is also in-line with the operation of human vision, where the eye's ability to see colour drops as the level of available light causes the colour sensitive cones to cease working, due to their lower sensitivity compared to the eye's monochrome sensitive rods.

Traditional Display Shadows Gamut

LCD Shadows Gamut

LCD & CRT displays show progressively lower gamut (saturation) as the luma levels drop, in this case starting at around 20% of peak luma.

OLED Shadows Gamut

OLED Shadows Gamut

OLED displays maintain saturation all the way down to black, which can cause the viewer to perceive the displayed image as being 'unnatural'.

Understanding this phenomena of OLED displays means we have to adapt their calibration to better mimic more traditional displays, by introducing a degree of desaturation in the displays lower luma levels.

LUT Manipulation Tools

LightSpace CMS licenses with the 'LUT manipulation tools' can perform such a desaturation very simply, using 'Mono Blend'. This example shows a de-saturation effect starting at 15%, and ending with zero saturation at black.

OLED desaturation

LUT Image

For those users without the LUT Manipulation tools the same effect can be created via the use of the LUT Image, and a graphics program such as Photoshop.

Save the LUT Image for the calibration LUT as a .tif image, and load into Photoshop. Duplicate the layer, and use 'Image/Adjustment - Hue/Saturation' to de-saturate the top layer fully. Then use 'Blending Options' to mix back the original LUT Image (the background layer) leaving just the lower 15% of the de-saturated layer active.

OLED desaturation

Save the resulting image as a new .tif image, and load into LightSpace CMS.

The result is identical to using the LUT manipulation tools!

LUT Concatenation

When calibrating with LightSpace CMS there are no fixed workflows, rather a selection of tools that can be applied as required, and the more adventurous and knowledgeable calibrators will quickly understand the possibilities.

The following multi-step 3D LUT calibration approaches will help explain what that means, but are in no way a definitive set of alternative workflows - they are just examples to help with LightSpace CMS understanding.

Multi-step LUT Calibration

With LightSpace, as we do not use 'workflows' for calibration (or any other aspect of colour management), instead providing the necessary tools for users to apply as required, there are a number of ways any end result can be achieved. And calibrating a display to a colour space that is a wider gamut than the display can actually achieve is a good example.

Rather than simply generating a one-step calibration LUT, as is the obvious approach, a multi-step approach can potentially provide a more 'aesthetically' pleasing result, by combining different LUTs in stages.

The following example shows an alternative approach for a display that can't match the source footage Rec709 gamut.

What is critical in this approach is the 'concatenation' process, and understanding what work each separate LUT is actually performing, even when concatenated, and getting the concatenation order correct.

Source Footage Colour Space Conversion Calibration Calibrated Display
Rec709 Source Rec709 to Display Gamut technical conversion LUT Display self calibration LUT Rec709 Calibrated Display
Camera Capture Colour Space Conversion LUT Calibration LUT Working Colour Space

In the above example the first LUT in the image path is just converting the Rec709 colour space into display's native (actual) colour space through the use of a User Generated Colour Space.

The User Generated Colour Space is made by using the 'Point Info' capability of the CIE charts to view the Red, Green, and Blue 'xy' values of patches 255,0,0 - 0,255,0 - 0,0,255.

Gamut Values

The display's native white point, and average gamma values, can also be used when generating the new 'User Colour Space'.

Native Gamut

This new Colour Space is then used as the Destination Colour Space, with the standard Rec709 Colour Space set as Source, when generating the first LUT.

The second LUT is therefore a standard calibration LUT, but with the new user Colour Space as the Source, and the display profile as the destination.

Both LUTs can then be concatenated into a new, single, Calibration LUT.

Concatenating LUTs within LightSpace

As we say often when describing the way LightSpace works, there are no 'set' ways to do anything, and that goes for LUT Concatenation.

LUT Addition

The obvious way, if you have a LightSpace CMS license with the LUT Manipulation tools, is to use the 'Add' function to add together two LUTs, having first 'Saved' the second LUT (the LUT to be added to the first LUT) via the 'Export' function. With the first LUT held within LightSpace simply select the Add function and navigate to the previously saved LUT.

LUT Image

A less obvious, but actually extremely useful method, is to use the 'LUT Image' function, and 'Save' the second LUT as a tif or dpx image. You can then use the 'LUT Preview function' to open the saved LUT Image, and apply the first LUT to it, saving the resulting LUT Image as a new LUT Image. To save the new LUT Image right click on the image and select 'Save As'.

When the new LUT Image is 'Opened' within LightSpace you will have a the concatenated result!

Again, what is key to concatenating LUTs is the order of addition. Swapping the order will generated different results!

For additional information see the LUT Image page of the website.

Convert Colour Space

Yet another alternative option is to combine the LUTs via the 'Convert Colour Space' menu. If there is a LUT already within LightSpace you can use the 'Use existing' to combine the LUT you are about to make with the LUT already within LightSpace.

Combining LUTs

The 'Apply to the Image' and 'Apply to the Data' both do the same function as far as the resulting LUT is concerned. The 'Image/Data' concept refers to any 'Reference Image' that may or may not be held within the LUT Image. See: LUT Image for more info.

Note: depending on the profile data set being used within Convert Colour Space there may be some variations in the final result compared to a pure 'Add' process. That is to be expected. But, there is always another way...

From the above it should be obvious that if using a LUT box with multiple LUT capabilities the different LUTs can be applied separately within the LUT box, rather than being concatenated.

Swapping LUT Components

Another application of the ability to 'concatenate' LUTs is to use the same basic process to 'replace' LUT components, rather than just concatenating different LUTs, using the LUT Manipulation tools option.

An obvious application is to use the 1D (Grey Scale) LUT component from one calibration LUT and combine it with the gamut only (3D) calibration component from another LUT.

This can of interest when using lower-end probes to perform full volumetric calibration, which introduce a high number of inaccurate probe readings due to poor low-light capabilities of the probe.

As 3D LUT calibration uses all volumetric profile data to generate the final calibration LUT is is possible that the LUT generation processes used, such as Peak Chroma, Peak Luma, and Map Space, may result in a slightly inaccurate grey scale compared to Fit Space, which uses a 'simplification' process to manage poor probe/display profile data.

But, due to the simplification process used with Fit Space it is possible the volumetric gamut calibration may be less accurate than the results from Peak Chroma, Peak Luma, and Map Space.

A potential solution is to combine the better components from two different calibration LUTs.

Initial LUT Generation

Knowing that Fit Space uses a 'simplification' process to better manage poor volumetric probe readings the use of a Primary Only Quick Profile may be all that is needed to generated the first calibration LUT, especially if a larger CVS patch sequence is used (see the example CSV Quick Profiles available from the 'Downloads' page).

A smaller (10^3?) cube based Characterisation can then be used to generate a second, gamut, calibration LUT via Peak Chroma, etc.

Within LightSpace you will now have two calibration LUTs - one made with Fit Space, and one made with Peak Chroma (or Peak Luma, Map Space depending on your choice). These two LUT may have been generated from the same profile data, or two different profiles.

Combine Separate Grey Scale and Gamut 1D & 3D LUT Components

To extract the gamut only component from the 'Peak Chroma' generated LUT the process is to 'null' the 1D (grey scale) component from within the LUT.

The initial process is to first export the original LUT in a 1D LUT format, and then use the 'Subtraction' LUT Manipulation tool to re-combine the exported 1D LUT with the original 3D LUT, using the subtraction process so negating the 1D component of the original LUT, leaving just the 3D gamut component.

The next step is to export the 1D LUT component from the 'Fit Space' generated LUT, again by exporting in a 1D LUT format.

This 1D LUT can then be combined with the 'gamut only LUT' using the 'Addition' LUT manipulation tool.

The result is a new 3D LUT, with the grey scale (1D) component from one LUT, combined with the 3D, gamut, component of a second LUT.

The process is:

  • Make the first LUT with Peak Chroma
  • Export the LUT in a 1D LUT format from the available LUT options (VCGT for example)
  • Use 'Subtract' to combine the exported 1D LUT with the original LUT
    (You now have a LUT with no 1D (Grey Scale) component)
  • Make the second LUT using Fit Space
  • Again, export as a 1D LUT
  • Delete the Fit Space LUT from within LightSpace
  • Use 'Addition' to combine the second exported 1D LUT with the Peak Chroma LUT
    (Presently without any Grey Scale info)

The result is a new 3D LUT, with the grey scale (1D) component from one LUT, combined with the 3D, gamut, component of a second LUT.

Maths Functions

The Maths option, within the LUT Manipulation Tools, opens a window into which mathematical calculations and arguments can be entered, allowing direct LUT manipulation.


There are 3 separate text boxes, and the operation of each is identical. The default startup state is:

  • R=R
  • G=G
  • B=B

Which will do nothing, as output equals input.

You can use any combination of the following operators, just like a normal calculator:

  • +,-,*,/ (add, subtract, multiply and divided)
  • ^ (to the power)
  • - (negate)
  • () (brackets)
  • min(a,b), max(a,b) (minimum or maximum of 2 values)
  • sqrt(a) (square root of a value)
  • abs(a) (absolute value)
  • if(a cond b) (cond is the condition, can be =, !=, <, >, <=, >= (If true, returns the value of the trueExp else returns the value of the falseExp)
  • Log(a) returns the log to base 10 of a
  • ? (a cond b) ? trueExp : falseExp (cond is the condition, can be =, !=, <, >, <=, >= (If true, returns the value of the trueExp else returns the value of the falseExp)

In addition to these, you can use R,G,B to represent the current LUT's r or g or b channel value.

All of the key words and R,G,B are case sensitive, so if is ok, but If and IF are not good. You can use as many R,G,B as you like in ANY channel process. You can also use constant values.

All the maths is done floating point, so an integer value of 65535 in 16 bit is represented as 1.0

An example could be:

R = (R *0.28) + (G * 0.7) + (B *0.02)
G = (R *0.28) + (G * 0.7) + (B *0.02)
B = (R *0.28) + (G * 0.7) + (B *0.02)

Putting these 3 lines into the maths engine, will give a LUT that produces a 'weighted' monochrome image.

Another example could be:

R = (R <= 0.0031308) ? R * 12.92 : 1.055 * (R ^ (1.0/2.4)) - 0.055
G = (G <= 0.0031308) ? G * 12.92 : 1.055 * (G ^ (1.0/2.4)) - 0.055
B = (B <= 0.0031308) ? B * 12.92 : 1.055 * (B ^ (1.0/2.4)) - 0.055

Which is the gamma formula for sRGB from linear data, extrapolated from

x <= 0.0031308 ? x * 12.92 : (1.055 * pow(x, 1/2.4)) - 0.055

to meet the formula requirements for the LightSpace CMS maths engine.

And for Linear to Rec709:

R = (R < 0.018) ? R * 4.5 : 1.099 * (R ^ (0.45)) - 0.099
G = (G < 0.018) ? G * 4.5 : 1.099 * (G ^ (0.45)) - 0.099
B = (B < 0.018) ? B * 4.5 : 1.099 * (B ^ (0.45)) - 0.099

Which is the gamma formula for Rec709 from linear data, extrapolated from

x < 0.018 ? (x * 4.5) : 1.099 * pow( x, (0.45) ) - 0.099

to meet the formula requirements for the LightSpace CMS maths engine.

Note: the sRGB and Rec709 formulas are 'capture/encoding' standards, and are NOT correct for display calibration. For both sRGB and Rec709, display calibration is always a simple Power Law gamma!
(Gamma 2.2 for sRGB, and 2.2 to 2.4 for Rec709...)

And for Linear to Cineon Log:

R = (((log (R * (1.0 - 0.0108) + 0.0108)) * 300) + 685) / 1023
G = (((log (G * (1.0 - 0.0108) + 0.0108)) * 300) + 685) / 1023
B = (((log (B * (1.0 - 0.0108) + 0.0108)) * 300) + 685) / 1023

As you can have different formulas in each colour channel, the actual posibities are very powerful!

Remove Bad Profile Points

LightSpace is very good as spotting, and removing, bad points from a display profile when generating a calibration LUT.

However, there are times such 'bad' profile points can be missed, and the resulting LUT will show unusual errors. When this happens it can be a simple process to remove such points from the profile.

LUT Error

The above 3D Cube image shows where the LightSpace generated LUT is attempting to correct a couple of 'cyan' points that have bad point data in the original profile.
(There are other inaccurate points, but they are hidden within the volume of the cube.)

With LightSpace any such bad readings within the original profile can be quickly isolated, using the available profile graphs and associated tools.

The firsts step is to generate a 'Colour Space' matrix that is the native gamut and white point of the display that has been profiled. To do this load the profile, and using the CIE charts double click the peak R, G, B, and W points in turn and make a note of their xy values. Then select the DifGamma chart and note the gamma value of the display.
(Note: the target 'colour space' used for this is irrelevant, and any dE values can be ignored.)

Record Peak RGBW Values

Gamut Extraction

Selecting each peak RGBW point in turn enables their xy values to be recorded. The selected target colour space is irrelevant, and the displayed dE values can be ignored.

Record Gamma Value

Gamut Extraction

Match the DifGamma graph to the closest Gamma value for the profile. In this case 2.4 to 2.5 average, reading from the vertical scale with the target gamma being Rec709 2.4.

Use the extracted values to generate a colour space that is the native raw gamut and white point of the display, and save as a new Colour Space matrix.

Extracted Colour Space

The original display profile can then be mapped (compared) to the new Colour Space, and any bad points isolated, as they will have hight dE values!
(When a display is mapped to itself, all points should obviously be well within acceptable parameters.)

Using the in-built Delta-E filter, or the 'Custom' filters, any high dE value points can be isolated. The following diagram shows all points greater than 5dE. Each point can be edited to show a negative value, meaning LightSpace will ignore the points when generating a LUT.

Edit Bad Points

After editing the points, the profile can be saved with a new name, and used to generate a LUT as normal, without the errors associated with the bad profile points.

LUT Corrected

Additional Technical & Support Info.

German language version of this page:

© Light Illusion - All rights reserved - Privacy Notice