LUT Formats
From IRIDAS Online Documentation
Contents |
Overview
The IRIDAS 2008/2009 applications support the following LUT formats:
- ARRI CMS LUT (3D)
- BlackMagic HDLink LUT (1D)
- BlackMagic HDLink Pro LUT (3D)
- Kodak KDM LUT (not encrypted) (3D)
- Rising Sun Research Cinespace LUT (3D)
- Truelight Hardware LUT (3D)
- Lustre LUTs (3D)
To add a LUT for use with your IRIDAS application, place it in the LUT subfolder in the installation folder of your IRIDAS application.
Learn about your product installation folder here.
IRIDAS .cube
#comments start with '#' #title is currently ignored, but it's not an error to enter one TITLE "title" #LUT_1D_SIZE M or #LUT_3D_SIZE M #where M is the size of the texture #a 3D texture has the size M x M x M #e.g. LUT_3D_SIZE 16 creates a 16 x 16 x 16 3D texture LUT_3D_SIZE 2 #Default input value range (domain) is 0.0 (black) to 1.0 (white) #Specify other min/max values to map the cube to any custom input #range you wish to use, for example if you're working with HDR data DOMAIN_MIN 0.0 0.0 0.0 DOMAIN_MAX 1.0 1.0 1.0 #for 1D textures, the data is simply a list of floating point values, #three per line, in RGB order #for 3D textures, the data is also RGB, and ordered in such a way #that the red coordinate changes fastest, then the green coordinate, #and finally, the blue coordinate changes slowest: 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 1.0 1.0 0.0 0.0 0.0 1.0 1.0 0.0 1.0 0.0 1.0 1.0 1.0 1.0 1.0 #Note that the LUT data is not limited to any particular range #and can contain values under 0.0 and over 1.0 #The processing application might however still clip the #output values to the 0.0 - 1.0 range, depending on the internal #precision of that application's pipeline #IRIDAS applications generally use a floating point pipeline #with little or no clipping
IRIDAS .ilut
This is an IRIDAS LUT format, with the extension .ilut. It is either in XML format (ASCII) or in the form of an interpretable script.
XML-based Cineon ILUT
The XML-based format looks as follows:
<?xml version="1.0" ?> <Log10Bit> <BypassLUT>"false"</BypassLUT> <GammaLogR>"1.7"</GammaLogR> <GammaDisplayR>"2.2"</GammaDisplayR> <ReferenceBlackR>"95"</ReferenceBlackR> <ReferenceWhiteR>"685" </ReferenceWhiteR> <SoftClipR>"0"</SoftClipR> <GammaLogG>"1.8"</GammaLogG> <GammaDisplayG>"2.1"</GammaDisplayG> <ReferenceBlackG>"92"</ReferenceBlackG> <ReferenceWhiteG>"780"</ReferenceWhiteG> <SoftClipG>"0"</SoftClipG> <GammaLogB>"1.3"</GammaLogB> <GammaDisplayB>"2.1"</GammaDisplayB> <ReferenceBlackB>"99"</ReferenceBlackB> <ReferenceWhiteB>"633"</ReferenceWhiteB> <SoftClipB> "0" </SoftClipB> </Log10Bit>
If values are missing, they are set to the values of the previous channels. I.e. if Red, Green and Blue values are the same, it is sufficient to supply a LUT file as follows.
<?xml version="1.0" ?> <Log10Bit> <BypassLUT> "false" </BypassLUT> <GammaLogR> "1.7" </GammaLogR> <GammaDisplayR> "2.2" </GammaDisplayR> <ReferenceBlackR>"95" </ReferenceBlackR> <ReferenceWhiteR>"685" </ReferenceWhiteR> <SoftClipR> "0" </SoftClipR> </Log10Bit>
Script based ILUT
For more information on the script format, please see ILUT Script Syntax
The script-based format looks as follows:
<IRIDAScript>
refblack = 95; //0..1023
refwhite = 685; //0..1023
softclip = 0; //0..100
gammalog = 1;
gammalin = 1;
quantization = 0.002 / 0.6;
gain = 255 / (1 - pow(pow(10, (refblack - refwhite) * quantization), gammalog / gammalin));
offset = gain - 255; softclip = max(0, softclip);
breakpoint = refwhite - softclip;
in = in * 1023; //temporary result (same for all channels)
out = 0; //all variables must be initialized
if (in <= breakpoint)
{
out = (pow(pow(10.0, (in - refwhite) * quantization),
gammalog / gammalin) * gain - offset) / 255;
}
else if (softclip > 0)
{
kneeoffset = pow(pow(10, (breakpoint - refwhite) * quantization),
gammalog / gammalin) * gain - offset;
kneegain = (255 - kneeoffset) / pow(5 * softclip, softclip / 100);
out = (pow(in - breakpoint, softclip / 100) * kneegain + kneeoffset) / 255;
}
else
out = 1;
//store results
red = out;
green = out;
blue = out;
</IRIDAScript>
Table-based LUT Format #1
The file is in plain ASCII format and looks like this
# # LUT to convert 10-bit log to 8-bit linear. # Version 3.0 # RGB Reference White: 685 685 685 # RGB Reference Black: 95 95 95 # RGB Softclip: 0 0 0 # RGB Film Gamma: 0.600000 0.600000 0.600000 # RGB Gamma Correction: 1.000000 1.000000 1.000000 # RGB HighLight: 255 255 255 # RGB Shadow: 0 0 0 # LUT: 3 1024 0 0 # Following by 3 x 1024 values for the 3 channels. # If values are missing, the last value is repeated.
Spline-based LUT Format
This is a file format being used in conjunction with Apple's Shake compositing system.
log2lin = Lookup( In,
JSplineV(x,1,0@0,0.0286@0.1013,0.0397@....
JSplineV(x,1,0@0,0.0286@0.1013,0.0397@....
JSplineV(x,1,0@0,0.0286@0.1013,0.0397@...
JSplineV(x,1,0@0,1@1));
