diff --git a/.gitmodules b/.gitmodules index ce2b725f..189f2238 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "opencolorio_config_aces/config/reference/aces-dev"] - path = opencolorio_config_aces/config/reference/aces-dev - url = https://github.com/ampas/aces-dev.git +[submodule "opencolorio_config_aces/config/reference/aces-system"] + path = opencolorio_config_aces/config/reference/aces-system + url = https://github.com/colour-science/aces-system diff --git a/README.rst b/README.rst index 923b2da3..d627c754 100644 --- a/README.rst +++ b/README.rst @@ -44,10 +44,10 @@ The following features are available: - Discovery of *aces-dev* *CTL* transforms. - Generation of the *CTL* transforms graph. - - `Spreadsheet `__-driven generation. + - `Spreadsheet `__-driven generation. - Generators producing the *OCIO* **CG** and **Studio** configurations. - - `Spreadsheet `__-driven generation. + - `Spreadsheet `__-driven generation. - Included *CLF* transforms along with generator and discovery support. diff --git a/docs/index.rst b/docs/index.rst index 350a1432..b23c20a2 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -26,10 +26,10 @@ The following features are available: - Discovery of *aces-dev* *CTL* transforms. - Generation of the *CTL* transforms graph. - - `Spreadsheet `__-driven generation. + - `Spreadsheet `__-driven generation. - Generators producing the *OCIO* **CG** and **Studio** configurations. - - `Spreadsheet `__-driven generation. + - `Spreadsheet `__-driven generation. - Included *CLF* transforms along with generator and discovery support. diff --git a/docs/process.rst b/docs/process.rst index 4234a276..115b2fcb 100644 --- a/docs/process.rst +++ b/docs/process.rst @@ -16,7 +16,7 @@ The config generation process starts with a set of definitions and classes to di .. note:: This approach allowed us to improve the consistency of the **CTL** transforms ``ACEStransformID`` while fixing various filename issues. -Using ``ACES2065-1`` and ``OCES`` as connection spaces, it is possible to build a colour conversion graph with all the high-level relevant transforms. +Using ``ACES2065-1`` as connection spaces, it is possible to build a colour conversion graph with all the high-level relevant transforms. - :func:`opencolorio_config_aces.build_aces_conversion_graph` - :func:`opencolorio_config_aces.plot_aces_conversion_graph` @@ -33,7 +33,7 @@ Analytical & Reference Configs Generation The colour conversion graph is then used to create the *Analytical* config that maps 1-to-1 the **aces-dev** **CTL** transforms to theoretical **OpenColorIO** builtin transforms. This config does not work but it is useful to test basic generation capabilities whilst diagnosing issues in the mapping. -The *Reference* config is driven by a *CSV* file generated from a `spreadsheet `__ mapping the ``ACEStransformID`` to **OpenColorIO** builtin transforms. +The *Reference* config is driven by a *CSV* file generated from a `spreadsheet `__ mapping the ``ACEStransformID`` to **OpenColorIO** builtin transforms. - :func:`opencolorio_config_aces.generate_config_aces` @@ -52,7 +52,7 @@ The repository contains code to generate, discover and classify the additional * CG Config Generation ^^^^^^^^^^^^^^^^^^^^ -The *CG* config generator also uses a *CSV* file generated from a `spreadsheet `__ that expresses which ``ACEStransformID`` should be used from the ``Reference`` config and which ``CLFtransformID`` should be used from the shipped *CLF* transforms. +The *CG* config generator also uses a *CSV* file generated from a `spreadsheet `__ pivot table that expresses which ``ACEStransformID`` should be used from the ``Reference`` config and which ``CLFtransformID`` should be used from the shipped *CLF* transforms. - :func:`opencolorio_config_aces.generate_config_cg` @@ -63,7 +63,7 @@ The conversion process is as follows: Studio Config Generation ^^^^^^^^^^^^^^^^^^^^^^^^ -The *Studio* config generator follows the same approach but uses a different `pivot table `__ of the spreadsheet. +The *Studio* config generator follows the same approach but uses a different `pivot table `__ of the spreadsheet. - :func:`opencolorio_config_aces.generate_config_studio` diff --git a/opencolorio_config_aces/clf/discover/classify.py b/opencolorio_config_aces/clf/discover/classify.py index a0d8b54f..6fe865fc 100644 --- a/opencolorio_config_aces/clf/discover/classify.py +++ b/opencolorio_config_aces/clf/discover/classify.py @@ -65,7 +65,7 @@ "print_clf_taxonomy", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) URN_CLF: str = "urn:aswf:ocio:transformId:1.0" """ @@ -1061,7 +1061,7 @@ def discover_clf_transforms( clf_transform = os.path.join(directory, filename) - logger.debug( + LOGGER.debug( '"%s" CLF transform was found!', clf_transform_relative_path(clf_transform), ) @@ -1139,7 +1139,7 @@ def classify_clf_transforms( genus, ) - logger.debug('Classifying "%s" under "%s".', clf_transform, genus) + LOGGER.debug('Classifying "%s" under "%s".', clf_transform, genus) classified_clf_transforms[family][genus][basename] = clf_transform @@ -1155,7 +1155,7 @@ def classify_clf_transforms( forward_clf_transform, inverse_clf_transform ) - logger.debug('Classifying "%s" under "%s".', clf_transform, genus) + LOGGER.debug('Classifying "%s" under "%s".', clf_transform, genus) classified_clf_transforms[family][genus][basename] = clf_transform @@ -1281,35 +1281,35 @@ def print_clf_taxonomy() -> None: classified_clf_transforms = classify_clf_transforms(discover_clf_transforms()) for family, genera in classified_clf_transforms.items(): - message_box(family, print_callable=logger.info) + message_box(family, print_callable=LOGGER.info) for genus, clf_transforms in genera.items(): - logger.info("[ %s ]", genus) + LOGGER.info("[ %s ]", genus) for name, clf_transform in clf_transforms.items(): - logger.info("\t( %s )", name) + LOGGER.info("\t( %s )", name) if isinstance(clf_transform, CLFTransform): - logger.info( + LOGGER.info( '\t\t"%s" --> "%s"', clf_transform.source, clf_transform.target, ) if clf_transform.clf_transform_id is not None: - logger.info( + LOGGER.info( '\t\tCLFtransformID : "%s"', clf_transform.clf_transform_id.clf_transform_id, ) elif isinstance(clf_transform, CLFTransformPair): - logger.info( + LOGGER.info( '\t\t"%s" <--> "%s"', clf_transform.forward_transform.source, clf_transform.forward_transform.target, ) if clf_transform.forward_transform.clf_transform_id is not None: - logger.info( + LOGGER.info( '\t\tACEStransformID : "%s"', clf_transform.forward_transform.clf_transform_id.clf_transform_id, ) if clf_transform.inverse_transform.clf_transform_id is not None: - logger.info( + LOGGER.info( '\t\tACEStransformID : "%s"', clf_transform.inverse_transform.clf_transform_id.clf_transform_id, ) diff --git a/opencolorio_config_aces/clf/transforms/apple/generate.py b/opencolorio_config_aces/clf/transforms/apple/generate.py index aab0a538..4ff3254c 100644 --- a/opencolorio_config_aces/clf/transforms/apple/generate.py +++ b/opencolorio_config_aces/clf/transforms/apple/generate.py @@ -74,7 +74,7 @@ def generate_clf_transforms_apple(output_directory): clf_transforms = {} aces_transform_id = ( - "urn:ampas:aces:transformId:v1.5:IDT.Apple.AppleLog_BT2020.a1.v1" + "urn:ampas:aces:transformId:v2.0:CSC.Apple.AppleLog_BT2020_to_ACES.a2.v1" ) name = "Apple_Log_to_ACES2065-1" diff --git a/opencolorio_config_aces/clf/transforms/apple/input/Apple.Input.Apple_Log_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/apple/input/Apple.Input.Apple_Log_to_ACES2065-1.clf index 06296201..b2762d23 100644 --- a/opencolorio_config_aces/clf/transforms/apple/input/Apple.Input.Apple_Log_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/apple/input/Apple.Input.Apple_Log_to_ACES2065-1.clf @@ -3,7 +3,7 @@ Apple Log ACES2065-1 - urn:ampas:aces:transformId:v1.5:IDT.Apple.AppleLog_BT2020.a1.v1 + urn:ampas:aces:transformId:v2.0:CSC.Apple.AppleLog_BT2020_to_ACES.a2.v1 APPLE_LOG_to_ACES2065-1 diff --git a/opencolorio_config_aces/clf/transforms/arri/generate.py b/opencolorio_config_aces/clf/transforms/arri/generate.py index d4013772..e759f11b 100644 --- a/opencolorio_config_aces/clf/transforms/arri/generate.py +++ b/opencolorio_config_aces/clf/transforms/arri/generate.py @@ -39,7 +39,7 @@ "generate_clf_transforms_arri", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) FAMILY = "ARRI" @@ -137,14 +137,14 @@ def _build_logc3_curve(ei=800, info=False): # follows CLF 6.6 Log specification f = c * log10(a * cut + b) + d - logger.info("White Paper Values for EI%s", ei) - logger.info("cut: {%.6f} :: {%.15f}", cut, cut) - logger.info("a: {%.6f} :: {%.15f}", a, a) - logger.info("b: {%.6f} :: {%.15f}", b, b) - logger.info("c: {%.6f} :: {%.15f}", c, c) - logger.info("d: {%.6f} :: {%.15f}", d, d) - logger.info("e: {%.6f} :: {%.15f}", e, e) - logger.info("f: {%.6f} :: {%.15f}", f, f) + LOGGER.info("White Paper Values for EI%s", ei) + LOGGER.info("cut: {%.6f} :: {%.15f}", cut, cut) + LOGGER.info("a: {%.6f} :: {%.15f}", a, a) + LOGGER.info("b: {%.6f} :: {%.15f}", b, b) + LOGGER.info("c: {%.6f} :: {%.15f}", c, c) + LOGGER.info("d: {%.6f} :: {%.15f}", d, d) + LOGGER.info("e: {%.6f} :: {%.15f}", e, e) + LOGGER.info("f: {%.6f} :: {%.15f}", f, f) # OCIO LogCameraTransform translation variables base = 10.0 @@ -334,7 +334,7 @@ def _generate_logc4_transforms(output_directory): # Generate ARRI LogC4 to ACES 2065-1 Transform name = "ARRI_LogC4_to_ACES2065-1" - aces_id = "urn:ampas:aces:transformId:v1.5:IDT.ARRI.ARRI-LogC4.a1.v1" + aces_id = "urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv4_to_ACES.a2.v1" input_descriptor = "ARRI LogC4" output_descriptor = "ACES2065-1" clf_transform_id = format_clf_transform_id(FAMILY, GENUS, name, VERSION) diff --git a/opencolorio_config_aces/clf/transforms/arri/input/ARRI.Input.ARRI_LogC3_EI800_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/arri/input/ARRI.Input.ARRI_LogC3_EI800_to_ACES2065-1.clf index 6363bb91..2f1455df 100644 --- a/opencolorio_config_aces/clf/transforms/arri/input/ARRI.Input.ARRI_LogC3_EI800_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/arri/input/ARRI.Input.ARRI_LogC3_EI800_to_ACES2065-1.clf @@ -3,7 +3,7 @@ ARRI LogC3 (EI800) ACES2065-1 - urn:ampas:aces:transformId:v1.5:IDT.ARRI.Alexa-v3-logC-EI800.a1.v2 + urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv3_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/arri/input/ARRI.Input.ARRI_LogC4_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/arri/input/ARRI.Input.ARRI_LogC4_to_ACES2065-1.clf index 1866ce48..55b30872 100644 --- a/opencolorio_config_aces/clf/transforms/arri/input/ARRI.Input.ARRI_LogC4_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/arri/input/ARRI.Input.ARRI_LogC4_to_ACES2065-1.clf @@ -3,7 +3,7 @@ ARRI LogC4 ACES2065-1 - urn:ampas:aces:transformId:v1.5:IDT.ARRI.ARRI-LogC4.a1.v1 + urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv4_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/blackmagic/generate.py b/opencolorio_config_aces/clf/transforms/blackmagic/generate.py index 3ad15dfc..a4f1127e 100644 --- a/opencolorio_config_aces/clf/transforms/blackmagic/generate.py +++ b/opencolorio_config_aces/clf/transforms/blackmagic/generate.py @@ -238,8 +238,8 @@ def generate_clf_transforms_davinci(output_directory): # This transform is not yet part of aces-dev, but an ID will be needed for AMF. # Proposing the following ID: aces_transform_id = ( - "urn:ampas:aces:transformId:v1.5:" - "ACEScsc.Academy.DaVinci_Intermediate_WideGamut_to_ACES.a1.v1" + "urn:ampas:aces:transformId:v2.0:" + "CSC.Blackmagic.DaVinci_Intermediate_WideGamut_to_ACES.a2.v1" ) # Generate full transform. diff --git a/opencolorio_config_aces/clf/transforms/blackmagic/input/BlackmagicDesign.Input.BMDFilm_WideGamut_Gen5_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/blackmagic/input/BlackmagicDesign.Input.BMDFilm_WideGamut_Gen5_to_ACES2065-1.clf index 283dcaa3..6c0b0466 100644 --- a/opencolorio_config_aces/clf/transforms/blackmagic/input/BlackmagicDesign.Input.BMDFilm_WideGamut_Gen5_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/blackmagic/input/BlackmagicDesign.Input.BMDFilm_WideGamut_Gen5_to_ACES2065-1.clf @@ -3,7 +3,7 @@ Blackmagic Film Wide Gamut (Gen 5) ACES2065-1 - urn:ampas:aces:transformId:v1.5:IDT.BlackmagicDesign.BMDFilm_WideGamut_Gen5.a1.v1 + urn:ampas:aces:transformId:v2.0:CSC.Blackmagic.BMDFilm_WideGamut_Gen5_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/blackmagic/input/BlackmagicDesign.Input.DaVinci_Intermediate_WideGamut_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/blackmagic/input/BlackmagicDesign.Input.DaVinci_Intermediate_WideGamut_to_ACES2065-1.clf index 5b1a5557..f5d54c42 100644 --- a/opencolorio_config_aces/clf/transforms/blackmagic/input/BlackmagicDesign.Input.DaVinci_Intermediate_WideGamut_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/blackmagic/input/BlackmagicDesign.Input.DaVinci_Intermediate_WideGamut_to_ACES2065-1.clf @@ -3,7 +3,7 @@ DaVinci Intermediate Wide Gamut ACES2065-1 - urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.DaVinci_Intermediate_WideGamut_to_ACES.a1.v1 + urn:ampas:aces:transformId:v2.0:CSC.Blackmagic.DaVinci_Intermediate_WideGamut_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/canon/generate.py b/opencolorio_config_aces/clf/transforms/canon/generate.py index 98d7801a..3a249f53 100644 --- a/opencolorio_config_aces/clf/transforms/canon/generate.py +++ b/opencolorio_config_aces/clf/transforms/canon/generate.py @@ -78,7 +78,7 @@ def generate_clf_transforms_canon(output_directory): mtx = matrix_RGB_to_RGB_transform("Cinema Gamut", "ACES2065-1", "CAT02") aces_transform_id = ( - "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.CLog2_CGamut_to_ACES.a1.1.0" + "urn:ampas:aces:transformId:v2.0:CSC.Canon.CLog2_CGamut_to_ACES.a1.v1" ) name = "CanonLog2_CinemaGamut-D55_to_ACES2065-1" @@ -99,7 +99,7 @@ def generate_clf_transforms_canon(output_directory): ) aces_transform_id = ( - "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.CLog3_CGamut_to_ACES.a1.1.0" + "urn:ampas:aces:transformId:v2.0:CSC.Canon.CLog3_CGamut_to_ACES.a1.v1" ) name = "CanonLog3_CinemaGamut-D55_to_ACES2065-1" diff --git a/opencolorio_config_aces/clf/transforms/canon/input/Canon.Input.CanonLog2_CinemaGamut-D55_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/canon/input/Canon.Input.CanonLog2_CinemaGamut-D55_to_ACES2065-1.clf index 129eb998..1349fff9 100644 --- a/opencolorio_config_aces/clf/transforms/canon/input/Canon.Input.CanonLog2_CinemaGamut-D55_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/canon/input/Canon.Input.CanonLog2_CinemaGamut-D55_to_ACES2065-1.clf @@ -3,7 +3,7 @@ Canon Log 2 Cinema Gamut (Daylight) ACES2065-1 - urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.CLog2_CGamut_to_ACES.a1.1.0 + urn:ampas:aces:transformId:v2.0:CSC.Canon.CLog2_CGamut_to_ACES.a1.v1 CANON_CLOG2-CGAMUT_to_ACES2065-1 diff --git a/opencolorio_config_aces/clf/transforms/canon/input/Canon.Input.CanonLog3_CinemaGamut-D55_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/canon/input/Canon.Input.CanonLog3_CinemaGamut-D55_to_ACES2065-1.clf index a32e411f..15b59d6d 100644 --- a/opencolorio_config_aces/clf/transforms/canon/input/Canon.Input.CanonLog3_CinemaGamut-D55_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/canon/input/Canon.Input.CanonLog3_CinemaGamut-D55_to_ACES2065-1.clf @@ -3,7 +3,7 @@ Canon Log 3 Cinema Gamut (Daylight) ACES2065-1 - urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.CLog3_CGamut_to_ACES.a1.1.0 + urn:ampas:aces:transformId:v2.0:CSC.Canon.CLog3_CGamut_to_ACES.a1.v1 CANON_CLOG3-CGAMUT_to_ACES2065-1 diff --git a/opencolorio_config_aces/clf/transforms/panasonic/generate.py b/opencolorio_config_aces/clf/transforms/panasonic/generate.py index ab2ce50e..7dc6075e 100644 --- a/opencolorio_config_aces/clf/transforms/panasonic/generate.py +++ b/opencolorio_config_aces/clf/transforms/panasonic/generate.py @@ -106,7 +106,7 @@ def generate_clf_transforms_panasonic(output_directory): # Using the CSC ID here because there is a slight discrepancy between the matrix # coefficients of the CSC and IDT CTL and the CLF matches the CSC transform. aces_transform_id = ( - "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.VLog_VGamut_to_ACES.a1.1.0" + "urn:ampas:aces:transformId:v2.0:CSC.Panasonic.VLog_VGamut_to_ACES.a2.v1" ) # Generate full transform. diff --git a/opencolorio_config_aces/clf/transforms/panasonic/input/Panasonic.Input.VLog_VGamut_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/panasonic/input/Panasonic.Input.VLog_VGamut_to_ACES2065-1.clf index 4ee60be5..662db0df 100644 --- a/opencolorio_config_aces/clf/transforms/panasonic/input/Panasonic.Input.VLog_VGamut_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/panasonic/input/Panasonic.Input.VLog_VGamut_to_ACES2065-1.clf @@ -3,7 +3,7 @@ Panasonic V-Log - V-Gamut ACES2065-1 - urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.VLog_VGamut_to_ACES.a1.1.0 + urn:ampas:aces:transformId:v2.0:CSC.Panasonic.VLog_VGamut_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/red/generate.py b/opencolorio_config_aces/clf/transforms/red/generate.py index c4a1133e..89060520 100644 --- a/opencolorio_config_aces/clf/transforms/red/generate.py +++ b/opencolorio_config_aces/clf/transforms/red/generate.py @@ -99,7 +99,7 @@ def generate_clf_transforms_red(output_directory): mtx = matrix_RGB_to_RGB_transform("REDWideGamutRGB", "ACES2065-1", "Bradford") aces_transform_id = ( - "urn:ampas:aces:transformId:v1.5:IDT.RED.Log3G10_REDWideGamutRGB.a1.v1" + "urn:ampas:aces:transformId:v2.0:CSC.Red.Log3G10_RWG_to_ACES.a2.v1" ) # Generate full transform. diff --git a/opencolorio_config_aces/clf/transforms/red/input/RED.Input.Log3G10_REDWideGamutRGB_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/red/input/RED.Input.Log3G10_REDWideGamutRGB_to_ACES2065-1.clf index 579b6d9d..9a08f629 100644 --- a/opencolorio_config_aces/clf/transforms/red/input/RED.Input.Log3G10_REDWideGamutRGB_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/red/input/RED.Input.Log3G10_REDWideGamutRGB_to_ACES2065-1.clf @@ -3,7 +3,7 @@ RED Log3G10 REDWideGamutRGB ACES2065-1 - urn:ampas:aces:transformId:v1.5:IDT.RED.Log3G10_REDWideGamutRGB.a1.v1 + urn:ampas:aces:transformId:v2.0:CSC.Red.Log3G10_RWG_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/sony/generate.py b/opencolorio_config_aces/clf/transforms/sony/generate.py index 60a8dd4f..faef1a4b 100644 --- a/opencolorio_config_aces/clf/transforms/sony/generate.py +++ b/opencolorio_config_aces/clf/transforms/sony/generate.py @@ -220,7 +220,7 @@ def generate_clf_transforms_sony(output_directory): f"{input_descriptor} to {output_descriptor}", input_descriptor, output_descriptor, - "urn:ampas:aces:transformId:v1.5:IDT.Sony.SLog3_SGamut3.a1.v1", + "urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3_to_ACES.a2.v1", ) # Generate the Linear S-Gamut3 transform. @@ -253,7 +253,7 @@ def generate_clf_transforms_sony(output_directory): f"{input_descriptor} to {output_descriptor}", input_descriptor, output_descriptor, - "urn:ampas:aces:transformId:v1.5:IDT.Sony.SLog3_SGamut3Cine.a1.v1", + "urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3Cine_to_ACES.a2.v1", ) # Generate the Linear S-Gamut3.Cine transform. @@ -286,7 +286,7 @@ def generate_clf_transforms_sony(output_directory): f"{input_descriptor} to {output_descriptor}", input_descriptor, output_descriptor, - "urn:ampas:aces:transformId:v1.5:IDT.Sony.Venice_SLog3_SGamut3.a1.v1", + "urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3_to_ACES.a2.v1", ) # Generate the Linear Venice S-Gamut3 transform. @@ -319,7 +319,7 @@ def generate_clf_transforms_sony(output_directory): f"{input_descriptor} to {output_descriptor}", input_descriptor, output_descriptor, - "urn:ampas:aces:transformId:v1.5:IDT.Sony.Venice_SLog3_SGamut3Cine.a1.v1", + "urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3Cine_to_ACES.a2.v1", ) # Generate the Linear Venice S-Gamut3.Cine transform. diff --git a/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_SGamut3Cine_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_SGamut3Cine_to_ACES2065-1.clf index 5fa3ad42..270d27f6 100644 --- a/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_SGamut3Cine_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_SGamut3Cine_to_ACES2065-1.clf @@ -3,7 +3,7 @@ Sony S-Log3 S-Gamut3.Cine ACES2065-1 - urn:ampas:aces:transformId:v1.5:IDT.Sony.SLog3_SGamut3Cine.a1.v1 + urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3Cine_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_SGamut3_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_SGamut3_to_ACES2065-1.clf index 2b001568..e1f59ce2 100644 --- a/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_SGamut3_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_SGamut3_to_ACES2065-1.clf @@ -3,7 +3,7 @@ Sony S-Log3 S-Gamut3 ACES2065-1 - urn:ampas:aces:transformId:v1.5:IDT.Sony.SLog3_SGamut3.a1.v1 + urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_Venice_SGamut3Cine_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_Venice_SGamut3Cine_to_ACES2065-1.clf index 60d569a5..2a2a5f0f 100644 --- a/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_Venice_SGamut3Cine_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_Venice_SGamut3Cine_to_ACES2065-1.clf @@ -3,7 +3,7 @@ Sony S-Log3 Venice S-Gamut3.Cine ACES2065-1 - urn:ampas:aces:transformId:v1.5:IDT.Sony.Venice_SLog3_SGamut3Cine.a1.v1 + urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3Cine_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_Venice_SGamut3_to_ACES2065-1.clf b/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_Venice_SGamut3_to_ACES2065-1.clf index 7055928f..03cf5593 100644 --- a/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_Venice_SGamut3_to_ACES2065-1.clf +++ b/opencolorio_config_aces/clf/transforms/sony/input/Sony.Input.SLog3_Venice_SGamut3_to_ACES2065-1.clf @@ -3,7 +3,7 @@ Sony S-Log3 Venice S-Gamut3 ACES2065-1 - urn:ampas:aces:transformId:v1.5:IDT.Sony.Venice_SLog3_SGamut3.a1.v1 + urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3_to_ACES.a2.v1 diff --git a/opencolorio_config_aces/clf/transforms/utilities.py b/opencolorio_config_aces/clf/transforms/utilities.py index 2fb8e19e..e625e881 100644 --- a/opencolorio_config_aces/clf/transforms/utilities.py +++ b/opencolorio_config_aces/clf/transforms/utilities.py @@ -37,7 +37,7 @@ "clf_basename", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) @required("Colour") @@ -223,7 +223,7 @@ def generate_clf_transform( Updated `GroupTransform`. """ - logger.info('Creating "%s" "CLF" transform...', clf_transform_id) + LOGGER.info('Creating "%s" "CLF" transform...', clf_transform_id) group_tf = produce_transform(transforms) @@ -243,7 +243,7 @@ def generate_clf_transform( if style: info.addChildElement("BuiltinTransform", style) - logger.info('Writing "%s" "CLF" transform to "%s".', clf_transform_id, filename) + LOGGER.info('Writing "%s" "CLF" transform to "%s".', clf_transform_id, filename) group_tf.write( formatName="Academy/ASC Common LUT Format", diff --git a/opencolorio_config_aces/config/cg/generate/config.py b/opencolorio_config_aces/config/cg/generate/config.py index baef3840..18da6626 100644 --- a/opencolorio_config_aces/config/cg/generate/config.py +++ b/opencolorio_config_aces/config/cg/generate/config.py @@ -79,11 +79,11 @@ "generate_config_cg", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) URL_EXPORT_TRANSFORMS_MAPPING_FILE_CG = ( "https://docs.google.com/spreadsheets/d/" - "1nE95DEVtxtEkcIEaJk0WekyEH0Rcs8z_3fdwUtqP8V4/" + "1PXjTzBVYonVFIceGkLDaqcEJvKR6OI63DwZX0aajl3A/" "export?format=csv&gid=365242296" ) """ @@ -816,7 +816,7 @@ def generate_config_cg( scheme = validate_method(scheme, ["Legacy", "Modern 1"]) - logger.info( + LOGGER.info( 'Generating "%s" config...', config_name_cg(dependency_versions), ) @@ -825,7 +825,7 @@ def generate_config_cg( classify_clf_transforms(discover_clf_transforms()) ) - logger.debug('Using %s "CLF" transforms...', clf_transforms) + LOGGER.debug('Using %s "CLF" transforms...', clf_transforms) if data is None: _config, data, ctl_transforms, amf_components = generate_config_aces( @@ -849,7 +849,7 @@ def clf_transform_from_id(clf_transform_id): clf_transform = next(iter(filtered_clf_transforms), None) - logger.debug( + LOGGER.debug( 'Filtered "CLF" transform with "%s" "CLFtransformID": %s.', clf_transform_id, clf_transform, @@ -868,7 +868,7 @@ def clf_transform_from_style(style): clf_transform = next(iter(filtered_clf_transforms), None) - logger.debug( + LOGGER.debug( 'Filtered "CLF" transform with "%s" style: %s.', style, clf_transform, @@ -876,7 +876,7 @@ def clf_transform_from_style(style): return clf_transform - logger.info('Parsing "%s" config mapping file...', config_mapping_file_path) + LOGGER.info('Parsing "%s" config mapping file...', config_mapping_file_path) config_mapping = defaultdict(list) with open(config_mapping_file_path) as csv_file: @@ -910,7 +910,7 @@ def clf_transform_from_style(style): ) if BUILTIN_TRANSFORMS[style] > dependency_versions.ocio: - logger.warning( + LOGGER.warning( '"%s" style is unavailable for "%s" profile version, ' "skipping transform!", style, @@ -963,7 +963,7 @@ def yield_from_config_mapping(): a["name"] for a in transforms if a.get("transforms_data") is None ] - logger.info("Implicit transforms: %s.", implicit_transforms) + LOGGER.info("Implicit transforms: %s.", implicit_transforms) def implicit_transform_filterer(transform): """Return whether given transform is an implicit transform.""" @@ -974,11 +974,11 @@ def transform_filterer(transform): """Return whether given transform must be included.""" for transform_data in yield_from_config_mapping(): - for data in transform["transforms_data"]: - aces_transform_id = transform_data["aces_transform_id"] - if not aces_transform_id: - continue + aces_transform_id = transform_data["aces_transform_id"] + if not aces_transform_id: + continue + for data in transform["transforms_data"]: if aces_transform_id == data.get("aces_transform_id"): return True @@ -993,21 +993,22 @@ def multi_filters(array, filterers): colorspace_filterers = [implicit_transform_filterer, transform_filterer] data.colorspaces = multi_filters(data.colorspaces, colorspace_filterers) - logger.info( + + LOGGER.info( 'Filtered "Colorspace" transforms: %s.', [a["name"] for a in data.colorspaces], ) look_filterers = [implicit_transform_filterer, transform_filterer] data.looks = multi_filters(data.looks, look_filterers) - logger.info('Filtered "Look" transforms: %s ', [a["name"] for a in data.looks]) + LOGGER.info('Filtered "Look" transforms: %s ', [a["name"] for a in data.looks]) view_transform_filterers = [ implicit_transform_filterer, transform_filterer, ] data.view_transforms = multi_filters(data.view_transforms, view_transform_filterers) - logger.info( + LOGGER.info( 'Filtered "View" transforms: %s.', [a["name"] for a in data.view_transforms], ) @@ -1041,23 +1042,23 @@ def view_filterer(transform): shared_view_filterers = [implicit_view_filterer, view_filterer] data.shared_views = multi_filters(data.shared_views, shared_view_filterers) - logger.info( + LOGGER.info( 'Filtered shared "View(s)": %s.', [a["view"] for a in data.shared_views], ) view_filterers = [implicit_view_filterer, view_filterer] data.views = multi_filters(data.views, view_filterers) - logger.info('Filtered "View(s)": %s.', [a["view"] for a in data.views]) + LOGGER.info('Filtered "View(s)": %s.', [a["view"] for a in data.views]) # Active Displays Filtering data.active_displays = [a for a in data.active_displays if a in display_names] - logger.info("Filtered active displays: %s.", data.active_displays) + LOGGER.info("Filtered active displays: %s.", data.active_displays) # Active Views Filtering views = [view["view"] for view in data.views] data.active_views = [view for view in data.active_views if view in views] - logger.info("Filtered active views: %s.", data.active_views) + LOGGER.info("Filtered active views: %s.", data.active_views) # CLF Transforms & BuiltinTransform Creation for transform_data in yield_from_config_mapping(): @@ -1089,7 +1090,7 @@ def view_filterer(transform): ) if transform_data["interface"] == "ColorSpace": - logger.info( + LOGGER.info( 'Creating a "Colorspace" transform for "%s" style...', style, ) @@ -1098,7 +1099,7 @@ def view_filterer(transform): colorspace["transforms_data"] = [transform_data] data.colorspaces.append(colorspace) elif transform_data["interface"] == "NamedTransform": - logger.info( + LOGGER.info( 'Creating a "NamedTransform" transform for "%s" style...', style, ) @@ -1108,7 +1109,7 @@ def view_filterer(transform): data.named_transforms.append(colorspace) if style and clf_transform_id: - logger.warning( + LOGGER.warning( '"%s" style was defined along side a "CTLtransformID", ' "hybrid transform generation was used!", style, @@ -1126,7 +1127,7 @@ def view_filterer(transform): kwargs["clf_transform"] = clf_transform if transform_data["interface"] == "NamedTransform": - logger.info( + LOGGER.info( 'Adding "%s" "CLF" transform as a "Named" transform.', clf_transform_id, ) @@ -1135,7 +1136,7 @@ def view_filterer(transform): named_transform["transforms_data"] = [transform_data] data.named_transforms.append(named_transform) else: - logger.info( + LOGGER.info( 'Adding "%s" "CLF" transform as a "Colorspace" transform.', clf_transform_id, ) @@ -1156,7 +1157,7 @@ def view_filterer(transform): inactive_colorspaces = [] for colorspace in data.inactive_colorspaces: if colorspace not in colorspace_named_transform_names: - logger.info('Removing "%s" inactive colorspace.', colorspace) + LOGGER.info('Removing "%s" inactive colorspace.', colorspace) continue inactive_colorspaces.append(colorspace) @@ -1174,7 +1175,7 @@ def view_filterer(transform): # A config contains multiple possible "Rendering" color spaces. ocio.ROLE_RENDERING, ): - logger.info('Removing "%s" role.', role) + LOGGER.info('Removing "%s" role.', role) data.roles.pop(role) @@ -1200,7 +1201,7 @@ def view_filterer(transform): config = generate_config(data, config_name, validate) - logger.info( + LOGGER.info( '"%s" config generation complete!', config_name_cg(dependency_versions), ) diff --git a/opencolorio_config_aces/config/cg/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v2 - CG Config - Mapping.csv b/opencolorio_config_aces/config/cg/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v2 - CG Config - Mapping.csv deleted file mode 100644 index e48835ab..00000000 --- a/opencolorio_config_aces/config/cg/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v2 - CG Config - Mapping.csv +++ /dev/null @@ -1,26 +0,0 @@ -Ordering,Colorspace,Legacy,ACEStransformID,CLFtransformID,Interface,BuiltinTransform Style,Aliases,Encoding,Categories -100,ACES - ACEScc,TRUE,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScc_to_ACES.a1.0.3,,ColorSpace,ACEScc_to_ACES2065-1,"acescc,acescc_ap1",log,file-io -100,ACES - ACEScct,TRUE,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScct_to_ACES.a1.0.3,,ColorSpace,ACEScct_to_ACES2065-1,"acescct,acescct_ap1",log,"file-io,working-space" -100,ACES - ACEScg,TRUE,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScg_to_ACES.a1.0.3,,ColorSpace,ACEScg_to_ACES2065-1,"acescg,lin_ap1,lin_ap1_scene",scene-linear,"file-io,working-space,texture" -300,Output - DisplayP3,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.DisplayP3_dim.a1.0.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,,sdr-video,file-io -300,Output - P3-D65 ST2084 (1000 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_1000nits_15nits_ST2084.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,,hdr-video,file-io -300,Output - P3D65,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_48nits.a1.1.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA_1.0,,sdr-video,file-io -300,Output - Rec.2020 ST2084 (1000 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_1000nits_15nits_ST2084.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,,hdr-video,file-io -300,Output - Rec.709,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_100nits_dim.a1.0.3,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,,sdr-video,file-io -300,Output - sRGB,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_100nits_dim.a1.0.3,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,,sdr-video,file-io -400,Utility - sRGB - Texture,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB-Encoded-Rec709:1.0,ColorSpace,,"srgb_texture,srgb_rec709_scene,Input - Generic - sRGB - Texture,sRGB - Texture,srgb_tx",sdr-video,"file-io,texture" -401,Utility - Gamma 1.8 - Rec.709 - Texture,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma1.8_Encoded_Rec709:1.0,ColorSpace,,"g18_rec709,Gamma 1.8 Rec.709 - Texture,g18_rec709_tx,g18_rec709_scene",sdr-video,"file-io,texture" -402,Utility - Gamma 2.2 - Rec.709 - Texture,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_Rec709:1.0,ColorSpace,,"g22_rec709,Gamma 2.2 Rec.709 - Texture,g22_rec709_tx,g22_rec709_scene",sdr-video,"file-io,texture" -403,Gamma 2.4 Encoded Rec.709,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.4_Encoded_Rec709:1.0,ColorSpace,,"g24_rec709,rec709_display,Utility - Rec.709 - Display,Gamma 2.4 Rec.709 - Texture,g24_rec709_tx",sdr-video,"file-io,texture" -405,sRGB Encoded P3-D65,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_P3-D65:1.0,ColorSpace,,"srgb_p3d65,srgb_displayp3,srgb_p3d65_scene,sRGB Encoded P3-D65 - Texture,srgb_encoded_p3d65_tx",sdr-video,"file-io,texture" -406,Gamma 2.2 Encoded AdobeRGB,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_AdobeRGB:1.0,ColorSpace,,"adobergb,g22_adobergb_scene",sdr-video,"file-io,texture" -407,sRGB Encoded AP1,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_AP1:1.0,ColorSpace,,"srgb_ap1,srgb_ap1_scene,sRGB Encoded AP1 - Texture,srgb_encoded_ap1_tx",sdr-video,"file-io,texture" -408,Gamma 2.2 Encoded AP1,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_AP1:1.0,ColorSpace,,"g22_ap1,Gamma 2.2 AP1 - Texture,g22_ap1_tx,g22_ap1_scene",sdr-video,"file-io,texture" -420,Utility - Linear - Rec.709,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec709:1.0,ColorSpace,,"lin_rec709,lin_rec709_scene,lin_srgb,Utility - Linear - sRGB",scene-linear,"file-io,working-space,texture" -421,Utility - Linear - P3-D65,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_P3-D65:1.0,ColorSpace,,"lin_p3d65,lin_displayp3,lin_p3d65_scene,Linear Display P3",scene-linear,"file-io,working-space,texture" -422,Utility - Linear - Adobe RGB,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_AdobeRGB:1.0,ColorSpace,,"lin_adobergb,lin_adobergb_scene,Utility - Linear - Adobe RGB",scene-linear,"file-io,texture" -423,Utility - Linear - Rec.2020,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec2020:1.0,ColorSpace,,"lin_rec2020,lin_rec2020_scene",scene-linear,"file-io,texture" -424,CIE XYZ-D65 - Scene-referred,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_CIE_XYZ-D65-Scene-referred:1.0,ColorSpace,,lin_ciexyzd65_scene,scene-linear,file-io -440,Utility - Curve - sRGB,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_sRGB-Curve:1.0,NamedTransform,,crv_srgb,sdr-video,file-io -441,Utility - Curve - Rec.1886,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_Rec1886-Curve:1.0,NamedTransform,,crv_rec1886,sdr-video,file-io -500,ACES 1.3 Reference Gamut Compression,FALSE,urn:ampas:aces:transformId:v1.5:LMT.Academy.ReferenceGamutCompress.a1.v1.0,,Look,,,, diff --git a/opencolorio_config_aces/config/cg/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v3 - CG Config - Mapping.csv b/opencolorio_config_aces/config/cg/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v3 - CG Config - Mapping.csv new file mode 100644 index 00000000..b89fc085 --- /dev/null +++ b/opencolorio_config_aces/config/cg/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v3 - CG Config - Mapping.csv @@ -0,0 +1,27 @@ +Ordering,Colorspace,Legacy,ACEStransformID,CLFtransformID,Interface,BuiltinTransform Style,Aliases,Encoding,Categories +100,ACEScc,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScc_to_ACES.a2.v1,,ColorSpace,ACEScc_to_ACES2065-1,"acescc,acescc_ap1,ACES - ACEScc",log,file-io +100,ACEScct,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScct_to_ACES.a2.v1,,ColorSpace,ACEScct_to_ACES2065-1,"acescct,acescct_ap1,ACES - ACEScct",log,"file-io,working-space" +100,ACEScg,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScg_to_ACES.a2.v1,,ColorSpace,ACEScg_to_ACES2065-1,"acescg,lin_ap1,lin_ap1_scene,ACES - ACEScg",scene-linear,"file-io,working-space,texture" +300,ACES 1.3 Reference Gamut Compression,FALSE,urn:ampas:aces:transformId:v2.0:Look.Academy.ReferenceGamutCompress.a2.v1,,Look,,,scene-linear, +400,P3-D65_48nit_in_P3-D65_Gamma2pt6,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_48nit_in_P3-D65_Gamma2pt6.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D65_2.0,,sdr-video,file-io +415,Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,,sdr-video,file-io +420,P3-D65_1000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,,hdr-video,file-io +420,Rec2100-D65_1000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D65_1000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-REC2020_2.0,,hdr-video,file-io +425,P3-D65_1000nit_in_P3-D65_sRGB-Piecewise,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_P3-D65_sRGB-Piecewise.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,,hdr-video,file-io +425,P3-D65_100nit_in_P3-D65_sRGB-Piecewise,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_100nit_in_P3-D65_sRGB-Piecewise.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D65_2.0,,sdr-video,file-io +430,Rec709-D65_100nit_in_Rec709-D65_BT1886,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec709-D65_BT1886.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,,sdr-video,file-io +440,sRGB - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_sRGB-Curve:1.0,NamedTransform,,"crv_srgb,Utility - Curve - sRGB",sdr-video,file-io +441,Rec.1886 - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_Rec1886-Curve:1.0,NamedTransform,,"crv_rec1886,Utility - Curve - Rec.1886",sdr-video,file-io +500,sRGB Encoded Rec.709 (sRGB),TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB-Encoded-Rec709:1.0,ColorSpace,,"srgb_texture,srgb_rec709_scene,Utility - sRGB - Texture,Input - Generic - sRGB - Texture,sRGB - Texture,srgb_tx",sdr-video,"file-io,texture" +501,Gamma 1.8 Encoded Rec.709,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma1.8_Encoded_Rec709:1.0,ColorSpace,,"g18_rec709,Utility - Gamma 1.8 - Rec.709 - Texture,Gamma 1.8 Rec.709 - Texture,g18_rec709_tx,g18_rec709_scene",sdr-video,"file-io,texture" +502,Gamma 2.2 Encoded Rec.709,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_Rec709:1.0,ColorSpace,,"g22_rec709,Utility - Gamma 2.2 - Rec.709 - Texture,Gamma 2.2 Rec.709 - Texture,g22_rec709_tx,g22_rec709_scene",sdr-video,"file-io,texture" +503,Gamma 2.4 Encoded Rec.709,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.4_Encoded_Rec709:1.0,ColorSpace,,"g24_rec709,rec709_display,Utility - Rec.709 - Display,Gamma 2.4 Rec.709 - Texture,g24_rec709_tx",sdr-video,"file-io,texture" +505,sRGB Encoded P3-D65,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_P3-D65:1.0,ColorSpace,,"srgb_p3d65,srgb_displayp3,srgb_p3d65_scene,sRGB Encoded P3-D65 - Texture,srgb_encoded_p3d65_tx",sdr-video,"file-io,texture" +506,Gamma 2.2 Encoded AdobeRGB,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_AdobeRGB:1.0,ColorSpace,,"adobergb,g22_adobergb_scene",sdr-video,"file-io,texture" +507,sRGB Encoded AP1,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_AP1:1.0,ColorSpace,,"srgb_ap1,srgb_ap1_scene,sRGB Encoded AP1 - Texture,srgb_encoded_ap1_tx",sdr-video,"file-io,texture" +508,Gamma 2.2 Encoded AP1,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_AP1:1.0,ColorSpace,,"g22_ap1,Gamma 2.2 AP1 - Texture,g22_ap1_tx,g22_ap1_scene",sdr-video,"file-io,texture" +520,CIE XYZ-D65 - Scene-referred,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_CIE_XYZ-D65-Scene-referred:1.0,ColorSpace,,lin_ciexyzd65_scene,scene-linear,file-io +520,Linear AdobeRGB,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_AdobeRGB:1.0,ColorSpace,,"lin_adobergb,lin_adobergb_scene,Utility - Linear - Adobe RGB",scene-linear,"file-io,texture" +520,Linear P3-D65,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_P3-D65:1.0,ColorSpace,,"lin_p3d65,lin_displayp3,lin_p3d65_scene,Utility - Linear - P3-D65,Linear Display P3",scene-linear,"file-io,working-space,texture" +520,Linear Rec.2020,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec2020:1.0,ColorSpace,,"lin_rec2020,lin_rec2020_scene,Utility - Linear - Rec.2020",scene-linear,"file-io,texture" +520,Linear Rec.709 (sRGB),TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec709:1.0,ColorSpace,,"lin_rec709,lin_rec709_scene,lin_srgb,Utility - Linear - sRGB,Utility - Linear - Rec.709",scene-linear,"file-io,working-space,texture" diff --git a/opencolorio_config_aces/config/generation/beautifiers.py b/opencolorio_config_aces/config/generation/beautifiers.py index 651fe860..7cffcdf0 100644 --- a/opencolorio_config_aces/config/generation/beautifiers.py +++ b/opencolorio_config_aces/config/generation/beautifiers.py @@ -89,6 +89,9 @@ "EI800": "(EI800)", "Linear Rec.709": "Linear Rec.709 (sRGB)", "sRGB Encoded Rec.709": "sRGB Encoded Rec.709 (sRGB)", + "^LogC3": "ARRI LogC3 (EI800)", + "^LogC4": "ARRI LogC4", + "Venice S-Log3": "S-Log3 Venice", } """ *OpenColorIO* colorspace name substitution patterns. @@ -113,10 +116,7 @@ ) PATTERNS_LOOK_NAME = { - # TODO: Implement support for callable patterns. - # The following ones should be a dedicated definition/callable. - "BlueLightArtifactFix": "Blue Light Artifact Fix", - "ReferenceGamutCompress": "ACES 1.3 Reference Gamut Compression", + "Reference Gamut Compress": "ACES 1.3 Reference Gamut Compression", } """ *OpenColorIO* look name substitution patterns. @@ -286,8 +286,8 @@ def beautify_look_name(name): Examples -------- - >>> beautify_look_name('BlueLightArtifactFix') - 'Blue Light Artifact Fix' + >>> beautify_look_name('Reference Gamut Compress') + 'ACES 1.3 Reference Gamut Compression' """ return beautify_name(name, PATTERNS_LOOK_NAME) diff --git a/opencolorio_config_aces/config/generation/common.py b/opencolorio_config_aces/config/generation/common.py index 7c27b57a..181dbb7f 100644 --- a/opencolorio_config_aces/config/generation/common.py +++ b/opencolorio_config_aces/config/generation/common.py @@ -44,7 +44,7 @@ "generate_config", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) @dataclass @@ -207,7 +207,7 @@ def validate_config(config): config.validate() return True except Exception as error: - logger.critical(error) + LOGGER.critical(error) return False @@ -233,7 +233,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): *OpenColorIO* config. """ - logger.debug("Config data:\n%s", data) + LOGGER.debug("Config data:\n%s", data) if base_config is not None: config = base_config @@ -248,43 +248,43 @@ def generate_config(data, config_name=None, validate=True, base_config=None): config.setDescription(data.description) for search_path in data.search_path: - logger.debug('Adding "%s".', search_path) + LOGGER.debug('Adding "%s".', search_path) config.addSearchPath(search_path) for role, colorspace in data.roles.items(): - logger.debug('Adding "%s" colorspace as "%s" role.', colorspace, role) + LOGGER.debug('Adding "%s" colorspace as "%s" role.', colorspace, role) config.setRole(role, colorspace) for colorspace in data.colorspaces: if isinstance(colorspace, Mapping): colorspace = colorspace_factory(**colorspace) - logger.debug('Adding "%s" colorspace.', colorspace.getName()) + LOGGER.debug('Adding "%s" colorspace.', colorspace.getName()) config.addColorSpace(colorspace) for named_transform in data.named_transforms: if isinstance(named_transform, Mapping): named_transform = named_transform_factory(**named_transform) - logger.debug('Adding "%s" named transform.', named_transform.getName()) + LOGGER.debug('Adding "%s" named transform.', named_transform.getName()) config.addNamedTransform(named_transform) for view_transform in data.view_transforms: if isinstance(view_transform, Mapping): view_transform = view_transform_factory(**view_transform) - logger.debug('Adding "%s" view transform.', view_transform.getName()) + LOGGER.debug('Adding "%s" view transform.', view_transform.getName()) config.addViewTransform(view_transform) for look in data.looks: if isinstance(look, Mapping): look = look_factory(**look) - logger.debug('Adding "%s" look.', look.getName()) + LOGGER.debug('Adding "%s" look.', look.getName()) config.addLook(look) if data.profile_version.major >= 2: - logger.debug('Disabling "%s" colorspaces.', data.inactive_colorspaces) + LOGGER.debug('Disabling "%s" colorspaces.', data.inactive_colorspaces) config.setInactiveColorSpaces(",".join(data.inactive_colorspaces)) for shared_view in data.shared_views: @@ -294,7 +294,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): rule = shared_view.get("rule") description = shared_view.get("description") view = shared_view["view"] - logger.debug( + LOGGER.debug( 'Adding "%s" shared view using "%s" view transform, "%s" display ' 'colorspace, "%s" looks, "%s" rule and "%s" description.', view, @@ -319,7 +319,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): description = view.get("description") view = view["view"] if colorspace is not None: - logger.debug( + LOGGER.debug( 'Adding "%s" view to "%s" display using "%s" colorspace.', view, display, @@ -328,7 +328,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): config.addDisplayView(display, view, colorspace, looks) elif view_transform is not None and display_colorspace is not None: - logger.debug( + LOGGER.debug( 'Adding "%s" view to "%s" display using "%s" view transform, ' '"%s" display colorspace, "%s" rule and "%s" description.', view, @@ -349,15 +349,15 @@ def generate_config(data, config_name=None, validate=True, base_config=None): description, ) else: - logger.debug('Adding "%s" view to "%s" display.', view, display) + LOGGER.debug('Adding "%s" view to "%s" display.', view, display) config.addDisplaySharedView(display, view) if data.active_displays: - logger.debug('Activating "%s" displays.', data.active_displays) + LOGGER.debug('Activating "%s" displays.', data.active_displays) config.setActiveDisplays(",".join(data.active_displays)) if data.active_views: - logger.debug('Activating "%s" views.', data.active_views) + LOGGER.debug('Activating "%s" views.', data.active_views) config.setActiveViews(",".join(data.active_views)) if data.file_rules: @@ -370,14 +370,14 @@ def generate_config(data, config_name=None, validate=True, base_config=None): pattern = file_rule.get("pattern") extension = file_rule.get("extension") if name == "Default": - logger.debug( + LOGGER.debug( 'Setting "%s" file rule with "%s" colorspace.', name, colorspace, ) file_rules.setDefaultRuleColorSpace(colorspace) elif regex: - logger.debug( + LOGGER.debug( 'Adding "%s" file rule with "%s" regex pattern for "%s" ' "colorspace.", name, @@ -387,7 +387,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): file_rules.insertRule(rule_index, name, colorspace, regex) rule_index += 1 else: - logger.debug( + LOGGER.debug( 'Adding "%s" file rule with "%s" pattern and "%s" ' 'extension for "%s" colorspace.', name, @@ -402,7 +402,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): if data.viewing_rules: viewing_rules = ocio.ViewingRules() for _i, _viewing_rule in enumerate(reversed(data.viewing_rules)): - logger.warning("Inserting a viewing rule is not supported yet!") + LOGGER.warning("Inserting a viewing rule is not supported yet!") # viewing_rules.insertRule() config.setViewingRules(viewing_rules) @@ -419,7 +419,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): except Exception as error: json_name = str(config_name).replace("ocio", "json") serialize_config_data(data, json_name) - logger.critical('The config data was serialised to: "%s"', json_name) + LOGGER.critical('The config data was serialised to: "%s"', json_name) raise Exception from error # noqa: TRY002 return config @@ -433,7 +433,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): build_directory = (ROOT_BUILD_DEFAULT / "config" / "common" / "tests").resolve() - logger.info('Using "%s" build directory...', build_directory) + LOGGER.info('Using "%s" build directory...', build_directory) build_directory.mkdir(parents=True, exist_ok=True) @@ -530,7 +530,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): try: serialize_config_data(data, build_directory / "config-v1.json") except TypeError as error: - logger.critical(error) + LOGGER.critical(error) # "OpenColorIO 2" configuration. colorspace_1 = { @@ -725,7 +725,7 @@ def generate_config(data, config_name=None, validate=True, base_config=None): try: serialize_config_data(data, build_directory / "config-v2.json") except TypeError as error: - logger.critical(error) + LOGGER.critical(error) named_transform_2 = { "name": "-1 Stop", @@ -768,4 +768,4 @@ def generate_config(data, config_name=None, validate=True, base_config=None): data, build_directory / "config-v2-with-named-transform.json" ) except TypeError as error: - logger.critical(error) + LOGGER.critical(error) diff --git a/opencolorio_config_aces/config/generation/factories.py b/opencolorio_config_aces/config/generation/factories.py index d6782998..32c780ac 100644 --- a/opencolorio_config_aces/config/generation/factories.py +++ b/opencolorio_config_aces/config/generation/factories.py @@ -74,6 +74,12 @@ } ) +for _builtin_transform, _profile in BUILTIN_TRANSFORMS.items(): + if re.match("^ACES-OUTPUT - .*_2.0$", _builtin_transform): + BUILTIN_TRANSFORMS[_builtin_transform] = Version(2, 4) + +del _builtin_transform, _profile + def group_transform_factory(transforms): """ diff --git a/opencolorio_config_aces/config/generation/version.py b/opencolorio_config_aces/config/generation/version.py index 31402b99..9cd86a2d 100644 --- a/opencolorio_config_aces/config/generation/version.py +++ b/opencolorio_config_aces/config/generation/version.py @@ -84,23 +84,8 @@ def to_regularised_versions(self): DEPENDENCY_VERSIONS = [ DependencyVersions( - aces=Version(1, 3), - colorspaces=Version(2, 1, 0), - ocio=Version(2, 1), - ), - DependencyVersions( - aces=Version(1, 3), - colorspaces=Version(2, 1, 0), - ocio=Version(2, 2), - ), - DependencyVersions( - aces=Version(1, 3), - colorspaces=Version(2, 2, 0), - ocio=Version(2, 3), - ), - DependencyVersions( - aces=Version(1, 3), - colorspaces=Version(2, 2, 0), + aces=Version(2, 0), + colorspaces=Version(2, 3, 0), ocio=Version(2, 4), ), ] diff --git a/opencolorio_config_aces/config/reference/aces-dev b/opencolorio_config_aces/config/reference/aces-dev deleted file mode 160000 index ea2afeb4..00000000 --- a/opencolorio_config_aces/config/reference/aces-dev +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ea2afeb4d4f3cd788e42da56787daf0dd465dec2 diff --git a/opencolorio_config_aces/config/reference/aces-system b/opencolorio_config_aces/config/reference/aces-system new file mode 160000 index 00000000..a079dd02 --- /dev/null +++ b/opencolorio_config_aces/config/reference/aces-system @@ -0,0 +1 @@ +Subproject commit a079dd026032c35eb21cc828e050b6ecf0df9535 diff --git a/opencolorio_config_aces/config/reference/discover/classify.py b/opencolorio_config_aces/config/reference/discover/classify.py index 5325b7a5..524e1ee0 100644 --- a/opencolorio_config_aces/config/reference/discover/classify.py +++ b/opencolorio_config_aces/config/reference/discover/classify.py @@ -68,10 +68,9 @@ "generate_amf_components", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) - -URN_CTL = "urn:ampas:aces:transformId:v1.5" +URN_CTL = "urn:ampas:aces:transformId:v2.0" """ *ACES* Uniform Resource Name (*URN*). @@ -91,8 +90,8 @@ *ACEStransformID* separator used to tokenize the *ID* part of the *ACEStransformID*. -urn:ampas:aces:transformId:v1.5:ODT.Academy.DCDM.a1.0.3 -|-------------URN-------------|:|----------ID---------| +urn:ampas:aces:transformId:v2.0:CSC.Academy.ACES_to_ACEScc.a2.v1 +|-------------URN-------------|:|--------------ID--------------| SEPARATOR_ID_CTL : unicode """ @@ -112,18 +111,12 @@ """ TRANSFORM_TYPES_CTL = [ - "ACEScsc", - "ACESlib", - "ACESutil", - "IDT", - "InvLMT", - "InvODT", - "InvRRT", - "InvRRTODT", - "LMT", - "ODT", - "RRT", - "RRTODT", + "CSC", + "Lib", + "Look", + "InvLook", + "Output", + "InvOutput", ] """ *ACES* *CTL* transform types. @@ -132,14 +125,10 @@ """ TRANSFORM_FAMILIES_CTL = { - "csc": "csc", - "idt": "input_transform", - "lib": "lib", - "lmt": "lmt", - "odt": "output_transform", - "outputTransform": "output_transform", - "rrt": "rrt", - "utilities": "utility", + "aces-core": "lib", + "aces-input-and-colorspaces": "csc", + "aces-look": "look", + "aces-output": "output", } """ *ACES* *CTL* transform families mapping the *CTL* transform directories to @@ -229,52 +218,34 @@ def patch_invalid_aces_transform_id(aces_transform_id): ------- unicode Patched *ACEStransformID*. - - Notes - ----- - - Fixed by https://github.com/scottdyer/aces-dev/\ -commit/4b88ef35afc41e58ea52d9acde68af24e75b58c5 - - https://github.com/ampas/aces-dev/issues/118 - - https://github.com/ampas/aces-dev/pull/119 """ - # Addressed with https://github.com/scottdyer/aces-dev/ - # commit/4b88ef35afc41e58ea52d9acde68af24e75b58c5 - if False: + if True: invalid_id = aces_transform_id - if not aces_transform_id.startswith(URN_CTL): - logger.warning('"%s" is missing "ACES" URN!', invalid_id) - - aces_transform_id = f"{URN_CTL}:{aces_transform_id}" - - if "Academy.P3D65_108nits_7.2nits_ST2084" in aces_transform_id: - logger.warning('"%s" has an invalid separator in "7.2nits"!', invalid_id) - aces_transform_id = aces_transform_id.replace("7.2", "7") - elif "P3D65_709limit_48nits" in aces_transform_id: - logger.warning('"%s" is inconsistently named!', invalid_id) - - aces_transform_id = aces_transform_id.replace( - "P3D65_709limit_48nits", "P3D65_Rec709limited_48nits" + if "transformID" in invalid_id: + LOGGER.critical( + '"%s" urn is incorrect, "transformID" should be "transformId"!', + invalid_id, ) - elif "Rec2020_100nits.a1.1.0" in aces_transform_id: - logger.warning('"%s" is incorrectly named!', invalid_id) - aces_transform_id = aces_transform_id.replace( - "Rec2020_100nits", "Rec2020_P3D65limited_100nits_dim" + aces_transform_id = invalid_id.replace("transformID", "transformId") + + if "LogCv3" in invalid_id: + LOGGER.critical( + '"%s" urn is incorrect, "LogCv3" should be "LogC3"!', + invalid_id, ) - elif "ACEScsc" in aces_transform_id: - if "ACEScsc.Academy" not in aces_transform_id: - logger.warning('"%s" is missing "Academy" namespace!', invalid_id) - aces_transform_id = aces_transform_id.replace( - "ACEScsc", "ACEScsc.Academy" - ) + aces_transform_id = invalid_id.replace("LogCv3", "LogC3") - if aces_transform_id.endswith("a1.v1"): - logger.warning('"%s" version scheme is invalid!', invalid_id) + if "LogCv4" in invalid_id: + LOGGER.critical( + '"%s" urn is incorrect, "LogCv4" should be "LogC4"!', + invalid_id, + ) - aces_transform_id = aces_transform_id.replace("a1.v1", "a1.1.0") + aces_transform_id = invalid_id.replace("LogCv4", "LogC4") return aces_transform_id @@ -282,7 +253,7 @@ def patch_invalid_aces_transform_id(aces_transform_id): ROOT_TRANSFORMS_CTL = os.path.normpath( os.environ.get( "OPENCOLORIO_CONFIG_CTL__CTL_TRANSFORMS_ROOT", - os.path.join(os.path.dirname(__file__), "../", "aces-dev", "transforms", "ctl"), + os.path.join(os.path.dirname(__file__), "../", "aces-system"), ) ) """ @@ -604,6 +575,7 @@ def _parse(self): aces_transform_id = patch_invalid_aces_transform_id(self._aces_transform_id) self._urn, components = aces_transform_id.rsplit(SEPARATOR_URN_CTL, 1) + components = components.split(SEPARATOR_ID_CTL) self._type, components = components[0], components[1:] @@ -613,39 +585,16 @@ def _parse(self): ) attest( - len(components) in (3, 4, 5), + len(components) == 4, f'{self._aces_transform_id} is an invalid "ACEStransformID"!', ) - if len(components) == 3: - ( - self._major_version, - self._minor_version, - self._patch_version, - ) = components - elif len(components) == 4: - if self._type in ("ACESlib", "ACESutil"): - ( - self._name, - self._major_version, - self._minor_version, - self._patch_version, - ) = components - elif self._type == "IDT": - ( - self._namespace, - self._name, - self._major_version, - self._minor_version, - ) = components - else: - ( - self._namespace, - self._name, - self._major_version, - self._minor_version, - self._patch_version, - ) = components + ( + self._namespace, + self._name, + self._major_version, + self._minor_version, + ) = components attest( self._type in TRANSFORM_TYPES_CTL, @@ -653,8 +602,11 @@ def _parse(self): ) if self._name is not None: - if self._type == "ACEScsc": - source, target = self._name.split("_to_") + if self._type == "CSC": + if "Unity" in self._name: + source, target = "ACES", "ACES" + else: + source, target = self._name.split("_to_") if source == "ACES": source = "ACES2065-1" @@ -663,23 +615,12 @@ def _parse(self): target = "ACES2065-1" self._source, self._target = source, target - elif self._type in ("IDT", "LMT"): - self._source, self._target = self._name, "ACES2065-1" - elif self._type == "InvLMT": + elif self._type in ("Look", "InvLook"): + self._source, self._target = "ACES2065-1", "ACES2065-1" + elif self._type == "Output": self._source, self._target = "ACES2065-1", self._name - elif self._type == "ODT": - self._source, self._target = "OCES", self._name - elif self._type == "InvODT": - self._source, self._target = self._name, "OCES" - elif self._type == "RRTODT": - self._source, self._target = "ACES2065-1", self._name - elif self._type == "InvRRTODT": + elif self._type == "InvOutput": self._source, self._target = self._name, "ACES2065-1" - else: # noqa: PLR5501 - if self._type == "RRT": - self._source, self._target = "ACES2065-1", "OCES" - elif self._type == "InvRRT": - self._source, self._target = "OCES", "ACES2065-1" class CTLTransform: @@ -973,6 +914,8 @@ def __ne__(self, other): def _parse(self): """Parse the *ACES* *CTL* transform.""" + LOGGER.info('Parsing "%s" CTL transform...', self._path) + with open(self._path) as ctl_file: self._code = ctl_file.read() @@ -1182,6 +1125,10 @@ def find_ctl_transform_pairs(ctl_transforms): basename = basename.replace("ACES_to_", "") + LOGGER.debug( + 'Is "%s" CTL transform is forward? "%s"', ctl_transform, is_forward + ) + if is_forward: ctl_transform_pairs[basename]["forward_transform"] = ctl_transform else: @@ -1216,10 +1163,11 @@ def discover_aces_ctl_transforms(root_directory=ROOT_TRANSFORMS_CTL): >>> ctl_transforms = discover_aces_ctl_transforms() >>> key = sorted(ctl_transforms.keys())[0] >>> os.path.basename(key) - 'ACEScc' + 'lib' >>> sorted([os.path.basename(path) for path in ctl_transforms[key]]) - ['ACEScsc.Academy.ACES_to_ACEScc.ctl', \ -'ACEScsc.Academy.ACEScc_to_ACES.ctl'] + ['Lib.Academy.ColorSpaces.ctl', 'Lib.Academy.DisplayEncoding.ctl', \ +'Lib.Academy.OutputTransform.ctl', 'Lib.Academy.Tonescale.ctl', \ +'Lib.Academy.Utilities.ctl'] """ root_directory = os.path.normpath(os.path.expandvars(root_directory)) @@ -1235,7 +1183,7 @@ def discover_aces_ctl_transforms(root_directory=ROOT_TRANSFORMS_CTL): ctl_transform = os.path.join(directory, filename) - logger.debug( + LOGGER.debug( '"%s" CTL transform was found!', ctl_transform_relative_path(ctl_transform), ) @@ -1282,13 +1230,13 @@ def classify_aces_ctl_transforms(unclassified_ctl_transforms): 'csc' >>> genera = sorted(ctl_transforms[family]) >>> print(genera) - ['ACEScc', 'ACEScct', 'ACEScg', 'ACESproxy', 'ADX', 'arri', \ -'blackmagic_design', 'canon', 'panasonic', 'red', 'sony'] + ['ACEScc', 'ACEScct', 'ACEScg', 'ACESproxy', 'ADX', 'apple', 'arri', \ +'blackmagic_design', 'canon', 'dji', 'panasonic', 'red', 'sony', 'unity'] >>> genus = genera[0] >>> sorted(ctl_transforms[family][genus].items()) # doctest: +ELLIPSIS - [('ACEScsc.Academy.ACEScc', CTLTransformPair(\ -CTLTransform('csc...ACEScc...ACEScsc.Academy.ACES_to_ACEScc.ctl')', \ -CTLTransform('csc...ACEScc...ACEScsc.Academy.ACEScc_to_ACES.ctl')'))] + [('CSC.Academy.ACEScc', CTLTransformPair(CTLTransform(\ +'aces-input-and-colorspaces...ACEScc...CSC.Academy.ACES_to_ACEScc.ctl')', \ +CTLTransform('aces-input-and-colorspaces...ACEScc...CSC.Academy.ACEScc_to_ACES.ctl')'))] """ classified_ctl_transforms = defaultdict(lambda: defaultdict(dict)) @@ -1309,7 +1257,7 @@ def classify_aces_ctl_transforms(unclassified_ctl_transforms): if len(pairs) == 1: ctl_transform = CTLTransform(next(iter(pairs.values())), family, genus) - logger.debug('Classifying "%s" under "%s".', ctl_transform, genus) + LOGGER.debug('Classifying "%s" under "%s".', ctl_transform, genus) classified_ctl_transforms[family][genus][basename] = ctl_transform @@ -1328,7 +1276,7 @@ def classify_aces_ctl_transforms(unclassified_ctl_transforms): forward_ctl_transform, inverse_ctl_transform ) - logger.debug('Classifying "%s" under "%s".', ctl_transform, genus) + LOGGER.debug('Classifying "%s" under "%s".', ctl_transform, genus) classified_ctl_transforms[family][genus][basename] = ctl_transform @@ -1359,7 +1307,7 @@ def unclassify_ctl_transforms(classified_ctl_transforms): ... discover_aces_ctl_transforms()) >>> sorted( # doctest: +ELLIPSIS ... unclassify_ctl_transforms(ctl_transforms), key=lambda x: x.path)[0] - CTLTransform('csc...ACEScc...ACEScsc.Academy.ACES_to_ACEScc.ctl') + CTLTransform('aces-core...lib...Lib.Academy.ColorSpaces.ctl') """ unclassified_ctl_transforms = [] @@ -1408,9 +1356,10 @@ def filter_ctl_transforms(ctl_transforms, filterers=None): >>> ctl_transforms = classify_aces_ctl_transforms( ... discover_aces_ctl_transforms()) >>> sorted( # doctest: +ELLIPSIS - ... filter_ctl_transforms(ctl_transforms, [lambda x: x.genus == 'p3']), + ... filter_ctl_transforms(ctl_transforms, [lambda x: x.genus == "d65/p3"]), ... key=lambda x: x.path)[0] - CTLTransform('odt...p3...InvODT.Academy.P3D60_48nits.ctl') + CTLTransform('aces-output...d65...p3...InvOutput.Academy.\ +P3-D65_1000nit_in_P3-D65_ST2084.ctl') """ if filterers is None: @@ -1452,35 +1401,40 @@ def print_aces_taxonomy(): ) for family, genera in classified_ctl_transforms.items(): - message_box(family, print_callable=logger.info) + message_box(family, print_callable=LOGGER.info) for genus, ctl_transforms in genera.items(): - logger.info("[ %s ]", genus) + LOGGER.info("[ %s ]", genus) for name, ctl_transform in ctl_transforms.items(): - logger.info("\t( %s )", name) + LOGGER.info("\t( %s )", name) if isinstance(ctl_transform, CTLTransform): - logger.info( - '\t\t"%s" --> "%s"', - ctl_transform.source, - ctl_transform.target, - ) - logger.info( + LOGGER.info( '\t\tACEStransformID : "%s"', ctl_transform.aces_transform_id.aces_transform_id, ) - elif isinstance(ctl_transform, CTLTransformPair): - logger.info( - '\t\t"%s" <--> "%s"', - ctl_transform.forward_transform.source, - ctl_transform.inverse_transform.target, + LOGGER.info( + '\t\t\t"%s" --> "%s"', + ctl_transform.source, + ctl_transform.target, ) - logger.info( + elif isinstance(ctl_transform, CTLTransformPair): + LOGGER.info( '\t\tACEStransformID : "%s"', ctl_transform.forward_transform.aces_transform_id.aces_transform_id, ) - logger.info( + LOGGER.info( + '\t\t\t"%s" --> "%s"', + ctl_transform.forward_transform.source, + ctl_transform.forward_transform.target, + ) + LOGGER.info( '\t\tACEStransformID : "%s"', ctl_transform.inverse_transform.aces_transform_id.aces_transform_id, ) + LOGGER.info( + '\t\t\t"%s" --> "%s"', + ctl_transform.inverse_transform.source, + ctl_transform.inverse_transform.target, + ) def generate_amf_components(ctl_transforms, raise_exception=False): @@ -1545,7 +1499,7 @@ def generate_amf_components(ctl_transforms, raise_exception=False): if raise_exception: attest(False, exception_message) else: - logger.critical(exception_message) + LOGGER.critical(exception_message) for ctl_transform in ctl_transforms: aces_transform_id = ctl_transform.aces_transform_id.aces_transform_id diff --git a/opencolorio_config_aces/config/reference/discover/graph.py b/opencolorio_config_aces/config/reference/discover/graph.py index ff787029..2f3806df 100644 --- a/opencolorio_config_aces/config/reference/discover/graph.py +++ b/opencolorio_config_aces/config/reference/discover/graph.py @@ -18,6 +18,7 @@ import codecs import logging import pickle +import re from opencolorio_config_aces.config.reference.discover.classify import ( classify_aces_ctl_transforms, @@ -44,7 +45,7 @@ "plot_aces_conversion_graph", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) SEPARATOR_NODE_NAME_CTL = "/" """ @@ -92,52 +93,36 @@ def build_aces_conversion_graph(ctl_transforms): for ctl_transform in ctl_transforms: source = ctl_transform.source target = ctl_transform.target - family = ctl_transform.family type_ = ctl_transform.type if source is None or target is None: - logger.debug( + LOGGER.debug( '"%s" has either a missing source or target colourspace and ' 'won\'t be included in the "aces-dev" conversion graph!', ctl_transform, ) continue - # Without enforcing a preferred source and target colourspaces, the - # nodes do not necessarily have predictable source and target - # colourspaces which might be confusing, e.g., a node for an - # "Output Transform" might have an "RGBmonitor_100nits_dim" source and - # a "OCES" target. - if family in ("csc", "input_transform", "lmt") and source == "ACES2065-1": - logger.debug( - '"%s" ctl transform from the "%s" family uses "%s" ' - "as source, skipping!", - ctl_transform, - family, - source, - ) - continue - - if family == "output_transform" and target in ("ACES2065-1", "OCES"): - logger.debug( - '"%s" ctl transform from the "%s" family uses "%s" as ' - "target, skipping!", - ctl_transform, - family, - target, - ) - continue + # Special case for "Look" family whose transformations source and target + # are both "ACES2065-1". + if source == "ACES2065-1" and type_ == "Look": + source = ctl_transform.name + elif target == "ACES2065-1" and type_ == "InvLook": + target = ctl_transform.name source = ( source - if source in ("ACES2065-1", "OCES") + if source == "ACES2065-1" else f"{type_}{SEPARATOR_NODE_NAME_CTL}{source}" ) + source = re.sub("^Inv", "", source) + target = ( target - if target in ("ACES2065-1", "OCES") + if target == "ACES2065-1" else f"{type_}{SEPARATOR_NODE_NAME_CTL}{target}" ) + target = re.sub("^Inv", "", target) # Serializing the data for "Graphviz AGraph". serialized = codecs.encode(pickle.dumps(ctl_transform, 4), "base64").decode() @@ -146,7 +131,7 @@ def build_aces_conversion_graph(ctl_transforms): if node not in graph.nodes(): graph.add_node(node, data=ctl_transform, serialized=serialized) else: - logger.debug( + LOGGER.debug( '"%s" node was already added to the "aces-dev" ' 'conversion graph by the "%s" "CTL" transform, skipping!', node, @@ -179,8 +164,10 @@ def node_to_ctl_transform(graph, node): >>> ctl_transforms = classify_aces_ctl_transforms( ... discover_aces_ctl_transforms()) >>> graph = build_aces_conversion_graph(ctl_transforms) - >>> node_to_ctl_transform(graph, 'ODT/P3D60_48nits') # doctest: +ELLIPSIS - CTLTransform('odt...p3...ODT.Academy.P3D60_48nits.ctl') + >>> node_to_ctl_transform(graph, "Output/P3-D65_1000nit_in_P3-D65_ST2084") + ... # doctest: +ELLIPSIS + CTLTransform('aces-output...d65...p3...\ +InvOutput.Academy.P3-D65_1000nit_in_P3-D65_ST2084.ctl') """ return graph.nodes[node]["data"] @@ -207,9 +194,11 @@ def ctl_transform_to_node(graph, ctl_transform): >>> ctl_transforms = classify_aces_ctl_transforms( ... discover_aces_ctl_transforms()) >>> graph = build_aces_conversion_graph(ctl_transforms) - >>> ctl_transform = node_to_ctl_transform(graph, 'ODT/P3D60_48nits') + >>> ctl_transform = node_to_ctl_transform( + ... graph, "Output/Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise" + ... ) >>> ctl_transform_to_node(graph, ctl_transform) - 'ODT/P3D60_48nits' + 'Output/Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise' """ for node in graph.nodes: @@ -242,8 +231,8 @@ def filter_nodes(graph, filterers=None): >>> ctl_transforms = classify_aces_ctl_transforms( ... discover_aces_ctl_transforms()) >>> graph = build_aces_conversion_graph(ctl_transforms) - >>> sorted(filter_nodes(graph, [lambda x: x.genus == 'p3']))[0] - 'ODT/P3D60_48nits' + >>> sorted(filter_nodes(graph, [lambda x: x.genus == "d65/p3"]))[0] + 'Output/P3-D65_1000nit_in_P3-D65_ST2084' """ if filterers is None: @@ -286,9 +275,10 @@ def conversion_path(graph, source, target): >>> ctl_transforms = classify_aces_ctl_transforms( ... discover_aces_ctl_transforms()) >>> graph = build_aces_conversion_graph(ctl_transforms) - >>> conversion_path(graph, 'IDT/Venice_SLog3_SGamut3', 'ODT/P3D60_48nits') - [('IDT/Venice_SLog3_SGamut3', 'ACES2065-1'), ('ACES2065-1', 'OCES'), \ -('OCES', 'ODT/P3D60_48nits')] + >>> conversion_path(graph, "CSC/Venice_SLog3_SGamut3", \ +"Output/Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise") + [('CSC/Venice_SLog3_SGamut3', 'ACES2065-1'), \ +('ACES2065-1', 'Output/Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise')] """ import networkx as nx @@ -332,10 +322,8 @@ def plot_aces_conversion_graph(graph, filename, prog="dot", args=""): ) ctl_transforms_csc = [] - ctl_transforms_idt = [] - ctl_transforms_odt = [] - ctl_transforms_output_transform = [] - ctl_transforms_lmt = [] + ctl_transforms_output = [] + ctl_transforms_look = [] for node in agraph.nodes(): unserialized = pickle.loads( # noqa: S301 @@ -343,38 +331,26 @@ def plot_aces_conversion_graph(graph, filename, prog="dot", args=""): ) ctl_transform_type = unserialized.type - if node in ("ACES2065-1", "OCES"): + if node == "ACES2065-1": node.attr.update( shape="doublecircle", color="#673AB7FF", fillcolor="#673AB770", fontsize=30, ) - elif ctl_transform_type == "ACEScsc": + elif ctl_transform_type == "CSC": node.attr.update(color="#00BCD4FF", fillcolor="#00BCD470") ctl_transforms_csc.append(node) - elif ctl_transform_type == "IDT": - node.attr.update(color="#B3BC6D", fillcolor="#E6EE9C") - ctl_transforms_idt.append(node) - elif ctl_transform_type in ("ODT", "InvODT"): - node.attr.update(color="#CA9B52", fillcolor="#FFCC80") - ctl_transforms_odt.append(node) - elif ctl_transform_type in ("RRTODT", "InvRRTODT"): - node.attr.update(color="#C88719", fillcolor="#FFB74D") - ctl_transforms_output_transform.append(node) - elif ctl_transform_type == "LMT": + elif ctl_transform_type in ("Look", "InvLook"): node.attr.update(color="#4BA3C7", fillcolor="#81D4FA") - ctl_transforms_lmt.append(node) - - agraph.add_subgraph(ctl_transforms_csc, name="cluster_ACEScsc", color="#00BCD4FF") - agraph.add_subgraph(ctl_transforms_idt, name="cluster_IDT", color="#B3BC6D") - agraph.add_subgraph(ctl_transforms_odt, name="cluster_ODT", color="#CA9B52") - agraph.add_subgraph( - ctl_transforms_output_transform, - name="cluster_OutputTransform", - color="#C88719", - ) - agraph.add_subgraph(ctl_transforms_lmt, name="cluster_LMT", color="#4BA3C7") + ctl_transforms_look.append(node) + elif ctl_transform_type in ("Output", "InvOutput"): + node.attr.update(color="#CA9B52", fillcolor="#FFCC80") + ctl_transforms_output.append(node) + + agraph.add_subgraph(ctl_transforms_csc, name="cluster_CSC", color="#00BCD4FF") + agraph.add_subgraph(ctl_transforms_look, name="cluster_Look", color="#4BA3C7") + agraph.add_subgraph(ctl_transforms_output, name="cluster_Output", color="#CA9B52") agraph.edge_attr.update(color="#26323870") agraph.draw(filename, prog=prog, args=args) @@ -392,7 +368,7 @@ def plot_aces_conversion_graph(graph, filename, prog="dot", args=""): build_directory = (ROOT_BUILD_DEFAULT / "aces" / "graph").resolve() - logger.info('Using "%s" build directory...', build_directory) + LOGGER.info('Using "%s" build directory...', build_directory) build_directory.mkdir(parents=True, exist_ok=True) @@ -403,27 +379,30 @@ def plot_aces_conversion_graph(graph, filename, prog="dot", args=""): filtered_ctl_transforms = filter_ctl_transforms(classified_ctl_transforms) graph = build_aces_conversion_graph(filtered_ctl_transforms) - logger.info(graph.nodes) + LOGGER.info(graph.nodes) - message_box('Retrieving a "CTL" Transform from a Node') - logger.info(node_to_ctl_transform(graph, "ODT/P3D60_48nits")) + message_box('Retrieving a "CTL" Transform from a Node', print_callable=LOGGER.info) + LOGGER.info(node_to_ctl_transform(graph, "Output/P3-D65_1000nit_in_P3-D65_ST2084")) - message_box('Retrieving a Node from a "CTL" Transform') - logger.info( - ctl_transform_to_node(graph, node_to_ctl_transform(graph, "ODT/P3D60_48nits")) + message_box('Retrieving a Node from a "CTL" Transform', print_callable=LOGGER.info) + LOGGER.info( + ctl_transform_to_node( + graph, + node_to_ctl_transform(graph, "Output/P3-D65_1000nit_in_P3-D65_ST2084"), + ) ) - message_box('Filtering "output_transform" Family') - logger.info( + message_box('Filtering "Output" Family', print_callable=LOGGER.info) + LOGGER.info( pformat( filter_nodes( graph, - [lambda x: x.family == "output_transform"], + [lambda x: x.family == "output"], ) ) ) - message_box('Filtering "p3" Genus') - logger.info(pformat(filter_nodes(graph, [lambda x: x.genus == "p3"]))) + message_box('Filtering "d65/p3" Genus', print_callable=LOGGER.info) + LOGGER.info(pformat(filter_nodes(graph, [lambda x: x.genus == "d65/p3"]))) plot_aces_conversion_graph(graph, filename) diff --git a/opencolorio_config_aces/config/reference/discover/resources/ACES_AMF_Components.json b/opencolorio_config_aces/config/reference/discover/resources/ACES_AMF_Components.json index 0f945a81..93d01bc7 100644 --- a/opencolorio_config_aces/config/reference/discover/resources/ACES_AMF_Components.json +++ b/opencolorio_config_aces/config/reference/discover/resources/ACES_AMF_Components.json @@ -4,38 +4,38 @@ }, "amf_components": { "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.BMDFilm_WideGamut_Gen5_to_ACES.a1.v1": [ - "urn:ampas:aces:transformId:v1.5:IDT.BlackmagicDesign.BMDFilm_WideGamut_Gen5.a1.v1" + "urn:ampas:aces:transformId:v2.0:CSC.Blackmagic.BMDFilm_WideGamut_Gen5_to_ACES.a2.v1" ], "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.LogC_EI800_AWG_to_ACES.a1.1.0": [ - "urn:ampas:aces:transformId:v1.5:IDT.ARRI.Alexa-v3-logC-EI800.a1.v2" + "urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv3_to_ACES.a2.v1" ], "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.SLog3_SGamut3_to_ACES.a1.1.0": [ - "urn:ampas:aces:transformId:v1.5:IDT.Sony.SLog3_SGamut3.a1.v1" + "urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3_to_ACES.a2.v1" ], "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.SLog3_SGamut3Cine_to_ACES.a1.1.0": [ - "urn:ampas:aces:transformId:v1.5:IDT.Sony.SLog3_SGamut3Cine.a1.v1" + "urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3Cine_to_ACES.a2.v1" ], "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.SLog3_Venice_SGamut3_to_ACES.a1.1.0": [ - "urn:ampas:aces:transformId:v1.5:IDT.Sony.Venice_SLog3_SGamut3.a1.v1" + "urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3_to_ACES.a2.v1" ], "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.SLog3_Venice_SGamut3Cine_to_ACES.a1.1.0": [ - "urn:ampas:aces:transformId:v1.5:IDT.Sony.Venice_SLog3_SGamut3Cine.a1.v1" + "urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3Cine_to_ACES.a2.v1" ], // Not a published "ACEStransformID" but was approved by "Graeme Natress" // during private discussions with "Carol Payne" and "Doug Walker" in March 2022. "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.Log3G10_RWG_to_ACES.a1.1.0": [ - "urn:ampas:aces:transformId:v1.5:IDT.RED.Log3G10_REDWideGamutRGB.a1.v1" + "urn:ampas:aces:transformId:v2.0:CSC.Red.Log3G10_RWG_to_ACES.a2.v1" ], // The related "ACEStransformID" is not in "aces-dev" but available online // in the following "IDT" : https://pro-av.panasonic.net/en/\ // cinema_camera_varicam_eva/support/download_data/\ // idt_panasonic_forV35_ver100.zip - "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.VLog_VGamut_to_ACES.a1.1.0": [ + "urn:ampas:aces:transformId:v2.0:CSC.Panasonic.VLog_VGamut_to_ACES.a2.v1": [ "urn:ampas:aces:transformId:v1.5:IDT.Panasonic.VLog_VGamut.a1.v1" ], // The related "ACEStransformID" are not yet in "aces-dev" but pending in // a pull request: https://github.com/ampas/aces-dev/pull/137 - "urn:ampas:aces:transformId:v1.5:IDT.ARRI.ARRI-LogC4.a1.v1": [ + "urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv4_to_ACES.a2.v1": [ "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.LogC4_to_ACES.a1.1.0", "urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACES_to_LogC4.a1.1.0" ] diff --git a/opencolorio_config_aces/config/reference/generate/analytical.py b/opencolorio_config_aces/config/reference/generate/analytical.py index 50e6c7e8..dcb0043a 100644 --- a/opencolorio_config_aces/config/reference/generate/analytical.py +++ b/opencolorio_config_aces/config/reference/generate/analytical.py @@ -40,7 +40,6 @@ SEPARATOR_NODE_NAME_CTL, ) from opencolorio_config_aces.config.reference.generate.config import ( - COLORSPACE_OUTPUT_ENCODING_REFERENCE, COLORSPACE_SCENE_ENCODING_REFERENCE, ctl_transform_to_colorspace, ) @@ -65,7 +64,7 @@ "generate_config_aces", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) PATTERNS_VIEW_NAME_REFERENCE = { "\\(100 nits\\) dim": "", @@ -132,13 +131,13 @@ def create_builtin_transform(style, profile_version=PROFILE_VERSION_DEFAULT): builtin_transform.setStyle(style) except (ValueError, ocio.Exception) as error: if isinstance(error, ValueError): - logger.warning( + LOGGER.warning( '"%s" style is unavailable for "%s" profile version!', style, profile_version, ) else: - logger.warning( + LOGGER.warning( '"%s" style is either undefined using a placeholder ' '"FileTransform" instead!', style, @@ -190,7 +189,7 @@ def node_to_builtin_transform( return None verbose_path = " --> ".join(dict.fromkeys(itertools.chain.from_iterable(path))) - logger.debug('Creating "BuiltinTransform" with "%s" path.', verbose_path) + LOGGER.debug('Creating "BuiltinTransform" with "%s" path.', verbose_path) for edge in path: source, target = edge @@ -216,7 +215,7 @@ def node_to_builtin_transform( return group_transform except NetworkXNoPath: - logger.debug( + LOGGER.debug( 'No path to "%s" for "%s" node!', COLORSPACE_SCENE_ENCODING_REFERENCE, node, @@ -367,8 +366,7 @@ def generate_config_aces( The config generation is driven entirely from the *aces-dev* conversion graph. The config generated, while not usable because of the missing *OpenColorIO* *BuiltinTransforms*, provides an exact mapping with the - *aces-dev* *CTL* transforms, and, for example, uses the - *Output Color Encoding Specification* (OCES) colourspace. + *aces-dev* *CTL* transforms. Parameters ---------- @@ -399,7 +397,7 @@ def generate_config_aces( instances. """ - logger.info('Generating "%s" config...', config_name_aces(dependency_versions)) + LOGGER.info('Generating "%s" config...', config_name_aces(dependency_versions)) ctl_transforms = discover_aces_ctl_transforms() classified_ctl_transforms = classify_aces_ctl_transforms(ctl_transforms) @@ -420,15 +418,6 @@ def generate_config_aces( description='The "Academy Color Encoding System" reference colorspace.', ) - display_reference_colorspace = colorspace_factory( - f"CSC - {COLORSPACE_OUTPUT_ENCODING_REFERENCE}", - "ACES", - description='The "Output Color Encoding Specification" colorspace.', - from_reference=node_to_builtin_transform( - graph, COLORSPACE_OUTPUT_ENCODING_REFERENCE, "Reverse" - ), - ) - raw_colorspace = colorspace_factory( "Utility - Raw", "Utility", @@ -438,22 +427,18 @@ def generate_config_aces( colorspaces += [ scene_reference_colorspace, - display_reference_colorspace, raw_colorspace, ] - logger.info('Implicit colorspaces: "%s"', [a.getName() for a in colorspaces]) + LOGGER.info('Implicit colorspaces: "%s"', [a.getName() for a in colorspaces]) for family in ("csc", "input_transform", "lmt", "output_transform"): family_colourspaces = [] for node in filter_nodes(graph, [lambda x, family=family: x.family == family]): - if node in ( - COLORSPACE_SCENE_ENCODING_REFERENCE, - COLORSPACE_OUTPUT_ENCODING_REFERENCE, - ): + if node == COLORSPACE_SCENE_ENCODING_REFERENCE: continue - logger.info('Creating a colorspace for "%s" node...', node) + LOGGER.info('Creating a colorspace for "%s" node...', node) colorspace = node_to_colorspace( graph, node, dependency_versions.ocio, describe ) @@ -490,7 +475,7 @@ def generate_config_aces( for display_name in display_names: view = beautify_view_name(raw_colorspace.getName()) - logger.info('Adding "%s" view to "%s" display.', view, display_name) + LOGGER.info('Adding "%s" view to "%s" display.', view, display_name) views.append( { "display": display_name, @@ -515,7 +500,7 @@ def generate_config_aces( config = generate_config(data, config_name, validate) - logger.info( + LOGGER.info( '"%s" config generation complete!', config_name_aces(dependency_versions), ) @@ -535,7 +520,7 @@ def generate_config_aces( build_directory = (ROOT_BUILD_DEFAULT / "config" / "aces" / "analytical").resolve() - logger.info('Using "%s" build directory...', build_directory) + LOGGER.info('Using "%s" build directory...', build_directory) build_directory.mkdir(parents=True, exist_ok=True) @@ -548,7 +533,7 @@ def generate_config_aces( ) for ctl_transform in colorspaces.values(): - logger.info(ctl_transform.aces_transform_id) + LOGGER.info(ctl_transform.aces_transform_id) # TODO: Pickling "PyOpenColorIO.ColorSpace" fails on early "PyOpenColorIO" # versions. @@ -557,4 +542,4 @@ def generate_config_aces( data, build_directory / config_basename.replace("ocio", "json") ) except TypeError as error: - logger.critical(error) + LOGGER.critical(error) diff --git a/opencolorio_config_aces/config/reference/generate/config.py b/opencolorio_config_aces/config/reference/generate/config.py index 219c9893..b489830f 100644 --- a/opencolorio_config_aces/config/reference/generate/config.py +++ b/opencolorio_config_aces/config/reference/generate/config.py @@ -62,7 +62,6 @@ "URL_EXPORT_TRANSFORMS_MAPPING_FILE_REFERENCE", "PATH_TRANSFORMS_MAPPING_FILE_REFERENCE", "COLORSPACE_SCENE_ENCODING_REFERENCE", - "COLORSPACE_OUTPUT_ENCODING_REFERENCE", "FAMILY_DISPLAY_REFERENCE", "TEMPLATE_ACES_TRANSFORM_ID", "HEADER_AMF_COMPONENTS", @@ -83,11 +82,11 @@ "generate_config_aces", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) URL_EXPORT_TRANSFORMS_MAPPING_FILE_REFERENCE = ( "https://docs.google.com/spreadsheets/d/" - "1SXPt-USy3HlV2G2qAvh9zit6ZCINDOlfKT07yXJdWLg/" + "1z3xsy3sF0I-8AN_tkMOEjHlAs13ba7VAVhrE8v4WIyo/" "export?format=csv&gid=273921464" ) """ @@ -112,13 +111,6 @@ COLORSPACE_SCENE_ENCODING_REFERENCE : unicode """ -COLORSPACE_OUTPUT_ENCODING_REFERENCE = "OCES" -""" -*OpenColorIO* config output encoding colorspace. - -COLORSPACE_OUTPUT_ENCODING_REFERENCE : unicode -""" - FAMILY_DISPLAY_REFERENCE = "Display" """ *OpenColorIO* config display family. @@ -241,10 +233,7 @@ def ctl_transform_to_colorspace_name(ctl_transform): *OpenColorIO* `Colorspace` name. """ - if ctl_transform.source in ( - COLORSPACE_SCENE_ENCODING_REFERENCE, - COLORSPACE_OUTPUT_ENCODING_REFERENCE, - ): + if ctl_transform.source == COLORSPACE_SCENE_ENCODING_REFERENCE: name = ctl_transform.target else: name = ctl_transform.source @@ -268,15 +257,7 @@ def ctl_transform_to_look_name(ctl_transform): *OpenColorIO* `Look` name. """ - if ctl_transform.source in ( - COLORSPACE_SCENE_ENCODING_REFERENCE, - COLORSPACE_OUTPUT_ENCODING_REFERENCE, - ): - name = ctl_transform.target - else: - name = ctl_transform.source - - return beautify_look_name(name) + return beautify_look_name(ctl_transform.user_name) def ctl_transform_to_transform_family(ctl_transform, analytical=True): @@ -301,26 +282,22 @@ def ctl_transform_to_transform_family(ctl_transform, analytical=True): """ if analytical: - if ctl_transform.family == "csc" and ctl_transform.namespace == "Academy": + if ctl_transform.family == "csc": family = "CSC" - elif ctl_transform.family == "input_transform": - family = f"Input{SEPARATOR_COLORSPACE_FAMILY}{ctl_transform.genus}" elif ctl_transform.family == "output_transform": family = "Output" - elif ctl_transform.family == "lmt": - family = "LMT" + elif ctl_transform.family == "look": + family = "Look" else: # noqa: PLR5501 - if ctl_transform.family == "csc" and ctl_transform.namespace == "Academy": + if ctl_transform.family == "csc": if re.match("ACES|ADX", ctl_transform.name): family = "ACES" else: family = f"Input{SEPARATOR_COLORSPACE_FAMILY}{ctl_transform.genus}" - elif ctl_transform.family == "input_transform": - family = f"Input{SEPARATOR_COLORSPACE_FAMILY}{ctl_transform.genus}" elif ctl_transform.family == "output_transform": family = "Output" - elif ctl_transform.family == "lmt": - family = "LMT" + elif ctl_transform.family == "look": + family = "Look" return beautify_transform_family(family) @@ -1003,21 +980,21 @@ def generate_config_aces( *CTL* transforms and *ACES* *AMF* components. """ - logger.info( + LOGGER.info( 'Generating "%s" config...', config_name_aces(dependency_versions), ) - logger.debug('Using %s "Builtin" transforms...', list(BUILTIN_TRANSFORMS.keys())) + LOGGER.debug('Using %s "Builtin" transforms...', list(BUILTIN_TRANSFORMS.keys())) ctl_transforms = unclassify_ctl_transforms( classify_aces_ctl_transforms(discover_aces_ctl_transforms()) ) amf_components = generate_amf_components(ctl_transforms) - logger.debug('Using %s "CTL" transforms...', ctl_transforms) + LOGGER.debug('Using %s "CTL" transforms...', ctl_transforms) - logger.info('Parsing "%s" config mapping file...', config_mapping_file_path) + LOGGER.info('Parsing "%s" config mapping file...', config_mapping_file_path) config_mapping = defaultdict(list) with open(config_mapping_file_path) as csv_file: @@ -1051,7 +1028,7 @@ def generate_config_aces( ) if BUILTIN_TRANSFORMS[style] > dependency_versions.ocio: - logger.warning( + LOGGER.warning( '"%s" style is unavailable for "%s" profile version, ' "skipping transform!", style, @@ -1069,7 +1046,7 @@ def generate_config_aces( ) if BUILTIN_TRANSFORMS[style] > dependency_versions.ocio: - logger.warning( + LOGGER.warning( '"%s" style is unavailable for "%s" profile version, ' "skipping transform!", style, @@ -1175,11 +1152,11 @@ def generate_config_aces( raw_colorspace, ] - logger.info('Implicit colorspaces: "%s"', [a["name"] for a in colorspaces]) + LOGGER.info('Implicit colorspaces: "%s"', [a["name"] for a in colorspaces]) for style, transforms_data in config_mapping.items(): if transforms_data[0]["interface"] == "ViewTransform": - logger.info('Creating a "View" transform for "%s" style...', style) + LOGGER.info('Creating a "View" transform for "%s" style...', style) view_transform = style_to_view_transform( style, [transform_data["ctl_transform"] for transform_data in transforms_data], @@ -1220,18 +1197,19 @@ def generate_config_aces( "view": view_transform_name, "view_transform": view_transform_name, } - logger.info( - 'Adding "%s" shared view to "%s" display.', - shared_view["view"], - display_name, - ) - shared_views.append(shared_view) + if shared_view not in shared_views: + LOGGER.info( + 'Adding "%s" shared view to "%s" display.', + shared_view["view"], + display_name, + ) + shared_views.append(shared_view) else: for transform_data in transforms_data: ctl_transform = transform_data["ctl_transform"] if transform_data["interface"] == "Look": - logger.info('Creating a "Look" transform for "%s" style...', style) + LOGGER.info('Creating a "Look" transform for "%s" style...', style) look = ctl_transform_to_look( ctl_transform, describe, @@ -1246,9 +1224,10 @@ def generate_config_aces( process_space=scene_reference_colorspace["name"], ) look["transforms_data"] = [transform_data] - looks.append(look) + if look not in looks: + looks.append(look) else: - logger.info( + LOGGER.info( 'Creating a "Colorspace" transform for "%s" style...', style, ) @@ -1269,7 +1248,8 @@ def generate_config_aces( aliases=transform_data_aliases(transform_data), ) colorspace["transforms_data"] = [transform_data] - colorspaces.append(colorspace) + if colorspace not in colorspaces: + colorspaces.append(colorspace) untonemapped_view_transform = { "name": "Un-tone-mapped", @@ -1284,12 +1264,13 @@ def generate_config_aces( "view": untonemapped_view_transform["name"], "view_transform": untonemapped_view_transform["name"], } - logger.info( + LOGGER.info( 'Adding "%s" shared view to "%s" display.', untonemapped_shared_view["view"], display_name, ) - shared_views.append(untonemapped_shared_view) + if untonemapped_shared_view not in shared_views: + shared_views.append(untonemapped_shared_view) for display_name in display_names: raw_view = { @@ -1297,8 +1278,9 @@ def generate_config_aces( "view": "Raw", "colorspace": raw_colorspace["name"], } - logger.info('Adding "%s" view to "%s" display.', raw_view["view"], display_name) - views.append(raw_view) + LOGGER.info('Adding "%s" view to "%s" display.', raw_view["view"], display_name) + if raw_view not in views: + views.append(raw_view) data = ConfigData( name=re.sub( @@ -1343,7 +1325,7 @@ def generate_config_aces( config = generate_config(data, config_name, validate) - logger.info( + LOGGER.info( '"%s" config generation complete!', config_name_aces(dependency_versions), ) @@ -1363,7 +1345,7 @@ def generate_config_aces( build_directory = (ROOT_BUILD_DEFAULT / "config" / "aces" / "reference").resolve() - logger.info('Using "%s" build directory...', build_directory) + LOGGER.info('Using "%s" build directory...', build_directory) build_directory.mkdir(parents=True, exist_ok=True) @@ -1388,4 +1370,4 @@ def generate_config_aces( data, build_directory / config_basename.replace("ocio", "json") ) except TypeError as error: - logger.critical(error) + LOGGER.critical(error) diff --git a/opencolorio_config_aces/config/reference/generate/resources/OpenColorIO-Config-ACES Reference Transforms - v2 - Reference Config - Mapping.csv b/opencolorio_config_aces/config/reference/generate/resources/OpenColorIO-Config-ACES Reference Transforms - v2 - Reference Config - Mapping.csv deleted file mode 100644 index a098fd6b..00000000 --- a/opencolorio_config_aces/config/reference/generate/resources/OpenColorIO-Config-ACES Reference Transforms - v2 - Reference Config - Mapping.csv +++ /dev/null @@ -1,40 +0,0 @@ -Ordering,ACEStransformID,Colorspace,Legacy,BuiltinTransform Style,Linked DisplayColorSpace Style,Interface,Encoding,Categories,Aliases -100,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScc_to_ACES.a1.0.3,ACES - ACEScc,TRUE,ACEScc_to_ACES2065-1,,ColorSpace,log,file-io,"acescc,acescc_ap1" -100,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScct_to_ACES.a1.0.3,ACES - ACEScct,TRUE,ACEScct_to_ACES2065-1,,ColorSpace,log,"file-io,working-space","acescct,acescct_ap1" -100,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScg_to_ACES.a1.0.3,ACES - ACEScg,TRUE,ACEScg_to_ACES2065-1,,ColorSpace,scene-linear,"file-io,working-space,texture","acescg,lin_ap1,lin_ap1_scene" -100,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ADX10_to_ACES.a1.0.3,Input - ADX - ADX10,TRUE,ADX10_to_ACES2065-1,,ColorSpace,log,file-io,adx10 -100,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ADX16_to_ACES.a1.0.3,Input - ADX - ADX16,TRUE,ADX16_to_ACES2065-1,,ColorSpace,log,file-io,adx16 -120,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.CLog2_CGamut_to_ACES.a1.1.0,,FALSE,CANON_CLOG2-CGAMUT_to_ACES2065-1,,ColorSpace,log,file-io,canonlog2_cgamutday -120,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.CLog3_CGamut_to_ACES.a1.1.0,,FALSE,CANON_CLOG3-CGAMUT_to_ACES2065-1,,ColorSpace,log,file-io,canonlog3_cgamutday -130,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.Log3G10_RWG_to_ACES.a1.1.0,,FALSE,RED_LOG3G10-RWG_to_ACES2065-1,,ColorSpace,log,file-io,log3g10_rwg -140,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.LogC_EI800_AWG_to_ACES.a1.1.0,,FALSE,ARRI_ALEXA-LOGC-EI800-AWG_to_ACES2065-1,,ColorSpace,log,file-io,logc3ei800_alexawide -150,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.SLog3_SGamut3_to_ACES.a1.1.0,,FALSE,SONY_SLOG3-SGAMUT3_to_ACES2065-1,,ColorSpace,log,file-io,slog3_sgamut3 -150,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.SLog3_SGamut3Cine_to_ACES.a1.1.0,,FALSE,SONY_SLOG3-SGAMUT3.CINE_to_ACES2065-1,,ColorSpace,log,file-io,slog3_sgamut3cine -150,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.SLog3_Venice_SGamut3_to_ACES.a1.1.0,,FALSE,SONY_SLOG3-SGAMUT3-VENICE_to_ACES2065-1,,ColorSpace,log,file-io,slog3_venice_sgamut3 -150,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.SLog3_Venice_SGamut3Cine_to_ACES.a1.1.0,,FALSE,SONY_SLOG3-SGAMUT3.CINE-VENICE_to_ACES2065-1,,ColorSpace,log,file-io,slog3_venice_sgamut3cine -160,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.VLog_VGamut_to_ACES.a1.1.0,,FALSE,PANASONIC_VLOG-VGAMUT_to_ACES2065-1,,ColorSpace,log,file-io,vlog_vgamut -310,urn:ampas:aces:transformId:v1.5:LMT.Academy.BlueLightArtifactFix.a1.1.0,Utility - Look - Blue Light Artifact Fix,TRUE,ACES-LMT - BLUE_LIGHT_ARTIFACT_FIX,,Look,,, -310,urn:ampas:aces:transformId:v1.5:LMT.Academy.ReferenceGamutCompress.a1.v1.0,,FALSE,ACES-LMT - ACES 1.3 Reference Gamut Compression,,Look,,, -400,urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_100nits_dim.a1.0.3,Output - sRGB,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,DISPLAY - CIE-XYZ-D65_to_sRGB,ViewTransform,sdr-video,file-io, -401,urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_D60sim_100nits_dim.a1.0.3,Output - sRGB (D60 sim.),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-D60sim-D65_1.0,DISPLAY - CIE-XYZ-D65_to_sRGB,ViewTransform,sdr-video,file-io, -410,urn:ampas:aces:transformId:v1.5:ODT.Academy.DisplayP3_dim.a1.0.0,Output - DisplayP3,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,DISPLAY - CIE-XYZ-D65_to_DisplayP3,ViewTransform,sdr-video,file-io, -411,urn:ampas:aces:transformId:v1.5:ODT.Academy.DisplayP3_D60sim_dim.a1.0.0,Output - DisplayP3 (D60 sim.),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-D60sim-D65_1.0,DISPLAY - CIE-XYZ-D65_to_DisplayP3,ViewTransform,sdr-video,file-io, -420,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_100nits_dim.a1.0.3,Output - Rec.709,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.709,ViewTransform,sdr-video,file-io, -421,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_D60sim_100nits_dim.a1.0.3,Output - Rec.709 (D60 sim.),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-D60sim-D65_1.0,DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.709,ViewTransform,sdr-video,file-io, -430,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_100nits_dim.a1.0.3,Output - Rec.2020,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.2020,ViewTransform,sdr-video,file-io, -430,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_P3D65limited_100nits_dim.a1.1.0,Output - Rec.2020 (P3D65 Limited),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-P3lim_1.1,DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.2020,ViewTransform,sdr-video,file-io, -430,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_Rec709limited_100nits_dim.a1.1.0,Output - Rec.2020 (Rec.709 Limited),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-REC709lim_1.1,DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.2020,ViewTransform,sdr-video,file-io, -440,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_1000nits_15nits_HLG.a1.1.0,Output - Rec.2020 HLG (1000 nits),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-1000nit-15nit-REC2020lim_1.1,DISPLAY - CIE-XYZ-D65_to_REC.2100-HLG-1000nit,ViewTransform,hdr-video,file-io, -440,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_1000nits_15nits_ST2084.a1.1.0,Output - Rec.2020 ST2084 (1000 nits),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-1000nit-15nit-REC2020lim_1.1,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, -440,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_2000nits_15nits_ST2084.a1.1.0,Output - Rec.2020 ST2084 (2000 nits),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-2000nit-15nit-REC2020lim_1.1,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, -440,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_4000nits_15nits_ST2084.a1.1.0,Output - Rec.2020 ST2084 (4000 nits),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-4000nit-15nit-REC2020lim_1.1,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, -460,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_1000nits_15nits_ST2084.a1.1.0,Output - P3-D65 ST2084 (1000 nits),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-1000nit-15nit-P3lim_1.1,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, -460,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_2000nits_15nits_ST2084.a1.1.0,Output - P3-D65 ST2084 (2000 nits),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-2000nit-15nit-P3lim_1.1,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, -460,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_4000nits_15nits_ST2084.a1.1.0,Output - P3-D65 ST2084 (4000 nits),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-4000nit-15nit-P3lim_1.1,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, -470,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D60_48nits.a1.0.3,Output - P3-D60,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA_1.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D60-BFD,ViewTransform,sdr-video,file-io, -470,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_48nits.a1.1.0,Output - P3D65,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA_1.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,sdr-video,file-io, -470,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_Rec709limited_48nits.a1.1.0,Output - P3D65 (Rec.709 Limited),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-REC709lim_1.1,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,sdr-video,file-io, -470,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3DCI_48nits.a1.0.3,Output - P3-DCI (D60 simulation),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D60sim-DCI_1.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-DCI-BFD,ViewTransform,sdr-video,file-io, -471,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_D60sim_48nits.a1.1.0,Output - P3D65 (D60 simulation),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D60sim-D65_1.1,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,sdr-video,file-io, -471,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3DCI_D65sim_48nits.a1.1.0,Output - P3-DCI (D65 simulation),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D65sim-DCI_1.1,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-DCI-BFD,ViewTransform,sdr-video,file-io, -480,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_108nits_7point2nits_ST2084.a1.1.0,Output - P3D65 ST2084 (108 nits),FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-CINEMA-108nit-7.2nit-P3lim_1.1,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, diff --git a/opencolorio_config_aces/config/reference/generate/resources/OpenColorIO-Config-ACES Reference Transforms - v3 - Reference Config - Mapping.csv b/opencolorio_config_aces/config/reference/generate/resources/OpenColorIO-Config-ACES Reference Transforms - v3 - Reference Config - Mapping.csv new file mode 100644 index 00000000..e48fd804 --- /dev/null +++ b/opencolorio_config_aces/config/reference/generate/resources/OpenColorIO-Config-ACES Reference Transforms - v3 - Reference Config - Mapping.csv @@ -0,0 +1,58 @@ +Ordering,ACEStransformID,Colorspace,Legacy,BuiltinTransform Style,Linked DisplayColorSpace Style,Interface,Encoding,Categories,Aliases +100,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScc_to_ACES.a2.v1,ACES - ACEScc,TRUE,ACEScc_to_ACES2065-1,,ColorSpace,log,file-io,"acescc,acescc_ap1" +100,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScct_to_ACES.a2.v1,ACES - ACEScct,TRUE,ACEScct_to_ACES2065-1,,ColorSpace,log,"file-io,working-space","acescct,acescct_ap1" +100,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScg_to_ACES.a2.v1,ACES - ACEScg,TRUE,ACEScg_to_ACES2065-1,,ColorSpace,scene-linear,"file-io,working-space,texture","acescg,lin_ap1" +100,urn:ampas:aces:transformId:v2.0:CSC.Academy.ADX10_to_ACES.a2.v1,Input - ADX - ADX10,TRUE,ADX10_to_ACES2065-1,,ColorSpace,log,file-io,adx10 +100,urn:ampas:aces:transformId:v2.0:CSC.Academy.ADX16_to_ACES.a2.v1,Input - ADX - ADX16,TRUE,ADX16_to_ACES2065-1,,ColorSpace,log,file-io,adx16 +105,urn:ampas:aces:transformId:v2.0:CSC.Apple.AppleLog_BT2020_to_ACES.a2.v1,,FALSE,APPLE_LOG_to_ACES2065-1,,ColorSpace,log,file-io, +110,urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv3_to_ACES.a2.v1,,FALSE,ARRI_ALEXA-LOGC-EI800-AWG_to_ACES2065-1,,ColorSpace,log,file-io,logc3ei800_alexawide +110,urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv4_to_ACES.a2.v1,,FALSE,ARRI_LOGC4_to_ACES2065-1,,ColorSpace,log,file-io, +130,urn:ampas:aces:transformId:v2.0:CSC.Panasonic.VLog_VGamut_to_ACES.a2.v1,,FALSE,PANASONIC_VLOG-VGAMUT_to_ACES2065-1,,ColorSpace,log,file-io,vlog_vgamut +135,urn:ampas:aces:transformId:v2.0:CSC.Red.Log3G10_RWG_to_ACES.a2.v1,,FALSE,RED_LOG3G10-RWG_to_ACES2065-1,,ColorSpace,log,file-io,log3g10_rwg +140,urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3_to_ACES.a2.v1,,FALSE,SONY_SLOG3-SGAMUT3_to_ACES2065-1,,ColorSpace,log,file-io,slog3_sgamut3 +140,urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3Cine_to_ACES.a2.v1,,FALSE,SONY_SLOG3-SGAMUT3.CINE_to_ACES2065-1,,ColorSpace,log,file-io,slog3_sgamut3cine +140,urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3_to_ACES.a2.v1,,FALSE,SONY_SLOG3-SGAMUT3-VENICE_to_ACES2065-1,,ColorSpace,log,file-io,slog3_venice_sgamut3 +140,urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3Cine_to_ACES.a2.v1,,FALSE,SONY_SLOG3-SGAMUT3.CINE-VENICE_to_ACES2065-1,,ColorSpace,log,file-io,slog3_venice_sgamut3cine +300,urn:ampas:aces:transformId:v2.0:Look.Academy.ReferenceGamutCompress.a2.v1,,FALSE,ACES-LMT - ACES 1.3 Reference Gamut Compression,,Look,,, +400,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_108nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-108nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +400,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_2000nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +400,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_4000nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +400,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_48nit_in_P3-D65_Gamma2pt6.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,sdr-video,file-io, +400,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_500nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +400,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_48nit_in_P3-D65_Gamma2pt6.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,sdr-video,file-io, +405,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +415,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,DISPLAY - CIE-XYZ-D65_to_sRGB,ViewTransform,sdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_Rec2100-D65_HLG.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-HLG-1000nit,ViewTransform,hdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_2000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_4000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_500nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D65_1000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-REC2020_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D65_2000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-REC2020_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D65_4000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-REC2020_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D65_500nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-REC2020_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +420,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,sdr-video,file-io, +425,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_P3-D65_sRGB-Piecewise.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_DisplayP3,ViewTransform,hdr-video,file-io, +425,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_100nit_in_P3-D65_sRGB-Piecewise.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_DisplayP3,ViewTransform,sdr-video,file-io, +430,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec709-D65_BT1886.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.709,ViewTransform,sdr-video,file-io, +450,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +450,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_108nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-108nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,sdr-video,file-io, +450,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_2000nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +450,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_4000nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +450,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_48nit_in_P3-D65_Gamma2pt6.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,hdr-video,file-io, +450,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_500nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +450,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_48nit_in_P3-D65_Gamma2pt6.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,sdr-video,file-io, +460,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_100nit_in_Rec709-D65_sRGB-Piecewise.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC709-D65_2.0,DISPLAY - CIE-XYZ-D65_to_sRGB,ViewTransform,sdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_Rec2100-D65_HLG.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-HLG-1000nit,ViewTransform,hdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_2000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_4000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_500nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D60_1000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-REC2020-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D60_2000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-REC2020-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D60_4000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-REC2020-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D60_500nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-REC2020-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,sdr-video,file-io, +465,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_100nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io, +470,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_P3-D65_sRGB-Piecewise.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_DisplayP3,ViewTransform,sdr-video,file-io, +470,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_100nit_in_P3-D65_sRGB-Piecewise.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_DisplayP3,ViewTransform,hdr-video,file-io, +475,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_100nit_in_Rec709-D65_BT1886.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC709-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.709,ViewTransform,sdr-video,file-io, diff --git a/opencolorio_config_aces/config/studio/generate/config.py b/opencolorio_config_aces/config/studio/generate/config.py index 57bebdf3..a5bb9390 100644 --- a/opencolorio_config_aces/config/studio/generate/config.py +++ b/opencolorio_config_aces/config/studio/generate/config.py @@ -48,11 +48,11 @@ "generate_config_studio", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) URL_EXPORT_TRANSFORMS_MAPPING_FILE_STUDIO = ( "https://docs.google.com/spreadsheets/d/" - "1nE95DEVtxtEkcIEaJk0WekyEH0Rcs8z_3fdwUtqP8V4/" + "1PXjTzBVYonVFIceGkLDaqcEJvKR6OI63DwZX0aajl3A/" "export?format=csv&gid=1155125238" ) """ @@ -224,7 +224,7 @@ def generate_config_studio( *CTL* transforms, *CLF* transforms and *ACES* *AMF* components. """ - logger.info( + LOGGER.info( 'Generating "%s" config...', config_name_studio(dependency_versions), ) @@ -254,7 +254,7 @@ def generate_config_studio( data.description = config_description_studio(dependency_versions, describe) config = generate_config(data, config_name, validate) - logger.info( + LOGGER.info( '"%s" config generation complete!', config_name_studio(dependency_versions), ) diff --git a/opencolorio_config_aces/config/studio/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v2 - Studio Config - Mapping.csv b/opencolorio_config_aces/config/studio/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v2 - Studio Config - Mapping.csv deleted file mode 100644 index e509e6bd..00000000 --- a/opencolorio_config_aces/config/studio/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v2 - Studio Config - Mapping.csv +++ /dev/null @@ -1,82 +0,0 @@ -Ordering,Colorspace,Legacy,ACEStransformID,CLFtransformID,Interface,BuiltinTransform Style,Aliases,Encoding,Categories -100,ACES - ACEScc,TRUE,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScc_to_ACES.a1.0.3,,ColorSpace,ACEScc_to_ACES2065-1,"acescc,acescc_ap1",log,file-io -100,ACES - ACEScct,TRUE,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScct_to_ACES.a1.0.3,,ColorSpace,ACEScct_to_ACES2065-1,"acescct,acescct_ap1",log,"file-io,working-space" -100,ACES - ACEScg,TRUE,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScg_to_ACES.a1.0.3,,ColorSpace,ACEScg_to_ACES2065-1,"acescg,lin_ap1,lin_ap1_scene",scene-linear,"file-io,working-space,texture" -200,Input - ADX - ADX10,TRUE,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ADX10_to_ACES.a1.0.3,,ColorSpace,ADX10_to_ACES2065-1,adx10,log,file-io -200,Input - ADX - ADX16,TRUE,urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ADX16_to_ACES.a1.0.3,,ColorSpace,ADX16_to_ACES2065-1,adx16,log,file-io -201,Apple Log,FALSE,urn:ampas:aces:transformId:v1.5:IDT.Apple.AppleLog_BT2020.a1.v1,urn:aswf:ocio:transformId:1.0:Apple:Input:Apple_Log_to_ACES2065-1:1.0,ColorSpace,APPLE_LOG_to_ACES2065-1,,log,file-io -201,Apple Log - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:Apple:Input:Apple_Log-Curve_to_Linear:1.0,NamedTransform,CURVE - APPLE_LOG_to_LINEAR,,log,file-io -203,Input - ARRI - Curve - V3 LogC (EI800),TRUE,,urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC3_Curve_EI800_to_Linear:1.0,NamedTransform,,crv_logc3ei800,log,file-io -203,Input - ARRI - Linear - ALEXA Wide Gamut,TRUE,,urn:aswf:ocio:transformId:1.0:ARRI:Input:Linear_ARRI_Wide_Gamut_3_to_ACES2065-1:1.0,ColorSpace,,lin_alexawide,scene-linear,file-io -203,Input - ARRI - V3 LogC (EI800) - Wide Gamut,TRUE,urn:ampas:aces:transformId:v1.5:IDT.ARRI.Alexa-v3-logC-EI800.a1.v2,urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC3_EI800_to_ACES2065-1:1.0,ColorSpace,,logc3ei800_alexawide,log,file-io -204,ARRI LogC4,FALSE,,urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC4_to_ACES2065-1:1.0,ColorSpace,,,log,file-io -204,ARRI LogC4 - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC4_Curve_to_Linear:1.0,NamedTransform,,,log,file-io -204,Linear ARRI Wide Gamut 4,FALSE,,urn:aswf:ocio:transformId:1.0:ARRI:Input:Linear_ARRI_Wide_Gamut_4_to_ACES2065-1:1.0,ColorSpace,,lin_awg4,scene-linear,file-io -210,BMDFilm Gen5 Log - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:BMDFilm_Gen5_Log-Curve_to_Linear:1.0,NamedTransform,,,log,file-io -210,BMDFilm WideGamut Gen5,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:BMDFilm_WideGamut_Gen5_to_ACES2065-1:1.0,ColorSpace,,,log,file-io -210,DaVinci Intermediate Log - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:DaVinci_Intermediate_Log-Curve_to_Linear:1.0,NamedTransform,,,log,file-io -210,DaVinci Intermediate WideGamut,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:DaVinci_Intermediate_WideGamut_to_ACES2065-1:1.0,ColorSpace,,,log,file-io -210,Input - Canon - Canon-Log2 - Cinema Gamut Daylight,TRUE,,urn:aswf:ocio:transformId:1.0:Canon:Input:CanonLog2_CinemaGamut-D55_to_ACES2065-1:1.0,ColorSpace,CANON_CLOG2-CGAMUT_to_ACES2065-1,canonlog2_cgamutday,log,file-io -210,Input - Canon - Canon-Log3 - Cinema Gamut Daylight,TRUE,,urn:aswf:ocio:transformId:1.0:Canon:Input:CanonLog3_CinemaGamut-D55_to_ACES2065-1:1.0,ColorSpace,CANON_CLOG3-CGAMUT_to_ACES2065-1,canonlog3_cgamutday,log,file-io -210,Input - Canon - Curve - Canon-Log2,TRUE,,urn:aswf:ocio:transformId:1.0:Canon:Input:CLog2-Curve_to_Linear:1.0,NamedTransform,CURVE - CANON_CLOG2_to_LINEAR,crv_canonlog2,log,file-io -210,Input - Canon - Curve - Canon-Log3,TRUE,,urn:aswf:ocio:transformId:1.0:Canon:Input:CLog3-Curve_to_Linear:1.0,NamedTransform,CURVE - CANON_CLOG3_to_LINEAR,crv_canonlog3,log,file-io -210,Input - Canon - Linear - Canon Cinema Gamut Daylight,TRUE,,urn:aswf:ocio:transformId:1.0:Canon:Input:Linear-CinemaGamut-D55_to_ACES2065-1:1.0,ColorSpace,,lin_canoncgamutday,scene-linear,file-io -210,Input - Panasonic - Curve - V-Log,TRUE,,urn:aswf:ocio:transformId:1.0:Panasonic:Input:VLog-Curve_to_Linear:1.0,NamedTransform,,crv_vlog,log,file-io -210,Input - Panasonic - Linear - V-Gamut,TRUE,,urn:aswf:ocio:transformId:1.0:Panasonic:Input:Linear_VGamut_to_ACES2065-1:1.0,ColorSpace,,lin_vgamut,scene-linear,file-io -210,Input - Panasonic - V-Log - V-Gamut,TRUE,,urn:aswf:ocio:transformId:1.0:Panasonic:Input:VLog_VGamut_to_ACES2065-1:1.0,ColorSpace,,vlog_vgamut,log,file-io -210,Input - RED - Curve - REDLog3G10,TRUE,,urn:aswf:ocio:transformId:1.0:RED:Input:Log3G10-Curve_to_Linear:1.0,NamedTransform,,crv_rl3g10,log,file-io -210,Input - RED - Linear - REDWideGamutRGB,TRUE,,urn:aswf:ocio:transformId:1.0:RED:Input:Linear_REDWideGamutRGB_to_ACES2065-1:1.0,ColorSpace,,lin_rwg,scene-linear,file-io -210,Input - RED - REDLog3G10 - REDWideGamutRGB,TRUE,,urn:aswf:ocio:transformId:1.0:RED:Input:Log3G10_REDWideGamutRGB_to_ACES2065-1:1.0,ColorSpace,,rl3g10_rwg,log,file-io -210,Input - Sony - Curve - S-Log3,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3-Curve_to_Linear:1.0,NamedTransform,,crv_slog3,log,file-io -210,Input - Sony - Linear - S-Gamut3,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_SGamut3_to_ACES2065-1:1.0,ColorSpace,,lin_sgamut3,scene-linear,file-io -210,Input - Sony - Linear - S-Gamut3.Cine,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_SGamut3Cine_to_ACES2065-1:1.0,ColorSpace,,lin_sgamut3cine,scene-linear,file-io -210,Input - Sony - Linear - Venice S-Gamut3,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_Venice_SGamut3_to_ACES2065-1:1.0,ColorSpace,,lin_venice_sgamut3,scene-linear,file-io -210,Input - Sony - Linear - Venice S-Gamut3.Cine,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_Venice_SGamut3Cine_to_ACES2065-1:1.0,ColorSpace,,lin_venice_sgamut3cine,scene-linear,file-io -210,Input - Sony - S-Log3 - S-Gamut3,TRUE,urn:ampas:aces:transformId:v1.5:IDT.Sony.SLog3_SGamut3.a1.v1,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_SGamut3_to_ACES2065-1:1.0,ColorSpace,,slog3_sgamut3,log,file-io -210,Input - Sony - S-Log3 - S-Gamut3.Cine,TRUE,urn:ampas:aces:transformId:v1.5:IDT.Sony.SLog3_SGamut3Cine.a1.v1,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_SGamut3Cine_to_ACES2065-1:1.0,ColorSpace,,slog3_sgamutcine,log,file-io -210,Input - Sony - S-Log3 - Venice S-Gamut3,TRUE,urn:ampas:aces:transformId:v1.5:IDT.Sony.Venice_SLog3_SGamut3.a1.v1,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_Venice_SGamut3_to_ACES2065-1:1.0,ColorSpace,,slog3_venice_sgamut3,log,file-io -210,Input - Sony - S-Log3 - Venice S-Gamut3.Cine,TRUE,urn:ampas:aces:transformId:v1.5:IDT.Sony.Venice_SLog3_SGamut3Cine.a1.v1,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_Venice_SGamut3Cine_to_ACES2065-1:1.0,ColorSpace,,slog3_venice_sgamutcine,log,file-io -210,Linear BMD WideGamut Gen5,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:Linear_BMD_WideGamut_Gen5_to_ACES2065-1:1.0,ColorSpace,,,scene-linear,file-io -210,Linear DaVinci WideGamut,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:Linear_DaVinci_WideGamut_to_ACES2065-1:1.0,ColorSpace,,,scene-linear,file-io -300,Output - DisplayP3,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.DisplayP3_dim.a1.0.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,,sdr-video,file-io -300,Output - DisplayP3 (D60 sim.),TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.DisplayP3_D60sim_dim.a1.0.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-D60sim-D65_1.0,,sdr-video,file-io -300,Output - P3-D60,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D60_48nits.a1.0.3,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA_1.0,,sdr-video,file-io -300,Output - P3-D65 ST2084 (1000 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_1000nits_15nits_ST2084.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,,hdr-video,file-io -300,Output - P3-D65 ST2084 (2000 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_2000nits_15nits_ST2084.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,,hdr-video,file-io -300,Output - P3-D65 ST2084 (4000 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_4000nits_15nits_ST2084.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,,hdr-video,file-io -300,Output - P3-DCI (D60 simulation),TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3DCI_48nits.a1.0.3,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D60sim-DCI_1.0,,sdr-video,file-io -300,Output - P3-DCI (D65 simulation),TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3DCI_D65sim_48nits.a1.1.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D65sim-DCI_1.1,,sdr-video,file-io -300,Output - P3D65,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_48nits.a1.1.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA_1.0,,sdr-video,file-io -300,Output - P3D65 (D60 simulation),TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_D60sim_48nits.a1.1.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D60sim-D65_1.1,,sdr-video,file-io -300,Output - P3D65 (Rec.709 Limited),TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_Rec709limited_48nits.a1.1.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-REC709lim_1.1,,sdr-video,file-io -300,Output - P3D65 ST2084 (108 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_108nits_7point2nits_ST2084.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,,hdr-video,file-io -300,Output - Rec.2020,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_100nits_dim.a1.0.3,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,,sdr-video,file-io -300,Output - Rec.2020 (P3D65 Limited),TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_P3D65limited_100nits_dim.a1.1.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-P3lim_1.1,,sdr-video,file-io -300,Output - Rec.2020 (Rec.709 Limited),TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_Rec709limited_100nits_dim.a1.1.0,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-REC709lim_1.1,,sdr-video,file-io -300,Output - Rec.2020 HLG (1000 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_1000nits_15nits_HLG.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_REC.2100-HLG-1000nit,,hdr-video,file-io -300,Output - Rec.2020 ST2084 (1000 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_1000nits_15nits_ST2084.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,,hdr-video,file-io -300,Output - Rec.2020 ST2084 (2000 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_2000nits_15nits_ST2084.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,,hdr-video,file-io -300,Output - Rec.2020 ST2084 (4000 nits),TRUE,urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_4000nits_15nits_ST2084.a1.1.0,,ViewTransform,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,,hdr-video,file-io -300,Output - Rec.709,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_100nits_dim.a1.0.3,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,,sdr-video,file-io -300,Output - Rec.709 (D60 sim.),TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_D60sim_100nits_dim.a1.0.3,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-D60sim-D65_1.0,,sdr-video,file-io -300,Output - sRGB,TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_100nits_dim.a1.0.3,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0,,sdr-video,file-io -300,Output - sRGB (D60 sim.),TRUE,urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_D60sim_100nits_dim.a1.0.3,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-D60sim-D65_1.0,,sdr-video,file-io -400,Utility - sRGB - Texture,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB-Encoded-Rec709:1.0,ColorSpace,,"srgb_texture,srgb_rec709_scene,Input - Generic - sRGB - Texture,sRGB - Texture,srgb_tx",sdr-video,"file-io,texture" -401,Utility - Gamma 1.8 - Rec.709 - Texture,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma1.8_Encoded_Rec709:1.0,ColorSpace,,"g18_rec709,Gamma 1.8 Rec.709 - Texture,g18_rec709_tx,g18_rec709_scene",sdr-video,"file-io,texture" -402,Utility - Gamma 2.2 - Rec.709 - Texture,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_Rec709:1.0,ColorSpace,,"g22_rec709,Gamma 2.2 Rec.709 - Texture,g22_rec709_tx,g22_rec709_scene",sdr-video,"file-io,texture" -403,Gamma 2.4 Encoded Rec.709,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.4_Encoded_Rec709:1.0,ColorSpace,,"g24_rec709,rec709_display,Utility - Rec.709 - Display,Gamma 2.4 Rec.709 - Texture,g24_rec709_tx",sdr-video,"file-io,texture" -404,Utility - Rec.709 - Camera,TRUE,,urn:aswf:ocio:transformId:1.0:ITU:Utility:AP0_to_Camera_Rec709:1.0,ColorSpace,,rec709_camera,sdr-video,file-io -405,sRGB Encoded P3-D65,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_P3-D65:1.0,ColorSpace,,"srgb_p3d65,srgb_displayp3,srgb_p3d65_scene,sRGB Encoded P3-D65 - Texture,srgb_encoded_p3d65_tx",sdr-video,"file-io,texture" -406,Gamma 2.2 Encoded AdobeRGB,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_AdobeRGB:1.0,ColorSpace,,"adobergb,g22_adobergb_scene",sdr-video,"file-io,texture" -407,sRGB Encoded AP1,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_AP1:1.0,ColorSpace,,"srgb_ap1,srgb_ap1_scene,sRGB Encoded AP1 - Texture,srgb_encoded_ap1_tx",sdr-video,"file-io,texture" -408,Gamma 2.2 Encoded AP1,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_AP1:1.0,ColorSpace,,"g22_ap1,Gamma 2.2 AP1 - Texture,g22_ap1_tx,g22_ap1_scene",sdr-video,"file-io,texture" -420,Utility - Linear - Rec.709,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec709:1.0,ColorSpace,,"lin_rec709,lin_rec709_scene,lin_srgb,Utility - Linear - sRGB",scene-linear,"file-io,working-space,texture" -421,Utility - Linear - P3-D65,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_P3-D65:1.0,ColorSpace,,"lin_p3d65,lin_displayp3,lin_p3d65_scene,Linear Display P3",scene-linear,"file-io,working-space,texture" -422,Utility - Linear - Adobe RGB,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_AdobeRGB:1.0,ColorSpace,,"lin_adobergb,lin_adobergb_scene,Utility - Linear - Adobe RGB",scene-linear,"file-io,texture" -423,Utility - Linear - Rec.2020,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec2020:1.0,ColorSpace,,"lin_rec2020,lin_rec2020_scene",scene-linear,"file-io,texture" -424,CIE XYZ-D65 - Scene-referred,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_CIE_XYZ-D65-Scene-referred:1.0,ColorSpace,,lin_ciexyzd65_scene,scene-linear,file-io -440,Utility - Curve - sRGB,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_sRGB-Curve:1.0,NamedTransform,,crv_srgb,sdr-video,file-io -441,Utility - Curve - Rec.1886,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_Rec1886-Curve:1.0,NamedTransform,,crv_rec1886,sdr-video,file-io -442,Utility - Curve - Rec.709,TRUE,,urn:aswf:ocio:transformId:1.0:ITU:Utility:Linear_to_Rec709-Curve:1.0,NamedTransform,,crv_rec709,sdr-video,file-io -444,ST-2084 - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_ST2084-Curve:1.0,NamedTransform,CURVE - LINEAR_to_ST-2084,,hdr-video,file-io -500,ACES 1.3 Reference Gamut Compression,FALSE,urn:ampas:aces:transformId:v1.5:LMT.Academy.ReferenceGamutCompress.a1.v1.0,,Look,,,, diff --git a/opencolorio_config_aces/config/studio/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v3 - Studio Config - Mapping.csv b/opencolorio_config_aces/config/studio/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v3 - Studio Config - Mapping.csv new file mode 100644 index 00000000..faa0f6b3 --- /dev/null +++ b/opencolorio_config_aces/config/studio/generate/resources/OpenColorIO-Config-ACES CG and Studio Transforms - v3 - Studio Config - Mapping.csv @@ -0,0 +1,101 @@ +Ordering,Colorspace,Legacy,ACEStransformID,CLFtransformID,Interface,BuiltinTransform Style,Aliases,Encoding,Categories +100,ACEScc,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScc_to_ACES.a2.v1,,ColorSpace,ACEScc_to_ACES2065-1,"acescc,acescc_ap1,ACES - ACEScc",log,file-io +100,ACEScct,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScct_to_ACES.a2.v1,,ColorSpace,ACEScct_to_ACES2065-1,"acescct,acescct_ap1,ACES - ACEScct",log,"file-io,working-space" +100,ACEScg,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScg_to_ACES.a2.v1,,ColorSpace,ACEScg_to_ACES2065-1,"acescg,lin_ap1,lin_ap1_scene,ACES - ACEScg",scene-linear,"file-io,working-space,texture" +100,Input - ADX - ADX10,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Academy.ADX10_to_ACES.a2.v1,,ColorSpace,ADX10_to_ACES2065-1,"adx10,Input - ADX - ADX10",log,file-io +100,Input - ADX - ADX16,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Academy.ADX16_to_ACES.a2.v1,,ColorSpace,ADX16_to_ACES2065-1,"adx16,Input - ADX - ADX16",log,file-io +105,Apple Log,FALSE,urn:ampas:aces:transformId:v2.0:CSC.Apple.AppleLog_BT2020_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:Apple:Input:Apple_Log_to_ACES2065-1:1.0,ColorSpace,APPLE_LOG_to_ACES2065-1,,log,file-io +105,Apple Log - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:Apple:Input:Apple_Log-Curve_to_Linear:1.0,NamedTransform,CURVE - APPLE_LOG_to_LINEAR,,log,file-io +110,ARRI LogC3 (EI800),TRUE,urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv3_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC3_EI800_to_ACES2065-1:1.0,ColorSpace,,"logc3ei800_alexawide,Input - ARRI - V3 LogC (EI800) - Wide Gamut",log,file-io +110,Linear ARRI Wide Gamut 3,TRUE,,urn:aswf:ocio:transformId:1.0:ARRI:Input:Linear_ARRI_Wide_Gamut_3_to_ACES2065-1:1.0,ColorSpace,,"lin_alexawide,Input - ARRI - Linear - ALEXA Wide Gamut",scene-linear,file-io +111,ARRI LogC4,FALSE,urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv4_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC4_to_ACES2065-1:1.0,ColorSpace,,,log,file-io +111,ARRI LogC4 - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC4_Curve_to_Linear:1.0,NamedTransform,,,log,file-io +111,Linear ARRI Wide Gamut 4,FALSE,,urn:aswf:ocio:transformId:1.0:ARRI:Input:Linear_ARRI_Wide_Gamut_4_to_ACES2065-1:1.0,ColorSpace,,lin_awg4,scene-linear,file-io +115,BMDFilm Gen5 Log - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:BMDFilm_Gen5_Log-Curve_to_Linear:1.0,NamedTransform,,,log,file-io +115,BMDFilm WideGamut Gen5,FALSE,urn:ampas:aces:transformId:v2.0:CSC.Blackmagic.BMDFilm_WideGamut_Gen5_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:BMDFilm_WideGamut_Gen5_to_ACES2065-1:1.0,ColorSpace,,,log,file-io +115,Linear BMD WideGamut Gen5,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:Linear_BMD_WideGamut_Gen5_to_ACES2065-1:1.0,ColorSpace,,,scene-linear,file-io +116,DaVinci Intermediate Log - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:DaVinci_Intermediate_Log-Curve_to_Linear:1.0,NamedTransform,,,log,file-io +116,DaVinci Intermediate WideGamut,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:DaVinci_Intermediate_WideGamut_to_ACES2065-1:1.0,ColorSpace,,,log,file-io +116,Linear DaVinci WideGamut,FALSE,,urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:Linear_DaVinci_WideGamut_to_ACES2065-1:1.0,ColorSpace,,,scene-linear,file-io +120,C-Log2 - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:Canon:Input:CLog2-Curve_to_Linear:1.0,NamedTransform,CURVE - CANON_CLOG2_to_LINEAR,"crv_canonlog2,Input - Canon - Curve - Canon-Log2",log,file-io +120,CanonLog2 CinemaGamut D55,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Canon.CLog2_CGamut_to_ACES.a1.v1,urn:aswf:ocio:transformId:1.0:Canon:Input:CanonLog2_CinemaGamut-D55_to_ACES2065-1:1.0,ColorSpace,CANON_CLOG2-CGAMUT_to_ACES2065-1,"canonlog2_cgamutday,Input - Canon - Canon-Log2 - Cinema Gamut Daylight",log,file-io +120,Linear CinemaGamut D55,TRUE,,urn:aswf:ocio:transformId:1.0:Canon:Input:Linear-CinemaGamut-D55_to_ACES2065-1:1.0,ColorSpace,,"lin_canoncgamutday,Input - Canon - Linear - Canon Cinema Gamut Daylight",scene-linear,file-io +121,C-Log3 - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:Canon:Input:CLog3-Curve_to_Linear:1.0,NamedTransform,CURVE - CANON_CLOG3_to_LINEAR,"crv_canonlog3,Input - Canon - Curve - Canon-Log3",log,file-io +121,CanonLog3 CinemaGamut D55,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Canon.CLog3_CGamut_to_ACES.a1.v1,urn:aswf:ocio:transformId:1.0:Canon:Input:CanonLog3_CinemaGamut-D55_to_ACES2065-1:1.0,ColorSpace,CANON_CLOG3-CGAMUT_to_ACES2065-1,"canonlog3_cgamutday,Input - Canon - Canon-Log3 - Cinema Gamut Daylight",log,file-io +130,Linear V-Gamut,TRUE,,urn:aswf:ocio:transformId:1.0:Panasonic:Input:Linear_VGamut_to_ACES2065-1:1.0,ColorSpace,,"lin_vgamut,Input - Panasonic - Linear - V-Gamut",scene-linear,file-io +130,V-Log - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:Panasonic:Input:VLog-Curve_to_Linear:1.0,NamedTransform,,"crv_vlog,Input - Panasonic - Curve - V-Log",log,file-io +130,V-Log V-Gamut,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Panasonic.VLog_VGamut_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:Panasonic:Input:VLog_VGamut_to_ACES2065-1:1.0,ColorSpace,,"vlog_vgamut,Input - Panasonic - V-Log - V-Gamut",log,file-io +135,Linear REDWideGamutRGB,TRUE,,urn:aswf:ocio:transformId:1.0:RED:Input:Linear_REDWideGamutRGB_to_ACES2065-1:1.0,ColorSpace,,"lin_rwg,Input - RED - Linear - REDWideGamutRGB",scene-linear,file-io +135,Log3G10 - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:RED:Input:Log3G10-Curve_to_Linear:1.0,NamedTransform,,"crv_rl3g10,Input - RED - Curve - REDLog3G10",log,file-io +135,Log3G10 REDWideGamutRGB,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Red.Log3G10_RWG_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:RED:Input:Log3G10_REDWideGamutRGB_to_ACES2065-1:1.0,ColorSpace,,"rl3g10_rwg,Input - RED - REDLog3G10 - REDWideGamutRGB",log,file-io +140,Linear S-Gamut3,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_SGamut3_to_ACES2065-1:1.0,ColorSpace,,"lin_sgamut3,Input - Sony - Linear - S-Gamut3",scene-linear,file-io +140,S-Log3 - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3-Curve_to_Linear:1.0,NamedTransform,,"crv_slog3,Input - Sony - Curve - S-Log3",log,file-io +140,S-Log3 S-Gamut3,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_SGamut3_to_ACES2065-1:1.0,ColorSpace,,"slog3_sgamut3,Input - Sony - S-Log3 - S-Gamut3",log,file-io +141,Linear S-Gamut3.Cine,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_SGamut3Cine_to_ACES2065-1:1.0,ColorSpace,,"lin_sgamut3cine,Input - Sony - Linear - S-Gamut3.Cine",scene-linear,file-io +141,S-Log3 S-Gamut3.Cine,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3Cine_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_SGamut3Cine_to_ACES2065-1:1.0,ColorSpace,,"slog3_sgamutcine,Input - Sony - S-Log3 - S-Gamut3.Cine",log,file-io +142,Linear Venice S-Gamut3,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_Venice_SGamut3_to_ACES2065-1:1.0,ColorSpace,,"lin_venice_sgamut3,Input - Sony - Linear - Venice S-Gamut3",scene-linear,file-io +142,S-Log3 Venice S-Gamut3,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_Venice_SGamut3_to_ACES2065-1:1.0,ColorSpace,,"slog3_venice_sgamut3,Input - Sony - S-Log3 - Venice S-Gamut3",log,file-io +143,Linear Venice S-Gamut3.Cine,TRUE,,urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_Venice_SGamut3Cine_to_ACES2065-1:1.0,ColorSpace,,"lin_venice_sgamut3cine,Input - Sony - Linear - Venice S-Gamut3.Cine",scene-linear,file-io +143,S-Log3 Venice S-Gamut3.Cine,TRUE,urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3Cine_to_ACES.a2.v1,urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_Venice_SGamut3Cine_to_ACES2065-1:1.0,ColorSpace,,"slog3_venice_sgamutcine,Input - Sony - S-Log3 - Venice S-Gamut3.Cine",log,file-io +300,ACES 1.3 Reference Gamut Compression,FALSE,urn:ampas:aces:transformId:v2.0:Look.Academy.ReferenceGamutCompress.a2.v1,,Look,,,scene-linear, +300,SDR Tonescale Match,FALSE,urn:ampas:aces:transformId:v2.0:Look.Academy.v1_SDR_Tonescale_Match.a2.v1,,Look,,,scene-linear, +400,P3-D65_108nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_108nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-108nit-P3-D65_2.0,,hdr-video,file-io +400,P3-D65_2000nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_2000nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D65_2.0,,hdr-video,file-io +400,P3-D65_4000nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_4000nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D65_2.0,,hdr-video,file-io +400,P3-D65_48nit_in_P3-D65_Gamma2pt6,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_48nit_in_P3-D65_Gamma2pt6.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D65_2.0,,sdr-video,file-io +400,P3-D65_500nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_500nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D65_2.0,,hdr-video,file-io +400,Rec709-D65_48nit_in_P3-D65_Gamma2pt6,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_48nit_in_P3-D65_Gamma2pt6.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,,sdr-video,file-io +405,P3-D65_1000nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,,hdr-video,file-io +415,Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,,sdr-video,file-io +420,P3-D65_1000nit_in_Rec2100-D65_HLG,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_Rec2100-D65_HLG.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,,hdr-video,file-io +420,P3-D65_1000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,,hdr-video,file-io +420,P3-D65_2000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_2000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D65_2.0,,hdr-video,file-io +420,P3-D65_4000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_4000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D65_2.0,,hdr-video,file-io +420,P3-D65_500nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_500nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D65_2.0,,hdr-video,file-io +420,Rec2100-D65_1000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D65_1000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-REC2020_2.0,,hdr-video,file-io +420,Rec2100-D65_2000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D65_2000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-REC2020_2.0,,hdr-video,file-io +420,Rec2100-D65_4000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D65_4000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-REC2020_2.0,,hdr-video,file-io +420,Rec2100-D65_500nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D65_500nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-REC2020_2.0,,hdr-video,file-io +420,Rec709-D65_100nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,,sdr-video,file-io +425,P3-D65_1000nit_in_P3-D65_sRGB-Piecewise,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_P3-D65_sRGB-Piecewise.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,,hdr-video,file-io +425,P3-D65_100nit_in_P3-D65_sRGB-Piecewise,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_100nit_in_P3-D65_sRGB-Piecewise.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D65_2.0,,sdr-video,file-io +430,Rec709-D65_100nit_in_Rec709-D65_BT1886,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec709-D65_BT1886.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,,sdr-video,file-io +440,sRGB - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_sRGB-Curve:1.0,NamedTransform,,"crv_srgb,Utility - Curve - sRGB",sdr-video,file-io +441,Rec.1886 - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_Rec1886-Curve:1.0,NamedTransform,,"crv_rec1886,Utility - Curve - Rec.1886",sdr-video,file-io +442,Rec.709 - Curve,TRUE,,urn:aswf:ocio:transformId:1.0:ITU:Utility:Linear_to_Rec709-Curve:1.0,NamedTransform,,"crv_rec709,Utility - Curve - Rec.709",sdr-video,file-io +443,ST-2084 - Curve,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_ST2084-Curve:1.0,NamedTransform,CURVE - LINEAR_to_ST-2084,,hdr-video,file-io +450,P3-D60_1000nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-P3-D65_2.0,,hdr-video,file-io +450,P3-D60_108nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_108nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-108nit-P3-D60-in-P3-D65_2.0,,sdr-video,file-io +450,P3-D60_2000nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_2000nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D60-in-P3-D65_2.0,,hdr-video,file-io +450,P3-D60_4000nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_4000nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D60-in-P3-D65_2.0,,hdr-video,file-io +450,P3-D60_48nit_in_P3-D65_Gamma2pt6,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_48nit_in_P3-D65_Gamma2pt6.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D60-in-P3-D65_2.0,,hdr-video,file-io +450,P3-D60_500nit_in_P3-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_500nit_in_P3-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D60-in-P3-D65_2.0,,hdr-video,file-io +450,Rec709-D60_48nit_in_P3-D65_Gamma2pt6,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_48nit_in_P3-D65_Gamma2pt6.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-P3-D65_2.0,,sdr-video,file-io +460,Rec709-D60_100nit_in_Rec709-D65_sRGB-Piecewise,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_100nit_in_Rec709-D65_sRGB-Piecewise.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC709-D65_2.0,,sdr-video,file-io +465,P3-D60_1000nit_in_Rec2100-D65_HLG,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_Rec2100-D65_HLG.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-REC2020-D65_2.0,,hdr-video,file-io +465,P3-D60_1000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-REC2020-D65_2.0,,hdr-video,file-io +465,P3-D60_2000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_2000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D60-in-REC2020-D65_2.0,,hdr-video,file-io +465,P3-D60_4000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_4000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D60-in-REC2020-D65_2.0,,hdr-video,file-io +465,P3-D60_500nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_500nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D60-in-REC2020-D65_2.0,,hdr-video,file-io +465,Rec2100-D60_1000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D60_1000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-REC2020-D60-in-REC2020-D65_2.0,,hdr-video,file-io +465,Rec2100-D60_2000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D60_2000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-REC2020-D60-in-REC2020-D65_2.0,,hdr-video,file-io +465,Rec2100-D60_4000nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D60_4000nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-REC2020-D60-in-REC2020-D65_2.0,,hdr-video,file-io +465,Rec2100-D60_500nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100-D60_500nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-REC2020-D60-in-REC2020-D65_2.0,,sdr-video,file-io +465,Rec709-D60_100nit_in_Rec2100-D65_ST2084,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_100nit_in_Rec2100-D65_ST2084.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC2020-D65_2.0,,hdr-video,file-io +470,P3-D60_1000nit_in_P3-D65_sRGB-Piecewise,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_P3-D65_sRGB-Piecewise.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-P3-D65_2.0,,sdr-video,file-io +470,P3-D60_100nit_in_P3-D65_sRGB-Piecewise,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_100nit_in_P3-D65_sRGB-Piecewise.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D60-in-P3-D65_2.0,,hdr-video,file-io +475,Rec709-D60_100nit_in_Rec709-D65_BT1886,FALSE,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_100nit_in_Rec709-D65_BT1886.a2.v1,,ViewTransform,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC709-D65_2.0,,sdr-video,file-io +500,sRGB Encoded Rec.709 (sRGB),TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB-Encoded-Rec709:1.0,ColorSpace,,"srgb_texture,srgb_rec709_scene,Utility - sRGB - Texture,Input - Generic - sRGB - Texture,sRGB - Texture,srgb_tx",sdr-video,"file-io,texture" +501,Gamma 1.8 Encoded Rec.709,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma1.8_Encoded_Rec709:1.0,ColorSpace,,"g18_rec709,Utility - Gamma 1.8 - Rec.709 - Texture,Gamma 1.8 Rec.709 - Texture,g18_rec709_tx,g18_rec709_scene",sdr-video,"file-io,texture" +502,Gamma 2.2 Encoded Rec.709,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_Rec709:1.0,ColorSpace,,"g22_rec709,Utility - Gamma 2.2 - Rec.709 - Texture,Gamma 2.2 Rec.709 - Texture,g22_rec709_tx,g22_rec709_scene",sdr-video,"file-io,texture" +503,Gamma 2.4 Encoded Rec.709,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.4_Encoded_Rec709:1.0,ColorSpace,,"g24_rec709,rec709_display,Utility - Rec.709 - Display,Gamma 2.4 Rec.709 - Texture,g24_rec709_tx",sdr-video,"file-io,texture" +504,Camera Rec.709,TRUE,,urn:aswf:ocio:transformId:1.0:ITU:Utility:AP0_to_Camera_Rec709:1.0,ColorSpace,,"rec709_camera,Utility - Rec.709 - Camera",sdr-video,file-io +505,sRGB Encoded P3-D65,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_P3-D65:1.0,ColorSpace,,"srgb_p3d65,srgb_displayp3,srgb_p3d65_scene,sRGB Encoded P3-D65 - Texture,srgb_encoded_p3d65_tx",sdr-video,"file-io,texture" +506,Gamma 2.2 Encoded AdobeRGB,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_AdobeRGB:1.0,ColorSpace,,"adobergb,g22_adobergb_scene",sdr-video,"file-io,texture" +507,sRGB Encoded AP1,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_AP1:1.0,ColorSpace,,"srgb_ap1,srgb_ap1_scene,sRGB Encoded AP1 - Texture,srgb_encoded_ap1_tx",sdr-video,"file-io,texture" +508,Gamma 2.2 Encoded AP1,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Encoded_AP1:1.0,ColorSpace,,"g22_ap1,Gamma 2.2 AP1 - Texture,g22_ap1_tx,g22_ap1_scene",sdr-video,"file-io,texture" +520,CIE XYZ-D65 - Scene-referred,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_CIE_XYZ-D65-Scene-referred:1.0,ColorSpace,,lin_ciexyzd65_scene,scene-linear,file-io +520,Linear AdobeRGB,FALSE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_AdobeRGB:1.0,ColorSpace,,"lin_adobergb,lin_adobergb_scene,Utility - Linear - Adobe RGB",scene-linear,"file-io,texture" +520,Linear P3-D65,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_P3-D65:1.0,ColorSpace,,"lin_p3d65,lin_displayp3,lin_p3d65_scene,Utility - Linear - P3-D65,Linear Display P3",scene-linear,"file-io,working-space,texture" +520,Linear Rec.2020,TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec2020:1.0,ColorSpace,,"lin_rec2020,lin_rec2020_scene,Utility - Linear - Rec.2020",scene-linear,"file-io,texture" +520,Linear Rec.709 (sRGB),TRUE,,urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec709:1.0,ColorSpace,,"lin_rec709,lin_rec709_scene,lin_srgb,Utility - Linear - sRGB,Utility - Linear - Rec.709",scene-linear,"file-io,working-space,texture" diff --git a/opencolorio_config_aces/utilities/common.py b/opencolorio_config_aces/utilities/common.py index 4ba3e563..5a6597bc 100644 --- a/opencolorio_config_aces/utilities/common.py +++ b/opencolorio_config_aces/utilities/common.py @@ -56,7 +56,7 @@ "timestamp", ] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) # Monkey-patching the "PrettyPrinter" mapping to handle the "TypeError" diff --git a/utilities/tools/testclf/testclf.py b/utilities/tools/testclf/testclf.py index 7af50100..f966b0ee 100644 --- a/utilities/tools/testclf/testclf.py +++ b/utilities/tools/testclf/testclf.py @@ -33,7 +33,7 @@ __all__ = ["test_clf"] -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) def test_clf(clf_path, input_data, output_path, inverse=False):