X-Git-Url: http://users.mur.at/ms/git/gitweb/?a=blobdiff_plain;f=aces_1.0.0%2Fpython%2Faces_ocio%2Fcreate_sony_colorspaces.py;h=2419f03b11cdf432572231cc25a520153f7099ac;hb=f35f56a24d1a4ef67aeebd51c6211425976370ab;hp=af334b8bad3151ca41049d7768faba666372c2bb;hpb=334e8bd4d18f6b4ad0bd616638f349825e9610b8;p=OpenColorIO-Configs.git diff --git a/aces_1.0.0/python/aces_ocio/create_sony_colorspaces.py b/aces_1.0.0/python/aces_ocio/create_sony_colorspaces.py index af334b8..2419f03 100644 --- a/aces_1.0.0/python/aces_ocio/create_sony_colorspaces.py +++ b/aces_1.0.0/python/aces_ocio/create_sony_colorspaces.py @@ -5,9 +5,13 @@ Implements support for *Sony* colorspaces conversions and transfer functions. """ +from __future__ import division + import array import os +import PyOpenColorIO as ocio + import aces_ocio.generate_lut as genlut from aces_ocio.utilities import ColorSpace, mat44_from_mat33 @@ -26,7 +30,8 @@ def create_s_log(gamut, transfer_function, name, lut_directory, - lut_resolution_1d): + lut_resolution_1d, + aliases): """ Object description. @@ -51,10 +56,16 @@ def create_s_log(gamut, cs = ColorSpace(name) cs.description = name + cs.aliases = aliases cs.equality_group = '' cs.family = 'Sony' cs.is_data = False + # A linear space needs allocation variables + if transfer_function == '': + cs.allocation_type = ocio.Constants.ALLOCATION_LG2 + cs.allocation_vars = [-8, 5, 0.00390625] + def s_log1_to_linear(s_log): b = 64. ab = 90. @@ -87,10 +98,10 @@ def create_s_log(gamut, def s_log3_to_linear(code_value): if code_value >= 171.2102946929: - linear = (pow(10.0, ((code_value - 420.0) / 261.5)) * + linear = (pow(10, ((code_value - 420) / 261.5)) * (0.18 + 0.01) - 0.01) else: - linear = (code_value - 95.0) * 0.01125000 / (171.2102946929 - 95.0) + linear = (code_value - 95) * 0.01125000 / (171.2102946929 - 95) return linear @@ -99,13 +110,13 @@ def create_s_log(gamut, if transfer_function == 'S-Log1': data = array.array('f', '\0' * lut_resolution_1d * 4) for c in range(lut_resolution_1d): - data[c] = s_log1_to_linear(1023.0 * c / (lut_resolution_1d - 1)) + data[c] = s_log1_to_linear(1023 * c / (lut_resolution_1d - 1)) lut = '%s_to_linear.spi1d' % transfer_function genlut.write_SPI_1d( os.path.join(lut_directory, lut), - 0.0, - 1.0, + 0, + 1, data, lut_resolution_1d, 1) @@ -118,13 +129,13 @@ def create_s_log(gamut, elif transfer_function == 'S-Log2': data = array.array('f', '\0' * lut_resolution_1d * 4) for c in range(lut_resolution_1d): - data[c] = s_log2_to_linear(1023.0 * c / (lut_resolution_1d - 1)) + data[c] = s_log2_to_linear(1023 * c / (lut_resolution_1d - 1)) lut = '%s_to_linear.spi1d' % transfer_function genlut.write_SPI_1d( os.path.join(lut_directory, lut), - 0.0, - 1.0, + 0, + 1, data, lut_resolution_1d, 1) @@ -137,13 +148,13 @@ def create_s_log(gamut, elif transfer_function == 'S-Log3': data = array.array('f', '\0' * lut_resolution_1d * 4) for c in range(lut_resolution_1d): - data[c] = s_log3_to_linear(1023.0 * c / (lut_resolution_1d - 1)) + data[c] = s_log3_to_linear(1023 * c / (lut_resolution_1d - 1)) lut = '%s_to_linear.spi1d' % transfer_function genlut.write_SPI_1d( os.path.join(lut_directory, lut), - 0.0, - 1.0, + 0, + 1, data, lut_resolution_1d, 1) @@ -222,7 +233,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): 'S-Log1', 'S-Log', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["slog1_sgamut"]) colorspaces.append(s_log1_s_gamut) # *S-Log2* @@ -231,7 +243,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): 'S-Log2', 'S-Log2', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["slog2_sgamut"]) colorspaces.append(s_log2_s_gamut) s_log2_s_gamut_daylight = create_s_log( @@ -239,7 +252,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): 'S-Log2', 'S-Log2', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["slog2_sgamutday"]) colorspaces.append(s_log2_s_gamut_daylight) s_log2_s_gamut_tungsten = create_s_log( @@ -247,7 +261,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): 'S-Log2', 'S-Log2', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["slog2_sgamuttung"]) colorspaces.append(s_log2_s_gamut_tungsten) # *S-Log3* @@ -256,7 +271,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): 'S-Log3', 'S-Log3', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["slog3_sgamutcine"]) colorspaces.append(s_log3_s_gamut3Cine) s_log3_s_gamut3 = create_s_log( @@ -264,7 +280,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): 'S-Log3', 'S-Log3', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["slog3_sgamut3"]) colorspaces.append(s_log3_s_gamut3) # Linearization Only @@ -273,7 +290,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): 'S-Log1', 'S-Log', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["crv_slog1"]) colorspaces.append(s_log1) s_log2 = create_s_log( @@ -281,7 +299,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): 'S-Log2', 'S-Log2', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["crv_slog2"]) colorspaces.append(s_log2) s_log3 = create_s_log( @@ -289,7 +308,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): 'S-Log3', 'S-Log3', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["crv_slog3"]) colorspaces.append(s_log3) # Primaries Only @@ -298,7 +318,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): '', 'S-Log', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["lin_sgamut"]) colorspaces.append(s_gamut) s_gamut_daylight = create_s_log( @@ -306,7 +327,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): '', 'S-Log2', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["lin_sgamutday"]) colorspaces.append(s_gamut_daylight) s_gamut_tungsten = create_s_log( @@ -314,7 +336,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): '', 'S-Log2', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["lin_sgamuttung"]) colorspaces.append(s_gamut_tungsten) s_gamut3Cine = create_s_log( @@ -322,7 +345,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): '', 'S-Log3', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["lin_sgamut3cine"]) colorspaces.append(s_gamut3Cine) s_gamut3 = create_s_log( @@ -330,7 +354,8 @@ def create_colorspaces(lut_directory, lut_resolution_1d): '', 'S-Log3', lut_directory, - lut_resolution_1d) + lut_resolution_1d, + ["lin_sgamut3"]) colorspaces.append(s_gamut3) return colorspaces