Advanced ColourSpace Operation

ColourSpace 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 ColourSpace can be applied to generate alternative end results.


Advanced ColourSpace Tips & Tricks


Hint, Drift, & Augment Data

When generating LUTs there are a number of advanced options that can be used within the Destination profile selection (only Drift is applicable for Source, and only when a measured profile is used as a Source).
The three options are Hint, Drift, and Augments Data.

Hint

The concept behind Hint is to enable the use of a complex full volumetric profile as a guide or master for a smaller profile set. For example, a Primary Only, or Grey Only profile can have a display's in-built non-linear volumetric distortions mapped into the data set prior to LUT generation. This means that sparse profiles can generate more accurate LUTs, based on the more complex profile data being used as a Hint.

Ideally, the Hint profile would be generated from the display in question, but can also be used for displays within the same family that have exactly the same underlying non-linear response characteristics.

Hint

Hint Use

The Hint process is remarkably simple.

  • Set-up the display for pre-calibration as usual, following the 3D LUT Calibration guide
  • Perform a large volumetric display profile
    (Use as large a patch set as possible, with Stabilisation Patches, etc., to generate the best possible assessment of the raw display)

This profile is now the 'master' profile for the given display, or display family.

  • At a later time, or on a new display from the same display family, perform a sparse patch profile
    (Primary Only, or Grey Only for example)
  • In Convert Colour Space select the Source target colour space as required
  • For Destination select the sparse profile
  • Within the Destination option tick Enable Hint, and select the full Volumetric profile for the given display/family
  • The full Volumetric profile data will be used to enhance the sparse/Quick Profile data, better matching the display's native response

In this way, one master Volumetric profile can be used to enhance the accuracy of smaller/faster profiles when using them to generate 3D calibration LUTs.

Drift

Drift has two components.

The first is within Characterisation Profiling, where any user defined colour patch can be inserted every nn measurement frames, providing data that tracks drift of the display during profiling. The drift data can be plotted, and used to better understand how the display responds during profiling, usually due to heat.

Drift

Along with Drift, Pre Roll and Stabilisation can be used to minimise the effects of display heating, and reduce drift. Stabilisation patch size can also be set to full screen (FW - Full Width), to assist in limiting burn-in on displays that suffer that, such as WOLEDs

Stabilisation Pre-Roll

The second Drift component is within LUT Generation, and uses the Drift data to apply a compensation to the profile measurements during LUT building.

Drift

Augment

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

For example, a relatively small Cube based profile, such as 10^3 can be used for a volumetric profile, and augmented with a 33 step Grey Only Large (33 step) Quick 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 Grey Only Large, 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 Large profile provided within ColourSpace is the optimum for most Augment needs.

Augment Use

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
  • Re-profile through the LUT using a Grey Only Large profile, or any other profile as desired
    (The LUT can be loaded directly into the display/LUT box/Graphics program, or Active LUT within ColourSpace can be used)
  • Open the Manager Spaces library, and select the initial Cube based profile
  • Select Manage, and select Add Aug, which will open a drop-down list of all available profiles from within the library
  • Choose the second Grey Only Large profile, and the Select button will add the profile as Augment Data
  • Enter a new profile name to differentiate the profile
  • Use Save, to save the new Augmented profile

Add Augment

  • Within LUT Tools, LUT generation, select the new profile, and tick the Augment Data option
  • A new LUT can then be generated, using the Augmented grey scale data

Use Augment

As always with all ColourSpace, there are no fixed workflows. Another use of Augment could be to modify an older LUT with new Grey Scale data, rather than performing a totally new volumetric profile.

Augment Issues?

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/change 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 due to signal path issues, such as the LUT not being scaled for the correct signal range.

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.


Sub-Space

Sub-Space allows the selection of any colour space - preset or user - to be used as a Sub-Space target for profile measurements.

When enabled, the Sub-Space colour space is treated as the Target colour space, enabling a display calibrated for a different colour space - say DCI P3 - to be profiled as if it were actually calibrated to the Sub-Space colour space - say Rec709 - to verify if the display can accurately cover the Sub-Space colour space.

The Enable tick box enables the use of Sub-Space when profiling, with the graphs plotting based on the Sub-Space colour space.

