slog update
[OpenColorIO-Configs.git] / aces / luts / slog2.py
index 656827d..b8a2e43 100755 (executable)
@@ -9,15 +9,32 @@ import math
 def SLog_to_lin(x):
     return (math.pow(10.0,(((((x*1023.0)/4.0-16.0)/219.0)-0.616596-0.03)/0.432699))-0.037584)*0.9
 
+def Fit(value, fromMin, fromMax, toMin, toMax):
+    if fromMin == fromMax:
+        raise ValueError("fromMin == fromMax")
+    return (value - fromMin) / (fromMax - fromMin) * (toMax - toMin) + toMin
+
 def SLog2_to_lin(x):
+    x = Fit(x, 64.0/1023.0, 940.0/1023.0, 0.0, 1.0)
     if x < 0.030001222851889303:
-        return (x-0.030001222851889303 ) * 0.28258064516129
-    return (219.0*(math.pow(10.0, ((x-0.616596-0.03)/0.432699)) - 0.037584) /155.0)
-
-steps = 21
+        y = ((x-0.030001222851889303 ) * 0.28258064516129)
+    else:
+        y = (219.0*(math.pow(10.0, ((x-0.616596-0.03)/0.432699)) - 0.037584) /155.0)
+    return y*0.9
+    
+"""
+steps = 1024
 for i in xrange(steps):
     x = i/(steps-1.0)
-    print x, SLog_to_lin(x), SLog2_to_lin(x)
+    print x, SLog2_to_lin(x)
+"""
+"""
+print SLog2_to_lin_copy(90.0/1023.0) / 0.9
+print SLog2_to_lin_copy(91.0/1023.0) / 0.9
+print SLog2_to_lin_copy(582.0/1023.0) / 0.9
+print SLog2_to_lin_copy(940.0/1023.0) / 0.9
+print SLog2_to_lin_copy(998.0/1023.0) / 0.9
+"""
 
 def WriteSPI1D(filename, fromMin, fromMax, data):
     f = file(filename,'w')
@@ -31,32 +48,11 @@ def WriteSPI1D(filename, fromMin, fromMax, data):
     f.write("}\n")
     f.close()
 
-def Fit(value, fromMin, fromMax, toMin, toMax):
-    if fromMin == fromMax:
-        raise ValueError("fromMin == fromMax")
-    return (value - fromMin) / (fromMax - fromMin) * (toMax - toMin) + toMin
-
-"""
-5500K:
-
-ACESR = 0.8764457030 * Rraw +  0.0145411681 * Graw +  0.1090131290 * Braw;
-ACESG = 0.0774075345 * Rraw +  0.9529571767 * Graw + -0.0303647111 * Braw;
-ACESB = 0.0573564351 * Rraw + -0.1151066335 * Graw +  1.0577501984 * Braw;
-
-3200K:
-
-ACESR = 1.0110238740 * Rraw +  -0.1362526051 * Graw +  0.1252287310 * Braw;
-ACESG = 0.1011994504 * Rraw +   0.9562196265 * Graw + -0.0574190769 * Braw;
-ACESB = 0.0600766530 * Rraw +  -0.1010185315 * Graw +  1.0409418785 * Braw;
-"""
-
-"""
-NUM_SAMPLES = 2**11
+NUM_SAMPLES = 2**14
 RANGE = (-0.125, 1.125)
 data = []
 for i in xrange(NUM_SAMPLES):
     x = i/(NUM_SAMPLES-1.0)
     x = Fit(x, 0.0, 1.0, RANGE[0], RANGE[1])
-    data.append(SLog10_to_lin(x))
+    data.append(SLog2_to_lin(x))
 WriteSPI1D('slog2.spi1d', RANGE[0], RANGE[1], data)
-"""