using argyll colprof matrices
[OpenColorIO-Configs.git] / aces_1.0.1 / python / aces_ocio / colorspaces / panasonic_gh4.py
index b5cdf28..1d0c95b 100644 (file)
@@ -5,7 +5,7 @@
 Implements support for *Panasonic GH4* colorspaces conversions and transfer
 functions based on empirical data.
 """
 Implements support for *Panasonic GH4* colorspaces conversions and transfer
 functions based on empirical data.
 """
-from panasonic_gh4_data import *
+from panasonic_gh4_data import *
 
 import numpy as np
 from scipy import interpolate
 
 import numpy as np
 from scipy import interpolate
@@ -220,7 +220,8 @@ def create_gh4_style(gamut,
                      lut_directory,
                      lut_resolution_1d,
                      aliases,
                      lut_directory,
                      lut_resolution_1d,
                      aliases,
-                     style=None):
+                     style=None,
+                     variant=''):
     """
     Creates colorspace covering the conversion from GH4 picture styles 
     to ACES based on empirical data
     """
     Creates colorspace covering the conversion from GH4 picture styles 
     to ACES based on empirical data
@@ -237,6 +238,10 @@ def create_gh4_style(gamut,
         The resolution of generated 1D LUTs
     aliases : list of str
         Aliases for this colorspace
         The resolution of generated 1D LUTs
     aliases : list of str
         Aliases for this colorspace
+    style : str
+        Associated Photo Style
+    variant : str
+        Variant of processing
 
     Returns
     -------
 
     Returns
     -------
@@ -245,9 +250,9 @@ def create_gh4_style(gamut,
     and identifying information for the requested colorspace.
     """
 
     and identifying information for the requested colorspace.
     """
 
-    name = 'GH4-%s - GH4-%s-Gamut' % (transfer_function, gamut)
+    name = ('GH4-%s - GH4-%s-Gamut %s' % (transfer_function, gamut, variant)).strip()
     if transfer_function == '':
     if transfer_function == '':
-        name = 'Linear - GH4-%s-Gamut' % gamut
+        name = ('Linear - GH4-%s-Gamut %s' % (gamut, variant)).strip()
     if gamut == '':
         name = 'Curve - GH4-%s' % transfer_function
 
     if gamut == '':
         name = 'Curve - GH4-%s' % transfer_function
 
@@ -344,20 +349,20 @@ def create_gh4_style(gamut,
                        0, 0, 0, 1.0],
             'direction': 'forward'})
 
                        0, 0, 0, 1.0],
             'direction': 'forward'})
 
-        if gamut.endswith('XYZ'):
+        if variant == ('XYZ'):
             cs.from_reference_transforms = []
             return cs
 
             cs.from_reference_transforms = []
             return cs
 
