X-Git-Url: http://users.mur.at/ms/git/gitweb/?p=OpenColorIO-Configs.git;a=blobdiff_plain;f=aces_1.0.0%2Fpython%2Faces_ocio%2Fcolorspaces%2Fgeneral.py;h=3059b064e2774d6f9b1f3eff3221afdb6850e3ec;hp=6e7c738fb7cec24e43bf0a0c44adb6bfc3fab1c9;hb=cad9d48a0f1067769435904348e9fffeffd25eb9;hpb=1bc3179d34a8e349e8745b3043dd9f792a287777 diff --git a/aces_1.0.0/python/aces_ocio/colorspaces/general.py b/aces_1.0.0/python/aces_ocio/colorspaces/general.py index 6e7c738..3059b06 100644 --- a/aces_1.0.0/python/aces_ocio/colorspaces/general.py +++ b/aces_1.0.0/python/aces_ocio/colorspaces/general.py @@ -16,7 +16,6 @@ import aces_ocio.generate_lut as genlut from aces_ocio.colorspaces import aces from aces_ocio.utilities import ColorSpace, mat44_from_mat33 - __author__ = 'ACES Developers' __copyright__ = 'Copyright (C) 2014 - 2015 - ACES Developers' __license__ = '' @@ -27,6 +26,7 @@ __status__ = 'Production' __all__ = ['create_matrix_colorspace', 'create_colorspaces'] + # ------------------------------------------------------------------------- # *Matrix Transform* # ------------------------------------------------------------------------- @@ -83,6 +83,7 @@ def create_matrix_colorspace(name='matrix', return cs + # ------------------------------------------------------------------------- # *Transfer Function Transform* # ------------------------------------------------------------------------- @@ -144,6 +145,8 @@ def create_transfer_colorspace(name='transfer', cs.from_reference_transforms = [] return cs + + # create_transfer_colorspace # ------------------------------------------------------------------------- @@ -234,6 +237,8 @@ def create_matrix_plus_transfer_colorspace(name='matrix_plus_transfer', 'direction': 'inverse'}) return cs + + # create_matrix_plus_transfer_colorspace # Transfer functions for standard color spaces @@ -244,55 +249,60 @@ def transfer_function_sRGB_to_linear(v): g = 2.4 if v < b: - return v/d + return v / d return pow(((v + (a - 1)) / a), g) + def transfer_function_Rec709_to_linear(v): a = 1.099 b = 0.018 d = 4.5 - g = (1.0/0.45) + g = (1.0 / 0.45) - if v < b*d: - return v/d + if v < b * d: + return v / d return pow(((v + (a - 1)) / a), g) + def transfer_function_Rec2020_10bit_to_linear(v): a = 1.099 b = 0.018 d = 4.5 - g = (1.0/0.45) + g = (1.0 / 0.45) - if v < b*d: - return v/d + if v < b * d: + return v / d return pow(((v + (a - 1)) / a), g) + def transfer_function_Rec2020_12bit_to_linear(v): a = 1.0993 b = 0.0181 d = 4.5 - g = (1.0/0.45) + g = (1.0 / 0.45) - if v < b*d: - return v/d + if v < b * d: + return v / d return pow(((v + (a - 1)) / a), g) + def transfer_function_Rec1886_to_linear(v): g = 2.4 Lw = 1 Lb = 0 # Ignoring legal to full scaling for now - #v = (1023.0*v - 64.0)/876.0 + # v = (1023.0*v - 64.0)/876.0 - t = pow(Lw, 1.0/g) - pow(Lb, 1.0/g) + t = pow(Lw, 1.0 / g) - pow(Lb, 1.0 / g) a = pow(t, g) - b = pow(Lb, 1.0/g)/t + b = pow(Lb, 1.0 / g) / t + + return a * pow(max((v + b), 0.0), g) - return a*pow(max((v + b), 0.0), g) def create_colorspaces(lut_directory, lut_resolution_1d, @@ -317,9 +327,9 @@ def create_colorspaces(lut_directory, # XYZ # cs = create_matrix_colorspace('XYZ-D60', - to_reference_values=[aces.ACES_XYZ_TO_AP0], - from_reference_values=[aces.ACES_AP0_TO_XYZ], - aliases=["lin_xyz_d60"]) + to_reference_values=[aces.ACES_XYZ_TO_AP0], + from_reference_values=[aces.ACES_AP0_TO_XYZ], + aliases=["lin_xyz_d60"]) colorspaces.append(cs) # @@ -351,41 +361,6 @@ def create_colorspaces(lut_directory, colorspaces.append(cs) # - # Rec 709 - # - # *ACES* to *Linear*, *Rec. 709* primaries. - XYZ_to_Rec709 = [3.2409699419, -1.5373831776, -0.4986107603, - -0.9692436363, 1.8759675015, 0.0415550574, - 0.0556300797, -0.2039769589, 1.0569715142] - - cs = create_matrix_colorspace( - 'Linear - Rec.709', - from_reference_values=[aces.ACES_AP0_TO_XYZ, XYZ_to_Rec709], - aliases=["lin_rec709"]) - colorspaces.append(cs) - - # *Linear* to *Rec. 709* Transfer Function* - cs = create_transfer_colorspace( - 'Curve - Rec.709', - 'rec709', - transfer_function_Rec709_to_linear, - lut_directory, - lut_resolution_1d, - aliases=["crv_rec709"]) - colorspaces.append(cs) - - # *ACES* to *Rec. 709* Primaries + Transfer Function* - cs = create_matrix_plus_transfer_colorspace( - 'Rec.709', - 'rec709', - transfer_function_Rec709_to_linear, - lut_directory, - lut_resolution_1d, - from_reference_values=[aces.ACES_AP0_TO_XYZ, XYZ_to_Rec709], - aliases=["rec709"]) - colorspaces.append(cs) - - # # sRGB # # *ACES* to *Linear*, *Rec. 709* primaries. @@ -422,17 +397,38 @@ def create_colorspaces(lut_directory, colorspaces.append(cs) # - # Rec 1886 + # Rec 709 # + # *ACES* to *Linear*, *Rec. 709* primaries. + XYZ_to_Rec709 = [3.2409699419, -1.5373831776, -0.4986107603, + -0.9692436363, 1.8759675015, 0.0415550574, + 0.0556300797, -0.2039769589, 1.0569715142] + + cs = create_matrix_colorspace( + 'Linear - Rec.709', + from_reference_values=[aces.ACES_AP0_TO_XYZ, XYZ_to_Rec709], + aliases=["lin_rec709"]) + colorspaces.append(cs) - # *Linear* to *Rec.2020* Transfer Function* + # *Linear* to *Rec. 709* Transfer Function* cs = create_transfer_colorspace( - 'Curve - Rec.1886', - 'rec1886', - transfer_function_Rec1886_to_linear, + 'Curve - Rec.709', + 'rec709', + transfer_function_Rec709_to_linear, lut_directory, lut_resolution_1d, - aliases=["crv_rec1886"]) + aliases=["crv_rec709"]) + colorspaces.append(cs) + + # *ACES* to *Rec. 709* Primaries + Transfer Function* + cs = create_matrix_plus_transfer_colorspace( + 'Rec.709 - Camera', + 'rec709', + transfer_function_Rec709_to_linear, + lut_directory, + lut_resolution_1d, + from_reference_values=[aces.ACES_AP0_TO_XYZ, XYZ_to_Rec709], + aliases=["rec709_camera"]) colorspaces.append(cs) # @@ -461,13 +457,49 @@ def create_colorspaces(lut_directory, # *ACES* to *Rec. 2020 10 bit* Primaries + Transfer Function* cs = create_matrix_plus_transfer_colorspace( - 'Rec.2020', + 'Rec.2020 - Camera', 'rec2020', transfer_function_Rec2020_10bit_to_linear, lut_directory, lut_resolution_1d, from_reference_values=[aces.ACES_AP0_TO_XYZ, XYZ_to_Rec2020], - aliases=["rec2020"]) + aliases=["rec2020_camera"]) + colorspaces.append(cs) + + # + # Rec 1886 + # + + # *Linear* to *Rec.1886* Transfer Function* + cs = create_transfer_colorspace( + 'Curve - Rec.1886', + 'rec1886', + transfer_function_Rec1886_to_linear, + lut_directory, + lut_resolution_1d, + aliases=["crv_rec1886"]) + colorspaces.append(cs) + + # *ACES* to *sRGB* Primaries + Transfer Function* + cs = create_matrix_plus_transfer_colorspace( + 'Rec.709 - Display', + 'rec1886', + transfer_function_Rec1886_to_linear, + lut_directory, + lut_resolution_1d, + from_reference_values=[aces.ACES_AP0_TO_XYZ, XYZ_to_Rec709], + aliases=["rec709_display"]) + colorspaces.append(cs) + + # *ACES* to *sRGB* Primaries + Transfer Function* + cs = create_matrix_plus_transfer_colorspace( + 'Rec.2020 - Display', + 'rec1886', + transfer_function_Rec1886_to_linear, + lut_directory, + lut_resolution_1d, + from_reference_values=[aces.ACES_AP0_TO_XYZ, XYZ_to_Rec2020], + aliases=["rec2020_display"]) colorspaces.append(cs) # @@ -521,11 +553,9 @@ def create_raw(): name = "Raw" raw = ColorSpace(name) raw.description = 'The %s color space' % name - raw.aliases = [] + raw.aliases = ["raw"] raw.equality_group = name raw.family = 'Utility' raw.is_data = True return raw - -