Sub-Space

When a Sub-Space profile is Saved, it can be saved as a default Sub-Space profile, which will plot using the Sub-Space colour space, as defined above.

Alternatively, the additional Sub-Space option, within Graphs Options, can be use to set the Saved profile data to Sub-Space Calibration.

Sub-Space Calibration

With Sub-Space Calibration selected, the profile data is mapped to the original Target colour space, not the Sub-Space colour space. This is required if the Sub-Space profile is to be used for LUT Generation, where the calibration target is the main Target colour space, and the Sub-Space is being used to profile a reduced gamut within the Target colour space.

Reduced Gamut Profiling & Calibration

Reducing the gamut area to be profiled can be of use for pre-calibrated displays that have a smaller gamut than the required Target colour space target, and have internal colour management that cannot be disabled. Such displays will suffer gamut edge compression, due to being pre-calibrated. JVC projectors are good example of such displays, as they are colour managed to pre-set colour spaces, such as Rec2020, and have no useable method to set the display to its native gamut.

The approach is to define the actual gamut area the display can actively use as a Sub-Space within the Target colour space.

This can be done by using Modify within the Manages Spaces library to extract the actual RGB xy values from a profile of the display.

  • Profile the display with a Primary Only quick profile
  • Select the profile from with the Manages Spaces library, and click Modify

Extract

  • Enter a new profile name to differentiate the new colour space
  • Press Extract Space, to save the new colour space
    (The Extracted colour space will also include an extracted average EOTF/Gamma and White point values, which should be edited back to the values of the Target colour space)
  • Profile the display with the extracted colour space as the Sub-Space
  • Save the profile with Sub-Space Calibration enabled
  • Use the profile to generate a LUT as normal, targeting the standard Target colour space
    (The use Map Space, or Fit Space, or even LUT Concatenation, may be preferable with Sub-Space Calibration)

In some circumstances it may be helpful to slightly reduce the Extracted gamut further - say 5% or so, just to make sure the reduced gamut patch set is fully within the display's available gamut coverage.

Note: when a profile is saved with Sub-Space Calibration enabled, the profile will not plot within the various graphs.


LUT Concatenation

As ColourSpace does not use fixed calibration workflows, but instead provides 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.

Obviously, Map Space and Fit Space provided tools that perform LUT Generation via a form of concatenation, but understanding how LUT Concatenation can be performed manually helps develop deeper user understanding of the advanced capabilities of ColourSpace, compared to the more limited options of alternative calibration systems.

The basic principle for LUT Concatenation for display calibration is to split the calibration into two separate parts - one making the display as accurate as possible to it's own gamut/gamma capabilities, and the second to perform a technical conversion to map the now calibrated display into the target colour space.

In practice, this workflow is applied in reverse.

  1. 1
    Source Footage

    Rec709

  2. 2
    Colour Space Conversion

    Rec709 to Display colour space technical conversion LUT

  3. 3
    Calibration

    Display self calibration LUT

  4. 4
    Calibrated Display

    Rec709 Calibrated Display

In the above example the first LUT in the image path is just converting the Rec709 colour space into the display's native (actual) colour space through the use of a User colour space. The second LUT is accurately calibrating the display to itself.

The process for LUT Concatenation based display calibration is as follows.

  • Set the display to its native colour space, and set Black and White points are required
    (Follow the standard pre-calibration procedure as outlined within the 3D LUT Guide)
  • Profile the display as normal, with a large patch set
  • From within the manage Spaces library select the colour space, and use Modify to extract the display's native colour space

Extract

  • Generate the first Colour Space Conversion LUT using the extracted colour space as Destination, and Rec709 as Source
  • Generate the second Calibration LUT using the profile as Destination, and the extracted colour space as Source
  • Concatenate both LUTs into a single, final calibration LUT
    (Make sure to get the concatenation order correct...)
How to Concatenate LUTs?

The obvious way to concatenate LUTs, is to use the Add function within LUT Tools to add together multiple LUTs.

  • Save both LUTs into the Manage Spaces library
  • Define the concatenation order, and open the first LUT
  • From within LUT Tools select LUT Adjustment, Maths, and the Add function
  • Select the second LUT from the drop-down list, and Apply
  • The two LUTs will be concatenated