-        if gamut.endswith('Calibrated'):
-            wb = [0.]*16
-            wb[0] = calibration_wb[style][0]
-            wb[5] = calibration_wb[style][1]
-            wb[10] = calibration_wb[style][2]
-            wb[15] = 1.0
-            cs.to_reference_transforms.append({
-                'type': 'matrix',
-                'matrix': wb,
-                'direction': 'forward'})
+        if variant == ('Calibrated'):
+            wb = [0.]*16
+            wb[0] = calibration_wb[style][0]
+            wb[5] = calibration_wb[style][1]
+            wb[10] = calibration_wb[style][2]
+            wb[15] = 1.0
+            cs.to_reference_transforms.append({
+                'type': 'matrix',
+                'matrix': wb,
+                'direction': 'forward'})
             cs.to_reference_transforms.append({
                 'type': 'matrix',
                 'matrix': (calibration_matrices[style][0] + [0.0] +
             cs.to_reference_transforms.append({
                 'type': 'matrix',
                 'matrix': (calibration_matrices[style][0] + [0.0] +
@@ -464,11 +469,12 @@ def create_colorspaces(lut_directory, lut_resolution_1d):
 
         # Linearization and XYZ conversion
         style_3 = create_gh4_style(
 
         # Linearization and XYZ conversion
         style_3 = create_gh4_style(
-            '%s-XYZ' % style,
+            '%s' % style,
             style,
             lut_directory,
             lut_resolution_1d,
             style,
             lut_directory,
             lut_resolution_1d,
-            ['gh4_%s_xyz' % style.lower().replace('-','_')])
+            ['gh4_%s_xyz' % style.lower().replace('-','_')],
+            variant='XYZ')
         colorspaces.append(style_3)
 
         # Primaries Only
         colorspaces.append(style_3)
 
         # Primaries Only
@@ -484,12 +490,13 @@ def create_colorspaces(lut_directory, lut_resolution_1d):
             
             # Full conversion calibrated
             style_5 = create_gh4_style(
             
             # Full conversion calibrated
             style_5 = create_gh4_style(
-                '%s-Calibrated' % style,
+                '%s' % style,
                 style, 
                 lut_directory,
                 lut_resolution_1d,
                 ['gh4_%s_gh4_calibrated_gamut'% style.lower().replace('-','_')],
                 style, 
                 lut_directory,
                 lut_resolution_1d,
                 ['gh4_%s_gh4_calibrated_gamut'% style.lower().replace('-','_')],
-                style)
+                style,
+                variant='Calibrated')
             colorspaces.append(style_5)
 
             # Primaries Only calibrated
             colorspaces.append(style_5)
 
             # Primaries Only calibrated
@@ -499,9 +506,41 @@ def create_colorspaces(lut_directory, lut_resolution_1d):
                 lut_directory,
                 lut_resolution_1d,
                 ['lin_gh4_%s_calibrated_gamut'%style.lower().replace('-','_')],
                 lut_directory,
                 lut_resolution_1d,
                 ['lin_gh4_%s_calibrated_gamut'%style.lower().replace('-','_')],
-                style)
+                style,
+                variant='Calibrated')
             colorspaces.append(style_6)
 
             
     return colorspaces
 
             colorspaces.append(style_6)
 
             
     return colorspaces
 
+calibration_matrices = {
+    
+'Cinelike-D': [[1.165504, 0.251869, -0.118313],
+                [-0.369525, 1.80097, -0.096786],
+                [-0.05245, 0.097669, 1.326889]],
+ 'Cinelike-V': [[1.060891, 0.353566, -0.102382],
+                [-0.460172, 1.927755, -0.122295],
+                [-0.129601, 0.137134, 1.373328]],
+ 'Custom': [[0.946141, 0.485274, -0.087787],
+            [-0.555203, 2.05073, -0.100206],
+            [-0.128126, 0.12821, 1.426733]],
+ 'Natural': [[0.874551, 0.439286, -0.085863],
+             [-0.516138, 1.916301, -0.11907],
+             [-0.071172, 0.056567, 1.347203]],
+ 'Portrait': [[0.660386, 0.650877, -0.060211],
+              [-0.600758, 1.998228, -0.085769],
+              [-0.110666, 0.124363, 1.339439]],
+ 'Scenery': [[0.812315, 0.534553, -0.098869],
+             [-0.542253, 1.934419, -0.071867],
+             [-0.123626, 0.142352, 1.292352]],
+ 'Standard': [[0.886056, 0.415669, -0.073317],
+              [-0.482919, 1.84707, -0.088924],
+              [-0.117718, 0.126855, 1.321097]],
+ 'V-Log': [[1.127527, 0.284008, -0.033005],
+           [-0.192653, 1.619262, -0.030388],
+           [-0.080181, 0.057527, 1.39992]],
+ 'Vivid': [[0.754924, 0.526196, -0.061668],
+           [-0.503233, 1.851748, -0.065254],
+           [-0.197153, 0.267533, 1.212053]]
+
+}