From 60ea234c1a9c7be5898ba35a6f548357d6deb874 Mon Sep 17 00:00:00 2001 From: Haarm-Pieter Duiker Date: Wed, 3 Jun 2015 19:18:15 -0700 Subject: [PATCH] Added 'Curve - ' prefix to colorspaces that only included a transfer function/curve. Fixed minor issue with Utility colorspaces. --- aces_1.0.0/config.ocio | 343 ++++++++++---------- aces_1.0.0/python/aces_ocio/aces_config.py | 2 +- aces_1.0.0/python/aces_ocio/colorspaces/arri.py | 2 +- aces_1.0.0/python/aces_ocio/colorspaces/canon.py | 2 +- aces_1.0.0/python/aces_ocio/colorspaces/general.py | 112 +++++-- aces_1.0.0/python/aces_ocio/colorspaces/gopro.py | 2 +- .../python/aces_ocio/colorspaces/panasonic.py | 2 +- aces_1.0.0/python/aces_ocio/colorspaces/red.py | 2 +- aces_1.0.0/python/aces_ocio/colorspaces/sony.py | 2 +- 9 files changed, 259 insertions(+), 210 deletions(-) diff --git a/aces_1.0.0/config.ocio b/aces_1.0.0/config.ocio index 3733597..f16898d 100644 --- a/aces_1.0.0/config.ocio +++ b/aces_1.0.0/config.ocio @@ -149,8 +149,8 @@ colorspaces: description: | The Linear - AP1 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: Linear - AP1, dst: ACES2065-1} from_reference: ! {src: ACES2065-1, dst: Linear - AP1} @@ -497,100 +497,100 @@ colorspaces: from_reference: ! {src: ACES2065-1, dst: DCDM (P3 gamut clip)} - ! - name: DCDM + name: P3-D60 PQ (1000 nits) family: Output equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - DCDM Output Transform + ACES 1.0 Output - P3-D60 PQ (1000 nits) Output Transform isdata: false allocation: uniform allocationvars: [0, 1] to_reference: ! children: - - ! {src: InvRRT.a1.0.0.DCDM.Output_Shaper.spi3d, interpolation: tetrahedral} + - ! {src: InvRRT.a1.0.0.P3-D60_PQ__1000_nits_.Output_Shaper.spi3d, interpolation: tetrahedral} - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear} from_reference: ! children: - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse} - - ! {src: Output_Shaper.RRT.a1.0.0.DCDM.spi3d, interpolation: tetrahedral} + - ! {src: Output_Shaper.RRT.a1.0.0.P3-D60_PQ__1000_nits_.spi3d, interpolation: tetrahedral} - ! - name: out_dcdm + name: out_p3d60pq1000nits family: Aliases equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - DCDM Output Transform + ACES 1.0 Output - P3-D60 PQ (1000 nits) Output Transform isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: DCDM, dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: DCDM} + to_reference: ! {src: P3-D60 PQ (1000 nits), dst: ACES2065-1} + from_reference: ! {src: ACES2065-1, dst: P3-D60 PQ (1000 nits)} - ! - name: P3-D60 PQ (4000 nits) + name: DCDM family: Output equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - P3-D60 PQ (4000 nits) Output Transform + ACES 1.0 Output - DCDM Output Transform isdata: false allocation: uniform allocationvars: [0, 1] to_reference: ! children: - - ! {src: InvRRT.a1.0.0.P3-D60_PQ__4000_nits_.Output_Shaper.spi3d, interpolation: tetrahedral} + - ! {src: InvRRT.a1.0.0.DCDM.Output_Shaper.spi3d, interpolation: tetrahedral} - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear} from_reference: ! children: - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse} - - ! {src: Output_Shaper.RRT.a1.0.0.P3-D60_PQ__4000_nits_.spi3d, interpolation: tetrahedral} + - ! {src: Output_Shaper.RRT.a1.0.0.DCDM.spi3d, interpolation: tetrahedral} - ! - name: out_p3d60pq4000nits + name: out_dcdm family: Aliases equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - P3-D60 PQ (4000 nits) Output Transform + ACES 1.0 Output - DCDM Output Transform isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: P3-D60 PQ (4000 nits), dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: P3-D60 PQ (4000 nits)} + to_reference: ! {src: DCDM, dst: ACES2065-1} + from_reference: ! {src: ACES2065-1, dst: DCDM} - ! - name: P3-D60 PQ (1000 nits) + name: Rec.2020 - Full family: Output equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - P3-D60 PQ (1000 nits) Output Transform + ACES 1.0 Output - Rec.2020 - Full Output Transform isdata: false allocation: uniform allocationvars: [0, 1] to_reference: ! children: - - ! {src: InvRRT.a1.0.0.P3-D60_PQ__1000_nits_.Output_Shaper.spi3d, interpolation: tetrahedral} + - ! {src: InvRRT.a1.0.0.Rec.2020_-_Full.Output_Shaper.spi3d, interpolation: tetrahedral} - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear} from_reference: ! children: - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse} - - ! {src: Output_Shaper.RRT.a1.0.0.P3-D60_PQ__1000_nits_.spi3d, interpolation: tetrahedral} + - ! {src: Output_Shaper.RRT.a1.0.0.Rec.2020_-_Full.spi3d, interpolation: tetrahedral} - ! - name: out_p3d60pq1000nits + name: out_rec2020full family: Aliases equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - P3-D60 PQ (1000 nits) Output Transform + ACES 1.0 Output - Rec.2020 - Full Output Transform isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: P3-D60 PQ (1000 nits), dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: P3-D60 PQ (1000 nits)} + to_reference: ! {src: Rec.2020 - Full, dst: ACES2065-1} + from_reference: ! {src: ACES2065-1, dst: Rec.2020 - Full} - ! name: P3-D60 PQ (2000 nits) @@ -625,68 +625,68 @@ colorspaces: from_reference: ! {src: ACES2065-1, dst: P3-D60 PQ (2000 nits)} - ! - name: Rec.2020 - Full + name: P3-D60 family: Output equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - Rec.2020 - Full Output Transform + ACES 1.0 Output - P3-D60 Output Transform isdata: false allocation: uniform allocationvars: [0, 1] to_reference: ! children: - - ! {src: InvRRT.a1.0.0.Rec.2020_-_Full.Output_Shaper.spi3d, interpolation: tetrahedral} + - ! {src: InvRRT.a1.0.0.P3-D60.Output_Shaper.spi3d, interpolation: tetrahedral} - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear} from_reference: ! children: - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse} - - ! {src: Output_Shaper.RRT.a1.0.0.Rec.2020_-_Full.spi3d, interpolation: tetrahedral} + - ! {src: Output_Shaper.RRT.a1.0.0.P3-D60.spi3d, interpolation: tetrahedral} - ! - name: out_rec2020full + name: out_p3d60 family: Aliases equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - Rec.2020 - Full Output Transform + ACES 1.0 Output - P3-D60 Output Transform isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: Rec.2020 - Full, dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: Rec.2020 - Full} + to_reference: ! {src: P3-D60, dst: ACES2065-1} + from_reference: ! {src: ACES2065-1, dst: P3-D60} - ! - name: P3-D60 + name: P3-D60 PQ (4000 nits) family: Output equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - P3-D60 Output Transform + ACES 1.0 Output - P3-D60 PQ (4000 nits) Output Transform isdata: false allocation: uniform allocationvars: [0, 1] to_reference: ! children: - - ! {src: InvRRT.a1.0.0.P3-D60.Output_Shaper.spi3d, interpolation: tetrahedral} + - ! {src: InvRRT.a1.0.0.P3-D60_PQ__4000_nits_.Output_Shaper.spi3d, interpolation: tetrahedral} - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear} from_reference: ! children: - ! {src: Output_Shaper_to_linear.spi1d, interpolation: linear, direction: inverse} - - ! {src: Output_Shaper.RRT.a1.0.0.P3-D60.spi3d, interpolation: tetrahedral} + - ! {src: Output_Shaper.RRT.a1.0.0.P3-D60_PQ__4000_nits_.spi3d, interpolation: tetrahedral} - ! - name: out_p3d60 + name: out_p3d60pq4000nits family: Aliases equalitygroup: "" bitdepth: 32f description: | - ACES 1.0 Output - P3-D60 Output Transform + ACES 1.0 Output - P3-D60 PQ (4000 nits) Output Transform isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: P3-D60, dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: P3-D60} + to_reference: ! {src: P3-D60 PQ (4000 nits), dst: ACES2065-1} + from_reference: ! {src: ACES2065-1, dst: P3-D60 PQ (4000 nits)} - ! name: P3-DCI @@ -1291,12 +1291,12 @@ colorspaces: to_reference: ! {src: V3 LogC (EI3200) - Wide Gamut, dst: ACES2065-1} - ! - name: V3 LogC (EI800) + name: Curve - V3 LogC (EI800) family: Input/ARRI equalitygroup: "" bitdepth: 32f description: | - V3 LogC (EI800) + Curve - V3 LogC (EI800) isdata: false allocation: uniform allocationvars: [0, 1] @@ -1308,11 +1308,11 @@ colorspaces: equalitygroup: "" bitdepth: 32f description: | - V3 LogC (EI800) + Curve - V3 LogC (EI800) isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: V3 LogC (EI800), dst: ACES2065-1} + to_reference: ! {src: Curve - V3 LogC (EI800), dst: ACES2065-1} - ! name: Canon-Log - Rec. 709 Daylight @@ -1477,12 +1477,12 @@ colorspaces: to_reference: ! {src: Canon-Log - Cinema Gamut Tungsten, dst: ACES2065-1} - ! - name: Canon-Log + name: Curve - Canon-Log family: Input/Canon equalitygroup: "" bitdepth: 32f description: | - Canon-Log + Curve - Canon-Log isdata: false allocation: uniform allocationvars: [0, 1] @@ -1494,11 +1494,11 @@ colorspaces: equalitygroup: "" bitdepth: 32f description: | - Canon-Log + Curve - Canon-Log isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: Canon-Log, dst: ACES2065-1} + to_reference: ! {src: Curve - Canon-Log, dst: ACES2065-1} - ! name: Linear - Canon Rec. 709 Daylight @@ -1669,12 +1669,12 @@ colorspaces: to_reference: ! {src: Protune Flat - Protune Native - Experimental, dst: ACES2065-1} - ! - name: Protune Flat + name: Curve - Protune Flat family: Input/GoPro equalitygroup: "" bitdepth: 32f description: | - Protune Flat + Curve - Protune Flat isdata: false allocation: uniform allocationvars: [0, 1] @@ -1686,11 +1686,11 @@ colorspaces: equalitygroup: "" bitdepth: 32f description: | - Protune Flat + Curve - Protune Flat isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: Protune Flat, dst: ACES2065-1} + to_reference: ! {src: Curve - Protune Flat, dst: ACES2065-1} - ! name: Linear - Protune Native - Experimental @@ -1742,12 +1742,12 @@ colorspaces: to_reference: ! {src: V-Log - V-Gamut, dst: ACES2065-1} - ! - name: V-Log + name: Curve - V-Log family: Input/Panasonic equalitygroup: "" bitdepth: 32f description: | - V-Log + Curve - V-Log isdata: false allocation: uniform allocationvars: [0, 1] @@ -1759,11 +1759,11 @@ colorspaces: equalitygroup: "" bitdepth: 32f description: | - V-Log + Curve - V-Log isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: V-Log, dst: ACES2065-1} + to_reference: ! {src: Curve - V-Log, dst: ACES2065-1} - ! name: Linear - V-Gamut @@ -1952,12 +1952,12 @@ colorspaces: to_reference: ! {src: REDlogFilm - REDcolor4, dst: ACES2065-1} - ! - name: REDlogFilm + name: Curve - REDlogFilm family: Input/RED equalitygroup: "" bitdepth: 32f description: | - REDlogFilm + Curve - REDlogFilm isdata: false allocation: uniform allocationvars: [0, 1] @@ -1969,11 +1969,11 @@ colorspaces: equalitygroup: "" bitdepth: 32f description: | - REDlogFilm + Curve - REDlogFilm isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: REDlogFilm, dst: ACES2065-1} + to_reference: ! {src: Curve - REDlogFilm, dst: ACES2065-1} - ! name: Linear - DRAGONcolor @@ -2282,12 +2282,12 @@ colorspaces: to_reference: ! {src: S-Log3 - S-Gamut3, dst: ACES2065-1} - ! - name: S-Log1 + name: Curve - S-Log1 family: Input/Sony equalitygroup: "" bitdepth: 32f description: | - S-Log1 + Curve - S-Log1 isdata: false allocation: uniform allocationvars: [0, 1] @@ -2299,19 +2299,19 @@ colorspaces: equalitygroup: "" bitdepth: 32f description: | - S-Log1 + Curve - S-Log1 isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: S-Log1, dst: ACES2065-1} + to_reference: ! {src: Curve - S-Log1, dst: ACES2065-1} - ! - name: S-Log2 + name: Curve - S-Log2 family: Input/Sony equalitygroup: "" bitdepth: 32f description: | - S-Log2 + Curve - S-Log2 isdata: false allocation: uniform allocationvars: [0, 1] @@ -2323,19 +2323,19 @@ colorspaces: equalitygroup: "" bitdepth: 32f description: | - S-Log2 + Curve - S-Log2 isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: S-Log2, dst: ACES2065-1} + to_reference: ! {src: Curve - S-Log2, dst: ACES2065-1} - ! - name: S-Log3 + name: Curve - S-Log3 family: Input/Sony equalitygroup: "" bitdepth: 32f description: | - S-Log3 + Curve - S-Log3 isdata: false allocation: uniform allocationvars: [0, 1] @@ -2347,11 +2347,11 @@ colorspaces: equalitygroup: "" bitdepth: 32f description: | - S-Log3 + Curve - S-Log3 isdata: false allocation: uniform allocationvars: [0, 1] - to_reference: ! {src: S-Log3, dst: ACES2065-1} + to_reference: ! {src: Curve - S-Log3, dst: ACES2065-1} - ! name: Linear - S-Gamut @@ -2481,8 +2481,8 @@ colorspaces: description: | The XYZ color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {matrix: [1.04981, 0, -9.74845e-05, 0, -0.495903, 1.37331, 0.09824, 0, 0, 0, 0.991252, 0, 0, 0, 0, 1]} from_reference: ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2494,8 +2494,8 @@ colorspaces: description: | The XYZ color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: XYZ, dst: ACES2065-1} from_reference: ! {src: ACES2065-1, dst: XYZ} @@ -2507,8 +2507,8 @@ colorspaces: description: | The Linear - AP1 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {matrix: [0.695452, 0.140679, 0.163869, 0, 0.0447946, 0.859671, 0.0955343, 0, -0.00552588, 0.00402521, 1.0015, 0, 0, 0, 0, 1]} from_reference: ! {matrix: [1.45144, -0.236511, -0.214929, 0, -0.0765538, 1.17623, -0.0996759, 0, 0.00831615, -0.00603245, 0.997716, 0, 0, 0, 0, 1]} @@ -2520,8 +2520,8 @@ colorspaces: description: | The Linear - P3-D60 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2535,8 +2535,8 @@ colorspaces: description: | The Linear - P3-D60 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - P3-D60} - ! @@ -2547,8 +2547,8 @@ colorspaces: description: | The Linear - P3-DCI color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2562,8 +2562,8 @@ colorspaces: description: | The Linear - P3-DCI color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - P3-DCI} - ! @@ -2574,8 +2574,8 @@ colorspaces: description: | The Linear - Rec.709 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2589,8 +2589,8 @@ colorspaces: description: | The Linear - Rec.709 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - Rec.709} - ! @@ -2601,10 +2601,9 @@ colorspaces: description: | The Curve - Rec.709 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: rec709_to_linear.spi1d, interpolation: linear} - from_reference: ! {src: rec709_to_linear.spi1d, interpolation: linear, direction: inverse} - ! name: crv_rec709 @@ -2614,10 +2613,9 @@ colorspaces: description: | The Curve - Rec.709 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: Curve - Rec.709, dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: Curve - Rec.709} - ! name: Rec.709 @@ -2627,9 +2625,8 @@ colorspaces: description: | The Rec.709 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] - to_reference: ! {src: rec709_to_linear.spi1d, interpolation: linear} + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2644,9 +2641,8 @@ colorspaces: description: | The Rec.709 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] - to_reference: ! {src: Rec.709, dst: ACES2065-1} + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Rec.709} - ! @@ -2657,23 +2653,23 @@ colorspaces: description: | The Linear - sRGB color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} - ! {matrix: [3.24097, -1.53738, -0.498611, 0, -0.969244, 1.87597, 0.0415551, 0, 0.0556301, -0.203977, 1.05697, 0, 0, 0, 0, 1]} - ! - name: lin_sRGB + name: lin_srgb family: Aliases equalitygroup: Linear - sRGB bitdepth: 32f description: | The Linear - sRGB color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - sRGB} - ! @@ -2684,36 +2680,37 @@ colorspaces: description: | The Curve - sRGB color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: sRGB_to_linear.spi1d, interpolation: linear} - from_reference: ! {src: sRGB_to_linear.spi1d, interpolation: linear, direction: inverse} - ! - name: crv_sRGB + name: crv_srgb family: Aliases equalitygroup: Curve - sRGB bitdepth: 32f description: | The Curve - sRGB color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: Curve - sRGB, dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: Curve - sRGB} - ! name: sRGB - family: Aliases + family: Utility equalitygroup: sRGB bitdepth: 32f description: | The sRGB color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] - to_reference: ! {src: sRGB, dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: sRGB} + allocation: uniform + allocationvars: [0, 1] + from_reference: ! + children: + - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} + - ! {matrix: [3.24097, -1.53738, -0.498611, 0, -0.969244, 1.87597, 0.0415551, 0, 0.0556301, -0.203977, 1.05697, 0, 0, 0, 0, 1]} + - ! {src: sRGB_to_linear.spi1d, interpolation: linear, direction: inverse} - ! name: Linear - Rec.1886 @@ -2723,8 +2720,8 @@ colorspaces: description: | The Linear - Rec.1886 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2738,8 +2735,8 @@ colorspaces: description: | The Linear - Rec.1886 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - Rec.1886} - ! @@ -2750,10 +2747,9 @@ colorspaces: description: | The Curve - Rec.1886 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: rec1886_to_linear.spi1d, interpolation: linear} - from_reference: ! {src: rec1886_to_linear.spi1d, interpolation: linear, direction: inverse} - ! name: crv_rec1886 @@ -2763,10 +2759,9 @@ colorspaces: description: | The Curve - Rec.1886 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: Curve - Rec.1886, dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: Curve - Rec.1886} - ! name: Rec.1886 @@ -2776,9 +2771,8 @@ colorspaces: description: | The Rec.1886 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] - to_reference: ! {src: rec1886_to_linear.spi1d, interpolation: linear} + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2793,9 +2787,8 @@ colorspaces: description: | The Rec.1886 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] - to_reference: ! {src: Rec.1886, dst: ACES2065-1} + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Rec.1886} - ! @@ -2806,8 +2799,8 @@ colorspaces: description: | The Linear - Rec.2020 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2821,8 +2814,8 @@ colorspaces: description: | The Linear - Rec.2020 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - Rec.2020} - ! @@ -2833,10 +2826,9 @@ colorspaces: description: | The Curve - Rec.2020 - 10 bit color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: rec2020_to_linear.spi1d, interpolation: linear} - from_reference: ! {src: rec2020_to_linear.spi1d, interpolation: linear, direction: inverse} - ! name: crv_rec202010bit @@ -2846,10 +2838,9 @@ colorspaces: description: | The Curve - Rec.2020 - 10 bit color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: Curve - Rec.2020 - 10 bit, dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: Curve - Rec.2020 - 10 bit} - ! name: Rec.2020 10 bit - Rec.2020 @@ -2859,9 +2850,8 @@ colorspaces: description: | The Rec.2020 10 bit - Rec.2020 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] - to_reference: ! {src: rec2020_to_linear.spi1d, interpolation: linear} + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2876,9 +2866,8 @@ colorspaces: description: | The Rec.2020 10 bit - Rec.2020 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] - to_reference: ! {src: Rec.2020 10 bit - Rec.2020, dst: ACES2065-1} + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Rec.2020 10 bit - Rec.2020} - ! @@ -2889,10 +2878,9 @@ colorspaces: description: | The Curve - Rec.2020 - 12 bit color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: rec2020_to_linear.spi1d, interpolation: linear} - from_reference: ! {src: rec2020_to_linear.spi1d, interpolation: linear, direction: inverse} - ! name: crv_rec202012bit @@ -2902,10 +2890,9 @@ colorspaces: description: | The Curve - Rec.2020 - 12 bit color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] to_reference: ! {src: Curve - Rec.2020 - 12 bit, dst: ACES2065-1} - from_reference: ! {src: ACES2065-1, dst: Curve - Rec.2020 - 12 bit} - ! name: Rec.2020 12 bit - Rec.2020 @@ -2915,9 +2902,8 @@ colorspaces: description: | The Rec.2020 12 bit - Rec.2020 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] - to_reference: ! {src: rec2020_to_linear.spi1d, interpolation: linear} + allocation: uniform + allocationvars: [0, 1] from_reference: ! children: - ! {matrix: [0.952552, 0, 9.36786e-05, 0, 0.343966, 0.728166, -0.0721325, 0, 0, 0, 1.00883, 0, 0, 0, 0, 1]} @@ -2932,9 +2918,8 @@ colorspaces: description: | The Rec.2020 12 bit - Rec.2020 color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] - to_reference: ! {src: Rec.2020 12 bit - Rec.2020, dst: ACES2065-1} + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Rec.2020 12 bit - Rec.2020} - ! @@ -2945,8 +2930,8 @@ colorspaces: description: | The Linear - RIMM ROMM (ProPhoto) color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {matrix: [1.24124, -0.168569, -0.0726675, 0, 0.00612031, 1.08315, -0.0892715, 0, -0.00328533, 0.00997964, 0.993306, 0, 0, 0, 0, 1]} - ! @@ -2957,8 +2942,8 @@ colorspaces: description: | The Linear - RIMM ROMM (ProPhoto) color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - RIMM ROMM (ProPhoto)} - ! @@ -2969,8 +2954,8 @@ colorspaces: description: | The Linear - RIMM ROMM (ProPhoto) color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - RIMM ROMM (ProPhoto)} - ! @@ -2981,8 +2966,8 @@ colorspaces: description: | The Linear - Adobe RGB color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {matrix: [1.72456, -0.419994, -0.304567, 0, -0.27648, 1.37272, -0.0962392, 0, -0.0261255, -0.0901748, 1.1163, 0, 0, 0, 0, 1]} - ! @@ -2993,8 +2978,8 @@ colorspaces: description: | The Linear - Adobe RGB color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - Adobe RGB} - ! @@ -3005,8 +2990,8 @@ colorspaces: description: | The Linear - Adobe Wide Gamut RGB color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {matrix: [1.38098, -0.115859, -0.265122, 0, 0.00570155, 1.04029, -0.0459965, 0, -0.00389087, -0.0597092, 1.0636, 0, 0, 0, 0, 1]} - ! @@ -3017,8 +3002,8 @@ colorspaces: description: | The Linear - Adobe Wide Gamut RGB color space isdata: false - allocation: lg2 - allocationvars: [-8, 5, 0.00390625] + allocation: uniform + allocationvars: [0, 1] from_reference: ! {src: ACES2065-1, dst: Linear - Adobe Wide Gamut RGB} - ! diff --git a/aces_1.0.0/python/aces_ocio/aces_config.py b/aces_1.0.0/python/aces_ocio/aces_config.py index 1db2fcb..c762485 100755 --- a/aces_1.0.0/python/aces_ocio/aces_config.py +++ b/aces_1.0.0/python/aces_ocio/aces_config.py @@ -259,7 +259,7 @@ def add_colorspace_alias(config, """ for alias_name in colorspace_alias_names: - if alias_name == colorspace.name.lower(): + if alias_name.lower() == colorspace.name.lower(): print('Skipping alias creation for %s, alias %s, because lower cased names match' % ( colorspace.name, alias_name) ) return diff --git a/aces_1.0.0/python/aces_ocio/colorspaces/arri.py b/aces_1.0.0/python/aces_ocio/colorspaces/arri.py index e0d1a3f..fc77c5c 100644 --- a/aces_1.0.0/python/aces_ocio/colorspaces/arri.py +++ b/aces_1.0.0/python/aces_ocio/colorspaces/arri.py @@ -55,7 +55,7 @@ def create_log_c(gamut, if transfer_function == '': name = 'Linear - ARRI %s' % gamut if gamut == '': - name = '%s (EI%s)' % (transfer_function, exposure_index) + name = 'Curve - %s (EI%s)' % (transfer_function, exposure_index) cs = ColorSpace(name) cs.description = name diff --git a/aces_1.0.0/python/aces_ocio/colorspaces/canon.py b/aces_1.0.0/python/aces_ocio/colorspaces/canon.py index 5fa0e91..2be9690 100644 --- a/aces_1.0.0/python/aces_ocio/colorspaces/canon.py +++ b/aces_1.0.0/python/aces_ocio/colorspaces/canon.py @@ -52,7 +52,7 @@ def create_c_log(gamut, if transfer_function == '': name = 'Linear - Canon %s' % gamut if gamut == '': - name = '%s' % transfer_function + name = 'Curve - %s' % transfer_function cs = ColorSpace(name) cs.description = name diff --git a/aces_1.0.0/python/aces_ocio/colorspaces/general.py b/aces_1.0.0/python/aces_ocio/colorspaces/general.py index 4b6d801..6729726 100644 --- a/aces_1.0.0/python/aces_ocio/colorspaces/general.py +++ b/aces_1.0.0/python/aces_ocio/colorspaces/general.py @@ -62,8 +62,8 @@ def create_matrix_colorspace(name='matrix', cs.is_data = False # A linear space needs allocation variables - cs.allocation_type = ocio.Constants.ALLOCATION_LG2 - cs.allocation_vars = [-8, 5, 0.00390625] + cs.allocation_type = ocio.Constants.ALLOCATION_UNIFORM + cs.allocation_vars = [0, 1] cs.to_reference_transforms = [] if to_reference_values: @@ -84,7 +84,70 @@ def create_matrix_colorspace(name='matrix', return cs # ------------------------------------------------------------------------- -# *Matrix Transform* +# *Transfer Function Transform* +# ------------------------------------------------------------------------- +def create_transfer_colorspace(name='transfer', + transfer_function_name='transfer_function', + transfer_function=lambda x: x, + lut_directory='/tmp', + lut_resolution_1d=1024, + aliases=[]): + """ + Object description. + + Parameters + ---------- + parameter : type + Parameter description. + + Returns + ------- + type + Return value description. + """ + + cs = ColorSpace(name) + cs.description = 'The %s color space' % name + cs.aliases = aliases + cs.equality_group = name + cs.family = 'Utility' + cs.is_data = False + + # A linear space needs allocation variables + cs.allocation_type = ocio.Constants.ALLOCATION_UNIFORM + cs.allocation_vars = [0, 1] + + # Sample the transfer function + data = array.array('f', '\0' * lut_resolution_1d * 4) + for c in range(lut_resolution_1d): + data[c] = transfer_function(c / (lut_resolution_1d - 1)) + + # Write the sampled data to a LUT + lut = '%s_to_linear.spi1d' % transfer_function_name + genlut.write_SPI_1d( + os.path.join(lut_directory, lut), + 0, + 1, + data, + lut_resolution_1d, + 1) + + # Create the 'to_reference' transforms + cs.to_reference_transforms = [] + cs.to_reference_transforms.append({ + 'type': 'lutFile', + 'path': lut, + 'interpolation': 'linear', + 'direction': 'forward'}) + + # Create the 'from_reference' transforms + cs.from_reference_transforms = [] + + return cs +# create_transfer_colorspace + +# ------------------------------------------------------------------------- +# *Transfer Function + Matrix Transform* # ------------------------------------------------------------------------- def create_matrix_plus_transfer_colorspace(name='matrix_plus_transfer', transfer_function_name='transfer_function', @@ -122,8 +185,8 @@ def create_matrix_plus_transfer_colorspace(name='matrix_plus_transfer', cs.is_data = False # A linear space needs allocation variables - cs.allocation_type = ocio.Constants.ALLOCATION_LG2 - cs.allocation_vars = [-8, 5, 0.00390625] + cs.allocation_type = ocio.Constants.ALLOCATION_UNIFORM + cs.allocation_vars = [0, 1] # Sample the transfer function data = array.array('f', '\0' * lut_resolution_1d * 4) @@ -142,13 +205,13 @@ def create_matrix_plus_transfer_colorspace(name='matrix_plus_transfer', # Create the 'to_reference' transforms cs.to_reference_transforms = [] - cs.to_reference_transforms.append({ - 'type': 'lutFile', - 'path': lut, - 'interpolation': 'linear', - 'direction': 'forward'}) - if to_reference_values: + cs.to_reference_transforms.append({ + 'type': 'lutFile', + 'path': lut, + 'interpolation': 'linear', + 'direction': 'forward'}) + for matrix in to_reference_values: cs.to_reference_transforms.append({ 'type': 'matrix', @@ -164,13 +227,14 @@ def create_matrix_plus_transfer_colorspace(name='matrix_plus_transfer', 'matrix': mat44_from_mat33(matrix), 'direction': 'forward'}) - cs.from_reference_transforms.append({ - 'type': 'lutFile', - 'path': lut, - 'interpolation': 'linear', - 'direction': 'inverse'}) + cs.from_reference_transforms.append({ + 'type': 'lutFile', + 'path': lut, + 'interpolation': 'linear', + 'direction': 'inverse'}) return cs +# create_matrix_plus_transfer_colorspace # Transfer functions for standard color spaces def transfer_function_sRGB_to_linear(v): @@ -311,7 +375,7 @@ def create_colorspaces(lut_directory, colorspaces.append(cs) # *Linear* to *Rec. 709* Transfer Function* - cs = create_matrix_plus_transfer_colorspace( + cs = create_transfer_colorspace( 'Curve - Rec.709', 'rec709', transfer_function_Rec709_to_linear, @@ -343,17 +407,17 @@ def create_colorspaces(lut_directory, cs = create_matrix_colorspace( 'Linear - sRGB', from_reference_values=[aces.ACES_AP0_TO_XYZ, XYZ_to_Rec709], - aliases=["lin_sRGB"]) + aliases=["lin_srgb"]) colorspaces.append(cs) # *Linear* to *sRGB* Transfer Function* - cs = create_matrix_plus_transfer_colorspace( + cs = create_transfer_colorspace( 'Curve - sRGB', 'sRGB', transfer_function_sRGB_to_linear, lut_directory, lut_resolution_1d, - aliases=["crv_sRGB"]) + aliases=["crv_srgb"]) colorspaces.append(cs) # *ACES* to *sRGB* Primaries + Transfer Function* @@ -364,7 +428,7 @@ def create_colorspaces(lut_directory, lut_directory, lut_resolution_1d, from_reference_values=[aces.ACES_AP0_TO_XYZ, XYZ_to_Rec709], - aliases=["sRGB"]) + aliases=["srgb"]) colorspaces.append(cs) # @@ -383,7 +447,7 @@ def create_colorspaces(lut_directory, colorspaces.append(cs) # *Linear* to *sRGB* Transfer Function* - cs = create_matrix_plus_transfer_colorspace( + cs = create_transfer_colorspace( 'Curve - Rec.1886', 'rec1886', transfer_function_Rec1886_to_linear, @@ -418,7 +482,7 @@ def create_colorspaces(lut_directory, colorspaces.append(cs) # *Linear* to *Rec. 2020 10 bit* Transfer Function* - cs = create_matrix_plus_transfer_colorspace( + cs = create_transfer_colorspace( 'Curve - Rec.2020 - 10 bit', 'rec2020', transfer_function_Rec2020_10bit_to_linear, @@ -439,7 +503,7 @@ def create_colorspaces(lut_directory, colorspaces.append(cs) # *Linear* to *Rec. 2020 10 bit* Transfer Function* - cs = create_matrix_plus_transfer_colorspace( + cs = create_transfer_colorspace( 'Curve - Rec.2020 - 12 bit', 'rec2020', transfer_function_Rec2020_12bit_to_linear, diff --git a/aces_1.0.0/python/aces_ocio/colorspaces/gopro.py b/aces_1.0.0/python/aces_ocio/colorspaces/gopro.py index b208537..0f822b4 100644 --- a/aces_1.0.0/python/aces_ocio/colorspaces/gopro.py +++ b/aces_1.0.0/python/aces_ocio/colorspaces/gopro.py @@ -54,7 +54,7 @@ def create_protune(gamut, if transfer_function == '': name = 'Linear - %s - Experimental' % gamut if gamut == '': - name = '%s' % transfer_function + name = 'Curve - %s' % transfer_function cs = ColorSpace(name) cs.description = name diff --git a/aces_1.0.0/python/aces_ocio/colorspaces/panasonic.py b/aces_1.0.0/python/aces_ocio/colorspaces/panasonic.py index b8998c7..359ec2e 100644 --- a/aces_1.0.0/python/aces_ocio/colorspaces/panasonic.py +++ b/aces_1.0.0/python/aces_ocio/colorspaces/panasonic.py @@ -50,7 +50,7 @@ def create_v_log(gamut, if transfer_function == '': name = 'Linear - %s' % gamut if gamut == '': - name = '%s' % transfer_function + name = 'Curve - %s' % transfer_function cs = ColorSpace(name) cs.description = name diff --git a/aces_1.0.0/python/aces_ocio/colorspaces/red.py b/aces_1.0.0/python/aces_ocio/colorspaces/red.py index 49c547b..67792f8 100644 --- a/aces_1.0.0/python/aces_ocio/colorspaces/red.py +++ b/aces_1.0.0/python/aces_ocio/colorspaces/red.py @@ -52,7 +52,7 @@ def create_RED_log_film(gamut, if transfer_function == '': name = 'Linear - %s' % gamut if gamut == '': - name = '%s' % transfer_function + name = 'Curve - %s' % transfer_function cs = ColorSpace(name) cs.description = name diff --git a/aces_1.0.0/python/aces_ocio/colorspaces/sony.py b/aces_1.0.0/python/aces_ocio/colorspaces/sony.py index ac67382..1d4e059 100644 --- a/aces_1.0.0/python/aces_ocio/colorspaces/sony.py +++ b/aces_1.0.0/python/aces_ocio/colorspaces/sony.py @@ -52,7 +52,7 @@ def create_s_log(gamut, if transfer_function == '': name = 'Linear - %s' % gamut if gamut == '': - name = '%s' % transfer_function + name = 'Curve - %s' % transfer_function cs = ColorSpace(name) cs.description = name -- 1.7.10.4