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.
 """
-from panasonic_gh4_data import *
+from panasonic_gh4_data import *
 
 import numpy as np
 from scipy import interpolate
@@ -220,7 +220,8 @@ def create_gh4_style(gamut,
                      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
@@ -237,6 +238,10 @@ def create_gh4_style(gamut,
         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
     -------
@@ -245,9 +250,9 @@ def create_gh4_style(gamut,
     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 == '':
-        name = 'Linear - GH4-%s-Gamut' % gamut
+        name = ('Linear - GH4-%s-Gamut %s' % (gamut, variant)).strip()
     if gamut == '':
         name = 'Curve - GH4-%s' % transfer_function
 
@@ -344,20 +349,20 @@ def create_gh4_style(gamut,
                        0, 0, 0, 1.0],
             'direction': 'forward'})
 
-        if gamut.endswith('XYZ'):
+        if variant == ('XYZ'):
             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] +
@@ -464,11 +469,12 @@ def create_colorspaces(lut_directory, lut_resolution_1d):
 
         # Linearization and XYZ conversion
         style_3 = create_gh4_style(
-            '%s-XYZ' % style,
+            '%s' % style,
             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
@@ -484,12 +490,13 @@ def create_colorspaces(lut_directory, lut_resolution_1d):
             
             # 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)
+                style,
+                variant='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('-','_')],
-                style)
+                style,
+                variant='Calibrated')
             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]]
+
+}