An alternative method to Concatenate LUTs is to generate the second LUT on-top of the first, using the Apply To Existing LUT capability.

Apply to existign LUT

  • Generate the first LUT as usual
  • With the LUT still held in LUT Generation, configure LUT Generation for the second LUT
  • Set the New LUT drop-down to the Apply to existing LUT option
  • When the second LUT is generated it will be concatenated with the first LUT

Swapping LUT Components

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

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.

When profiling for LUT based calibration, the usual approach is to use one large volumetric profile to generate the final LUT.

However, there is nothing wrong with using one profile focused on just the Grey Scale, and another profile for the Volumetric Gamut, and then combine the grey scale from one LUT with the gamut component from the other.

Initial LUT Generation

First, focussing on the Grey Scale, a Grey Only Large, or even a user generated .CSV list with a greater number of grey patches, can be used to profile primarily the grey response of the display, and a calibration LUT generated from that profile.

Then a smaller (10^3?) cube based Characterisation can be used to generate a second, volumetric gamut focused, calibration LUT

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

The first step is to extract the gamut only component from the volumetric LUT by nullifying the 1D (grey scale) component.

The second step is to extract just the 1D grey scale component from the second LUT.

The Grey Scale component can then be combined with the gamut only LUT.

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 gamut LUT using a relatively small cube based profile (10^3?)
  • Save a copy of the LUT into the Manage Spaces library
  • Export the LUT using a 1D LUT, such as the VCGT format
  • Import the new 1D LUT back into the library
  • With the original gamut LUT held within LUT Tools, select LUT Adjustment/Maths/Subtract
  • From the drop down list select the imported 1D LUT, and Apply

The resulting LUT will have the 1D grey scale component nullified.

  • Make a second LUT using a Grey Only Large profile, or user generated .CSV grey only patch set
  • Save a copy of the LUT into the Manage Spaces library
  • Export the LUT using a 1D LUT, such as the VCGT format
  • Import the new 1D LUT back into the library
  • With the new gamut LUT, within original 1D component nullified, held within LUT Tools, select LUT Adjustment/Maths/Add
  • From the drop down list select the imported 1D LUT, and Apply

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 Equations

The Maths Equations options opens a menu into which mathematical calculations and arguments can be entered, allowing direct LUT manipulation, as either Append or Prepend operation.

Equations

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.

Any combination of the following operators can be used is generating an equation, effectively just like a normal calculator:

  • +,-,*,/ (add, subtract(negate), multiply and divided)
  • ^ (to the power)
  • () (brackets)
  • min(a,b), max(a,b) (minimum or maximum of 2 values)
  • sqrt(a) (square root of a value)
  • abs(a) (absolute value)
  • (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)
    (Alternatively: (if(a cond b))
    There is no ELSE for if. If the condition is true, it returns 1.0. if it is false, it returns 0.0. Therefore, you multiply the function buy the if(). Alternatively, it is possible to use 1.0 - if() to implement the ELSE type operation.
  • log(a) returns the log to base 10 of a

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 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 > 0.1496582) ? ((((10.0 ^ (R - 0.385537)) / 0.2471896) - 0.052272) / 5.555556) : ((R - 0.092809) / 5.367655)
(G > 0.1496582) ? ((((10.0 ^ (G - 0.385537)) / 0.2471896) - 0.052272) / 5.555556) : ((G - 0.092809) / 5.367655)
(B > 0.1496582) ? ((((10.0 ^ (B - 0.385537)) / 0.2471896) - 0.052272) / 5.555556) : ((B - 0.092809) / 5.367655)

Which is the Arri formula for LogC EI800 to linear data, extrapolated from:

t > 0.1496582 ? (pow(10.0, (t -0.385537) / 0.2471896) -0.052272) / 5.555556 : (t -0.092809) / 5.367655

To meet the formula requirements for the ColourSpace maths engine.

And for Linear to sRGB encoding:

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
( if(x <= [input], [result if true], [result if false]) )

And for Linear to Rec709 encoding:

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

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 possibilities are very powerful!