X-Git-Url: http://users.mur.at/ms/git/gitweb/?p=OpenColorIO-Configs.git;a=blobdiff_plain;f=aces%2Fluts%2Fslog2.py;h=b8a2e435cc3987ec147280dd7b2f88009232af1a;hp=656827df049b357033b550b4129ab2ee96fbbb2c;hb=1ce1614c96415dda3a5fc1d289322f681fe2b8b0;hpb=a2a301c14e0568fef61dfd5404f3a8b2e593df4d diff --git a/aces/luts/slog2.py b/aces/luts/slog2.py index 656827d..b8a2e43 100755 --- a/aces/luts/slog2.py +++ b/aces/luts/slog2.py @@ -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) -"""